diff --git a/.gitattributes b/.gitattributes
index a6344aac8c09253b3b630fb776ae94478aa0275b..b1d94f442883925b829316c1a91b21e75fe7080d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,3 +33,12 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000399.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001520.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001905.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002559.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003337.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004114.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006307.jpg filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/demo/mmcv/docs/en/_static/flow_raw_images.png filter=lfs diff=lfs merge=lfs -text
+FoodSeg103/demo/mmcv/docs/en/_static/flow_warp_diff.png filter=lfs diff=lfs merge=lfs -text
diff --git a/FoodSeg103/.DS_Store b/FoodSeg103/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..d2c3d824dd4c99804127d5b91855d477c24071ce
Binary files /dev/null and b/FoodSeg103/.DS_Store differ
diff --git a/FoodSeg103/.dev/gather_models.py b/FoodSeg103/.dev/gather_models.py
new file mode 100644
index 0000000000000000000000000000000000000000..1899195d7dc90088e89a424c8c749f075e4e18d6
--- /dev/null
+++ b/FoodSeg103/.dev/gather_models.py
@@ -0,0 +1,197 @@
+import argparse
+import glob
+import json
+import os
+import os.path as osp
+import shutil
+import subprocess
+
+import mmcv
+import torch
+
+# build schedule look-up table to automatically find the final model
+RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc']
+
+
+def process_checkpoint(in_file, out_file):
+ checkpoint = torch.load(in_file, map_location='cpu')
+ # remove optimizer for smaller file size
+ if 'optimizer' in checkpoint:
+ del checkpoint['optimizer']
+ # if it is necessary to remove some sensitive data in checkpoint['meta'],
+ # add the code here.
+ torch.save(checkpoint, out_file)
+ sha = subprocess.check_output(['sha256sum', out_file]).decode()
+ final_file = out_file.rstrip('.pth') + '-{}.pth'.format(sha[:8])
+ subprocess.Popen(['mv', out_file, final_file])
+ return final_file
+
+
+def get_final_iter(config):
+ iter_num = config.split('_')[-2]
+ assert iter_num.endswith('k')
+ return int(iter_num[:-1]) * 1000
+
+
+def get_final_results(log_json_path, iter_num):
+ result_dict = dict()
+ with open(log_json_path, 'r') as f:
+ for line in f.readlines():
+ log_line = json.loads(line)
+ if 'mode' not in log_line.keys():
+ continue
+
+ if log_line['mode'] == 'train' and log_line['iter'] == iter_num:
+ result_dict['memory'] = log_line['memory']
+
+ if log_line['iter'] == iter_num:
+ result_dict.update({
+ key: log_line[key]
+ for key in RESULTS_LUT if key in log_line
+ })
+ return result_dict
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Gather benchmarked models')
+ parser.add_argument(
+ 'root',
+ type=str,
+ help='root path of benchmarked models to be gathered')
+ parser.add_argument(
+ 'config',
+ type=str,
+ help='root path of benchmarked configs to be gathered')
+ parser.add_argument(
+ 'out_dir',
+ type=str,
+ help='output path of gathered models to be stored')
+ parser.add_argument('out_file', type=str, help='the output json file name')
+ parser.add_argument(
+ '--filter', type=str, nargs='+', default=[], help='config filter')
+ parser.add_argument(
+ '--all', action='store_true', help='whether include .py and .log')
+
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ models_root = args.root
+ models_out = args.out_dir
+ config_name = args.config
+ mmcv.mkdir_or_exist(models_out)
+
+ # find all models in the root directory to be gathered
+ raw_configs = list(mmcv.scandir(config_name, '.py', recursive=True))
+
+ # filter configs that is not trained in the experiments dir
+ used_configs = []
+ for raw_config in raw_configs:
+ work_dir = osp.splitext(osp.basename(raw_config))[0]
+ if osp.exists(osp.join(models_root, work_dir)):
+ used_configs.append((work_dir, raw_config))
+ print(f'Find {len(used_configs)} models to be gathered')
+
+ # find final_ckpt and log file for trained each config
+ # and parse the best performance
+ model_infos = []
+ for used_config, raw_config in used_configs:
+ bypass = True
+ for p in args.filter:
+ if p in used_config:
+ bypass = False
+ break
+ if bypass:
+ continue
+ exp_dir = osp.join(models_root, used_config)
+ # check whether the exps is finished
+ final_iter = get_final_iter(used_config)
+ final_model = 'iter_{}.pth'.format(final_iter)
+ model_path = osp.join(exp_dir, final_model)
+
+ # skip if the model is still training
+ if not osp.exists(model_path):
+ print(f'{used_config} train not finished yet')
+ continue
+
+ # get logs
+ log_json_paths = glob.glob(osp.join(exp_dir, '*.log.json'))
+ log_json_path = log_json_paths[0]
+ model_performance = None
+ for idx, _log_json_path in enumerate(log_json_paths):
+ model_performance = get_final_results(_log_json_path, final_iter)
+ if model_performance is not None:
+ log_json_path = _log_json_path
+ break
+
+ if model_performance is None:
+ print(f'{used_config} model_performance is None')
+ continue
+
+ model_time = osp.split(log_json_path)[-1].split('.')[0]
+ model_infos.append(
+ dict(
+ config=used_config,
+ raw_config=raw_config,
+ results=model_performance,
+ iters=final_iter,
+ model_time=model_time,
+ log_json_path=osp.split(log_json_path)[-1]))
+
+ # publish model for each checkpoint
+ publish_model_infos = []
+ for model in model_infos:
+ model_publish_dir = osp.join(models_out,
+ model['raw_config'].rstrip('.py'))
+ model_name = osp.split(model['config'])[-1].split('.')[0]
+
+ publish_model_path = osp.join(model_publish_dir,
+ model_name + '_' + model['model_time'])
+ trained_model_path = osp.join(models_root, model['config'],
+ 'iter_{}.pth'.format(model['iters']))
+ if osp.exists(model_publish_dir):
+ for file in os.listdir(model_publish_dir):
+ if file.endswith('.pth'):
+ print(f'model {file} found')
+ model['model_path'] = osp.abspath(
+ osp.join(model_publish_dir, file))
+ break
+ if 'model_path' not in model:
+ print(f'dir {model_publish_dir} exists, no model found')
+
+ else:
+ mmcv.mkdir_or_exist(model_publish_dir)
+
+ # convert model
+ final_model_path = process_checkpoint(trained_model_path,
+ publish_model_path)
+ model['model_path'] = final_model_path
+
+ new_json_path = f'{model_name}-{model["log_json_path"]}'
+ # copy log
+ shutil.copy(
+ osp.join(models_root, model['config'], model['log_json_path']),
+ osp.join(model_publish_dir, new_json_path))
+ if args.all:
+ new_txt_path = new_json_path.rstrip('.json')
+ shutil.copy(
+ osp.join(models_root, model['config'],
+ model['log_json_path'].rstrip('.json')),
+ osp.join(model_publish_dir, new_txt_path))
+
+ if args.all:
+ # copy config to guarantee reproducibility
+ raw_config = osp.join(config_name, model['raw_config'])
+ mmcv.Config.fromfile(raw_config).dump(
+ osp.join(model_publish_dir, osp.basename(raw_config)))
+
+ publish_model_infos.append(model)
+
+ models = dict(models=publish_model_infos)
+ mmcv.dump(models, osp.join(models_out, args.out_file))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/.dev/upload_modelzoo.py b/FoodSeg103/.dev/upload_modelzoo.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd78bc41e69c3b603e7bbb4ee8a6c420ad87e26b
--- /dev/null
+++ b/FoodSeg103/.dev/upload_modelzoo.py
@@ -0,0 +1,44 @@
+import argparse
+import os
+import os.path as osp
+
+import oss2
+
+ACCESS_KEY_ID = os.getenv('OSS_ACCESS_KEY_ID', None)
+ACCESS_KEY_SECRET = os.getenv('OSS_ACCESS_KEY_SECRET', None)
+BUCKET_NAME = 'openmmlab'
+ENDPOINT = 'https://oss-accelerate.aliyuncs.com'
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Upload models to OSS')
+ parser.add_argument('model_zoo', type=str, help='model_zoo input')
+ parser.add_argument(
+ '--dst-folder',
+ type=str,
+ default='mmsegmentation/v0.5',
+ help='destination folder')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ model_zoo = args.model_zoo
+ dst_folder = args.dst_folder
+ bucket = oss2.Bucket(
+ oss2.Auth(ACCESS_KEY_ID, ACCESS_KEY_SECRET), ENDPOINT, BUCKET_NAME)
+
+ for root, dirs, files in os.walk(model_zoo):
+ for file in files:
+ file_path = osp.relpath(osp.join(root, file), model_zoo)
+ print(f'Uploading {file_path}')
+
+ oss2.resumable_upload(bucket, osp.join(dst_folder, file_path),
+ osp.join(model_zoo, file_path))
+ bucket.put_object_acl(
+ osp.join(dst_folder, file_path), oss2.OBJECT_ACL_PUBLIC_READ)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/.gitignore b/FoodSeg103/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..9b7cffbc88b17eb033ca403bed5c6254a539e73c
--- /dev/null
+++ b/FoodSeg103/.gitignore
@@ -0,0 +1,117 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+
+data
+.vscode
+.idea
+
+# custom
+*.pkl
+*.pkl.json
+*.log.json
+work_dirs/
+
+# Pytorch
+*.pth
diff --git a/FoodSeg103/.pre-commit-config.yaml b/FoodSeg103/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d3395dc284edbae1fea7006ee7c8967ea62a3b45
--- /dev/null
+++ b/FoodSeg103/.pre-commit-config.yaml
@@ -0,0 +1,40 @@
+repos:
+ - repo: https://gitlab.com/pycqa/flake8.git
+ rev: 3.8.3
+ hooks:
+ - id: flake8
+ - repo: https://github.com/asottile/seed-isort-config
+ rev: v2.2.0
+ hooks:
+ - id: seed-isort-config
+ - repo: https://github.com/timothycrosley/isort
+ rev: 4.3.21
+ hooks:
+ - id: isort
+ - repo: https://github.com/pre-commit/mirrors-yapf
+ rev: v0.30.0
+ hooks:
+ - id: yapf
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v3.1.0
+ hooks:
+ - id: trailing-whitespace
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: requirements-txt-fixer
+ - id: double-quote-string-fixer
+ - id: check-merge-conflict
+ - id: fix-encoding-pragma
+ args: ["--remove"]
+ - id: mixed-line-ending
+ args: ["--fix=lf"]
+ - repo: https://github.com/jumanjihouse/pre-commit-hooks
+ rev: 2.1.4
+ hooks:
+ - id: markdownlint
+ args: ["-r", "~MD002,~MD013,~MD029,~MD033,~MD034,~MD036"]
+ - repo: https://github.com/myint/docformatter
+ rev: v1.3.1
+ hooks:
+ - id: docformatter
+ args: ["--in-place", "--wrap-descriptions", "79"]
diff --git a/FoodSeg103/.readthedocs.yml b/FoodSeg103/.readthedocs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..73ea4cb7e95530cd18ed94895ca38edd531f0d94
--- /dev/null
+++ b/FoodSeg103/.readthedocs.yml
@@ -0,0 +1,7 @@
+version: 2
+
+python:
+ version: 3.7
+ install:
+ - requirements: requirements/docs.txt
+ - requirements: requirements/readthedocs.txt
diff --git a/FoodSeg103/.tags b/FoodSeg103/.tags
new file mode 100644
index 0000000000000000000000000000000000000000..bde6d2877474357e0a809846f12c0be9c14f4c7d
--- /dev/null
+++ b/FoodSeg103/.tags
@@ -0,0 +1,5568 @@
+!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
+!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
+!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
+!_TAG_PROGRAM_NAME Exuberant Ctags //
+!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
+!_TAG_PROGRAM_VERSION 5.8 //
+ABCMeta .\mmseg\core\seg\sampler\base_pixel_sampler.py /^from abc import ABCMeta, abstractmethod$/;" i
+ABCMeta .\mmseg\models\decode_heads\cascade_decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+ABCMeta .\mmseg\models\decode_heads\decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+ABCMeta .\mmseg\models\segmentors\base.py /^from abc import ABCMeta, abstractmethod$/;" i
+ACCESS_KEY_ID .\.dev\upload_modelzoo.py /^ACCESS_KEY_ID = os.getenv('OSS_ACCESS_KEY_ID', None)$/;" v
+ACCESS_KEY_SECRET .\.dev\upload_modelzoo.py /^ACCESS_KEY_SECRET = os.getenv('OSS_ACCESS_KEY_SECRET', None)$/;" v
+ACM .\mmseg\models\decode_heads\apc_head.py /^class ACM(nn.Module):$/;" c
+ADE20KDataset .\mmseg\datasets\__init__.py /^from .ade import ADE20KDataset$/;" i
+ADE20KDataset .\mmseg\datasets\ade.py /^class ADE20KDataset(CustomDataset):$/;" c
+ADE20KDataset .\tests\test_data\test_dataset.py /^from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,$/;" i
+AFNB .\mmseg\models\decode_heads\ann_head.py /^class AFNB(nn.Module):$/;" c
+ANNHead .\mmseg\models\decode_heads\__init__.py /^from .ann_head import ANNHead$/;" i
+ANNHead .\mmseg\models\decode_heads\ann_head.py /^class ANNHead(BaseDecodeHead):$/;" c
+ANNHead .\tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+APCHead .\mmseg\models\decode_heads\__init__.py /^from .apc_head import APCHead$/;" i
+APCHead .\mmseg\models\decode_heads\apc_head.py /^class APCHead(BaseDecodeHead):$/;" c
+APCHead .\tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+APNB .\mmseg\models\decode_heads\ann_head.py /^class APNB(nn.Module):$/;" c
+ASPPHead .\mmseg\models\decode_heads\__init__.py /^from .aspp_head import ASPPHead$/;" i
+ASPPHead .\mmseg\models\decode_heads\aspp_head.py /^class ASPPHead(BaseDecodeHead):$/;" c
+ASPPHead .\mmseg\models\decode_heads\sep_aspp_head.py /^from .aspp_head import ASPPHead, ASPPModule$/;" i
+ASPPHead .\tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+ASPPModule .\mmseg\models\decode_heads\aspp_head.py /^class ASPPModule(nn.ModuleList):$/;" c
+ASPPModule .\mmseg\models\decode_heads\sep_aspp_head.py /^from .aspp_head import ASPPHead, ASPPModule$/;" i
+AUG_LEN .\tools\convert_datasets\voc_aug.py /^AUG_LEN = 10582$/;" v
+Accuracy .\mmseg\models\losses\__init__.py /^from .accuracy import Accuracy, accuracy$/;" i
+Accuracy .\mmseg\models\losses\accuracy.py /^class Accuracy(nn.Module):$/;" c
+Accuracy .\tests\test_models\test_losses.py /^from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss$/;" i
+AdjustGamma .\mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+AdjustGamma .\mmseg\datasets\pipelines\transforms.py /^class AdjustGamma(object):$/;" c
+ArgumentParser .\demo\image_demo.py /^from argparse import ArgumentParser$/;" i
+AsciiTable .\mmseg\datasets\custom.py /^from terminaltables import AsciiTable$/;" i
+Attention .\mmseg\models\backbones\pvt.py /^class Attention(nn.Module):$/;" c
+Attention .\mmseg\models\backbones\pvt_dia.py /^class Attention(nn.Module):$/;" c
+Attention .\mmseg\models\backbones\vit.py /^class Attention(nn.Module):$/;" c
+Attention .\mmseg\models\backbones\vit_mla.py /^class Attention(nn.Module):$/;" c
+AvgPool2d .\tests\test_models\test_backbone.py /^from torch.nn.modules import AvgPool2d, GroupNorm$/;" i
+BACKBONES .\mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+BACKBONES .\mmseg\models\backbones\cgnet.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\fast_scnn.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\hrnet.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\mobilenet_v2.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\mobilenet_v3.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\pvt.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\pvt_dia.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\resnest.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\resnet.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\resnext.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\unet.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\vit.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\backbones\vit_mla.py /^from ..builder import BACKBONES$/;" i
+BACKBONES .\mmseg\models\builder.py /^BACKBONES = Registry('backbone')$/;" v
+BACKBONES .\tests\test_models\test_segmentor.py /^from mmseg.models import BACKBONES, HEADS, build_segmentor$/;" i
+BUCKET_NAME .\.dev\upload_modelzoo.py /^BUCKET_NAME = 'openmmlab'$/;" v
+BUILDDIR .\docs\make.bat /^set BUILDDIR=_build$/;" v
+BaseCascadeDecodeHead .\mmseg\models\decode_heads\cascade_decode_head.py /^class BaseCascadeDecodeHead(BaseDecodeHead, metaclass=ABCMeta):$/;" c
+BaseCascadeDecodeHead .\mmseg\models\decode_heads\ocr_head.py /^from .cascade_decode_head import BaseCascadeDecodeHead$/;" i
+BaseCascadeDecodeHead .\mmseg\models\decode_heads\point_head.py /^from .cascade_decode_head import BaseCascadeDecodeHead$/;" i
+BaseCascadeDecodeHead .\tests\test_models\test_segmentor.py /^from mmseg.models.decode_heads.cascade_decode_head import BaseCascadeDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\ann_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\apc_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\aspp_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\cascade_decode_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\da_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\decode_head.py /^class BaseDecodeHead(nn.Module, metaclass=ABCMeta):$/;" c
+BaseDecodeHead .\mmseg\models\decode_heads\dm_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\ema_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\enc_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\fcn_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\fpn_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\lraspp_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\psa_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\psp_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\uper_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\vit_mla_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\mmseg\models\decode_heads\vit_up_head.py /^from .decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\tests\test_models\test_heads.py /^from mmseg.models.decode_heads.decode_head import BaseDecodeHead$/;" i
+BaseDecodeHead .\tests\test_models\test_segmentor.py /^from mmseg.models.decode_heads.decode_head import BaseDecodeHead$/;" i
+BasePixelSampler .\mmseg\core\seg\__init__.py /^from .sampler import BasePixelSampler, OHEMPixelSampler$/;" i
+BasePixelSampler .\mmseg\core\seg\sampler\__init__.py /^from .base_pixel_sampler import BasePixelSampler$/;" i
+BasePixelSampler .\mmseg\core\seg\sampler\base_pixel_sampler.py /^class BasePixelSampler(metaclass=ABCMeta):$/;" c
+BasePixelSampler .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^from .base_pixel_sampler import BasePixelSampler$/;" i
+BaseSegmentor .\mmseg\models\segmentors\base.py /^class BaseSegmentor(nn.Module):$/;" c
+BaseSegmentor .\mmseg\models\segmentors\encoder_decoder.py /^from .base import BaseSegmentor$/;" i
+BasicBlock .\mmseg\models\backbones\hrnet.py /^from .resnet import BasicBlock, Bottleneck$/;" i
+BasicBlock .\mmseg\models\backbones\resnet.py /^class BasicBlock(nn.Module):$/;" c
+BasicBlock .\tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnet import BasicBlock, Bottleneck$/;" i
+BasicConvBlock .\mmseg\models\backbones\unet.py /^class BasicConvBlock(nn.Module):$/;" c
+BasicConvBlock .\tests\test_models\test_unet.py /^from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule,$/;" i
+Block .\mmseg\models\backbones\pvt.py /^class Block(nn.Module):$/;" c
+Block .\mmseg\models\backbones\pvt_dia.py /^class Block(nn.Module):$/;" c
+Block .\mmseg\models\backbones\vit.py /^class Block(nn.Module):$/;" c
+Block .\mmseg\models\backbones\vit_mla.py /^class Block(nn.Module):$/;" c
+Block .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from ..backbones.vit import Block$/;" i
+Block .\mmseg\models\decode_heads\vit_mla_head.py /^from ..backbones.vit import Block$/;" i
+Block .\mmseg\models\decode_heads\vit_up_head.py /^from ..backbones.vit import Block$/;" i
+Bottleneck .\mmseg\models\backbones\hrnet.py /^from .resnet import BasicBlock, Bottleneck$/;" i
+Bottleneck .\mmseg\models\backbones\resnest.py /^class Bottleneck(_Bottleneck):$/;" c
+Bottleneck .\mmseg\models\backbones\resnet.py /^class Bottleneck(nn.Module):$/;" c
+Bottleneck .\mmseg\models\backbones\resnext.py /^class Bottleneck(_Bottleneck):$/;" c
+Bottleneck .\tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnet import BasicBlock, Bottleneck$/;" i
+BottleneckS .\tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnest import Bottleneck as BottleneckS$/;" i
+BottleneckX .\tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnext import Bottleneck as BottleneckX$/;" i
+CAM .\mmseg\models\decode_heads\da_head.py /^class CAM(nn.Module):$/;" c
+CCHead .\mmseg\models\decode_heads\__init__.py /^from .cc_head import CCHead$/;" i
+CCHead .\mmseg\models\decode_heads\cc_head.py /^class CCHead(FCNHead):$/;" c
+CCHead .\tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+CGNet .\mmseg\models\backbones\__init__.py /^from .cgnet import CGNet$/;" i
+CGNet .\mmseg\models\backbones\cgnet.py /^class CGNet(nn.Module):$/;" c
+CGNet .\tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+CHASE_DB1_LEN .\tools\convert_datasets\chase_db1.py /^CHASE_DB1_LEN = 28 * 3$/;" v
+CLAHE .\mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+CLAHE .\mmseg\datasets\pipelines\transforms.py /^class CLAHE(object):$/;" c
+CLASSES .\mmseg\datasets\ade.py /^ CLASSES = ($/;" v class:ADE20KDataset
+CLASSES .\mmseg\datasets\chase_db1.py /^ CLASSES = ('background', 'vessel')$/;" v class:ChaseDB1Dataset
+CLASSES .\mmseg\datasets\cityscapes.py /^ CLASSES = ('road', 'sidewalk', 'building', 'wall', 'fence', 'pole',$/;" v class:CityscapesDataset
+CLASSES .\mmseg\datasets\custom.py /^ CLASSES = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,$/;" v class:CustomDataset
+CLASSES .\mmseg\datasets\drive.py /^ CLASSES = ('background', 'vessel')$/;" v class:DRIVEDataset
+CLASSES .\mmseg\datasets\hrf.py /^ CLASSES = ('background', 'vessel')$/;" v class:HRFDataset
+CLASSES .\mmseg\datasets\pascal_context.py /^ CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle',$/;" v class:PascalContextDataset
+CLASSES .\mmseg\datasets\stare.py /^ CLASSES = ('background', 'vessel')$/;" v class:STAREDataset
+CLASSES .\mmseg\datasets\voc.py /^ CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle',$/;" v class:PascalVOCDataset
+CSEval .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+CSLabels .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+CSLabels .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+CascadeEncoderDecoder .\mmseg\models\segmentors\__init__.py /^from .cascade_encoder_decoder import CascadeEncoderDecoder$/;" i
+CascadeEncoderDecoder .\mmseg\models\segmentors\cascade_encoder_decoder.py /^class CascadeEncoderDecoder(EncoderDecoder):$/;" c
+ChaseDB1Dataset .\mmseg\datasets\__init__.py /^from .chase_db1 import ChaseDB1Dataset$/;" i
+ChaseDB1Dataset .\mmseg\datasets\chase_db1.py /^class ChaseDB1Dataset(CustomDataset):$/;" c
+CityscapesDataset .\mmseg\datasets\__init__.py /^from .cityscapes import CityscapesDataset$/;" i
+CityscapesDataset .\mmseg\datasets\cityscapes.py /^class CityscapesDataset(CustomDataset):$/;" c
+CityscapesDataset .\tests\test_data\test_dataset.py /^from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,$/;" i
+Collect .\mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+Collect .\mmseg\datasets\pipelines\formating.py /^class Collect(object):$/;" c
+Compose .\mmseg\apis\inference.py /^from mmseg.datasets.pipelines import Compose$/;" i
+Compose .\mmseg\datasets\custom.py /^from .pipelines import Compose$/;" i
+Compose .\mmseg\datasets\pipelines\__init__.py /^from .compose import Compose$/;" i
+Compose .\mmseg\datasets\pipelines\compose.py /^class Compose(object):$/;" c
+Compose .\mmseg\datasets\pipelines\test_time_aug.py /^from .compose import Compose$/;" i
+Compose .\tests\test_config.py /^ from mmseg.datasets.pipelines import Compose$/;" i
+ConcatDataset .\mmseg\datasets\__init__.py /^from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+ConcatDataset .\mmseg\datasets\builder.py /^ from .dataset_wrappers import ConcatDataset$/;" i
+ConcatDataset .\mmseg\datasets\builder.py /^ from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+ConcatDataset .\mmseg\datasets\dataset_wrappers.py /^class ConcatDataset(_ConcatDataset):$/;" c
+ConcatDataset .\tests\test_data\test_dataset_builder.py /^from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,$/;" i
+Config .\tests\test_config.py /^ from mmcv import Config$/;" i
+Config .\tests\test_config.py /^from mmcv import Config$/;" i
+Config .\tests\test_models\test_forward.py /^ from mmcv import Config$/;" i
+Config .\tools\benchmark.py /^from mmcv import Config$/;" i
+Config .\tools\get_flops.py /^from mmcv import Config$/;" i
+Config .\tools\print_config.py /^from mmcv import Config, DictAction$/;" i
+Config .\tools\train.py /^from mmcv.utils import Config, DictAction, get_git_hash$/;" i
+ConfigDict .\tests\test_models\test_heads.py /^from mmcv.utils import ConfigDict$/;" i
+ConfigDict .\tests\test_models\test_segmentor.py /^from mmcv import ConfigDict$/;" i
+ContextBlock .\mmseg\models\decode_heads\gc_head.py /^from mmcv.cnn import ContextBlock$/;" i
+ContextGuidedBlock .\mmseg\models\backbones\cgnet.py /^class ContextGuidedBlock(nn.Module):$/;" c
+ContextGuidedBlock .\tests\test_models\test_backbone.py /^from mmseg.models.backbones.cgnet import (ContextGuidedBlock,$/;" i
+Conv2dAdaptivePadding .\mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn.bricks import Conv2dAdaptivePadding$/;" i
+ConvModule .\mmseg\models\backbones\cgnet.py /^from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer,$/;" i
+ConvModule .\mmseg\models\backbones\fast_scnn.py /^from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init,$/;" i
+ConvModule .\mmseg\models\backbones\mobilenet_v2.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+ConvModule .\mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+ConvModule .\mmseg\models\backbones\unet.py /^from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,$/;" i
+ConvModule .\mmseg\models\decode_heads\ann_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\apc_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\aspp_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\da_head.py /^from mmcv.cnn import ConvModule, Scale$/;" i
+ConvModule .\mmseg\models\decode_heads\dm_head.py /^from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer$/;" i
+ConvModule .\mmseg\models\decode_heads\ema_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\enc_head.py /^from mmcv.cnn import ConvModule, build_norm_layer$/;" i
+ConvModule .\mmseg\models\decode_heads\fcn_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\fpn_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\lraspp_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\ocr_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\point_head.py /^from mmcv.cnn import ConvModule, normal_init$/;" i
+ConvModule .\mmseg\models\decode_heads\psa_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\psp_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\sep_aspp_head.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+ConvModule .\mmseg\models\decode_heads\uper_head.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\necks\fpn.py /^from mmcv.cnn import ConvModule, xavier_init$/;" i
+ConvModule .\mmseg\models\utils\inverted_residual.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\utils\se_layer.py /^from mmcv.cnn import ConvModule$/;" i
+ConvModule .\mmseg\models\utils\self_attention_block.py /^from mmcv.cnn import ConvModule, constant_init$/;" i
+ConvModule .\mmseg\models\utils\up_conv_block.py /^from mmcv.cnn import ConvModule, build_upsample_layer$/;" i
+ConvModule .\tests\test_models\test_heads.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+ConvModule .\tests\test_models\test_unet.py /^from mmcv.cnn import ConvModule$/;" i
+Conv_MLA .\mmseg\models\backbones\vit_mla.py /^class Conv_MLA(nn.Module):$/;" c
+CrissCrossAttention .\mmseg\models\decode_heads\cc_head.py /^ CrissCrossAttention = None$/;" v
+CrissCrossAttention .\mmseg\models\decode_heads\cc_head.py /^ from mmcv.ops import CrissCrossAttention$/;" i
+CrossEntropyLoss .\mmseg\models\losses\__init__.py /^from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy,$/;" i
+CrossEntropyLoss .\mmseg\models\losses\cross_entropy_loss.py /^class CrossEntropyLoss(nn.Module):$/;" c
+CustomDataset .\mmseg\datasets\__init__.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\ade.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\chase_db1.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\cityscapes.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\custom.py /^class CustomDataset(Dataset):$/;" c
+CustomDataset .\mmseg\datasets\drive.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\hrf.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\pascal_context.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\stare.py /^from .custom import CustomDataset$/;" i
+CustomDataset .\mmseg\datasets\voc.py /^from .custom import CustomDataset$/;" i
+DAHead .\mmseg\models\decode_heads\__init__.py /^from .da_head import DAHead$/;" i
+DAHead .\mmseg\models\decode_heads\da_head.py /^class DAHead(BaseDecodeHead):$/;" c
+DATASETS .\mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+DATASETS .\mmseg\datasets\ade.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\builder.py /^DATASETS = Registry('dataset')$/;" v
+DATASETS .\mmseg\datasets\chase_db1.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\cityscapes.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\custom.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\dataset_wrappers.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\drive.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\hrf.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\pascal_context.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\stare.py /^from .builder import DATASETS$/;" i
+DATASETS .\mmseg\datasets\voc.py /^from .builder import DATASETS$/;" i
+DATASETS .\tests\test_data\test_dataset.py /^from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,$/;" i
+DATASETS .\tests\test_data\test_dataset_builder.py /^from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,$/;" i
+DC .\mmseg\datasets\pipelines\formating.py /^from mmcv.parallel import DataContainer as DC$/;" i
+DCM .\mmseg\models\decode_heads\dm_head.py /^class DCM(nn.Module):$/;" c
+DMHead .\mmseg\models\decode_heads\__init__.py /^from .dm_head import DMHead$/;" i
+DMHead .\mmseg\models\decode_heads\dm_head.py /^class DMHead(BaseDecodeHead):$/;" c
+DNLHead .\mmseg\models\decode_heads\__init__.py /^from .dnl_head import DNLHead$/;" i
+DNLHead .\mmseg\models\decode_heads\dnl_head.py /^class DNLHead(FCNHead):$/;" c
+DRIVEDataset .\mmseg\datasets\__init__.py /^from .drive import DRIVEDataset$/;" i
+DRIVEDataset .\mmseg\datasets\drive.py /^class DRIVEDataset(CustomDataset):$/;" c
+DataLoader .\mmseg\core\evaluation\eval_hooks.py /^from torch.utils.data import DataLoader$/;" i
+DataLoader .\mmseg\datasets\builder.py /^from mmcv.utils.parrots_wrapper import DataLoader, PoolDataLoader$/;" i
+DataLoader .\tests\test_eval_hook.py /^from torch.utils.data import DataLoader, Dataset$/;" i
+Dataset .\mmseg\datasets\custom.py /^from torch.utils.data import Dataset$/;" i
+Dataset .\tests\test_eval_hook.py /^from torch.utils.data import DataLoader, Dataset$/;" i
+DeconvModule .\mmseg\models\backbones\unet.py /^class DeconvModule(nn.Module):$/;" c
+DeconvModule .\tests\test_models\test_unet.py /^from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule,$/;" i
+DefaultFormatBundle .\mmseg\datasets\pipelines\formating.py /^class DefaultFormatBundle(object):$/;" c
+DeformConv2dPack .\tests\test_models\test_backbone.py /^from mmcv.ops import DeformConv2dPack$/;" i
+DepthwiseSeparableASPPHead .\mmseg\models\decode_heads\__init__.py /^from .sep_aspp_head import DepthwiseSeparableASPPHead$/;" i
+DepthwiseSeparableASPPHead .\mmseg\models\decode_heads\sep_aspp_head.py /^class DepthwiseSeparableASPPHead(ASPPHead):$/;" c
+DepthwiseSeparableASPPModule .\mmseg\models\decode_heads\sep_aspp_head.py /^class DepthwiseSeparableASPPModule(ASPPModule):$/;" c
+DepthwiseSeparableConvModule .\mmseg\models\backbones\fast_scnn.py /^from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init,$/;" i
+DepthwiseSeparableConvModule .\mmseg\models\decode_heads\sep_aspp_head.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+DepthwiseSeparableConvModule .\mmseg\models\decode_heads\sep_fcn_head.py /^from mmcv.cnn import DepthwiseSeparableConvModule$/;" i
+DepthwiseSeparableConvModule .\tests\test_models\test_heads.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+DepthwiseSeparableFCNHead .\mmseg\models\decode_heads\__init__.py /^from .sep_fcn_head import DepthwiseSeparableFCNHead$/;" i
+DepthwiseSeparableFCNHead .\mmseg\models\decode_heads\sep_fcn_head.py /^class DepthwiseSeparableFCNHead(FCNHead):$/;" c
+Detail .\tools\convert_datasets\pascal_context.py /^from detail import Detail$/;" i
+DictAction .\tools\print_config.py /^from mmcv import Config, DictAction$/;" i
+DictAction .\tools\test.py /^from mmcv.utils import DictAction$/;" i
+DictAction .\tools\train.py /^from mmcv.utils import Config, DictAction, get_git_hash$/;" i
+DisentangledNonLocal2d .\mmseg\models\decode_heads\dnl_head.py /^class DisentangledNonLocal2d(NonLocal2d):$/;" c
+DistEvalHook .\mmseg\apis\train.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+DistEvalHook .\mmseg\core\evaluation\__init__.py /^from .eval_hooks import DistEvalHook, EvalHook$/;" i
+DistEvalHook .\mmseg\core\evaluation\eval_hooks.py /^class DistEvalHook(EvalHook):$/;" c
+DistEvalHook .\tests\test_eval_hook.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+DistributedSampler .\mmseg\datasets\builder.py /^from torch.utils.data import DistributedSampler$/;" i
+DistributedSampler .\tests\test_data\test_dataset_builder.py /^from torch.utils.data import (DistributedSampler, RandomSampler,$/;" i
+DropBlock2d .\mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+DropBlock2d .\mmseg\models\backbones\layers\drop.py /^class DropBlock2d(nn.Module):$/;" c
+DropBlock2d .\mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+DropBlock2d .\mmseg\models\decode_heads\layers\drop.py /^class DropBlock2d(nn.Module):$/;" c
+DropPath .\mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+DropPath .\mmseg\models\backbones\layers\drop.py /^class DropPath(nn.Module):$/;" c
+DropPath .\mmseg\models\backbones\pvt.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+DropPath .\mmseg\models\backbones\pvt_dia.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+DropPath .\mmseg\models\backbones\vit.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+DropPath .\mmseg\models\backbones\vit_mla.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+DropPath .\mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+DropPath .\mmseg\models\decode_heads\layers\drop.py /^class DropPath(nn.Module):$/;" c
+DropPath .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+DropPath .\mmseg\models\decode_heads\vit_mla_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+DropPath .\mmseg\models\decode_heads\vit_up_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+EMAHead .\mmseg\models\decode_heads\__init__.py /^from .ema_head import EMAHead$/;" i
+EMAHead .\mmseg\models\decode_heads\ema_head.py /^class EMAHead(BaseDecodeHead):$/;" c
+EMAModule .\mmseg\models\decode_heads\ema_head.py /^class EMAModule(nn.Module):$/;" c
+ENDPOINT .\.dev\upload_modelzoo.py /^ENDPOINT = 'https:\/\/oss-accelerate.aliyuncs.com'$/;" v
+EncHead .\mmseg\models\decode_heads\__init__.py /^from .enc_head import EncHead$/;" i
+EncHead .\mmseg\models\decode_heads\enc_head.py /^class EncHead(BaseDecodeHead):$/;" c
+EncModule .\mmseg\models\decode_heads\enc_head.py /^class EncModule(nn.Module):$/;" c
+EncoderDecoder .\mmseg\models\segmentors\__init__.py /^from .encoder_decoder import EncoderDecoder$/;" i
+EncoderDecoder .\mmseg\models\segmentors\cascade_encoder_decoder.py /^from .encoder_decoder import EncoderDecoder$/;" i
+EncoderDecoder .\mmseg\models\segmentors\encoder_decoder.py /^class EncoderDecoder(BaseSegmentor):$/;" c
+Encoding .\mmseg\models\decode_heads\enc_head.py /^from mmseg.ops import Encoding, resize$/;" i
+Encoding .\mmseg\ops\__init__.py /^from .encoding import Encoding$/;" i
+Encoding .\mmseg\ops\encoding.py /^class Encoding(nn.Module):$/;" c
+EvalHook .\mmseg\apis\train.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+EvalHook .\mmseg\core\evaluation\__init__.py /^from .eval_hooks import DistEvalHook, EvalHook$/;" i
+EvalHook .\mmseg\core\evaluation\eval_hooks.py /^class EvalHook(Hook):$/;" c
+EvalHook .\tests\test_eval_hook.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+ExampleBackbone .\tests\test_models\test_segmentor.py /^class ExampleBackbone(nn.Module):$/;" c
+ExampleCascadeDecodeHead .\tests\test_models\test_segmentor.py /^class ExampleCascadeDecodeHead(BaseCascadeDecodeHead):$/;" c
+ExampleDataset .\tests\test_eval_hook.py /^class ExampleDataset(Dataset):$/;" c
+ExampleDecodeHead .\tests\test_models\test_segmentor.py /^class ExampleDecodeHead(BaseDecodeHead):$/;" c
+ExampleModel .\tests\test_eval_hook.py /^class ExampleModel(nn.Module):$/;" c
+F .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\helpers.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\layers\drop.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\pvt.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\pvt_dia.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\resnest.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\vit.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\backbones\vit_mla.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\apc_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\da_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\dm_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\ema_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\enc_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\helpers.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\layers\drop.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\ocr_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\psa_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\decode_heads\vit_up_head.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\losses\cross_entropy_loss.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\losses\lovasz_loss.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\losses\utils.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\necks\fpn.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\segmentors\encoder_decoder.py /^import torch.nn.functional as F$/;" i
+F .\mmseg\models\utils\self_attention_block.py /^from torch.nn import functional as F$/;" i
+F .\mmseg\ops\encoding.py /^from torch.nn import functional as F$/;" i
+F .\mmseg\ops\wrappers.py /^import torch.nn.functional as F$/;" i
+F401 .\mmseg\core\__init__.py /^from .evaluation import * # noqa: F401, F403$/;" i
+F401 .\mmseg\core\__init__.py /^from .seg import * # noqa: F401, F403$/;" i
+F401 .\mmseg\core\__init__.py /^from .utils import * # noqa: F401, F403$/;" i
+F401 .\mmseg\models\__init__.py /^from .backbones import * # noqa: F401,F403$/;" i
+F401 .\mmseg\models\__init__.py /^from .decode_heads import * # noqa: F401,F403$/;" i
+F401 .\mmseg\models\__init__.py /^from .losses import * # noqa: F401,F403$/;" i
+F401 .\mmseg\models\__init__.py /^from .necks import * # noqa: F401,F403$/;" i
+F401 .\mmseg\models\__init__.py /^from .segmentors import * # noqa: F401,F403$/;" i
+F401 .\mmseg\models\backbones\helpers.py /^from urllib.parse import urlparse # noqa: F401$/;" i
+F403 .\mmseg\core\__init__.py /^from .evaluation import * # noqa: F401, F403$/;" i
+F403 .\mmseg\core\__init__.py /^from .seg import * # noqa: F401, F403$/;" i
+F403 .\mmseg\core\__init__.py /^from .utils import * # noqa: F401, F403$/;" i
+F403 .\mmseg\models\__init__.py /^from .backbones import * # noqa: F401,F403$/;" i
+F403 .\mmseg\models\__init__.py /^from .decode_heads import * # noqa: F401,F403$/;" i
+F403 .\mmseg\models\__init__.py /^from .losses import * # noqa: F401,F403$/;" i
+F403 .\mmseg\models\__init__.py /^from .necks import * # noqa: F401,F403$/;" i
+F403 .\mmseg\models\__init__.py /^from .segmentors import * # noqa: F401,F403$/;" i
+FCNHead .\mmseg\models\decode_heads\__init__.py /^from .fcn_head import FCNHead$/;" i
+FCNHead .\mmseg\models\decode_heads\cc_head.py /^from .fcn_head import FCNHead$/;" i
+FCNHead .\mmseg\models\decode_heads\dnl_head.py /^from .fcn_head import FCNHead$/;" i
+FCNHead .\mmseg\models\decode_heads\fcn_head.py /^class FCNHead(BaseDecodeHead):$/;" c
+FCNHead .\mmseg\models\decode_heads\gc_head.py /^from .fcn_head import FCNHead$/;" i
+FCNHead .\mmseg\models\decode_heads\nl_head.py /^from .fcn_head import FCNHead$/;" i
+FCNHead .\mmseg\models\decode_heads\sep_fcn_head.py /^from .fcn_head import FCNHead$/;" i
+FCNHead .\tests\test_sampler.py /^from mmseg.models.decode_heads import FCNHead$/;" i
+FPN .\mmseg\models\necks\__init__.py /^from .fpn import FPN$/;" i
+FPN .\mmseg\models\necks\fpn.py /^class FPN(nn.Module):$/;" c
+FPN .\tests\test_models\test_necks.py /^from mmseg.models import FPN$/;" i
+FPNHead .\mmseg\models\decode_heads\__init__.py /^from .fpn_head import FPNHead$/;" i
+FPNHead .\mmseg\models\decode_heads\fpn_head.py /^class FPNHead(BaseDecodeHead):$/;" c
+FastSCNN .\mmseg\models\backbones\__init__.py /^from .fast_scnn import FastSCNN$/;" i
+FastSCNN .\mmseg\models\backbones\fast_scnn.py /^class FastSCNN(nn.Module):$/;" c
+FastSCNN .\tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+FeatureFusionModule .\mmseg\models\backbones\fast_scnn.py /^class FeatureFusionModule(nn.Module):$/;" c
+GCHead .\mmseg\models\decode_heads\__init__.py /^from .gc_head import GCHead$/;" i
+GCHead .\mmseg\models\decode_heads\gc_head.py /^class GCHead(FCNHead):$/;" c
+GlobalContextExtractor .\mmseg\models\backbones\cgnet.py /^class GlobalContextExtractor(nn.Module):$/;" c
+GlobalFeatureExtractor .\mmseg\models\backbones\fast_scnn.py /^class GlobalFeatureExtractor(nn.Module):$/;" c
+GroupNorm .\tests\test_models\test_backbone.py /^from torch.nn.modules import AvgPool2d, GroupNorm$/;" i
+HASH_REGEX .\mmseg\models\backbones\helpers.py /^HASH_REGEX = re.compile(r'-([a-f0-9]*)\\.')$/;" v
+HEADS .\mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+HEADS .\mmseg\models\builder.py /^HEADS = Registry('head')$/;" v
+HEADS .\mmseg\models\decode_heads\ann_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\apc_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\aspp_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\cc_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\da_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\dm_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\dnl_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\ema_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\enc_head.py /^from ..builder import HEADS, build_loss$/;" i
+HEADS .\mmseg\models\decode_heads\fcn_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\fpn_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\gc_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\lraspp_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\nl_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\ocr_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\point_head.py /^from mmseg.models.builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\psa_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\psp_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\sep_aspp_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\sep_fcn_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\uper_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\vit_mla_head.py /^from ..builder import HEADS$/;" i
+HEADS .\mmseg\models\decode_heads\vit_up_head.py /^from ..builder import HEADS$/;" i
+HEADS .\tests\test_models\test_segmentor.py /^from mmseg.models import BACKBONES, HEADS, build_segmentor$/;" i
+HRFDataset .\mmseg\datasets\__init__.py /^from .hrf import HRFDataset$/;" i
+HRFDataset .\mmseg\datasets\hrf.py /^class HRFDataset(CustomDataset):$/;" c
+HRF_LEN .\tools\convert_datasets\hrf.py /^HRF_LEN = 15$/;" v
+HRModule .\mmseg\models\backbones\hrnet.py /^class HRModule(nn.Module):$/;" c
+HRNet .\mmseg\models\backbones\__init__.py /^from .hrnet import HRNet$/;" i
+HRNet .\mmseg\models\backbones\hrnet.py /^class HRNet(nn.Module):$/;" c
+Hook .\mmseg\core\evaluation\eval_hooks.py /^from mmcv.runner import Hook$/;" i
+HybridEmbed .\mmseg\models\backbones\vit.py /^class HybridEmbed(nn.Module):$/;" c
+HybridEmbed .\mmseg\models\backbones\vit_mla.py /^class HybridEmbed(nn.Module):$/;" c
+Image .\mmseg\datasets\cityscapes.py /^from PIL import Image$/;" i
+Image .\tests\test_data\test_transform.py /^from PIL import Image$/;" i
+Image .\tools\convert_datasets\pascal_context.py /^from PIL import Image$/;" i
+Image .\tools\convert_datasets\voc_aug.py /^from PIL import Image$/;" i
+ImageToTensor .\mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+ImageToTensor .\mmseg\datasets\pipelines\formating.py /^class ImageToTensor(object):$/;" c
+InputInjection .\mmseg\models\backbones\cgnet.py /^class InputInjection(nn.Module):$/;" c
+InterpConv .\mmseg\models\backbones\unet.py /^class InterpConv(nn.Module):$/;" c
+InvertedResidual .\mmseg\models\backbones\fast_scnn.py /^from ..utils.inverted_residual import InvertedResidual$/;" i
+InvertedResidual .\mmseg\models\backbones\mobilenet_v2.py /^from ..utils import InvertedResidual, make_divisible$/;" i
+InvertedResidual .\mmseg\models\backbones\mobilenet_v3.py /^from ..utils import InvertedResidualV3 as InvertedResidual$/;" i
+InvertedResidual .\mmseg\models\utils\__init__.py /^from .inverted_residual import InvertedResidual, InvertedResidualV3$/;" i
+InvertedResidual .\mmseg\models\utils\inverted_residual.py /^class InvertedResidual(nn.Module):$/;" c
+InvertedResidual .\tests\test_utils\test_inverted_residual_module.py /^from mmseg.models.utils import InvertedResidual, InvertedResidualV3$/;" i
+InvertedResidualV3 .\mmseg\models\utils\__init__.py /^from .inverted_residual import InvertedResidual, InvertedResidualV3$/;" i
+InvertedResidualV3 .\mmseg\models\utils\inverted_residual.py /^class InvertedResidualV3(nn.Module):$/;" c
+InvertedResidualV3 .\tests\test_utils\test_inverted_residual_module.py /^from mmseg.models.utils import InvertedResidual, InvertedResidualV3$/;" i
+LOSSES .\mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+LOSSES .\mmseg\models\builder.py /^LOSSES = Registry('loss')$/;" v
+LOSSES .\mmseg\models\losses\cross_entropy_loss.py /^from ..builder import LOSSES$/;" i
+LOSSES .\mmseg\models\losses\lovasz_loss.py /^from ..builder import LOSSES$/;" i
+LRASPPHead .\mmseg\models\decode_heads\__init__.py /^from .lraspp_head import LRASPPHead$/;" i
+LRASPPHead .\mmseg\models\decode_heads\lraspp_head.py /^class LRASPPHead(BaseDecodeHead):$/;" c
+LearningToDownsample .\mmseg\models\backbones\fast_scnn.py /^class LearningToDownsample(nn.Module):$/;" c
+LoadAnnotations .\mmseg\datasets\pipelines\__init__.py /^from .loading import LoadAnnotations, LoadImageFromFile$/;" i
+LoadAnnotations .\mmseg\datasets\pipelines\loading.py /^class LoadAnnotations(object):$/;" c
+LoadAnnotations .\tests\test_data\test_loading.py /^from mmseg.datasets.pipelines import LoadAnnotations, LoadImageFromFile$/;" i
+LoadImage .\mmseg\apis\inference.py /^class LoadImage:$/;" c
+LoadImageFromFile .\mmseg\datasets\pipelines\__init__.py /^from .loading import LoadAnnotations, LoadImageFromFile$/;" i
+LoadImageFromFile .\mmseg\datasets\pipelines\loading.py /^class LoadImageFromFile(object):$/;" c
+LoadImageFromFile .\tests\test_data\test_loading.py /^from mmseg.datasets.pipelines import LoadAnnotations, LoadImageFromFile$/;" i
+LovaszLoss .\mmseg\models\losses\__init__.py /^from .lovasz_loss import LovaszLoss$/;" i
+LovaszLoss .\mmseg\models\losses\lovasz_loss.py /^class LovaszLoss(nn.Module):$/;" c
+MLAHead .\mmseg\models\decode_heads\vit_mla_head.py /^class MLAHead(nn.Module):$/;" c
+MMCV_MAX .\mmseg\__init__.py /^MMCV_MAX = '1.3.0'$/;" v
+MMCV_MIN .\mmseg\__init__.py /^MMCV_MIN = '1.1.4'$/;" v
+MMDataParallel .\mmseg\apis\train.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+MMDataParallel .\tools\benchmark.py /^from mmcv.parallel import MMDataParallel$/;" i
+MMDataParallel .\tools\test.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+MMDistributedDataParallel .\mmseg\apis\train.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+MMDistributedDataParallel .\tools\test.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+MagicMock .\tests\test_data\test_dataset.py /^from unittest.mock import MagicMock, patch$/;" i
+MagicMock .\tests\test_eval_hook.py /^from unittest.mock import MagicMock, patch$/;" i
+Mlp .\mmseg\models\backbones\pvt.py /^class Mlp(nn.Module):$/;" c
+Mlp .\mmseg\models\backbones\pvt_dia.py /^class Mlp(nn.Module):$/;" c
+Mlp .\mmseg\models\backbones\vit.py /^class Mlp(nn.Module):$/;" c
+Mlp .\mmseg\models\backbones\vit_mla.py /^class Mlp(nn.Module):$/;" c
+MobileNetV2 .\mmseg\models\backbones\__init__.py /^from .mobilenet_v2 import MobileNetV2$/;" i
+MobileNetV2 .\mmseg\models\backbones\mobilenet_v2.py /^class MobileNetV2(nn.Module):$/;" c
+MobileNetV3 .\mmseg\models\backbones\__init__.py /^from .mobilenet_v3 import MobileNetV3$/;" i
+MobileNetV3 .\mmseg\models\backbones\mobilenet_v3.py /^class MobileNetV3(nn.Module):$/;" c
+MobileNetV3 .\tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+MultiScaleFlipAug .\mmseg\datasets\pipelines\__init__.py /^from .test_time_aug import MultiScaleFlipAug$/;" i
+MultiScaleFlipAug .\mmseg\datasets\pipelines\test_time_aug.py /^class MultiScaleFlipAug(object):$/;" c
+NECKS .\mmseg\models\builder.py /^NECKS = Registry('neck')$/;" v
+NECKS .\mmseg\models\necks\fpn.py /^from ..builder import NECKS$/;" i
+NLHead .\mmseg\models\decode_heads\__init__.py /^from .nl_head import NLHead$/;" i
+NLHead .\mmseg\models\decode_heads\nl_head.py /^class NLHead(FCNHead):$/;" c
+NonLocal2d .\mmseg\models\decode_heads\dnl_head.py /^from mmcv.cnn import NonLocal2d$/;" i
+NonLocal2d .\mmseg\models\decode_heads\nl_head.py /^from mmcv.cnn import NonLocal2d$/;" i
+Normalize .\mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+Normalize .\mmseg\datasets\pipelines\transforms.py /^class Normalize(object):$/;" c
+OCRHead .\mmseg\models\decode_heads\__init__.py /^from .ocr_head import OCRHead$/;" i
+OCRHead .\mmseg\models\decode_heads\ocr_head.py /^class OCRHead(BaseCascadeDecodeHead):$/;" c
+OHEMPixelSampler .\mmseg\core\seg\__init__.py /^from .sampler import BasePixelSampler, OHEMPixelSampler$/;" i
+OHEMPixelSampler .\mmseg\core\seg\sampler\__init__.py /^from .ohem_pixel_sampler import OHEMPixelSampler$/;" i
+OHEMPixelSampler .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^class OHEMPixelSampler(BasePixelSampler):$/;" c
+OHEMPixelSampler .\tests\test_sampler.py /^from mmseg.core import OHEMPixelSampler$/;" i
+ObjectAttentionBlock .\mmseg\models\decode_heads\ocr_head.py /^class ObjectAttentionBlock(_SelfAttentionBlock):$/;" c
+OrderedDict .\mmseg\models\segmentors\base.py /^from collections import OrderedDict$/;" i
+PALETTE .\mmseg\datasets\ade.py /^ PALETTE = [[120, 120, 120], [180, 120, 120], [6, 230, 230], [80, 50, 50],$/;" v class:ADE20KDataset
+PALETTE .\mmseg\datasets\chase_db1.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:ChaseDB1Dataset
+PALETTE .\mmseg\datasets\cityscapes.py /^ PALETTE = [[128, 64, 128], [244, 35, 232], [70, 70, 70], [102, 102, 156],$/;" v class:CityscapesDataset
+PALETTE .\mmseg\datasets\custom.py /^ PALETTE = [[0, 0, 0], [40, 100, 150], [80, 150, 200], [120, 200, 10], [160, 10, 60],$/;" v class:CustomDataset
+PALETTE .\mmseg\datasets\drive.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:DRIVEDataset
+PALETTE .\mmseg\datasets\hrf.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:HRFDataset
+PALETTE .\mmseg\datasets\pascal_context.py /^ PALETTE = [[120, 120, 120], [180, 120, 120], [6, 230, 230], [80, 50, 50],$/;" v class:PascalContextDataset
+PALETTE .\mmseg\datasets\stare.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:STAREDataset
+PALETTE .\mmseg\datasets\voc.py /^ PALETTE = [[0, 0, 0], [128, 0, 0], [0, 128, 0], [128, 128, 0], [0, 0, 128],$/;" v class:PascalVOCDataset
+PAM .\mmseg\models\decode_heads\da_head.py /^class PAM(_SelfAttentionBlock):$/;" c
+PIPELINES .\mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+PIPELINES .\mmseg\datasets\builder.py /^PIPELINES = Registry('pipeline')$/;" v
+PIPELINES .\mmseg\datasets\pipelines\compose.py /^from ..builder import PIPELINES$/;" i
+PIPELINES .\mmseg\datasets\pipelines\formating.py /^from ..builder import PIPELINES$/;" i
+PIPELINES .\mmseg\datasets\pipelines\loading.py /^from ..builder import PIPELINES$/;" i
+PIPELINES .\mmseg\datasets\pipelines\test_time_aug.py /^from ..builder import PIPELINES$/;" i
+PIPELINES .\mmseg\datasets\pipelines\transforms.py /^from ..builder import PIPELINES$/;" i
+PIPELINES .\tests\test_data\test_transform.py /^from mmseg.datasets.builder import PIPELINES$/;" i
+PIPELINES .\tests\test_data\test_tta.py /^from mmseg.datasets.builder import PIPELINES$/;" i
+PIXEL_SAMPLERS .\mmseg\core\seg\builder.py /^PIXEL_SAMPLERS = Registry('pixel sampler')$/;" v
+PIXEL_SAMPLERS .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^from ..builder import PIXEL_SAMPLERS$/;" i
+PPM .\mmseg\models\backbones\fast_scnn.py /^from mmseg.models.decode_heads.psp_head import PPM$/;" i
+PPM .\mmseg\models\decode_heads\psp_head.py /^class PPM(nn.ModuleList):$/;" c
+PPM .\mmseg\models\decode_heads\uper_head.py /^from .psp_head import PPM$/;" i
+PPMConcat .\mmseg\models\decode_heads\ann_head.py /^class PPMConcat(nn.ModuleList):$/;" c
+PSAHead .\mmseg\models\decode_heads\__init__.py /^from .psa_head import PSAHead$/;" i
+PSAHead .\mmseg\models\decode_heads\psa_head.py /^class PSAHead(BaseDecodeHead):$/;" c
+PSAMask .\mmseg\models\decode_heads\psa_head.py /^ PSAMask = None$/;" v
+PSAMask .\mmseg\models\decode_heads\psa_head.py /^ from mmcv.ops import PSAMask$/;" i
+PSPHead .\mmseg\models\decode_heads\__init__.py /^from .psp_head import PSPHead$/;" i
+PSPHead .\mmseg\models\decode_heads\psp_head.py /^class PSPHead(BaseDecodeHead):$/;" c
+Pad .\mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+Pad .\mmseg\datasets\pipelines\transforms.py /^class Pad(object):$/;" c
+PascalContextDataset .\mmseg\datasets\__init__.py /^from .pascal_context import PascalContextDataset$/;" i
+PascalContextDataset .\mmseg\datasets\pascal_context.py /^class PascalContextDataset(CustomDataset):$/;" c
+PascalVOCDataset .\mmseg\datasets\__init__.py /^from .voc import PascalVOCDataset$/;" i
+PascalVOCDataset .\mmseg\datasets\voc.py /^class PascalVOCDataset(CustomDataset):$/;" c
+PatchEmbed .\mmseg\models\backbones\pvt.py /^class PatchEmbed(nn.Module):$/;" c
+PatchEmbed .\mmseg\models\backbones\pvt_dia.py /^class PatchEmbed(nn.Module):$/;" c
+PatchEmbed .\mmseg\models\backbones\vit.py /^class PatchEmbed(nn.Module):$/;" c
+PatchEmbed .\mmseg\models\backbones\vit_mla.py /^class PatchEmbed(nn.Module):$/;" c
+PhotoMetricDistortion .\mmseg\datasets\pipelines\transforms.py /^class PhotoMetricDistortion(object):$/;" c
+PointHead .\mmseg\models\decode_heads\__init__.py /^from .point_head import PointHead$/;" i
+PointHead .\mmseg\models\decode_heads\point_head.py /^class PointHead(BaseCascadeDecodeHead):$/;" c
+PoolDataLoader .\mmseg\datasets\builder.py /^from mmcv.utils.parrots_wrapper import DataLoader, PoolDataLoader$/;" i
+PyramidVisionTransformer .\mmseg\models\backbones\pvt.py /^class PyramidVisionTransformer(nn.Module):$/;" c
+PyramidVisionTransformer .\mmseg\models\backbones\pvt_dia.py /^class PyramidVisionTransformer(nn.Module):$/;" c
+RESULTS_LUT .\.dev\gather_models.py /^RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc']$/;" v
+RGB2Gray .\mmseg\datasets\pipelines\transforms.py /^class RGB2Gray(object):$/;" c
+RSoftmax .\mmseg\models\backbones\resnest.py /^class RSoftmax(nn.Module):$/;" c
+RandomCrop .\mmseg\datasets\pipelines\transforms.py /^class RandomCrop(object):$/;" c
+RandomFlip .\mmseg\datasets\pipelines\transforms.py /^class RandomFlip(object):$/;" c
+RandomRotate .\mmseg\datasets\pipelines\transforms.py /^class RandomRotate(object):$/;" c
+RandomSampler .\tests\test_data\test_dataset_builder.py /^from torch.utils.data import (DistributedSampler, RandomSampler,$/;" i
+Registry .\mmseg\core\seg\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+Registry .\mmseg\datasets\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+Registry .\mmseg\models\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+RepeatDataset .\mmseg\datasets\__init__.py /^from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+RepeatDataset .\mmseg\datasets\builder.py /^ from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+RepeatDataset .\mmseg\datasets\dataset_wrappers.py /^class RepeatDataset(object):$/;" c
+Rerange .\mmseg\datasets\pipelines\transforms.py /^class Rerange(object):$/;" c
+ResLayer .\mmseg\models\backbones\resnest.py /^from ..utils import ResLayer$/;" i
+ResLayer .\mmseg\models\backbones\resnet.py /^from ..utils import ResLayer$/;" i
+ResLayer .\mmseg\models\backbones\resnext.py /^from ..utils import ResLayer$/;" i
+ResLayer .\mmseg\models\utils\__init__.py /^from .res_layer import ResLayer$/;" i
+ResLayer .\mmseg\models\utils\res_layer.py /^class ResLayer(nn.Sequential):$/;" c
+ResLayer .\tests\test_models\test_backbone.py /^from mmseg.models.utils import ResLayer$/;" i
+ResNeSt .\mmseg\models\backbones\__init__.py /^from .resnest import ResNeSt$/;" i
+ResNeSt .\mmseg\models\backbones\resnest.py /^class ResNeSt(ResNetV1d):$/;" c
+ResNeSt .\tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+ResNeXt .\mmseg\models\backbones\__init__.py /^from .resnext import ResNeXt$/;" i
+ResNeXt .\mmseg\models\backbones\resnext.py /^class ResNeXt(ResNet):$/;" c
+ResNet .\mmseg\models\backbones\__init__.py /^from .resnet import ResNet, ResNetV1c, ResNetV1d$/;" i
+ResNet .\mmseg\models\backbones\resnet.py /^class ResNet(nn.Module):$/;" c
+ResNet .\mmseg\models\backbones\resnext.py /^from .resnet import ResNet$/;" i
+ResNetV1c .\mmseg\models\backbones\__init__.py /^from .resnet import ResNet, ResNetV1c, ResNetV1d$/;" i
+ResNetV1c .\mmseg\models\backbones\resnet.py /^class ResNetV1c(ResNet):$/;" c
+ResNetV1d .\mmseg\models\backbones\__init__.py /^from .resnet import ResNet, ResNetV1c, ResNetV1d$/;" i
+ResNetV1d .\mmseg\models\backbones\resnest.py /^from .resnet import ResNetV1d$/;" i
+ResNetV1d .\mmseg\models\backbones\resnet.py /^class ResNetV1d(ResNet):$/;" c
+Resize .\mmseg\datasets\pipelines\transforms.py /^class Resize(object):$/;" c
+SEGMENTORS .\mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+SEGMENTORS .\mmseg\models\builder.py /^SEGMENTORS = Registry('segmentor')$/;" v
+SEGMENTORS .\mmseg\models\segmentors\cascade_encoder_decoder.py /^from ..builder import SEGMENTORS$/;" i
+SEGMENTORS .\mmseg\models\segmentors\encoder_decoder.py /^from ..builder import SEGMENTORS$/;" i
+SELayer .\mmseg\models\utils\inverted_residual.py /^from .se_layer import SELayer$/;" i
+SELayer .\mmseg\models\utils\se_layer.py /^class SELayer(nn.Module):$/;" c
+SELayer .\tests\test_utils\test_se_layer.py /^from mmseg.models.utils.se_layer import SELayer$/;" i
+SOURCEDIR .\docs\make.bat /^set SOURCEDIR=.$/;" v
+SPHINXBUILD .\docs\make.bat /^ set SPHINXBUILD=sphinx-build$/;" v
+STAREDataset .\mmseg\datasets\__init__.py /^from .stare import STAREDataset$/;" i
+STAREDataset .\mmseg\datasets\stare.py /^class STAREDataset(CustomDataset):$/;" c
+STARE_LEN .\tools\convert_datasets\stare.py /^STARE_LEN = 20$/;" v
+Scale .\mmseg\models\decode_heads\da_head.py /^from mmcv.cnn import ConvModule, Scale$/;" i
+SegRescale .\mmseg\datasets\pipelines\transforms.py /^class SegRescale(object):$/;" c
+SelfAttentionBlock .\mmseg\models\decode_heads\ann_head.py /^class SelfAttentionBlock(_SelfAttentionBlock):$/;" c
+SelfAttentionBlock .\mmseg\models\utils\__init__.py /^from .self_attention_block import SelfAttentionBlock$/;" i
+SelfAttentionBlock .\mmseg\models\utils\self_attention_block.py /^class SelfAttentionBlock(nn.Module):$/;" c
+Sequence .\mmseg\datasets\pipelines\formating.py /^from collections.abc import Sequence$/;" i
+SpatialGatherModule .\mmseg\models\decode_heads\ocr_head.py /^class SpatialGatherModule(nn.Module):$/;" c
+SplitAttentionConv2d .\mmseg\models\backbones\resnest.py /^class SplitAttentionConv2d(nn.Module):$/;" c
+SyncBatchNorm .\tests\test_models\test_forward.py /^from mmcv.utils.parrots_wrapper import SyncBatchNorm, _BatchNorm$/;" i
+SyncBatchNorm .\tests\test_models\test_heads.py /^from mmcv.utils.parrots_wrapper import SyncBatchNorm$/;" i
+TRAINING_LEN .\tools\convert_datasets\chase_db1.py /^TRAINING_LEN = 60$/;" v
+TRAINING_LEN .\tools\convert_datasets\hrf.py /^TRAINING_LEN = 5$/;" v
+TRAINING_LEN .\tools\convert_datasets\stare.py /^TRAINING_LEN = 10$/;" v
+TestLoading .\tests\test_data\test_loading.py /^class TestLoading(object):$/;" c
+ToDataContainer .\mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+ToDataContainer .\mmseg\datasets\pipelines\formating.py /^class ToDataContainer(object):$/;" c
+ToTensor .\mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+ToTensor .\mmseg\datasets\pipelines\formating.py /^class ToTensor(object):$/;" c
+ToyDataset .\tests\test_data\test_dataset_builder.py /^class ToyDataset(object):$/;" c
+Transpose .\mmseg\datasets\pipelines\formating.py /^class Transpose(object):$/;" c
+UNet .\mmseg\models\backbones\__init__.py /^from .unet import UNet$/;" i
+UNet .\mmseg\models\backbones\unet.py /^class UNet(nn.Module):$/;" c
+UPSAMPLE_LAYERS .\mmseg\models\backbones\unet.py /^from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,$/;" i
+UPerHead .\mmseg\models\decode_heads\__init__.py /^from .uper_head import UPerHead$/;" i
+UPerHead .\mmseg\models\decode_heads\uper_head.py /^class UPerHead(BaseDecodeHead):$/;" c
+UpConvBlock .\mmseg\models\backbones\unet.py /^from ..utils import UpConvBlock$/;" i
+UpConvBlock .\mmseg\models\utils\__init__.py /^from .up_conv_block import UpConvBlock$/;" i
+UpConvBlock .\mmseg\models\utils\up_conv_block.py /^class UpConvBlock(nn.Module):$/;" c
+Upsample .\mmseg\models\backbones\hrnet.py /^from mmseg.ops import Upsample, resize$/;" i
+Upsample .\mmseg\ops\__init__.py /^from .wrappers import Upsample, resize$/;" i
+Upsample .\mmseg\ops\wrappers.py /^class Upsample(nn.Module):$/;" c
+VIT_MLA .\mmseg\models\backbones\__init__.py /^from .vit_mla import VIT_MLA$/;" i
+VIT_MLA .\mmseg\models\backbones\vit_mla.py /^class VIT_MLA(nn.Module):$/;" c
+VIT_MLAHead .\mmseg\models\decode_heads\__init__.py /^from .vit_mla_head import VIT_MLAHead$/;" i
+VIT_MLAHead .\mmseg\models\decode_heads\vit_mla_head.py /^class VIT_MLAHead(BaseDecodeHead):$/;" c
+VIT_MLA_AUXIHead .\mmseg\models\decode_heads\__init__.py /^from .vit_mla_auxi_head import VIT_MLA_AUXIHead$/;" i
+VIT_MLA_AUXIHead .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^class VIT_MLA_AUXIHead(BaseDecodeHead):$/;" c
+VisionTransformer .\mmseg\models\backbones\__init__.py /^from .vit import VisionTransformer$/;" i
+VisionTransformer .\mmseg\models\backbones\vit.py /^class VisionTransformer(nn.Module):$/;" c
+VisionTransformerUpHead .\mmseg\models\decode_heads\__init__.py /^from .vit_up_head import VisionTransformerUpHead$/;" i
+VisionTransformerUpHead .\mmseg\models\decode_heads\vit_up_head.py /^class VisionTransformerUpHead(BaseDecodeHead):$/;" c
+_BatchNorm .\mmseg\models\backbones\cgnet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+_BatchNorm .\mmseg\models\backbones\fast_scnn.py /^from torch.nn.modules.batchnorm import _BatchNorm$/;" i
+_BatchNorm .\mmseg\models\backbones\hrnet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+_BatchNorm .\mmseg\models\backbones\mobilenet_v2.py /^from torch.nn.modules.batchnorm import _BatchNorm$/;" i
+_BatchNorm .\mmseg\models\backbones\mobilenet_v3.py /^from torch.nn.modules.batchnorm import _BatchNorm$/;" i
+_BatchNorm .\mmseg\models\backbones\resnet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+_BatchNorm .\mmseg\models\backbones\unet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+_BatchNorm .\tests\test_models\test_backbone.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+_BatchNorm .\tests\test_models\test_forward.py /^from mmcv.utils.parrots_wrapper import SyncBatchNorm, _BatchNorm$/;" i
+_BatchNorm .\tests\test_models\test_unet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+_Bottleneck .\mmseg\models\backbones\resnest.py /^from .resnet import Bottleneck as _Bottleneck$/;" i
+_Bottleneck .\mmseg\models\backbones\resnext.py /^from .resnet import Bottleneck as _Bottleneck$/;" i
+_C .\tools\pytorch2onnx.py /^import torch._C$/;" i
+_ConcatDataset .\mmseg\datasets\dataset_wrappers.py /^from torch.utils.data.dataset import ConcatDataset as _ConcatDataset$/;" i
+_SelfAttentionBlock .\mmseg\models\decode_heads\ann_head.py /^from ..utils import SelfAttentionBlock as _SelfAttentionBlock$/;" i
+_SelfAttentionBlock .\mmseg\models\decode_heads\da_head.py /^from ..utils import SelfAttentionBlock as _SelfAttentionBlock$/;" i
+_SelfAttentionBlock .\mmseg\models\decode_heads\ocr_head.py /^from ..utils import SelfAttentionBlock as _SelfAttentionBlock$/;" i
+__all__ .\mmseg\__init__.py /^__all__ = ['__version__', 'version_info']$/;" v
+__all__ .\mmseg\apis\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\core\evaluation\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\core\seg\__init__.py /^__all__ = ['build_pixel_sampler', 'BasePixelSampler', 'OHEMPixelSampler']$/;" v
+__all__ .\mmseg\core\seg\sampler\__init__.py /^__all__ = ['BasePixelSampler', 'OHEMPixelSampler']$/;" v
+__all__ .\mmseg\core\utils\__init__.py /^__all__ = ['add_prefix']$/;" v
+__all__ .\mmseg\datasets\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\datasets\pipelines\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\models\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\models\backbones\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\models\decode_heads\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\models\losses\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\models\necks\__init__.py /^__all__ = ['FPN']$/;" v
+__all__ .\mmseg\models\segmentors\__init__.py /^__all__ = ['EncoderDecoder', 'CascadeEncoderDecoder']$/;" v
+__all__ .\mmseg\models\utils\__init__.py /^__all__ = [$/;" v
+__all__ .\mmseg\ops\__init__.py /^__all__ = ['Upsample', 'resize', 'Encoding']$/;" v
+__all__ .\mmseg\utils\__init__.py /^__all__ = ['get_root_logger', 'collect_env']$/;" v
+__call__ .\mmseg\apis\inference.py /^ def __call__(self, results):$/;" m class:LoadImage file:
+__call__ .\mmseg\datasets\pipelines\compose.py /^ def __call__(self, data):$/;" m class:Compose file:
+__call__ .\mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:Collect file:
+__call__ .\mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:DefaultFormatBundle file:
+__call__ .\mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:ImageToTensor file:
+__call__ .\mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:ToDataContainer file:
+__call__ .\mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:ToTensor file:
+__call__ .\mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:Transpose file:
+__call__ .\mmseg\datasets\pipelines\loading.py /^ def __call__(self, results):$/;" m class:LoadAnnotations file:
+__call__ .\mmseg\datasets\pipelines\loading.py /^ def __call__(self, results):$/;" m class:LoadImageFromFile file:
+__call__ .\mmseg\datasets\pipelines\test_time_aug.py /^ def __call__(self, results):$/;" m class:MultiScaleFlipAug file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:AdjustGamma file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:CLAHE file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Normalize file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Pad file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:PhotoMetricDistortion file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RGB2Gray file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RandomCrop file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RandomFlip file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RandomRotate file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Rerange file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Resize file:
+__call__ .\mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:SegRescale file:
+__getitem__ .\mmseg\datasets\custom.py /^ def __getitem__(self, idx):$/;" m class:CustomDataset file:
+__getitem__ .\mmseg\datasets\dataset_wrappers.py /^ def __getitem__(self, idx):$/;" m class:RepeatDataset file:
+__getitem__ .\tests\test_eval_hook.py /^ def __getitem__(self, idx):$/;" m class:ExampleDataset file:
+__init__ .\mmseg\core\evaluation\eval_hooks.py /^ def __init__(self, dataloader, interval=1, by_epoch=False, **eval_kwargs):$/;" m class:EvalHook
+__init__ .\mmseg\core\evaluation\eval_hooks.py /^ def __init__(self,$/;" m class:DistEvalHook
+__init__ .\mmseg\core\seg\sampler\base_pixel_sampler.py /^ def __init__(self, **kwargs):$/;" m class:BasePixelSampler
+__init__ .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^ def __init__(self, context, thresh=None, min_kept=100000):$/;" m class:OHEMPixelSampler
+__init__ .\mmseg\datasets\ade.py /^ def __init__(self, **kwargs):$/;" m class:ADE20KDataset
+__init__ .\mmseg\datasets\chase_db1.py /^ def __init__(self, **kwargs):$/;" m class:ChaseDB1Dataset
+__init__ .\mmseg\datasets\cityscapes.py /^ def __init__(self, **kwargs):$/;" m class:CityscapesDataset
+__init__ .\mmseg\datasets\custom.py /^ def __init__(self,$/;" m class:CustomDataset
+__init__ .\mmseg\datasets\dataset_wrappers.py /^ def __init__(self, dataset, times):$/;" m class:RepeatDataset
+__init__ .\mmseg\datasets\dataset_wrappers.py /^ def __init__(self, datasets):$/;" m class:ConcatDataset
+__init__ .\mmseg\datasets\drive.py /^ def __init__(self, **kwargs):$/;" m class:DRIVEDataset
+__init__ .\mmseg\datasets\hrf.py /^ def __init__(self, **kwargs):$/;" m class:HRFDataset
+__init__ .\mmseg\datasets\pascal_context.py /^ def __init__(self, split, **kwargs):$/;" m class:PascalContextDataset
+__init__ .\mmseg\datasets\pipelines\compose.py /^ def __init__(self, transforms):$/;" m class:Compose
+__init__ .\mmseg\datasets\pipelines\formating.py /^ def __init__(self, keys):$/;" m class:ImageToTensor
+__init__ .\mmseg\datasets\pipelines\formating.py /^ def __init__(self, keys):$/;" m class:ToTensor
+__init__ .\mmseg\datasets\pipelines\formating.py /^ def __init__(self, keys, order):$/;" m class:Transpose
+__init__ .\mmseg\datasets\pipelines\formating.py /^ def __init__(self,$/;" m class:Collect
+__init__ .\mmseg\datasets\pipelines\formating.py /^ def __init__(self,$/;" m class:ToDataContainer
+__init__ .\mmseg\datasets\pipelines\loading.py /^ def __init__(self,$/;" m class:LoadAnnotations
+__init__ .\mmseg\datasets\pipelines\loading.py /^ def __init__(self,$/;" m class:LoadImageFromFile
+__init__ .\mmseg\datasets\pipelines\test_time_aug.py /^ def __init__(self,$/;" m class:MultiScaleFlipAug
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, clip_limit=40.0, tile_grid_size=(8, 8)):$/;" m class:CLAHE
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, crop_size, cat_max_ratio=1., ignore_index=255):$/;" m class:RandomCrop
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, gamma=1.0):$/;" m class:AdjustGamma
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, mean, std, to_rgb=True):$/;" m class:Normalize
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, min_value=0, max_value=255):$/;" m class:Rerange
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, out_channels=None, weights=(0.299, 0.587, 0.114)):$/;" m class:RGB2Gray
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, prob=None, direction='horizontal'):$/;" m class:RandomFlip
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self, scale_factor=1):$/;" m class:SegRescale
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:Pad
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:PhotoMetricDistortion
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:RandomRotate
+__init__ .\mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:Resize
+__init__ .\mmseg\datasets\stare.py /^ def __init__(self, **kwargs):$/;" m class:STAREDataset
+__init__ .\mmseg\datasets\voc.py /^ def __init__(self, split, **kwargs):$/;" m class:PascalVOCDataset
+__init__ .\mmseg\models\backbones\cgnet.py /^ def __init__(self, channel, reduction=16, with_cp=False):$/;" m class:GlobalContextExtractor
+__init__ .\mmseg\models\backbones\cgnet.py /^ def __init__(self, num_downsampling):$/;" m class:InputInjection
+__init__ .\mmseg\models\backbones\cgnet.py /^ def __init__(self,$/;" m class:CGNet
+__init__ .\mmseg\models\backbones\cgnet.py /^ def __init__(self,$/;" m class:ContextGuidedBlock
+__init__ .\mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:FastSCNN
+__init__ .\mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:FeatureFusionModule
+__init__ .\mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:GlobalFeatureExtractor
+__init__ .\mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:LearningToDownsample
+__init__ .\mmseg\models\backbones\hrnet.py /^ def __init__(self,$/;" m class:HRModule
+__init__ .\mmseg\models\backbones\hrnet.py /^ def __init__(self,$/;" m class:HRNet
+__init__ .\mmseg\models\backbones\layers\drop.py /^ def __init__(self, drop_prob=None):$/;" m class:DropPath
+__init__ .\mmseg\models\backbones\layers\drop.py /^ def __init__(self,$/;" m class:DropBlock2d
+__init__ .\mmseg\models\backbones\mobilenet_v2.py /^ def __init__(self,$/;" m class:MobileNetV2
+__init__ .\mmseg\models\backbones\mobilenet_v3.py /^ def __init__(self,$/;" m class:MobileNetV3
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_large
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_small
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_small_f4
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_tiny
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1):$/;" m class:Attention
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):$/;" m class:PatchEmbed
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classes=1000, embed_dims=[64, 128, 256, 512],$/;" m class:PyramidVisionTransformer
+__init__ .\mmseg\models\backbones\pvt.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, **kwargs):$/;" m class:pvt_small_dia
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, **kwargs):$/;" m class:pvt_tiny_dia
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1):$/;" m class:Attention
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768, dilation=1):$/;" m class:PatchEmbed
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classes=1000, embed_dims=[64, 128, 256, 512],$/;" m class:PyramidVisionTransformer
+__init__ .\mmseg\models\backbones\pvt_dia.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+__init__ .\mmseg\models\backbones\resnest.py /^ def __init__(self, radix, groups):$/;" m class:RSoftmax
+__init__ .\mmseg\models\backbones\resnest.py /^ def __init__(self,$/;" m class:Bottleneck
+__init__ .\mmseg\models\backbones\resnest.py /^ def __init__(self,$/;" m class:ResNeSt
+__init__ .\mmseg\models\backbones\resnest.py /^ def __init__(self,$/;" m class:SplitAttentionConv2d
+__init__ .\mmseg\models\backbones\resnet.py /^ def __init__(self, **kwargs):$/;" m class:ResNetV1c
+__init__ .\mmseg\models\backbones\resnet.py /^ def __init__(self, **kwargs):$/;" m class:ResNetV1d
+__init__ .\mmseg\models\backbones\resnet.py /^ def __init__(self,$/;" m class:BasicBlock
+__init__ .\mmseg\models\backbones\resnet.py /^ def __init__(self,$/;" m class:Bottleneck
+__init__ .\mmseg\models\backbones\resnet.py /^ def __init__(self,$/;" m class:ResNet
+__init__ .\mmseg\models\backbones\resnext.py /^ def __init__(self, groups=1, base_width=4, **kwargs):$/;" m class:ResNeXt
+__init__ .\mmseg\models\backbones\resnext.py /^ def __init__(self,$/;" m class:Bottleneck
+__init__ .\mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:BasicConvBlock
+__init__ .\mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:DeconvModule
+__init__ .\mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:InterpConv
+__init__ .\mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:UNet
+__init__ .\mmseg\models\backbones\vit.py /^ def __init__(self, backbone, img_size=224, feature_size=None, in_chans=3, embed_dim=768):$/;" m class:HybridEmbed
+__init__ .\mmseg\models\backbones\vit.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ .\mmseg\models\backbones\vit.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.):$/;" m class:Attention
+__init__ .\mmseg\models\backbones\vit.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):$/;" m class:PatchEmbed
+__init__ .\mmseg\models\backbones\vit.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+__init__ .\mmseg\models\backbones\vit.py /^ def __init__(self, model_name='vit_large_patch16_384', img_size=384, patch_size=16, in_chans=3, embed_dim=1024, depth=24,$/;" m class:VisionTransformer
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, backbone, img_size=224, feature_size=None, in_chans=3, embed_dim=768):$/;" m class:HybridEmbed
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.):$/;" m class:Attention
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):$/;" m class:PatchEmbed
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, in_channels=1024, mla_channels=256, norm_cfg=None):$/;" m class:Conv_MLA
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+__init__ .\mmseg\models\backbones\vit_mla.py /^ def __init__(self, model_name='vit_large_patch16_384', img_size=384, patch_size=16, in_chans=3, embed_dim=1024, depth=24,$/;" m class:VIT_MLA
+__init__ .\mmseg\models\decode_heads\ann_head.py /^ def __init__(self, in_channels, channels, out_channels, query_scales,$/;" m class:APNB
+__init__ .\mmseg\models\decode_heads\ann_head.py /^ def __init__(self, low_in_channels, high_in_channels, channels,$/;" m class:AFNB
+__init__ .\mmseg\models\decode_heads\ann_head.py /^ def __init__(self, low_in_channels, high_in_channels, channels,$/;" m class:SelfAttentionBlock
+__init__ .\mmseg\models\decode_heads\ann_head.py /^ def __init__(self, pool_scales=(1, 3, 6, 8)):$/;" m class:PPMConcat
+__init__ .\mmseg\models\decode_heads\ann_head.py /^ def __init__(self,$/;" m class:ANNHead
+__init__ .\mmseg\models\decode_heads\apc_head.py /^ def __init__(self, pool_scale, fusion, in_channels, channels, conv_cfg,$/;" m class:ACM
+__init__ .\mmseg\models\decode_heads\apc_head.py /^ def __init__(self, pool_scales=(1, 2, 3, 6), fusion=True, **kwargs):$/;" m class:APCHead
+__init__ .\mmseg\models\decode_heads\aspp_head.py /^ def __init__(self, dilations, in_channels, channels, conv_cfg, norm_cfg,$/;" m class:ASPPModule
+__init__ .\mmseg\models\decode_heads\aspp_head.py /^ def __init__(self, dilations=(1, 6, 12, 18), **kwargs):$/;" m class:ASPPHead
+__init__ .\mmseg\models\decode_heads\cascade_decode_head.py /^ def __init__(self, *args, **kwargs):$/;" m class:BaseCascadeDecodeHead
+__init__ .\mmseg\models\decode_heads\cc_head.py /^ def __init__(self, recurrence=2, **kwargs):$/;" m class:CCHead
+__init__ .\mmseg\models\decode_heads\da_head.py /^ def __init__(self):$/;" m class:CAM
+__init__ .\mmseg\models\decode_heads\da_head.py /^ def __init__(self, in_channels, channels):$/;" m class:PAM
+__init__ .\mmseg\models\decode_heads\da_head.py /^ def __init__(self, pam_channels, **kwargs):$/;" m class:DAHead
+__init__ .\mmseg\models\decode_heads\decode_head.py /^ def __init__(self,$/;" m class:BaseDecodeHead
+__init__ .\mmseg\models\decode_heads\dm_head.py /^ def __init__(self, filter_size, fusion, in_channels, channels, conv_cfg,$/;" m class:DCM
+__init__ .\mmseg\models\decode_heads\dm_head.py /^ def __init__(self, filter_sizes=(1, 3, 5, 7), fusion=False, **kwargs):$/;" m class:DMHead
+__init__ .\mmseg\models\decode_heads\dnl_head.py /^ def __init__(self, *arg, temperature, **kwargs):$/;" m class:DisentangledNonLocal2d
+__init__ .\mmseg\models\decode_heads\dnl_head.py /^ def __init__(self,$/;" m class:DNLHead
+__init__ .\mmseg\models\decode_heads\ema_head.py /^ def __init__(self, channels, num_bases, num_stages, momentum):$/;" m class:EMAModule
+__init__ .\mmseg\models\decode_heads\ema_head.py /^ def __init__(self,$/;" m class:EMAHead
+__init__ .\mmseg\models\decode_heads\enc_head.py /^ def __init__(self, in_channels, num_codes, conv_cfg, norm_cfg, act_cfg):$/;" m class:EncModule
+__init__ .\mmseg\models\decode_heads\enc_head.py /^ def __init__(self,$/;" m class:EncHead
+__init__ .\mmseg\models\decode_heads\fcn_head.py /^ def __init__(self,$/;" m class:FCNHead
+__init__ .\mmseg\models\decode_heads\fpn_head.py /^ def __init__(self, feature_strides, **kwargs):$/;" m class:FPNHead
+__init__ .\mmseg\models\decode_heads\gc_head.py /^ def __init__(self,$/;" m class:GCHead
+__init__ .\mmseg\models\decode_heads\layers\drop.py /^ def __init__(self, drop_prob=None):$/;" m class:DropPath
+__init__ .\mmseg\models\decode_heads\layers\drop.py /^ def __init__(self,$/;" m class:DropBlock2d
+__init__ .\mmseg\models\decode_heads\lraspp_head.py /^ def __init__(self, branch_channels=(32, 64), **kwargs):$/;" m class:LRASPPHead
+__init__ .\mmseg\models\decode_heads\nl_head.py /^ def __init__(self,$/;" m class:NLHead
+__init__ .\mmseg\models\decode_heads\ocr_head.py /^ def __init__(self, in_channels, channels, scale, conv_cfg, norm_cfg,$/;" m class:ObjectAttentionBlock
+__init__ .\mmseg\models\decode_heads\ocr_head.py /^ def __init__(self, ocr_channels, scale=1, **kwargs):$/;" m class:OCRHead
+__init__ .\mmseg\models\decode_heads\ocr_head.py /^ def __init__(self, scale):$/;" m class:SpatialGatherModule
+__init__ .\mmseg\models\decode_heads\point_head.py /^ def __init__(self,$/;" m class:PointHead
+__init__ .\mmseg\models\decode_heads\psa_head.py /^ def __init__(self,$/;" m class:PSAHead
+__init__ .\mmseg\models\decode_heads\psp_head.py /^ def __init__(self, pool_scales, in_channels, channels, conv_cfg, norm_cfg,$/;" m class:PPM
+__init__ .\mmseg\models\decode_heads\psp_head.py /^ def __init__(self, pool_scales=(1, 2, 3, 6), **kwargs):$/;" m class:PSPHead
+__init__ .\mmseg\models\decode_heads\sep_aspp_head.py /^ def __init__(self, **kwargs):$/;" m class:DepthwiseSeparableASPPModule
+__init__ .\mmseg\models\decode_heads\sep_aspp_head.py /^ def __init__(self, c1_in_channels, c1_channels, **kwargs):$/;" m class:DepthwiseSeparableASPPHead
+__init__ .\mmseg\models\decode_heads\sep_fcn_head.py /^ def __init__(self, **kwargs):$/;" m class:DepthwiseSeparableFCNHead
+__init__ .\mmseg\models\decode_heads\uper_head.py /^ def __init__(self, pool_scales=(1, 2, 3, 6), **kwargs):$/;" m class:UPerHead
+__init__ .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^ def __init__(self, img_size=768, **kwargs):$/;" m class:VIT_MLA_AUXIHead
+__init__ .\mmseg\models\decode_heads\vit_mla_head.py /^ def __init__(self, img_size=768, mla_channels=256, mlahead_channels=128, $/;" m class:VIT_MLAHead
+__init__ .\mmseg\models\decode_heads\vit_mla_head.py /^ def __init__(self, mla_channels=256, mlahead_channels=128, norm_cfg=None):$/;" m class:MLAHead
+__init__ .\mmseg\models\decode_heads\vit_up_head.py /^ def __init__(self, img_size=768, embed_dim=1024, $/;" m class:VisionTransformerUpHead
+__init__ .\mmseg\models\losses\accuracy.py /^ def __init__(self, topk=(1, ), thresh=None):$/;" m class:Accuracy
+__init__ .\mmseg\models\losses\cross_entropy_loss.py /^ def __init__(self,$/;" m class:CrossEntropyLoss
+__init__ .\mmseg\models\losses\lovasz_loss.py /^ def __init__(self,$/;" m class:LovaszLoss
+__init__ .\mmseg\models\necks\fpn.py /^ def __init__(self,$/;" m class:FPN
+__init__ .\mmseg\models\segmentors\base.py /^ def __init__(self):$/;" m class:BaseSegmentor
+__init__ .\mmseg\models\segmentors\cascade_encoder_decoder.py /^ def __init__(self,$/;" m class:CascadeEncoderDecoder
+__init__ .\mmseg\models\segmentors\encoder_decoder.py /^ def __init__(self,$/;" m class:EncoderDecoder
+__init__ .\mmseg\models\utils\inverted_residual.py /^ def __init__(self,$/;" m class:InvertedResidual
+__init__ .\mmseg\models\utils\inverted_residual.py /^ def __init__(self,$/;" m class:InvertedResidualV3
+__init__ .\mmseg\models\utils\res_layer.py /^ def __init__(self,$/;" m class:ResLayer
+__init__ .\mmseg\models\utils\se_layer.py /^ def __init__(self,$/;" m class:SELayer
+__init__ .\mmseg\models\utils\self_attention_block.py /^ def __init__(self, key_in_channels, query_in_channels, channels,$/;" m class:SelfAttentionBlock
+__init__ .\mmseg\models\utils\up_conv_block.py /^ def __init__(self,$/;" m class:UpConvBlock
+__init__ .\mmseg\ops\encoding.py /^ def __init__(self, channels, num_codes):$/;" m class:Encoding
+__init__ .\mmseg\ops\wrappers.py /^ def __init__(self,$/;" m class:Upsample
+__init__ .\tests\test_data\test_dataset_builder.py /^ def __init__(self, cnt=0):$/;" m class:ToyDataset
+__init__ .\tests\test_eval_hook.py /^ def __init__(self):$/;" m class:ExampleModel
+__init__ .\tests\test_models\test_segmentor.py /^ def __init__(self):$/;" m class:ExampleBackbone
+__init__ .\tests\test_models\test_segmentor.py /^ def __init__(self):$/;" m class:ExampleCascadeDecodeHead
+__init__ .\tests\test_models\test_segmentor.py /^ def __init__(self):$/;" m class:ExampleDecodeHead
+__item__ .\tests\test_data\test_dataset_builder.py /^ def __item__(self, idx):$/;" m class:ToyDataset file:
+__len__ .\mmseg\datasets\custom.py /^ def __len__(self):$/;" m class:CustomDataset file:
+__len__ .\mmseg\datasets\dataset_wrappers.py /^ def __len__(self):$/;" m class:RepeatDataset file:
+__len__ .\tests\test_data\test_dataset_builder.py /^ def __len__(self):$/;" m class:ToyDataset file:
+__len__ .\tests\test_eval_hook.py /^ def __len__(self):$/;" m class:ExampleDataset file:
+__metaclass__ .\mmseg\models\segmentors\base.py /^ __metaclass__ = ABCMeta$/;" v class:BaseSegmentor
+__repr__ .\mmseg\datasets\pipelines\compose.py /^ def __repr__(self):$/;" m class:Compose file:
+__repr__ .\mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:Collect file:
+__repr__ .\mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:DefaultFormatBundle file:
+__repr__ .\mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:ImageToTensor file:
+__repr__ .\mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:ToDataContainer file:
+__repr__ .\mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:ToTensor file:
+__repr__ .\mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:Transpose file:
+__repr__ .\mmseg\datasets\pipelines\loading.py /^ def __repr__(self):$/;" m class:LoadAnnotations file:
+__repr__ .\mmseg\datasets\pipelines\loading.py /^ def __repr__(self):$/;" m class:LoadImageFromFile file:
+__repr__ .\mmseg\datasets\pipelines\test_time_aug.py /^ def __repr__(self):$/;" m class:MultiScaleFlipAug file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:AdjustGamma file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:CLAHE file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Normalize file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Pad file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:PhotoMetricDistortion file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RGB2Gray file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RandomCrop file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RandomFlip file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RandomRotate file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Rerange file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Resize file:
+__repr__ .\mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:SegRescale file:
+__repr__ .\mmseg\ops\encoding.py /^ def __repr__(self):$/;" m class:Encoding file:
+__version__ .\mmseg\__init__.py /^from .version import __version__, version_info$/;" i
+__version__ .\mmseg\version.py /^__version__ = '0.11.0'$/;" v
+__version__ .\tools\train.py /^from mmseg import __version__$/;" i
+_auxiliary_head_forward_train .\mmseg\models\segmentors\encoder_decoder.py /^ def _auxiliary_head_forward_train(self, x, img_metas, gt_semantic_seg):$/;" m class:EncoderDecoder
+_base_ .\configs\_base_\datasets\Recipe1M_768x768.py /^_base_ = '.\/Recipe1M.py'$/;" v
+_base_ .\configs\_base_\datasets\cityscapes_769x769.py /^_base_ = '.\/cityscapes.py'$/;" v
+_base_ .\configs\_base_\datasets\pascal_voc12_aug.py /^_base_ = '.\/pascal_voc12.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/ann_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/ann_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/ann_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/ann_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/ann_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/ann_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/ann_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\ann\ann_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/ann_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\ann\ann_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\apcnet\apcnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\apcnet\apcnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\apcnet\apcnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/apcnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\apcnet\apcnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/apcnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\apcnet\apcnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\apcnet\apcnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\apcnet\apcnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\apcnet\apcnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\apcnet\apcnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\apcnet\apcnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x1024_40k_Recipe1M.py /^_base_ = ['..\/_base_\/datasets\/Recipe1M.py',$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/ccnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/ccnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/ccnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/ccnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^_base_ = ['..\/_base_\/models\/cgnet.py', '..\/_base_\/default_runtime.py']$/;" v
+_base_ .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/danet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/danet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/danet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/danet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/danet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/danet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/danet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\danet\danet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/danet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\danet\danet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/deeplabv3_r50-d8_480x480_40k_pascal_context.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/deeplabv3_r50-d8_480x480_80k_pascal_context.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3\deeplabv3_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\deeplabv3plus\deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/dmnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/dmnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\dmnet\dmnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dmnet\dmnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dmnet\dmnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\dmnet\dmnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dnlnet\dnl_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\dnlnet\dnl_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\dnlnet\dnl_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/dnl_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\dnlnet\dnl_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/dnl_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\dnlnet\dnl_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\dnlnet\dnl_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\dnlnet\dnl_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dnlnet\dnl_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dnlnet\dnl_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\dnlnet\dnl_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\emanet\emanet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/emanet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\emanet\emanet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/emanet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\emanet\emanet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/encnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/encnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/encnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/encnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\encnet\encnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\fastscnn\fast_scnn_4x8_80k_lr0.12_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/fcn_r50-d8_480x480_40k_pascal_context.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/fcn_r50-d8_480x480_80k_pascal_context.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/fcn_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/fcn_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/fcn_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/fcn_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\fcn\fcn_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fcn\fcn_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\ccnet_r50-d8_512x1024_80k.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\ccnet_r50-d8_512x1024_80k_RM.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\ccnet_vit_768x768_80k.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\fpn_r50_512x1024_80k.py /^_base_ = [$/;" v
+_base_ .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^_base_ = [$/;" v
+_base_ .\configs\fp16\deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fp16\deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fp16\fcn_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\fp16\pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/gcnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/gcnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/gcnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/gcnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x1024_160k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_40k_pascal_context.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_80k_pascal_context.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_160k_cityscapes.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_40k_pascal_context.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_80k_pascal_context.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_160k_cityscapes.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\mobilenet_v3\lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^_base_ = '.\/lraspp_m-v3-d8_512x1024_320k_cityscapes.py'$/;" v
+_base_ .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^_base_ = '.\/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/nonlocal_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/nonlocal_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/nonlocal_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/nonlocal_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x1024_160k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_160k_cityscapes.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_160k_cityscapes.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\point_rend\pointrend_r101_512x1024_80k_cityscapes.py /^_base_ = '.\/pointrend_r50_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\point_rend\pointrend_r101_512x512_160k_ade20k.py /^_base_ = '.\/pointrend_r50_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\point_rend\pointrend_r50_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/psanet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/psanet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/psanet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/psanet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\psanet\psanet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/pspnet_r50-d8_480x480_40k_pascal_context.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/pspnet_r50-d8_480x480_80k_pascal_context.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/pspnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/pspnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/pspnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/pspnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\pspnet\pspnet_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\pspnet\pspnet_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\sem_fpn\fpn_r101_512x1024_80k_cityscapes.py /^_base_ = '.\/fpn_r50_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\sem_fpn\fpn_r101_512x512_160k_ade20k.py /^_base_ = '.\/fpn_r50_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\sem_fpn\fpn_r50_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\sem_fpn\fpn_r50_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\unet\deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py /^_base_ = [$/;" v
+_base_ .\configs\unet\deeplabv3_unet_s5-d16_128x128_40k_stare.py /^_base_ = [$/;" v
+_base_ .\configs\unet\deeplabv3_unet_s5-d16_256x256_40k_hrf.py /^_base_ = [$/;" v
+_base_ .\configs\unet\deeplabv3_unet_s5-d16_64x64_40k_drive.py /^_base_ = [$/;" v
+_base_ .\configs\unet\fcn_unet_s5-d16_128x128_40k_chase_db1.py /^_base_ = [$/;" v
+_base_ .\configs\unet\fcn_unet_s5-d16_128x128_40k_stare.py /^_base_ = [$/;" v
+_base_ .\configs\unet\fcn_unet_s5-d16_256x256_40k_hrf.py /^_base_ = [$/;" v
+_base_ .\configs\unet\fcn_unet_s5-d16_64x64_40k_drive.py /^_base_ = [$/;" v
+_base_ .\configs\unet\pspnet_unet_s5-d16_128x128_40k_chase_db1.py /^_base_ = [$/;" v
+_base_ .\configs\unet\pspnet_unet_s5-d16_128x128_40k_stare.py /^_base_ = [$/;" v
+_base_ .\configs\unet\pspnet_unet_s5-d16_256x256_40k_hrf.py /^_base_ = [$/;" v
+_base_ .\configs\unet\pspnet_unet_s5-d16_64x64_40k_drive.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r101_512x1024_40k_cityscapes.py /^_base_ = '.\/upernet_r50_512x1024_40k_cityscapes.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_512x1024_80k_cityscapes.py /^_base_ = '.\/upernet_r50_512x1024_80k_cityscapes.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_512x512_160k_ade20k.py /^_base_ = '.\/upernet_r50_512x512_160k_ade20k.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_512x512_20k_voc12aug.py /^_base_ = '.\/upernet_r50_512x512_20k_voc12aug.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_512x512_40k_voc12aug.py /^_base_ = '.\/upernet_r50_512x512_40k_voc12aug.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_512x512_80k_ade20k.py /^_base_ = '.\/upernet_r50_512x512_80k_ade20k.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_769x769_40k_cityscapes.py /^_base_ = '.\/upernet_r50_769x769_40k_cityscapes.py'$/;" v
+_base_ .\configs\upernet\upernet_r101_769x769_80k_cityscapes.py /^_base_ = '.\/upernet_r50_769x769_80k_cityscapes.py'$/;" v
+_base_ .\configs\upernet\upernet_r50_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_512x512_160k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_512x512_80k_ade20k.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ .\configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+_cfg .\mmseg\models\backbones\pvt.py /^from timm.models.vision_transformer import _cfg$/;" i
+_cfg .\mmseg\models\backbones\pvt_dia.py /^from timm.models.vision_transformer import _cfg$/;" i
+_cfg .\mmseg\models\backbones\vit.py /^def _cfg(url='', **kwargs):$/;" f
+_cfg .\mmseg\models\backbones\vit_mla.py /^def _cfg(url='', **kwargs):$/;" f
+_check_branches .\mmseg\models\backbones\hrnet.py /^ def _check_branches(self, num_branches, num_blocks, in_channels,$/;" m class:HRModule
+_check_decode_head .\tests\test_config.py /^def _check_decode_head(decode_head_cfg, decode_head):$/;" f
+_check_input_devisible .\mmseg\models\backbones\unet.py /^ def _check_input_devisible(self, x):$/;" m class:UNet
+_check_input_dim .\tests\test_models\test_forward.py /^def _check_input_dim(self, inputs):$/;" f
+_class_to_index .\tools\convert_datasets\pascal_context.py /^ def _class_to_index(mask, _mapping, _key):$/;" f function:generate_labels
+_concat_dataset .\mmseg\datasets\builder.py /^def _concat_dataset(cfg, default_args=None):$/;" f
+_context_for_ohem .\tests\test_sampler.py /^def _context_for_ohem():$/;" f
+_conv_filter .\mmseg\models\backbones\pvt.py /^def _conv_filter(state_dict, patch_size=16):$/;" f
+_conv_filter .\mmseg\models\backbones\pvt_dia.py /^def _conv_filter(state_dict, patch_size=16):$/;" f
+_conv_filter .\mmseg\models\backbones\vit.py /^ def _conv_filter(self, state_dict, patch_size=16):$/;" m class:VisionTransformer
+_conv_filter .\mmseg\models\backbones\vit_mla.py /^ def _conv_filter(self, state_dict, patch_size=16):$/;" m class:VIT_MLA
+_conv_has_norm .\tests\test_models\test_heads.py /^def _conv_has_norm(module, sync_bn):$/;" f
+_convert_batchnorm .\tests\test_models\test_forward.py /^def _convert_batchnorm(module):$/;" f
+_convert_batchnorm .\tools\pytorch2onnx.py /^def _convert_batchnorm(module):$/;" f
+_convert_to_label_id .\mmseg\datasets\cityscapes.py /^ def _convert_to_label_id(result):$/;" m class:CityscapesDataset
+_convert_to_onehot_labels .\mmseg\models\decode_heads\enc_head.py /^ def _convert_to_onehot_labels(seg_label, num_classes):$/;" m class:EncHead
+_decode_head_forward_test .\mmseg\models\segmentors\encoder_decoder.py /^ def _decode_head_forward_test(self, x, img_metas):$/;" m class:EncoderDecoder
+_decode_head_forward_train .\mmseg\models\segmentors\cascade_encoder_decoder.py /^ def _decode_head_forward_train(self, x, img_metas, gt_semantic_seg):$/;" m class:CascadeEncoderDecoder
+_decode_head_forward_train .\mmseg\models\segmentors\encoder_decoder.py /^ def _decode_head_forward_train(self, x, img_metas, gt_semantic_seg):$/;" m class:EncoderDecoder
+_delete_ .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+_delete_ .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+_demo_mm_inputs .\tests\test_models\test_forward.py /^def _demo_mm_inputs(input_shape=(2, 3, 8, 16), num_classes=10):$/;" f
+_demo_mm_inputs .\tests\test_models\test_segmentor.py /^def _demo_mm_inputs(input_shape=(1, 3, 8, 16), num_classes=10):$/;" f
+_demo_mm_inputs .\tools\pytorch2onnx.py /^def _demo_mm_inputs(input_shape, num_classes):$/;" f
+_evaluate_cityscapes .\mmseg\datasets\cityscapes.py /^ def _evaluate_cityscapes(self, results, logger, imgfile_prefix):$/;" m class:CityscapesDataset
+_expand_onehot_labels .\mmseg\models\losses\cross_entropy_loss.py /^def _expand_onehot_labels(labels, label_weights, target_shape, ignore_index):$/;" f
+_freeze_stages .\mmseg\models\backbones\mobilenet_v2.py /^ def _freeze_stages(self):$/;" m class:MobileNetV2
+_freeze_stages .\mmseg\models\backbones\mobilenet_v3.py /^ def _freeze_stages(self):$/;" m class:MobileNetV3
+_freeze_stages .\mmseg\models\backbones\resnet.py /^ def _freeze_stages(self):$/;" m class:ResNet
+_get_coarse_point_feats .\mmseg\models\decode_heads\point_head.py /^ def _get_coarse_point_feats(self, prev_output, points):$/;" m class:PointHead
+_get_config_directory .\tests\test_config.py /^def _get_config_directory():$/;" f
+_get_config_directory .\tests\test_models\test_forward.py /^def _get_config_directory():$/;" f
+_get_config_module .\tests\test_models\test_forward.py /^def _get_config_module(fname):$/;" f
+_get_fine_grained_point_feats .\mmseg\models\decode_heads\point_head.py /^ def _get_fine_grained_point_feats(self, x, points):$/;" m class:PointHead
+_get_pos_embed .\mmseg\models\backbones\pvt.py /^ def _get_pos_embed(self, pos_embed, patch_embed, H, W):$/;" m class:PyramidVisionTransformer
+_get_pos_embed .\mmseg\models\backbones\pvt_dia.py /^ def _get_pos_embed(self, pos_embed, patch_embed, H, W):$/;" m class:PyramidVisionTransformer
+_get_segmentor_cfg .\tests\test_models\test_forward.py /^def _get_segmentor_cfg(fname):$/;" f
+_init_auxiliary_head .\mmseg\models\segmentors\encoder_decoder.py /^ def _init_auxiliary_head(self, auxiliary_head):$/;" m class:EncoderDecoder
+_init_decode_head .\mmseg\models\segmentors\cascade_encoder_decoder.py /^ def _init_decode_head(self, decode_head):$/;" m class:CascadeEncoderDecoder
+_init_decode_head .\mmseg\models\segmentors\encoder_decoder.py /^ def _init_decode_head(self, decode_head):$/;" m class:EncoderDecoder
+_init_inputs .\mmseg\models\decode_heads\decode_head.py /^ def _init_inputs(self, in_channels, in_index, input_transform):$/;" m class:BaseDecodeHead
+_init_weights .\mmseg\models\backbones\pvt.py /^ def _init_weights(self, m):$/;" m class:PyramidVisionTransformer
+_init_weights .\mmseg\models\backbones\pvt_dia.py /^ def _init_weights(self, m):$/;" m class:PyramidVisionTransformer
+_inner_forward .\mmseg\models\backbones\cgnet.py /^ def _inner_forward(x):$/;" f function:ContextGuidedBlock.forward
+_inner_forward .\mmseg\models\backbones\cgnet.py /^ def _inner_forward(x):$/;" f function:GlobalContextExtractor.forward
+_inner_forward .\mmseg\models\backbones\resnest.py /^ def _inner_forward(x):$/;" f function:Bottleneck.forward
+_inner_forward .\mmseg\models\backbones\resnet.py /^ def _inner_forward(x):$/;" f function:BasicBlock.forward
+_inner_forward .\mmseg\models\backbones\resnet.py /^ def _inner_forward(x):$/;" f function:Bottleneck.forward
+_inner_forward .\mmseg\models\utils\inverted_residual.py /^ def _inner_forward(x):$/;" f function:InvertedResidual.forward
+_inner_forward .\mmseg\models\utils\inverted_residual.py /^ def _inner_forward(x):$/;" f function:InvertedResidualV3.forward
+_key .\tools\convert_datasets\pascal_context.py /^_key = np.array(range(len(_mapping))).astype('uint8')$/;" v
+_logger .\mmseg\models\backbones\helpers.py /^_logger = logging.getLogger(__name__)$/;" v
+_logger .\mmseg\models\decode_heads\helpers.py /^_logger = logging.getLogger(__name__)$/;" v
+_make_branches .\mmseg\models\backbones\hrnet.py /^ def _make_branches(self, num_branches, block, num_blocks, num_channels):$/;" m class:HRModule
+_make_fuse_layers .\mmseg\models\backbones\hrnet.py /^ def _make_fuse_layers(self):$/;" m class:HRModule
+_make_layer .\mmseg\models\backbones\fast_scnn.py /^ def _make_layer(self,$/;" m class:GlobalFeatureExtractor
+_make_layer .\mmseg\models\backbones\hrnet.py /^ def _make_layer(self, block, inplanes, planes, blocks, stride=1):$/;" m class:HRNet
+_make_layer .\mmseg\models\backbones\mobilenet_v3.py /^ def _make_layer(self):$/;" m class:MobileNetV3
+_make_one_branch .\mmseg\models\backbones\hrnet.py /^ def _make_one_branch(self,$/;" m class:HRModule
+_make_stage .\mmseg\models\backbones\hrnet.py /^ def _make_stage(self, layer_config, in_channels, multiscale_output=True):$/;" m class:HRNet
+_make_stem_layer .\mmseg\models\backbones\resnet.py /^ def _make_stem_layer(self, in_channels, stem_channels):$/;" m class:ResNet
+_make_transition_layer .\mmseg\models\backbones\hrnet.py /^ def _make_transition_layer(self, num_channels_pre_layer,$/;" m class:HRNet
+_mapping .\tools\convert_datasets\pascal_context.py /^_mapping = np.sort($/;" v
+_no_grad_trunc_normal_ .\mmseg\models\backbones\layers\weight_init.py /^def _no_grad_trunc_normal_(tensor, mean, std, a, b):$/;" f
+_no_grad_trunc_normal_ .\mmseg\models\decode_heads\layers\weight_init.py /^def _no_grad_trunc_normal_(tensor, mean, std, a, b):$/;" f
+_ntuple .\mmseg\models\backbones\layers\helpers.py /^def _ntuple(n):$/;" f
+_ntuple .\mmseg\models\decode_heads\layers\helpers.py /^def _ntuple(n):$/;" f
+_pad_img .\mmseg\datasets\pipelines\transforms.py /^ def _pad_img(self, results):$/;" m class:Pad
+_pad_seg .\mmseg\datasets\pipelines\transforms.py /^ def _pad_seg(self, results):$/;" m class:Pad
+_papertype .\docs\stat.py /^ _papertype = [x for x in re.findall(r'\\[([A-Z]+)\\]', content)]$/;" v
+_parse_losses .\mmseg\models\segmentors\base.py /^ def _parse_losses(losses):$/;" m class:BaseSegmentor
+_random_scale .\mmseg\datasets\pipelines\transforms.py /^ def _random_scale(self, results):$/;" m class:Resize
+_resize_img .\mmseg\datasets\pipelines\transforms.py /^ def _resize_img(self, results):$/;" m class:Resize
+_resize_seg .\mmseg\datasets\pipelines\transforms.py /^ def _resize_seg(self, results):$/;" m class:Resize
+_segmentor_forward_train_test .\tests\test_models\test_segmentor.py /^def _segmentor_forward_train_test(segmentor):$/;" f
+_test_encoder_decoder_forward .\tests\test_models\test_forward.py /^def _test_encoder_decoder_forward(cfg_file):$/;" f
+_transform_inputs .\mmseg\models\decode_heads\decode_head.py /^ def _transform_inputs(self, inputs):$/;" m class:BaseDecodeHead
+abstractmethod .\mmseg\core\seg\sampler\base_pixel_sampler.py /^from abc import ABCMeta, abstractmethod$/;" i
+abstractmethod .\mmseg\models\decode_heads\cascade_decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+abstractmethod .\mmseg\models\decode_heads\decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+abstractmethod .\mmseg\models\segmentors\base.py /^from abc import ABCMeta, abstractmethod$/;" i
+accuracy .\mmseg\models\decode_heads\decode_head.py /^from ..losses import accuracy$/;" i
+accuracy .\mmseg\models\decode_heads\point_head.py /^from ..losses import accuracy$/;" i
+accuracy .\mmseg\models\losses\__init__.py /^from .accuracy import Accuracy, accuracy$/;" i
+accuracy .\mmseg\models\losses\accuracy.py /^def accuracy(pred, target, topk=1, thresh=None):$/;" f
+act_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ act_cfg=dict(type='ReLU'),$/;" v
+act_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^ act_cfg=dict(type='ReLU'),$/;" v
+act_cfg .\configs\_base_\models\lraspp_m-v3-d8.py /^ act_cfg=dict(type='ReLU'),$/;" v
+act_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^ act_cfg=dict(type='ReLU'),$/;" v
+act_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ act_cfg=dict(type='ReLU'),$/;" v
+act_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ act_cfg=dict(type='ReLU'),$/;" v
+add_lateral .\configs\_base_\models\encnet_r50-d8.py /^ add_lateral=False,$/;" v
+add_prefix .\mmseg\core\utils\__init__.py /^from .misc import add_prefix$/;" i
+add_prefix .\mmseg\core\utils\misc.py /^def add_prefix(inputs, prefix):$/;" f
+add_prefix .\mmseg\models\decode_heads\da_head.py /^from mmseg.core import add_prefix$/;" i
+add_prefix .\mmseg\models\segmentors\cascade_encoder_decoder.py /^from mmseg.core import add_prefix$/;" i
+add_prefix .\mmseg\models\segmentors\encoder_decoder.py /^from mmseg.core import add_prefix$/;" i
+ade_classes .\mmseg\core\evaluation\class_names.py /^def ade_classes():$/;" f
+ade_palette .\mmseg\core\evaluation\class_names.py /^def ade_palette():$/;" f
+after_train_epoch .\mmseg\core\evaluation\eval_hooks.py /^ def after_train_epoch(self, runner):$/;" m class:DistEvalHook
+after_train_epoch .\mmseg\core\evaluation\eval_hooks.py /^ def after_train_epoch(self, runner):$/;" m class:EvalHook
+after_train_iter .\mmseg\core\evaluation\eval_hooks.py /^ def after_train_iter(self, runner):$/;" m class:DistEvalHook
+after_train_iter .\mmseg\core\evaluation\eval_hooks.py /^ def after_train_iter(self, runner):$/;" m class:EvalHook
+aggregate .\mmseg\ops\encoding.py /^ def aggregate(assigment_weights, x, codewords):$/;" m class:Encoding
+align_corners .\configs\_base_\models\ann_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\apcnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\ccnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\danet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\deeplabv3_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\dmnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\dnl_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\emanet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\encnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\fast_scnn.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\fast_scnn.py /^ align_corners=False),$/;" v
+align_corners .\configs\_base_\models\fast_scnn.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\fcn_hr18.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\fcn_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\fcn_unet_s5-d16.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\fpn_r50.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\gcnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\lraspp_m-v3-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\nonlocal_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\ocrnet_hr18.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\ocrnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\pointrend_r50.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\psanet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\pspnet_r50-d8.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\pspnet_unet_s5-d16.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\setr_mla.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\setr_naive_pup.py /^ align_corners=False,$/;" v
+align_corners .\configs\_base_\models\upernet_r50.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False, $/;" v
+align_corners .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False,$/;" v
+align_corners .\configs\foodnet\ccnet_vit_768x768_80k.py /^ align_corners=False,$/;" v
+align_corners .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ align_corners=False,$/;" v
+align_corners .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ align_corners=False,$/;" v
+align_corners .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ align_corners=False,$/;" v
+align_corners .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ align_corners=False,$/;" v
+all_zeros .\tests\test_models\test_backbone.py /^def all_zeros(modules):$/;" f
+allpapers .\docs\stat.py /^allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats])$/;" v
+ann_dir .\configs\_base_\datasets\FoodSeg103.py /^ ann_dir='ann_dir\/test',$/;" v
+ann_dir .\configs\_base_\datasets\FoodSeg103.py /^ ann_dir='ann_dir\/train',$/;" v
+ann_dir .\configs\_base_\datasets\ade20k.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir .\configs\_base_\datasets\ade20k.py /^ ann_dir='annotations\/validation',$/;" v
+ann_dir .\configs\_base_\datasets\chase_db1.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir .\configs\_base_\datasets\chase_db1.py /^ ann_dir='annotations\/validation',$/;" v
+ann_dir .\configs\_base_\datasets\cityscapes.py /^ ann_dir='gtFine\/train',$/;" v
+ann_dir .\configs\_base_\datasets\cityscapes.py /^ ann_dir='gtFine\/val',$/;" v
+ann_dir .\configs\_base_\datasets\drive.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir .\configs\_base_\datasets\drive.py /^ ann_dir='annotations\/validation',$/;" v
+ann_dir .\configs\_base_\datasets\hrf.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir .\configs\_base_\datasets\hrf.py /^ ann_dir='annotations\/validation',$/;" v
+ann_dir .\configs\_base_\datasets\pascal_context.py /^ ann_dir='SegmentationClassContext',$/;" v
+ann_dir .\configs\_base_\datasets\pascal_voc12.py /^ ann_dir='SegmentationClass',$/;" v
+ann_dir .\configs\_base_\datasets\pascal_voc12_aug.py /^ ann_dir=['SegmentationClass', 'SegmentationClassAug'],$/;" v
+ann_dir .\configs\_base_\datasets\stare.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir .\configs\_base_\datasets\stare.py /^ ann_dir='annotations\/validation',$/;" v
+ann_dir .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ ann_dir='gtFine\/train',$/;" v
+ann_dir .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ ann_dir='gtFine\/val',$/;" v
+arch .\configs\_base_\models\lraspp_m-v3-d8.py /^ arch='large',$/;" v
+arch .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ arch='small',$/;" v
+arch .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ arch='small',$/;" v
+arch_settings .\mmseg\models\backbones\mobilenet_v2.py /^ arch_settings = [[1, 16, 1], [6, 24, 2], [6, 32, 3], [6, 64, 4],$/;" v class:MobileNetV2
+arch_settings .\mmseg\models\backbones\mobilenet_v3.py /^ arch_settings = {$/;" v class:MobileNetV3
+arch_settings .\mmseg\models\backbones\resnest.py /^ arch_settings = {$/;" v class:ResNeSt
+arch_settings .\mmseg\models\backbones\resnet.py /^ arch_settings = {$/;" v class:ResNet
+arch_settings .\mmseg\models\backbones\resnext.py /^ arch_settings = {$/;" v class:ResNeXt
+argparse .\.dev\gather_models.py /^import argparse$/;" i
+argparse .\.dev\upload_modelzoo.py /^import argparse$/;" i
+argparse .\tools\benchmark.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\chase_db1.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\cityscapes.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\drive.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\hrf.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\pascal_context.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\stare.py /^import argparse$/;" i
+argparse .\tools\convert_datasets\voc_aug.py /^import argparse$/;" i
+argparse .\tools\get_flops.py /^import argparse$/;" i
+argparse .\tools\print_config.py /^import argparse$/;" i
+argparse .\tools\publish_model.py /^import argparse$/;" i
+argparse .\tools\pytorch2onnx.py /^import argparse$/;" i
+argparse .\tools\test.py /^import argparse$/;" i
+argparse .\tools\train.py /^import argparse$/;" i
+args .\tools\pytorch2onnx.py /^ args = parse_args()$/;" v
+aug_test .\mmseg\models\segmentors\base.py /^ def aug_test(self, imgs, img_metas, **kwargs):$/;" m class:BaseSegmentor
+aug_test .\mmseg\models\segmentors\encoder_decoder.py /^ def aug_test(self, imgs, img_metas, rescale=True):$/;" m class:EncoderDecoder
+author .\docs\conf.py /^author = 'MMSegmentation Authors'$/;" v
+auto_fp16 .\mmseg\models\decode_heads\decode_head.py /^from mmcv.runner import auto_fp16, force_fp32$/;" i
+auto_fp16 .\mmseg\models\segmentors\base.py /^from mmcv.runner import auto_fp16$/;" i
+autodoc_mock_imports .\docs\conf.py /^autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version']$/;" v
+auxiliary_head .\configs\_base_\models\ann_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\apcnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\ccnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\danet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\deeplabv3_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\dmnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\dnl_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\emanet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\encnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\fast_scnn.py /^ auxiliary_head=[$/;" v
+auxiliary_head .\configs\_base_\models\fcn_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\fcn_unet_s5-d16.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\gcnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\nonlocal_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\psanet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\pspnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\pspnet_unet_s5-d16.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\_base_\models\upernet_r50.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^ auxiliary_head=dict(num_classes=150))$/;" v
+auxiliary_head .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ auxiliary_head=[$/;" v
+auxiliary_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ auxiliary_head=[$/;" v
+auxiliary_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ auxiliary_head=[$/;" v
+auxiliary_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ auxiliary_head=[$/;" v
+auxiliary_head .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ auxiliary_head=[$/;" v
+auxiliary_head .\configs\foodnet\ccnet_vit_768x768_80k.py /^ auxiliary_head=dict($/;" v
+auxiliary_head .\configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+auxiliary_head .\configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(num_classes=150))$/;" v
+auxiliary_head .\configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^ auxiliary_head=dict(num_classes=150))$/;" v
+auxiliary_head .\configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+auxiliary_head .\configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+auxiliary_head .\configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+avg_down_stride .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+avg_down_stride .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+backbone .\configs\_base_\models\ann_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\apcnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\ccnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\cgnet.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\danet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\deeplabv3_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\dmnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\dnl_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\emanet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\encnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\fast_scnn.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\fcn_hr18.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\fcn_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\fcn_unet_s5-d16.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\fpn_r50.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\gcnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\lraspp_m-v3-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\nonlocal_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\ocrnet_hr18.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\ocrnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\pointrend_r50.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\psanet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\pspnet_r50-d8.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\pspnet_unet_s5-d16.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\setr_mla.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\setr_naive_pup.py /^ backbone=dict($/;" v
+backbone .\configs\_base_\models\upernet_r50.py /^ backbone=dict($/;" v
+backbone .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^ backbone=dict(stem_channels=128),$/;" v
+backbone .\configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ backbone=dict($/;" v
+backbone .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ backbone=dict($/;" v
+backbone .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ backbone=dict($/;" v
+backbone .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ backbone=dict($/;" v
+backbone .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ backbone=dict($/;" v
+backbone .\configs\foodnet\ccnet_vit_768x768_80k.py /^ backbone=dict($/;" v
+backbone .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^ backbone=dict(type='ResNet'), $/;" v
+backbone .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+backbone .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+backbone .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+backbone .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+backbone .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+backbone .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+base_channels .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ base_channels=64,$/;" v
+base_channels .\configs\_base_\models\fcn_unet_s5-d16.py /^ base_channels=64,$/;" v
+base_channels .\configs\_base_\models\pspnet_unet_s5-d16.py /^ base_channels=64,$/;" v
+binary_cross_entropy .\mmseg\models\losses\__init__.py /^from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy,$/;" i
+binary_cross_entropy .\mmseg\models\losses\cross_entropy_loss.py /^def binary_cross_entropy(pred,$/;" f
+block .\configs\_base_\models\fcn_hr18.py /^ block='BASIC',$/;" v
+block .\configs\_base_\models\fcn_hr18.py /^ block='BOTTLENECK',$/;" v
+block .\configs\_base_\models\ocrnet_hr18.py /^ block='BASIC',$/;" v
+block .\configs\_base_\models\ocrnet_hr18.py /^ block='BOTTLENECK',$/;" v
+blocks_dict .\mmseg\models\backbones\hrnet.py /^ blocks_dict = {'BASIC': BasicBlock, 'BOTTLENECK': Bottleneck}$/;" v class:HRNet
+brightness .\mmseg\datasets\pipelines\transforms.py /^ def brightness(self, img):$/;" m class:PhotoMetricDistortion
+build .\mmseg\models\builder.py /^def build(cfg, registry, default_args=None):$/;" f
+build_activation_layer .\mmseg\models\backbones\unet.py /^from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,$/;" i
+build_activation_layer .\mmseg\models\decode_heads\dm_head.py /^from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer$/;" i
+build_backbone .\mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+build_backbone .\mmseg\models\builder.py /^def build_backbone(cfg):$/;" f
+build_conv_layer .\mmseg\models\backbones\cgnet.py /^from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer,$/;" i
+build_conv_layer .\mmseg\models\backbones\hrnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init,$/;" i
+build_conv_layer .\mmseg\models\backbones\resnest.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_conv_layer .\mmseg\models\backbones\resnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer,$/;" i
+build_conv_layer .\mmseg\models\backbones\resnext.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_conv_layer .\mmseg\models\utils\res_layer.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_dataloader .\mmseg\apis\train.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataloader .\mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+build_dataloader .\mmseg\datasets\builder.py /^def build_dataloader(dataset,$/;" f
+build_dataloader .\tests\test_data\test_dataset_builder.py /^from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,$/;" i
+build_dataloader .\tools\benchmark.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataloader .\tools\test.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset .\mmseg\apis\train.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset .\mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+build_dataset .\mmseg\datasets\builder.py /^def build_dataset(cfg, default_args=None):$/;" f
+build_dataset .\tools\benchmark.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset .\tools\test.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset .\tools\train.py /^from mmseg.datasets import build_dataset$/;" i
+build_from_cfg .\mmseg\core\seg\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+build_from_cfg .\mmseg\datasets\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+build_from_cfg .\mmseg\datasets\pipelines\compose.py /^from mmcv.utils import build_from_cfg$/;" i
+build_from_cfg .\mmseg\models\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+build_from_cfg .\tests\test_data\test_transform.py /^from mmcv.utils import build_from_cfg$/;" i
+build_from_cfg .\tests\test_data\test_tta.py /^from mmcv.utils import build_from_cfg$/;" i
+build_head .\mmseg\models\builder.py /^def build_head(cfg):$/;" f
+build_loss .\mmseg\models\builder.py /^def build_loss(cfg):$/;" f
+build_loss .\mmseg\models\decode_heads\decode_head.py /^from ..builder import build_loss$/;" i
+build_loss .\mmseg\models\decode_heads\enc_head.py /^from ..builder import HEADS, build_loss$/;" i
+build_loss .\tests\test_models\test_losses.py /^ from mmseg.models import build_loss$/;" i
+build_neck .\mmseg\models\builder.py /^def build_neck(cfg):$/;" f
+build_norm_layer .\mmseg\models\backbones\cgnet.py /^from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer,$/;" i
+build_norm_layer .\mmseg\models\backbones\hrnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init,$/;" i
+build_norm_layer .\mmseg\models\backbones\resnest.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\backbones\resnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer,$/;" i
+build_norm_layer .\mmseg\models\backbones\resnext.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\backbones\vit.py /^from mmcv.cnn import build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\backbones\vit_mla.py /^from mmcv.cnn import build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\decode_heads\dm_head.py /^from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\decode_heads\enc_head.py /^from mmcv.cnn import ConvModule, build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from mmcv.cnn import build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\decode_heads\vit_mla_head.py /^from mmcv.cnn import build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\decode_heads\vit_up_head.py /^from mmcv.cnn import build_norm_layer$/;" i
+build_norm_layer .\mmseg\models\utils\res_layer.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_optimizer .\mmseg\apis\train.py /^from mmcv.runner import build_optimizer, build_runner$/;" i
+build_pixel_sampler .\mmseg\core\seg\__init__.py /^from .builder import build_pixel_sampler$/;" i
+build_pixel_sampler .\mmseg\core\seg\builder.py /^def build_pixel_sampler(cfg, **default_args):$/;" f
+build_pixel_sampler .\mmseg\models\decode_heads\decode_head.py /^from mmseg.core import build_pixel_sampler$/;" i
+build_plugin_layer .\mmseg\models\backbones\resnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer,$/;" i
+build_project .\mmseg\models\utils\self_attention_block.py /^ def build_project(self, in_channels, channels, num_convs, use_conv_module,$/;" m class:SelfAttentionBlock
+build_runner .\mmseg\apis\train.py /^from mmcv.runner import build_optimizer, build_runner$/;" i
+build_segmentor .\mmseg\apis\inference.py /^from mmseg.models import build_segmentor$/;" i
+build_segmentor .\mmseg\models\builder.py /^def build_segmentor(cfg, train_cfg=None, test_cfg=None):$/;" f
+build_segmentor .\tests\test_config.py /^from mmseg.models import build_segmentor$/;" i
+build_segmentor .\tests\test_models\test_forward.py /^ from mmseg.models import build_segmentor$/;" i
+build_segmentor .\tests\test_models\test_segmentor.py /^from mmseg.models import BACKBONES, HEADS, build_segmentor$/;" i
+build_segmentor .\tools\benchmark.py /^from mmseg.models import build_segmentor$/;" i
+build_segmentor .\tools\get_flops.py /^from mmseg.models import build_segmentor$/;" i
+build_segmentor .\tools\pytorch2onnx.py /^from mmseg.models import build_segmentor$/;" i
+build_segmentor .\tools\test.py /^from mmseg.models import build_segmentor$/;" i
+build_segmentor .\tools\train.py /^from mmseg.models import build_segmentor$/;" i
+build_upsample_layer .\mmseg\models\utils\up_conv_block.py /^from mmcv.cnn import ConvModule, build_upsample_layer$/;" i
+builder .\mmseg\models\segmentors\cascade_encoder_decoder.py /^from .. import builder$/;" i
+builder .\mmseg\models\segmentors\encoder_decoder.py /^from .. import builder$/;" i
+builder_inited_handler .\docs\conf.py /^def builder_inited_handler(app):$/;" f
+by_epoch .\configs\_base_\schedules\schedule_80k_step.py /^ by_epoch=False)$/;" v
+by_epoch .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ by_epoch=False)$/;" v
+c .\mmseg\models\losses\lovasz_loss.py /^ fg = (labels == c).float() # foreground for class c$/;" c function:lovasz_softmax_flat
+c1_channels .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ c1_channels=48,$/;" v
+c1_channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_in_channels .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ c1_in_channels=256,$/;" v
+c1_in_channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+c1_in_channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+c1_in_channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+c1_in_channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+calculate_uncertainty .\mmseg\models\decode_heads\point_head.py /^def calculate_uncertainty(seg_logits):$/;" f
+cam_cls_seg .\mmseg\models\decode_heads\da_head.py /^ def cam_cls_seg(self, feat):$/;" m class:DAHead
+cfg .\tools\pytorch2onnx.py /^ cfg = mmcv.Config.fromfile(args.config)$/;" v
+channels .\configs\_base_\models\ann_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\ann_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\apcnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\apcnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\ccnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\ccnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\cgnet.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\danet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\danet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\deeplabv3_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\deeplabv3_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ channels=16,$/;" v
+channels .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ channels=64,$/;" v
+channels .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\dmnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\dmnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\dnl_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\dnl_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\emanet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\encnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\encnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\fast_scnn.py /^ channels=32,$/;" v
+channels .\configs\_base_\models\fast_scnn.py /^ channels=128,$/;" v
+channels .\configs\_base_\models\fcn_hr18.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+channels .\configs\_base_\models\fcn_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\fcn_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\fcn_unet_s5-d16.py /^ channels=64,$/;" v
+channels .\configs\_base_\models\fpn_r50.py /^ channels=128,$/;" v
+channels .\configs\_base_\models\gcnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\gcnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\lraspp_m-v3-d8.py /^ channels=128,$/;" v
+channels .\configs\_base_\models\nonlocal_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\nonlocal_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\ocrnet_hr18.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\ocrnet_hr18.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+channels .\configs\_base_\models\ocrnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\ocrnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\pointrend_r50.py /^ channels=128,$/;" v
+channels .\configs\_base_\models\pointrend_r50.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\psanet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\psanet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\pspnet_r50-d8.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\pspnet_r50-d8.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\pspnet_unet_s5-d16.py /^ channels=16,$/;" v
+channels .\configs\_base_\models\pspnet_unet_s5-d16.py /^ channels=64,$/;" v
+channels .\configs\_base_\models\setr_mla.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\setr_naive_pup.py /^ channels=512,$/;" v
+channels .\configs\_base_\models\upernet_r50.py /^ channels=256,$/;" v
+channels .\configs\_base_\models\upernet_r50.py /^ channels=512,$/;" v
+channels .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ channels=512,$/;" v
+channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ channels=512,$/;" v
+channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ channels=512,$/;" v
+channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ channels=512,$/;" v
+channels .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ channels=512,$/;" v
+channels .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ channels=512,$/;" v
+channels .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ channels=512,$/;" v
+channels .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+channels .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ channels=128,$/;" v
+channels .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ channels=256,$/;" v
+channels .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+channels .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+check_norm_state .\tests\test_models\test_backbone.py /^def check_norm_state(modules, train_state):$/;" f
+check_norm_state .\tests\test_models\test_unet.py /^def check_norm_state(modules, train_state):$/;" f
+checkpoint_config .\configs\_base_\schedules\schedule_160k.py /^checkpoint_config = dict(by_epoch=False, interval=16000)$/;" v
+checkpoint_config .\configs\_base_\schedules\schedule_20k.py /^checkpoint_config = dict(by_epoch=False, interval=2000)$/;" v
+checkpoint_config .\configs\_base_\schedules\schedule_40k.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\_base_\schedules\schedule_80k.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\_base_\schedules\schedule_80k_step.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\foodnet\fpn_r50_512x1024_80k.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+checkpoint_config .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+cityscapes_classes .\mmseg\core\evaluation\class_names.py /^def cityscapes_classes():$/;" f
+cityscapes_palette .\mmseg\core\evaluation\class_names.py /^def cityscapes_palette():$/;" f
+cityscapesscripts .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+cityscapesscripts .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+cityscapesscripts .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+ckpts .\docs\stat.py /^ ckpts = set(x.lower().strip()$/;" v
+class_pred .\mmseg\models\losses\lovasz_loss.py /^ class_pred = probs[:, 0]$/;" v class:lovasz_softmax_flat.c
+class_pred .\mmseg\models\losses\lovasz_loss.py /^ class_pred = probs[:, c]$/;" v class:lovasz_softmax_flat.c
+class_weight .\configs\_base_\models\cgnet.py /^ class_weight=[$/;" v
+cls_seg .\mmseg\models\decode_heads\decode_head.py /^ def cls_seg(self, feat):$/;" m class:BaseDecodeHead
+cls_seg .\mmseg\models\decode_heads\point_head.py /^ def cls_seg(self, feat):$/;" m class:PointHead
+coarse_pred_each_layer .\configs\_base_\models\pointrend_r50.py /^ coarse_pred_each_layer=True,$/;" v
+coarse_pred_each_layer .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ coarse_pred_each_layer=True,$/;" v
+collate .\mmseg\apis\inference.py /^from mmcv.parallel import collate, scatter$/;" i
+collate .\mmseg\datasets\builder.py /^from mmcv.parallel import collate$/;" i
+collect_base_env .\mmseg\utils\collect_env.py /^from mmcv.utils import collect_env as collect_base_env$/;" i
+collect_env .\mmseg\utils\__init__.py /^from .collect_env import collect_env$/;" i
+collect_env .\mmseg\utils\collect_env.py /^def collect_env():$/;" f
+collect_env .\tools\train.py /^from mmseg.utils import collect_env, get_root_logger$/;" i
+collect_results_cpu .\mmseg\apis\test.py /^def collect_results_cpu(result_part, size, tmpdir=None):$/;" f
+collect_results_gpu .\mmseg\apis\test.py /^def collect_results_gpu(result_part, size):$/;" f
+collections .\mmseg\datasets\pipelines\compose.py /^import collections$/;" i
+compact .\configs\_base_\models\psanet_r50-d8.py /^ compact=False,$/;" v
+concat_input .\configs\_base_\models\ann_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\apcnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\ccnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\cgnet.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\danet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\deeplabv3_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\dmnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\dnl_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\emanet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\encnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\fast_scnn.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\fast_scnn.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\fcn_hr18.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\fcn_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\fcn_r50-d8.py /^ concat_input=True,$/;" v
+concat_input .\configs\_base_\models\fcn_unet_s5-d16.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\gcnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\nonlocal_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\ocrnet_hr18.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\ocrnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\psanet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\pspnet_r50-d8.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\pspnet_unet_s5-d16.py /^ concat_input=False,$/;" v
+concat_input .\configs\_base_\models\upernet_r50.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ concat_input=False,$/;" v
+concat_input .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ concat_input=False,$/;" v
+constant_init .\mmseg\models\backbones\fast_scnn.py /^from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init,$/;" i
+constant_init .\mmseg\models\backbones\hrnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init,$/;" i
+constant_init .\mmseg\models\backbones\mobilenet_v2.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+constant_init .\mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+constant_init .\mmseg\models\utils\self_attention_block.py /^from mmcv.cnn import ConvModule, constant_init$/;" i
+container_abcs .\mmseg\models\backbones\layers\helpers.py /^from torch._six import container_abcs$/;" i
+container_abcs .\mmseg\models\decode_heads\layers\helpers.py /^from torch._six import container_abcs$/;" i
+content .\docs\stat.py /^ content = content_file.read()$/;" v
+contract_dilation .\configs\_base_\models\ann_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\apcnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\ccnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\danet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\deeplabv3_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\dmnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\dnl_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\emanet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\encnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\fcn_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\fpn_r50.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\gcnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\nonlocal_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\ocrnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\pointrend_r50.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\psanet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\pspnet_r50-d8.py /^ contract_dilation=True),$/;" v
+contract_dilation .\configs\_base_\models\upernet_r50.py /^ contract_dilation=True),$/;" v
+contrast .\mmseg\datasets\pipelines\transforms.py /^ def contrast(self, img):$/;" m class:PhotoMetricDistortion
+conv_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ conv_cfg=None,$/;" v
+conv_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^ conv_cfg=None,$/;" v
+conv_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^ conv_cfg=None,$/;" v
+convert .\mmseg\datasets\pipelines\transforms.py /^ def convert(self, img, alpha=1, beta=0):$/;" m class:PhotoMetricDistortion
+convert_json_to_label .\tools\convert_datasets\cityscapes.py /^def convert_json_to_label(json_file):$/;" f
+convert_mat .\tools\convert_datasets\voc_aug.py /^def convert_mat(mat_file, in_dir, out_dir):$/;" f
+copy .\mmseg\datasets\builder.py /^import copy$/;" i
+copy .\tests\test_data\test_loading.py /^import copy$/;" i
+copy .\tests\test_data\test_transform.py /^import copy$/;" i
+copy .\tests\test_models\test_forward.py /^import copy$/;" i
+copy .\tools\train.py /^import copy$/;" i
+copyright .\docs\conf.py /^copyright = '2020-2020, OpenMMLab'$/;" v
+countstr .\docs\stat.py /^countstr = '\\n'.join($/;" v
+cp .\mmseg\models\backbones\cgnet.py /^import torch.utils.checkpoint as cp$/;" i
+cp .\mmseg\models\backbones\resnest.py /^import torch.utils.checkpoint as cp$/;" i
+cp .\mmseg\models\backbones\resnet.py /^import torch.utils.checkpoint as cp$/;" i
+cp .\mmseg\models\backbones\unet.py /^import torch.utils.checkpoint as cp$/;" i
+cp .\mmseg\models\utils\inverted_residual.py /^from torch.utils import checkpoint as cp$/;" i
+crop .\mmseg\datasets\pipelines\transforms.py /^ def crop(self, img, crop_bbox):$/;" m class:RandomCrop
+crop_size .\configs\_base_\datasets\FoodSeg103.py /^crop_size = (512, 1024)$/;" v
+crop_size .\configs\_base_\datasets\Recipe1M_768x768.py /^crop_size = (768, 768)$/;" v
+crop_size .\configs\_base_\datasets\ade20k.py /^crop_size = (512, 512)$/;" v
+crop_size .\configs\_base_\datasets\chase_db1.py /^crop_size = (128, 128)$/;" v
+crop_size .\configs\_base_\datasets\cityscapes.py /^crop_size = (512, 1024)$/;" v
+crop_size .\configs\_base_\datasets\cityscapes_769x769.py /^crop_size = (769, 769)$/;" v
+crop_size .\configs\_base_\datasets\drive.py /^crop_size = (64, 64)$/;" v
+crop_size .\configs\_base_\datasets\hrf.py /^crop_size = (256, 256)$/;" v
+crop_size .\configs\_base_\datasets\pascal_context.py /^crop_size = (480, 480)$/;" v
+crop_size .\configs\_base_\datasets\pascal_voc12.py /^crop_size = (512, 512)$/;" v
+crop_size .\configs\_base_\datasets\stare.py /^crop_size = (128, 128)$/;" v
+crop_size .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^crop_size = (512, 1024)$/;" v
+crop_size .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^crop_size = (680, 680)$/;" v
+crop_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^crop_size = (768, 768)$/;" v
+crop_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^crop_size = (768, 768)$/;" v
+crop_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^crop_size = (768, 768)$/;" v
+crop_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^crop_size = (768, 768)$/;" v
+crop_size .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^crop_size = (768, 768)$/;" v
+crop_size .\configs\foodnet\ccnet_vit_768x768_80k.py /^crop_size = (768, 768)$/;" v
+cross_entropy .\mmseg\models\losses\cross_entropy_loss.py /^def cross_entropy(pred,$/;" f
+cudnn_benchmark .\configs\_base_\default_runtime.py /^cudnn_benchmark = True$/;" v
+custom_keys .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.))))$/;" v
+cv2 .\tools\convert_datasets\drive.py /^import cv2$/;" i
+data .\configs\_base_\datasets\FoodSeg103.py /^data = dict($/;" v
+data .\configs\_base_\datasets\Recipe1M_768x768.py /^data = dict($/;" v
+data .\configs\_base_\datasets\ade20k.py /^data = dict($/;" v
+data .\configs\_base_\datasets\chase_db1.py /^data = dict($/;" v
+data .\configs\_base_\datasets\cityscapes.py /^data = dict($/;" v
+data .\configs\_base_\datasets\cityscapes_769x769.py /^data = dict($/;" v
+data .\configs\_base_\datasets\drive.py /^data = dict($/;" v
+data .\configs\_base_\datasets\hrf.py /^data = dict($/;" v
+data .\configs\_base_\datasets\pascal_context.py /^data = dict($/;" v
+data .\configs\_base_\datasets\pascal_voc12.py /^data = dict($/;" v
+data .\configs\_base_\datasets\pascal_voc12_aug.py /^data = dict($/;" v
+data .\configs\_base_\datasets\stare.py /^data = dict($/;" v
+data .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^data = dict($/;" v
+data .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^data = dict($/;" v
+data .\configs\fastscnn\fast_scnn_4x8_80k_lr0.12_cityscapes.py /^data = dict(samples_per_gpu=2, workers_per_gpu=4)$/;" v
+data .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^data = dict(samples_per_gpu=1)$/;" v
+data .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^data = dict(samples_per_gpu=1)$/;" v
+data .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^data = dict(samples_per_gpu=1)$/;" v
+data .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^data = dict(samples_per_gpu=1)$/;" v
+data .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^data = dict(samples_per_gpu=1)$/;" v
+data .\configs\foodnet\ccnet_vit_768x768_80k.py /^data = dict(samples_per_gpu=1)$/;" v
+data .\configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^data = dict(samples_per_gpu=4, workers_per_gpu=4)$/;" v
+data .\configs\mobilenet_v3\lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py /^data = dict(samples_per_gpu=4, workers_per_gpu=4)$/;" v
+data_root .\configs\_base_\datasets\FoodSeg103.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\FoodSeg103.py /^data_root = '.\/data\/Recipe1M\/'$/;" v
+data_root .\configs\_base_\datasets\ade20k.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\ade20k.py /^data_root = 'data\/ade\/ADEChallengeData2016'$/;" v
+data_root .\configs\_base_\datasets\chase_db1.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\chase_db1.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\chase_db1.py /^data_root = 'data\/CHASE_DB1'$/;" v
+data_root .\configs\_base_\datasets\cityscapes.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\cityscapes.py /^data_root = 'data\/cityscapes\/'$/;" v
+data_root .\configs\_base_\datasets\drive.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\drive.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\drive.py /^data_root = 'data\/DRIVE'$/;" v
+data_root .\configs\_base_\datasets\hrf.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\hrf.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\hrf.py /^data_root = 'data\/HRF'$/;" v
+data_root .\configs\_base_\datasets\pascal_context.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\pascal_context.py /^data_root = 'data\/VOCdevkit\/VOC2010\/'$/;" v
+data_root .\configs\_base_\datasets\pascal_voc12.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\pascal_voc12.py /^data_root = 'data\/VOCdevkit\/VOC2012'$/;" v
+data_root .\configs\_base_\datasets\stare.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\stare.py /^ data_root=data_root,$/;" v
+data_root .\configs\_base_\datasets\stare.py /^data_root = 'data\/STARE'$/;" v
+data_root .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ data_root=data_root,$/;" v
+data_root .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^data_root = 'data\/cityscapes\/'$/;" v
+dataset .\configs\_base_\datasets\chase_db1.py /^ dataset=dict($/;" v
+dataset .\configs\_base_\datasets\drive.py /^ dataset=dict($/;" v
+dataset .\configs\_base_\datasets\hrf.py /^ dataset=dict($/;" v
+dataset .\configs\_base_\datasets\stare.py /^ dataset=dict($/;" v
+dataset_aliases .\mmseg\core\evaluation\class_names.py /^dataset_aliases = {$/;" v
+dataset_type .\configs\_base_\datasets\FoodSeg103.py /^dataset_type = 'CustomDataset'$/;" v
+dataset_type .\configs\_base_\datasets\ade20k.py /^dataset_type = 'ADE20KDataset'$/;" v
+dataset_type .\configs\_base_\datasets\chase_db1.py /^dataset_type = 'ChaseDB1Dataset'$/;" v
+dataset_type .\configs\_base_\datasets\cityscapes.py /^dataset_type = 'CityscapesDataset'$/;" v
+dataset_type .\configs\_base_\datasets\drive.py /^dataset_type = 'DRIVEDataset'$/;" v
+dataset_type .\configs\_base_\datasets\hrf.py /^dataset_type = 'HRFDataset'$/;" v
+dataset_type .\configs\_base_\datasets\pascal_context.py /^dataset_type = 'PascalContextDataset'$/;" v
+dataset_type .\configs\_base_\datasets\pascal_voc12.py /^dataset_type = 'PascalVOCDataset'$/;" v
+dataset_type .\configs\_base_\datasets\stare.py /^dataset_type = 'STAREDataset'$/;" v
+dataset_type .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^dataset_type = 'CityscapesDataset'$/;" v
+dec_dilations .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dec_dilations=(1, 1, 1, 1),$/;" v
+dec_dilations .\configs\_base_\models\fcn_unet_s5-d16.py /^ dec_dilations=(1, 1, 1, 1),$/;" v
+dec_dilations .\configs\_base_\models\pspnet_unet_s5-d16.py /^ dec_dilations=(1, 1, 1, 1),$/;" v
+dec_num_convs .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dec_num_convs=(2, 2, 2, 2),$/;" v
+dec_num_convs .\configs\_base_\models\fcn_unet_s5-d16.py /^ dec_num_convs=(2, 2, 2, 2),$/;" v
+dec_num_convs .\configs\_base_\models\pspnet_unet_s5-d16.py /^ dec_num_convs=(2, 2, 2, 2),$/;" v
+decode_head .\configs\_base_\models\ann_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\apcnet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\ccnet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\cgnet.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\danet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\deeplabv3_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\dmnet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\dnl_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\emanet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\encnet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\fast_scnn.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\fcn_hr18.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\fcn_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\fcn_unet_s5-d16.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\fpn_r50.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\gcnet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\lraspp_m-v3-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\nonlocal_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\ocrnet_hr18.py /^ decode_head=[$/;" v
+decode_head .\configs\_base_\models\ocrnet_r50-d8.py /^ decode_head=[$/;" v
+decode_head .\configs\_base_\models\pointrend_r50.py /^ decode_head=[$/;" v
+decode_head .\configs\_base_\models\psanet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\pspnet_r50-d8.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\pspnet_unet_s5-d16.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\setr_mla.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\setr_naive_pup.py /^ decode_head=dict($/;" v
+decode_head .\configs\_base_\models\upernet_r50.py /^ decode_head=dict($/;" v
+decode_head .\configs\ann\ann_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\ann\ann_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\ann\ann_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\ann\ann_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\apcnet\apcnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\apcnet\apcnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\ccnet\ccnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\ccnet\ccnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\ccnet\ccnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\ccnet\ccnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\danet\danet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\danet\danet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\danet\danet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\danet\danet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\dmnet\dmnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\dmnet\dmnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\dnlnet\dnl_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\dnlnet\dnl_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\encnet\encnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\encnet\encnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\encnet\encnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\encnet\encnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150),$/;" v
+decode_head .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+decode_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+decode_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+decode_head .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+decode_head .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ decode_head=dict($/;" v
+decode_head .\configs\foodnet\ccnet_vit_768x768_80k.py /^ decode_head=dict($/;" v
+decode_head .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^ decode_head=dict(num_classes=104))$/;" v
+decode_head .\configs\gcnet\gcnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\gcnet\gcnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\gcnet\gcnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\gcnet\gcnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+decode_head .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ decode_head=dict($/;" v
+decode_head .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ decode_head=dict($/;" v
+decode_head .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320),$/;" v
+decode_head .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320),$/;" v
+decode_head .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320, c1_in_channels=24),$/;" v
+decode_head .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320, c1_in_channels=24),$/;" v
+decode_head .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320),$/;" v
+decode_head .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320),$/;" v
+decode_head .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320),$/;" v
+decode_head .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320),$/;" v
+decode_head .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\nonlocal_net\nonlocal_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\nonlocal_net\nonlocal_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\nonlocal_net\nonlocal_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\nonlocal_net\nonlocal_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ decode_head=[$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ decode_head=[$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ decode_head=[$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ decode_head=[$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ decode_head=[$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ decode_head=[$/;" v
+decode_head .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ decode_head=[$/;" v
+decode_head .\configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(mask_size=(66, 66), num_classes=150),$/;" v
+decode_head .\configs\psanet\psanet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\psanet\psanet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(mask_size=(66, 66), num_classes=150),$/;" v
+decode_head .\configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\upernet\upernet_r50_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\upernet\upernet_r50_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\upernet\upernet_r50_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+decode_head .\configs\upernet\upernet_r50_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+decode_head .\configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+decode_head .\configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+default_cfgs .\mmseg\models\backbones\vit.py /^default_cfgs = {$/;" v
+default_cfgs .\mmseg\models\backbones\vit_mla.py /^default_cfgs = {$/;" v
+deprecated_api_warning .\mmseg\datasets\pipelines\transforms.py /^from mmcv.utils import deprecated_api_warning, is_tuple_of$/;" i
+depth .\configs\_base_\models\ann_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\apcnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\ccnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\danet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\deeplabv3_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\dmnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\dnl_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\emanet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\encnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\fcn_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\fpn_r50.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\gcnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\nonlocal_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\ocrnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\pointrend_r50.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\psanet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\pspnet_r50-d8.py /^ depth=50,$/;" v
+depth .\configs\_base_\models\setr_mla.py /^ depth=24,$/;" v
+depth .\configs\_base_\models\setr_naive_pup.py /^ depth=24,$/;" v
+depth .\configs\_base_\models\upernet_r50.py /^ depth=50,$/;" v
+depth .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ depth=101,$/;" v
+depth .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ depth=101,$/;" v
+depth .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ depth=101,$/;" v
+depth .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ depth=101,$/;" v
+depth .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ depth=12,$/;" v
+depth .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ depth=12,$/;" v
+depth .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ depth=12,$/;" v
+depth .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ depth=12,$/;" v
+depth .\configs\foodnet\ccnet_vit_768x768_80k.py /^ depth=12,$/;" v
+digit_version .\mmseg\__init__.py /^def digit_version(version_str):$/;" f
+dilations .\configs\_base_\models\ann_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\apcnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\ccnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\cgnet.py /^ dilations=(2, 4),$/;" v
+dilations .\configs\_base_\models\danet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\deeplabv3_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\deeplabv3_r50-d8.py /^ dilations=(1, 12, 24, 36),$/;" v
+dilations .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dilations=(1, 12, 24, 36),$/;" v
+dilations .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ dilations=(1, 12, 24, 36),$/;" v
+dilations .\configs\_base_\models\dmnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\dnl_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\emanet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\encnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\fcn_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\fpn_r50.py /^ dilations=(1, 1, 1, 1),$/;" v
+dilations .\configs\_base_\models\gcnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\nonlocal_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\ocrnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\pointrend_r50.py /^ dilations=(1, 1, 1, 1),$/;" v
+dilations .\configs\_base_\models\psanet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\pspnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations .\configs\_base_\models\upernet_r50.py /^ dilations=(1, 1, 1, 1),$/;" v
+dilations .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+dilations .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+dilations .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+dilations .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+dilations .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dilations .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+dirname .\tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+dirname .\tests\test_models\test_forward.py /^from os.path import dirname, exists, join$/;" i
+dist .\mmseg\apis\test.py /^import torch.distributed as dist$/;" i
+dist .\mmseg\models\decode_heads\ema_head.py /^import torch.distributed as dist$/;" i
+dist .\mmseg\models\segmentors\base.py /^import torch.distributed as dist$/;" i
+dist_params .\configs\_base_\default_runtime.py /^dist_params = dict(backend='nccl')$/;" v
+downsample_dw_channels .\configs\_base_\models\fast_scnn.py /^ downsample_dw_channels=(32, 48),$/;" v
+downsamples .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ downsamples=(True, True, True, True),$/;" v
+downsamples .\configs\_base_\models\fcn_unet_s5-d16.py /^ downsamples=(True, True, True, True),$/;" v
+downsamples .\configs\_base_\models\pspnet_unet_s5-d16.py /^ downsamples=(True, True, True, True),$/;" v
+drop_block_2d .\mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_block_2d .\mmseg\models\backbones\layers\drop.py /^def drop_block_2d($/;" f
+drop_block_2d .\mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_block_2d .\mmseg\models\decode_heads\layers\drop.py /^def drop_block_2d($/;" f
+drop_block_fast_2d .\mmseg\models\backbones\layers\drop.py /^def drop_block_fast_2d($/;" f
+drop_block_fast_2d .\mmseg\models\decode_heads\layers\drop.py /^def drop_block_fast_2d($/;" f
+drop_path .\mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_path .\mmseg\models\backbones\layers\drop.py /^def drop_path(x, drop_prob: float = 0., training: bool = False):$/;" f
+drop_path .\mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_path .\mmseg\models\decode_heads\layers\drop.py /^def drop_path(x, drop_prob: float = 0., training: bool = False):$/;" f
+drop_rate .\configs\_base_\models\setr_mla.py /^ drop_rate=0.1,$/;" v
+drop_rate .\configs\_base_\models\setr_naive_pup.py /^ drop_rate=0.1,$/;" v
+drop_rate .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ drop_rate=0.,$/;" v
+drop_rate .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ drop_rate=0.,$/;" v
+drop_rate .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ drop_rate=0.,$/;" v
+drop_rate .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ drop_rate=0.,$/;" v
+drop_rate .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ drop_rate=0.$/;" v
+drop_rate .\configs\foodnet\ccnet_vit_768x768_80k.py /^ drop_rate=0.0,$/;" v
+dropout_ratio .\configs\_base_\models\ann_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\apcnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\ccnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\cgnet.py /^ dropout_ratio=0,$/;" v
+dropout_ratio .\configs\_base_\models\danet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\deeplabv3_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\dmnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\dnl_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\emanet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\encnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\fcn_hr18.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\_base_\models\fcn_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\fcn_unet_s5-d16.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\fpn_r50.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\gcnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\lraspp_m-v3-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\nonlocal_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\ocrnet_hr18.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\_base_\models\ocrnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\pointrend_r50.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\_base_\models\psanet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\pspnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\pspnet_unet_s5-d16.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\_base_\models\upernet_r50.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ dropout_ratio=0.1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ dropout_ratio=-1,$/;" v
+dropout_ratio .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ dropout_ratio=-1,$/;" v
+ema_channels .\configs\_base_\models\emanet_r50-d8.py /^ ema_channels=512,$/;" v
+embed_dim .\configs\_base_\models\setr_mla.py /^ embed_dim=1024,$/;" v
+embed_dim .\configs\_base_\models\setr_naive_pup.py /^ embed_dim=1024,$/;" v
+embed_dim .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ embed_dim=768,$/;" v
+embed_dim .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ embed_dim=768,$/;" v
+embed_dim .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ embed_dim=768,$/;" v
+embed_dim .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ embed_dim=768,$/;" v
+embed_dim .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ embed_dim=768,$/;" v
+embed_dim .\configs\foodnet\ccnet_vit_768x768_80k.py /^ embed_dim=768,$/;" v
+embedded_gaussian .\mmseg\models\decode_heads\dnl_head.py /^ def embedded_gaussian(self, theta_x, phi_x):$/;" m class:DisentangledNonLocal2d
+enc_dilations .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ enc_dilations=(1, 1, 1, 1, 1),$/;" v
+enc_dilations .\configs\_base_\models\fcn_unet_s5-d16.py /^ enc_dilations=(1, 1, 1, 1, 1),$/;" v
+enc_dilations .\configs\_base_\models\pspnet_unet_s5-d16.py /^ enc_dilations=(1, 1, 1, 1, 1),$/;" v
+enc_num_convs .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ enc_num_convs=(2, 2, 2, 2, 2),$/;" v
+enc_num_convs .\configs\_base_\models\fcn_unet_s5-d16.py /^ enc_num_convs=(2, 2, 2, 2, 2),$/;" v
+enc_num_convs .\configs\_base_\models\pspnet_unet_s5-d16.py /^ enc_num_convs=(2, 2, 2, 2, 2),$/;" v
+encode_decode .\mmseg\models\segmentors\base.py /^ def encode_decode(self, img, img_metas):$/;" m class:BaseSegmentor
+encode_decode .\mmseg\models\segmentors\cascade_encoder_decoder.py /^ def encode_decode(self, img, img_metas):$/;" m class:CascadeEncoderDecoder
+encode_decode .\mmseg\models\segmentors\encoder_decoder.py /^ def encode_decode(self, img, img_metas):$/;" m class:EncoderDecoder
+end .\docs\make.bat /^:end$/;" l
+errno .\mmseg\models\backbones\helpers.py /^import errno$/;" i
+eval_metrics .\mmseg\core\evaluation\__init__.py /^from .metrics import eval_metrics, mean_dice, mean_iou$/;" i
+eval_metrics .\mmseg\core\evaluation\metrics.py /^def eval_metrics(results,$/;" f
+eval_metrics .\mmseg\datasets\custom.py /^from mmseg.core import eval_metrics$/;" i
+eval_metrics .\tests\test_metrics.py /^from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou$/;" i
+evaluate .\mmseg\core\evaluation\eval_hooks.py /^ def evaluate(self, runner, results):$/;" m class:EvalHook
+evaluate .\mmseg\datasets\cityscapes.py /^ def evaluate(self,$/;" m class:CityscapesDataset
+evaluate .\mmseg\datasets\custom.py /^ def evaluate(self,$/;" m class:CustomDataset
+evaluation .\configs\_base_\schedules\schedule_160k.py /^evaluation = dict(interval=16000, metric='mIoU')$/;" v
+evaluation .\configs\_base_\schedules\schedule_20k.py /^evaluation = dict(interval=2000, metric='mIoU')$/;" v
+evaluation .\configs\_base_\schedules\schedule_40k.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\_base_\schedules\schedule_80k.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\_base_\schedules\schedule_80k_step.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^evaluation = dict(interval=80000, metric='mIoU')$/;" v
+evaluation .\configs\foodnet\fpn_r50_512x1024_80k.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+evaluation .\configs\unet\deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\deeplabv3_unet_s5-d16_128x128_40k_stare.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\deeplabv3_unet_s5-d16_256x256_40k_hrf.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\deeplabv3_unet_s5-d16_64x64_40k_drive.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\fcn_unet_s5-d16_128x128_40k_chase_db1.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\fcn_unet_s5-d16_128x128_40k_stare.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\fcn_unet_s5-d16_256x256_40k_hrf.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\fcn_unet_s5-d16_64x64_40k_drive.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\pspnet_unet_s5-d16_128x128_40k_chase_db1.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\pspnet_unet_s5-d16_128x128_40k_stare.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\pspnet_unet_s5-d16_256x256_40k_hrf.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\configs\unet\pspnet_unet_s5-d16_64x64_40k_drive.py /^evaluation = dict(metric='mDice')$/;" v
+evaluation .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+exclude_patterns .\docs\conf.py /^exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']$/;" v
+exists .\setup.py /^ from os.path import exists$/;" i
+exists .\tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+exists .\tests\test_models\test_forward.py /^from os.path import dirname, exists, join$/;" i
+expansion .\mmseg\models\backbones\resnest.py /^ expansion = 4$/;" v class:Bottleneck
+expansion .\mmseg\models\backbones\resnet.py /^ expansion = 1$/;" v class:BasicBlock
+expansion .\mmseg\models\backbones\resnet.py /^ expansion = 4$/;" v class:Bottleneck
+extensions .\docs\conf.py /^extensions = [$/;" v
+extra .\configs\_base_\models\fcn_hr18.py /^ extra=dict($/;" v
+extra .\configs\_base_\models\ocrnet_hr18.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+extra .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ extra=dict($/;" v
+extra_repr .\mmseg\models\decode_heads\decode_head.py /^ def extra_repr(self):$/;" m class:BaseDecodeHead
+extract_feat .\mmseg\models\segmentors\base.py /^ def extract_feat(self, imgs):$/;" m class:BaseSegmentor
+extract_feat .\mmseg\models\segmentors\encoder_decoder.py /^ def extract_feat(self, img):$/;" m class:EncoderDecoder
+feature_strides .\configs\_base_\models\fpn_r50.py /^ feature_strides=[4, 8, 16, 32],$/;" v
+feature_strides .\configs\_base_\models\pointrend_r50.py /^ feature_strides=[4, 8, 16, 32],$/;" v
+feature_strides .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ feature_strides=[4, 8, 16, 32],$/;" v
+files .\docs\stat.py /^files = sorted(glob.glob('..\/configs\/*\/README.md'))$/;" v
+filter_sizes .\configs\_base_\models\dmnet_r50-d8.py /^ filter_sizes=(1, 3, 5, 7),$/;" v
+find_packages .\setup.py /^from setuptools import find_packages, setup$/;" i
+find_unused_parameters .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^find_unused_parameters = True$/;" v
+find_unused_parameters .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^find_unused_parameters = True$/;" v
+find_unused_parameters .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^find_unused_parameters = True$/;" v
+find_unused_parameters .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^find_unused_parameters = True$/;" v
+find_unused_parameters .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^find_unused_parameters = True$/;" v
+find_unused_parameters .\configs\foodnet\ccnet_vit_768x768_80k.py /^find_unused_parameters = True$/;" v
+flatten_binary_logits .\mmseg\models\losses\lovasz_loss.py /^def flatten_binary_logits(logits, labels, ignore_index=None):$/;" f
+flatten_probs .\mmseg\models\losses\lovasz_loss.py /^def flatten_probs(probs, labels, ignore_index=None):$/;" f
+flip .\configs\_base_\datasets\FoodSeg103.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\Recipe1M_768x768.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\ade20k.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\chase_db1.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\cityscapes.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\cityscapes_769x769.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\drive.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\hrf.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\pascal_context.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\pascal_voc12.py /^ flip=False,$/;" v
+flip .\configs\_base_\datasets\stare.py /^ flip=False,$/;" v
+flip .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ flip=False,$/;" v
+flip .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ flip=False,$/;" v
+force_fp32 .\mmseg\models\decode_heads\decode_head.py /^from mmcv.runner import auto_fp16, force_fp32$/;" i
+format_results .\mmseg\datasets\cityscapes.py /^ def format_results(self, results, imgfile_prefix=None, to_label_id=True):$/;" m class:CityscapesDataset
+format_results .\mmseg\datasets\custom.py /^ def format_results(self, results, **kwargs):$/;" m class:CustomDataset
+forward .\mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:CGNet
+forward .\mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:ContextGuidedBlock
+forward .\mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:GlobalContextExtractor
+forward .\mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:InputInjection
+forward .\mmseg\models\backbones\fast_scnn.py /^ def forward(self, higher_res_feature, lower_res_feature):$/;" m class:FeatureFusionModule
+forward .\mmseg\models\backbones\fast_scnn.py /^ def forward(self, x):$/;" m class:FastSCNN
+forward .\mmseg\models\backbones\fast_scnn.py /^ def forward(self, x):$/;" m class:GlobalFeatureExtractor
+forward .\mmseg\models\backbones\fast_scnn.py /^ def forward(self, x):$/;" m class:LearningToDownsample
+forward .\mmseg\models\backbones\hrnet.py /^ def forward(self, x):$/;" m class:HRModule
+forward .\mmseg\models\backbones\hrnet.py /^ def forward(self, x):$/;" m class:HRNet
+forward .\mmseg\models\backbones\layers\drop.py /^ def forward(self, x):$/;" m class:DropBlock2d
+forward .\mmseg\models\backbones\layers\drop.py /^ def forward(self, x):$/;" m class:DropPath
+forward .\mmseg\models\backbones\mobilenet_v2.py /^ def forward(self, x):$/;" m class:MobileNetV2
+forward .\mmseg\models\backbones\mobilenet_v3.py /^ def forward(self, x):$/;" m class:MobileNetV3
+forward .\mmseg\models\backbones\pvt.py /^ def forward(self, x):$/;" m class:Mlp
+forward .\mmseg\models\backbones\pvt.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward .\mmseg\models\backbones\pvt.py /^ def forward(self, x):$/;" m class:PyramidVisionTransformer
+forward .\mmseg\models\backbones\pvt.py /^ def forward(self, x, H, W):$/;" m class:Attention
+forward .\mmseg\models\backbones\pvt.py /^ def forward(self, x, H, W):$/;" m class:Block
+forward .\mmseg\models\backbones\pvt_dia.py /^ def forward(self, x):$/;" m class:Mlp
+forward .\mmseg\models\backbones\pvt_dia.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward .\mmseg\models\backbones\pvt_dia.py /^ def forward(self, x):$/;" m class:PyramidVisionTransformer
+forward .\mmseg\models\backbones\pvt_dia.py /^ def forward(self, x, H, W):$/;" m class:Attention
+forward .\mmseg\models\backbones\pvt_dia.py /^ def forward(self, x, H, W):$/;" m class:Block
+forward .\mmseg\models\backbones\resnest.py /^ def forward(self, x):$/;" m class:Bottleneck
+forward .\mmseg\models\backbones\resnest.py /^ def forward(self, x):$/;" m class:RSoftmax
+forward .\mmseg\models\backbones\resnest.py /^ def forward(self, x):$/;" m class:SplitAttentionConv2d
+forward .\mmseg\models\backbones\resnet.py /^ def forward(self, x):$/;" m class:BasicBlock
+forward .\mmseg\models\backbones\resnet.py /^ def forward(self, x):$/;" m class:Bottleneck
+forward .\mmseg\models\backbones\resnet.py /^ def forward(self, x):$/;" m class:ResNet
+forward .\mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:BasicConvBlock
+forward .\mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:DeconvModule
+forward .\mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:InterpConv
+forward .\mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:UNet
+forward .\mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:Attention
+forward .\mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:Block
+forward .\mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:HybridEmbed
+forward .\mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:Mlp
+forward .\mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward .\mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:VisionTransformer
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, res2, res3, res4, res5):$/;" m class:Conv_MLA
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:Attention
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:Block
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:HybridEmbed
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:Mlp
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward .\mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:VIT_MLA
+forward .\mmseg\models\decode_heads\ann_head.py /^ def forward(self, feats):$/;" m class:APNB
+forward .\mmseg\models\decode_heads\ann_head.py /^ def forward(self, feats):$/;" m class:PPMConcat
+forward .\mmseg\models\decode_heads\ann_head.py /^ def forward(self, inputs):$/;" m class:ANNHead
+forward .\mmseg\models\decode_heads\ann_head.py /^ def forward(self, low_feats, high_feats):$/;" m class:AFNB
+forward .\mmseg\models\decode_heads\apc_head.py /^ def forward(self, inputs):$/;" m class:APCHead
+forward .\mmseg\models\decode_heads\apc_head.py /^ def forward(self, x):$/;" m class:ACM
+forward .\mmseg\models\decode_heads\aspp_head.py /^ def forward(self, inputs):$/;" m class:ASPPHead
+forward .\mmseg\models\decode_heads\aspp_head.py /^ def forward(self, x):$/;" m class:ASPPModule
+forward .\mmseg\models\decode_heads\cascade_decode_head.py /^ def forward(self, inputs, prev_output):$/;" m class:BaseCascadeDecodeHead
+forward .\mmseg\models\decode_heads\cc_head.py /^ def forward(self, inputs):$/;" m class:CCHead
+forward .\mmseg\models\decode_heads\da_head.py /^ def forward(self, inputs):$/;" m class:DAHead
+forward .\mmseg\models\decode_heads\da_head.py /^ def forward(self, x):$/;" m class:CAM
+forward .\mmseg\models\decode_heads\da_head.py /^ def forward(self, x):$/;" m class:PAM
+forward .\mmseg\models\decode_heads\decode_head.py /^ def forward(self, inputs):$/;" m class:BaseDecodeHead
+forward .\mmseg\models\decode_heads\dm_head.py /^ def forward(self, inputs):$/;" m class:DMHead
+forward .\mmseg\models\decode_heads\dm_head.py /^ def forward(self, x):$/;" m class:DCM
+forward .\mmseg\models\decode_heads\dnl_head.py /^ def forward(self, inputs):$/;" m class:DNLHead
+forward .\mmseg\models\decode_heads\dnl_head.py /^ def forward(self, x):$/;" m class:DisentangledNonLocal2d
+forward .\mmseg\models\decode_heads\ema_head.py /^ def forward(self, feats):$/;" m class:EMAModule
+forward .\mmseg\models\decode_heads\ema_head.py /^ def forward(self, inputs):$/;" m class:EMAHead
+forward .\mmseg\models\decode_heads\enc_head.py /^ def forward(self, inputs):$/;" m class:EncHead
+forward .\mmseg\models\decode_heads\enc_head.py /^ def forward(self, x):$/;" m class:EncModule
+forward .\mmseg\models\decode_heads\fcn_head.py /^ def forward(self, inputs):$/;" m class:FCNHead
+forward .\mmseg\models\decode_heads\fpn_head.py /^ def forward(self, inputs):$/;" m class:FPNHead
+forward .\mmseg\models\decode_heads\gc_head.py /^ def forward(self, inputs):$/;" m class:GCHead
+forward .\mmseg\models\decode_heads\layers\drop.py /^ def forward(self, x):$/;" m class:DropBlock2d
+forward .\mmseg\models\decode_heads\layers\drop.py /^ def forward(self, x):$/;" m class:DropPath
+forward .\mmseg\models\decode_heads\lraspp_head.py /^ def forward(self, inputs):$/;" m class:LRASPPHead
+forward .\mmseg\models\decode_heads\nl_head.py /^ def forward(self, inputs):$/;" m class:NLHead
+forward .\mmseg\models\decode_heads\ocr_head.py /^ def forward(self, feats, probs):$/;" m class:SpatialGatherModule
+forward .\mmseg\models\decode_heads\ocr_head.py /^ def forward(self, inputs, prev_output):$/;" m class:OCRHead
+forward .\mmseg\models\decode_heads\ocr_head.py /^ def forward(self, query_feats, key_feats):$/;" m class:ObjectAttentionBlock
+forward .\mmseg\models\decode_heads\point_head.py /^ def forward(self, fine_grained_point_feats, coarse_point_feats):$/;" m class:PointHead
+forward .\mmseg\models\decode_heads\psa_head.py /^ def forward(self, inputs):$/;" m class:PSAHead
+forward .\mmseg\models\decode_heads\psp_head.py /^ def forward(self, inputs):$/;" m class:PSPHead
+forward .\mmseg\models\decode_heads\psp_head.py /^ def forward(self, x):$/;" m class:PPM
+forward .\mmseg\models\decode_heads\sep_aspp_head.py /^ def forward(self, inputs):$/;" m class:DepthwiseSeparableASPPHead
+forward .\mmseg\models\decode_heads\uper_head.py /^ def forward(self, inputs):$/;" m class:UPerHead
+forward .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^ def forward(self, x):$/;" m class:VIT_MLA_AUXIHead
+forward .\mmseg\models\decode_heads\vit_mla_head.py /^ def forward(self, inputs):$/;" m class:VIT_MLAHead
+forward .\mmseg\models\decode_heads\vit_mla_head.py /^ def forward(self, mla_p2, mla_p3, mla_p4, mla_p5):$/;" m class:MLAHead
+forward .\mmseg\models\decode_heads\vit_up_head.py /^ def forward(self, x):$/;" m class:VisionTransformerUpHead
+forward .\mmseg\models\losses\accuracy.py /^ def forward(self, pred, target):$/;" m class:Accuracy
+forward .\mmseg\models\losses\cross_entropy_loss.py /^ def forward(self,$/;" m class:CrossEntropyLoss
+forward .\mmseg\models\losses\lovasz_loss.py /^ def forward(self,$/;" m class:LovaszLoss
+forward .\mmseg\models\necks\fpn.py /^ def forward(self, inputs):$/;" m class:FPN
+forward .\mmseg\models\segmentors\base.py /^ def forward(self, img, img_metas, return_loss=True, **kwargs):$/;" m class:BaseSegmentor
+forward .\mmseg\models\utils\inverted_residual.py /^ def forward(self, x):$/;" m class:InvertedResidual
+forward .\mmseg\models\utils\inverted_residual.py /^ def forward(self, x):$/;" m class:InvertedResidualV3
+forward .\mmseg\models\utils\se_layer.py /^ def forward(self, x):$/;" m class:SELayer
+forward .\mmseg\models\utils\self_attention_block.py /^ def forward(self, query_feats, key_feats):$/;" m class:SelfAttentionBlock
+forward .\mmseg\models\utils\up_conv_block.py /^ def forward(self, skip, x):$/;" m class:UpConvBlock
+forward .\mmseg\ops\encoding.py /^ def forward(self, x):$/;" m class:Encoding
+forward .\mmseg\ops\wrappers.py /^ def forward(self, x):$/;" m class:Upsample
+forward .\tests\test_eval_hook.py /^ def forward(self, img, img_metas, test_mode=False, **kwargs):$/;" m class:ExampleModel
+forward .\tests\test_models\test_segmentor.py /^ def forward(self, inputs):$/;" m class:ExampleDecodeHead
+forward .\tests\test_models\test_segmentor.py /^ def forward(self, inputs, prev_out):$/;" m class:ExampleCascadeDecodeHead
+forward .\tests\test_models\test_segmentor.py /^ def forward(self, x):$/;" m class:ExampleBackbone
+forward_dummy .\mmseg\models\segmentors\encoder_decoder.py /^ def forward_dummy(self, img):$/;" m class:EncoderDecoder
+forward_features .\mmseg\models\backbones\pvt.py /^ def forward_features(self, x):$/;" m class:PyramidVisionTransformer
+forward_features .\mmseg\models\backbones\pvt_dia.py /^ def forward_features(self, x):$/;" m class:PyramidVisionTransformer
+forward_plugin .\mmseg\models\backbones\resnet.py /^ def forward_plugin(self, x, plugin_names):$/;" m class:Bottleneck
+forward_test .\mmseg\models\decode_heads\cascade_decode_head.py /^ def forward_test(self, inputs, prev_output, img_metas, test_cfg):$/;" m class:BaseCascadeDecodeHead
+forward_test .\mmseg\models\decode_heads\da_head.py /^ def forward_test(self, inputs, img_metas, test_cfg):$/;" m class:DAHead
+forward_test .\mmseg\models\decode_heads\decode_head.py /^ def forward_test(self, inputs, img_metas, test_cfg):$/;" m class:BaseDecodeHead
+forward_test .\mmseg\models\decode_heads\enc_head.py /^ def forward_test(self, inputs, img_metas, test_cfg):$/;" m class:EncHead
+forward_test .\mmseg\models\decode_heads\point_head.py /^ def forward_test(self, inputs, prev_output, img_metas, test_cfg):$/;" m class:PointHead
+forward_test .\mmseg\models\segmentors\base.py /^ def forward_test(self, imgs, img_metas, **kwargs):$/;" m class:BaseSegmentor
+forward_train .\mmseg\models\decode_heads\cascade_decode_head.py /^ def forward_train(self, inputs, prev_output, img_metas, gt_semantic_seg,$/;" m class:BaseCascadeDecodeHead
+forward_train .\mmseg\models\decode_heads\decode_head.py /^ def forward_train(self, inputs, img_metas, gt_semantic_seg, train_cfg):$/;" m class:BaseDecodeHead
+forward_train .\mmseg\models\decode_heads\point_head.py /^ def forward_train(self, inputs, prev_output, img_metas, gt_semantic_seg,$/;" m class:PointHead
+forward_train .\mmseg\models\segmentors\base.py /^ def forward_train(self, imgs, img_metas, **kwargs):$/;" m class:BaseSegmentor
+forward_train .\mmseg\models\segmentors\encoder_decoder.py /^ def forward_train(self, img, img_metas, gt_semantic_seg):$/;" m class:EncoderDecoder
+func .\docs\stat.py /^import functools as func$/;" i
+functools .\mmseg\models\losses\utils.py /^import functools$/;" i
+fusion_out_channels .\configs\_base_\models\fast_scnn.py /^ fusion_out_channels=128,$/;" v
+fusion_types .\configs\_base_\models\gcnet_r50-d8.py /^ fusion_types=('channel_add', ),$/;" v
+gen_packages_items .\setup.py /^ def gen_packages_items():$/;" f function:parse_requirements
+generate_aug_list .\tools\convert_datasets\voc_aug.py /^def generate_aug_list(merged_list, excluded_list):$/;" f
+generate_labels .\tools\convert_datasets\pascal_context.py /^def generate_labels(img_id, detail, out_dir):$/;" f
+get_ann_info .\mmseg\datasets\custom.py /^ def get_ann_info(self, idx):$/;" m class:CustomDataset
+get_classes .\mmseg\core\evaluation\__init__.py /^from .class_names import get_classes, get_palette$/;" i
+get_classes .\mmseg\core\evaluation\class_names.py /^def get_classes(dataset):$/;" f
+get_classes .\tests\test_data\test_dataset.py /^from mmseg.core.evaluation import get_classes, get_palette$/;" i
+get_classes_and_palette .\mmseg\datasets\custom.py /^ def get_classes_and_palette(self, classes=None, palette=None):$/;" m class:CustomDataset
+get_confusion_matrix .\tests\test_metrics.py /^def get_confusion_matrix(pred_label, label, num_classes, ignore_index):$/;" f
+get_crop_bbox .\mmseg\datasets\pipelines\transforms.py /^ def get_crop_bbox(self, img):$/;" m class:RandomCrop
+get_dist_info .\mmseg\apis\test.py /^from mmcv.runner import get_dist_info$/;" i
+get_dist_info .\mmseg\datasets\builder.py /^from mmcv.runner import get_dist_info$/;" i
+get_dist_info .\tools\test.py /^from mmcv.runner import get_dist_info, init_dist, load_checkpoint$/;" i
+get_final_iter .\.dev\gather_models.py /^def get_final_iter(config):$/;" f
+get_final_results .\.dev\gather_models.py /^def get_final_results(log_json_path, iter_num):$/;" f
+get_git_hash .\mmseg\utils\collect_env.py /^from mmcv.utils import get_git_hash$/;" i
+get_git_hash .\tools\train.py /^from mmcv.utils import Config, DictAction, get_git_hash$/;" i
+get_gt_seg_maps .\mmseg\datasets\custom.py /^ def get_gt_seg_maps(self, efficient_test=False):$/;" m class:CustomDataset
+get_logger .\mmseg\utils\logger.py /^from mmcv.utils import get_logger$/;" i
+get_model_complexity_info .\tools\get_flops.py /^from mmcv.cnn import get_model_complexity_info$/;" i
+get_palette .\demo\image_demo.py /^from mmseg.core.evaluation import get_palette$/;" i
+get_palette .\mmseg\core\evaluation\__init__.py /^from .class_names import get_classes, get_palette$/;" i
+get_palette .\mmseg\core\evaluation\class_names.py /^def get_palette(dataset):$/;" f
+get_palette .\tests\test_data\test_dataset.py /^from mmseg.core.evaluation import get_classes, get_palette$/;" i
+get_palette_for_custom_classes .\mmseg\datasets\custom.py /^ def get_palette_for_custom_classes(self, class_names, palette=None):$/;" m class:CustomDataset
+get_points_test .\mmseg\models\decode_heads\point_head.py /^ def get_points_test(self, seg_logits, uncertainty_func, cfg):$/;" m class:PointHead
+get_points_train .\mmseg\models\decode_heads\point_head.py /^ def get_points_train(self, seg_logits, uncertainty_func, cfg):$/;" m class:PointHead
+get_root_logger .\mmseg\apis\__init__.py /^from .train import get_root_logger, set_random_seed, train_segmentor$/;" i
+get_root_logger .\mmseg\apis\train.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\datasets\custom.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\models\backbones\cgnet.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\models\backbones\hrnet.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\models\backbones\pvt.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\models\backbones\pvt_dia.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\models\backbones\resnet.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\models\backbones\unet.py /^from mmseg.utils import get_root_logger$/;" i
+get_root_logger .\mmseg\utils\__init__.py /^from .logger import get_root_logger$/;" i
+get_root_logger .\mmseg\utils\logger.py /^def get_root_logger(log_file=None, log_level=logging.INFO):$/;" f
+get_root_logger .\tools\train.py /^from mmseg.utils import collect_env, get_root_logger$/;" i
+get_version .\docs\conf.py /^def get_version():$/;" f
+get_version .\setup.py /^def get_version():$/;" f
+get_world_size .\tests\test_models\test_forward.py /^def get_world_size(process_group):$/;" f
+glob .\.dev\gather_models.py /^import glob$/;" i
+glob .\docs\stat.py /^import glob$/;" i
+glob .\tests\test_config.py /^ import glob$/;" i
+glob .\tests\test_config.py /^import glob$/;" i
+global_block_channels .\configs\_base_\models\fast_scnn.py /^ global_block_channels=(64, 96, 128),$/;" v
+global_block_strides .\configs\_base_\models\fast_scnn.py /^ global_block_strides=(2, 2, 1),$/;" v
+global_in_channels .\configs\_base_\models\fast_scnn.py /^ global_in_channels=64,$/;" v
+global_out_channels .\configs\_base_\models\fast_scnn.py /^ global_out_channels=128,$/;" v
+gzip .\tools\convert_datasets\stare.py /^import gzip$/;" i
+hard_limit .\mmseg\datasets\builder.py /^ hard_limit = rlimit[1]$/;" v
+help .\docs\make.bat /^:help$/;" l
+helpers .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+helpers .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+higher_in_channels .\configs\_base_\models\fast_scnn.py /^ higher_in_channels=64,$/;" v
+hooks .\configs\_base_\default_runtime.py /^ hooks=[$/;" v
+html_static_path .\docs\conf.py /^html_static_path = ['_static']$/;" v
+html_theme .\docs\conf.py /^html_theme = 'sphinx_rtd_theme'$/;" v
+hue .\mmseg\datasets\pipelines\transforms.py /^ def hue(self, img):$/;" m class:PhotoMetricDistortion
+img_dir .\configs\_base_\datasets\FoodSeg103.py /^ img_dir='img_dir\/test',$/;" v
+img_dir .\configs\_base_\datasets\FoodSeg103.py /^ img_dir='img_dir\/train',$/;" v
+img_dir .\configs\_base_\datasets\ade20k.py /^ img_dir='images\/training',$/;" v
+img_dir .\configs\_base_\datasets\ade20k.py /^ img_dir='images\/validation',$/;" v
+img_dir .\configs\_base_\datasets\chase_db1.py /^ img_dir='images\/training',$/;" v
+img_dir .\configs\_base_\datasets\chase_db1.py /^ img_dir='images\/validation',$/;" v
+img_dir .\configs\_base_\datasets\cityscapes.py /^ img_dir='leftImg8bit\/train',$/;" v
+img_dir .\configs\_base_\datasets\cityscapes.py /^ img_dir='leftImg8bit\/val',$/;" v
+img_dir .\configs\_base_\datasets\drive.py /^ img_dir='images\/training',$/;" v
+img_dir .\configs\_base_\datasets\drive.py /^ img_dir='images\/validation',$/;" v
+img_dir .\configs\_base_\datasets\hrf.py /^ img_dir='images\/training',$/;" v
+img_dir .\configs\_base_\datasets\hrf.py /^ img_dir='images\/validation',$/;" v
+img_dir .\configs\_base_\datasets\pascal_context.py /^ img_dir='JPEGImages',$/;" v
+img_dir .\configs\_base_\datasets\pascal_voc12.py /^ img_dir='JPEGImages',$/;" v
+img_dir .\configs\_base_\datasets\stare.py /^ img_dir='images\/training',$/;" v
+img_dir .\configs\_base_\datasets\stare.py /^ img_dir='images\/validation',$/;" v
+img_dir .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ img_dir='leftImg8bit\/train',$/;" v
+img_dir .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ img_dir='leftImg8bit\/val',$/;" v
+img_norm_cfg .\configs\_base_\datasets\FoodSeg103.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\Recipe1M_768x768.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\ade20k.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\chase_db1.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\cityscapes.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\cityscapes_769x769.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\drive.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\hrf.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\pascal_context.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\pascal_voc12.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\_base_\datasets\stare.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^img_norm_cfg = dict($/;" v
+img_norm_cfg .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^img_norm_cfg = dict($/;" v
+img_scale .\configs\_base_\datasets\FoodSeg103.py /^ img_scale=(2048, 1024),$/;" v
+img_scale .\configs\_base_\datasets\Recipe1M_768x768.py /^ img_scale=(2049, 1025),$/;" v
+img_scale .\configs\_base_\datasets\ade20k.py /^ img_scale=(2048, 512),$/;" v
+img_scale .\configs\_base_\datasets\chase_db1.py /^ img_scale=img_scale,$/;" v
+img_scale .\configs\_base_\datasets\chase_db1.py /^img_scale = (960, 999)$/;" v
+img_scale .\configs\_base_\datasets\cityscapes.py /^ img_scale=(2048, 1024),$/;" v
+img_scale .\configs\_base_\datasets\cityscapes_769x769.py /^ img_scale=(2049, 1025),$/;" v
+img_scale .\configs\_base_\datasets\drive.py /^ img_scale=img_scale,$/;" v
+img_scale .\configs\_base_\datasets\drive.py /^img_scale = (584, 565)$/;" v
+img_scale .\configs\_base_\datasets\hrf.py /^ img_scale=img_scale,$/;" v
+img_scale .\configs\_base_\datasets\hrf.py /^img_scale = (2336, 3504)$/;" v
+img_scale .\configs\_base_\datasets\pascal_context.py /^ img_scale=img_scale,$/;" v
+img_scale .\configs\_base_\datasets\pascal_context.py /^img_scale = (520, 520)$/;" v
+img_scale .\configs\_base_\datasets\pascal_voc12.py /^ img_scale=(2048, 512),$/;" v
+img_scale .\configs\_base_\datasets\stare.py /^ img_scale=img_scale,$/;" v
+img_scale .\configs\_base_\datasets\stare.py /^img_scale = (605, 700)$/;" v
+img_scale .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ img_scale=(2048, 1024),$/;" v
+img_scale .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ img_scale=(2048, 1024),$/;" v
+img_size .\configs\_base_\models\setr_mla.py /^ img_size=768,$/;" v
+img_size .\configs\_base_\models\setr_naive_pup.py /^ img_size=768,$/;" v
+img_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ img_size=768,$/;" v
+img_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ img_size=768,$/;" v
+img_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ img_size=768,$/;" v
+img_size .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ img_size=768,$/;" v
+img_size .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ img_size=768,$/;" v
+img_size .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ img_size=768, $/;" v
+img_size .\configs\foodnet\ccnet_vit_768x768_80k.py /^ img_size=768,$/;" v
+in_channels .\configs\_base_\models\ann_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\ann_r50-d8.py /^ in_channels=[1024, 2048],$/;" v
+in_channels .\configs\_base_\models\apcnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\apcnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\ccnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\ccnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\cgnet.py /^ in_channels=256,$/;" v
+in_channels .\configs\_base_\models\cgnet.py /^ in_channels=3,$/;" v
+in_channels .\configs\_base_\models\danet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\danet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\deeplabv3_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\deeplabv3_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_channels=128,$/;" v
+in_channels .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_channels=3,$/;" v
+in_channels .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_channels=64,$/;" v
+in_channels .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\dmnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\dmnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\dnl_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\dnl_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\emanet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\emanet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\encnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\encnet_r50-d8.py /^ in_channels=[512, 1024, 2048],$/;" v
+in_channels .\configs\_base_\models\fast_scnn.py /^ in_channels=128,$/;" v
+in_channels .\configs\_base_\models\fast_scnn.py /^ in_channels=64,$/;" v
+in_channels .\configs\_base_\models\fast_scnn.py /^ in_channels=128,$/;" v
+in_channels .\configs\_base_\models\fcn_hr18.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_channels .\configs\_base_\models\fcn_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\fcn_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\fcn_unet_s5-d16.py /^ in_channels=128,$/;" v
+in_channels .\configs\_base_\models\fcn_unet_s5-d16.py /^ in_channels=3,$/;" v
+in_channels .\configs\_base_\models\fcn_unet_s5-d16.py /^ in_channels=64,$/;" v
+in_channels .\configs\_base_\models\fpn_r50.py /^ in_channels=[256, 256, 256, 256],$/;" v
+in_channels .\configs\_base_\models\fpn_r50.py /^ in_channels=[256, 512, 1024, 2048],$/;" v
+in_channels .\configs\_base_\models\gcnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\gcnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\lraspp_m-v3-d8.py /^ in_channels=(16, 24, 960),$/;" v
+in_channels .\configs\_base_\models\nonlocal_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\nonlocal_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\ocrnet_hr18.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_channels .\configs\_base_\models\ocrnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\ocrnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\pointrend_r50.py /^ in_channels=[256, 256, 256, 256],$/;" v
+in_channels .\configs\_base_\models\pointrend_r50.py /^ in_channels=[256],$/;" v
+in_channels .\configs\_base_\models\pointrend_r50.py /^ in_channels=[256, 512, 1024, 2048],$/;" v
+in_channels .\configs\_base_\models\psanet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\psanet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\pspnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\pspnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_channels .\configs\_base_\models\pspnet_unet_s5-d16.py /^ in_channels=128,$/;" v
+in_channels .\configs\_base_\models\pspnet_unet_s5-d16.py /^ in_channels=3,$/;" v
+in_channels .\configs\_base_\models\pspnet_unet_s5-d16.py /^ in_channels=64,$/;" v
+in_channels .\configs\_base_\models\setr_mla.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\setr_naive_pup.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\upernet_r50.py /^ in_channels=1024,$/;" v
+in_channels .\configs\_base_\models\upernet_r50.py /^ in_channels=[256, 512, 1024, 2048],$/;" v
+in_channels .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_channels=256,$/;" v
+in_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_channels=256,$/;" v
+in_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_channels=256,$/;" v
+in_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_channels=256,$/;" v
+in_channels .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_channels=768,$/;" v
+in_channels .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_channels=768,$/;" v
+in_channels .\configs\foodnet\ccnet_vit_768x768_80k.py /^ in_channels=768,$/;" v
+in_channels .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ in_channels=(16, 16, 576),$/;" v
+in_channels .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ in_channels=(16, 16, 576),$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_channels .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_channels=[256, 256, 256, 256],$/;" v
+in_channels .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_channels=[256],$/;" v
+in_channels .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_channels .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+in_chans .\configs\_base_\models\setr_mla.py /^ in_chans=3,$/;" v
+in_chans .\configs\_base_\models\setr_naive_pup.py /^ in_chans=3,$/;" v
+in_chans .\configs\foodnet\ccnet_vit_768x768_80k.py /^ in_chans=3,$/;" v
+in_index .\configs\_base_\models\ann_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\ann_r50-d8.py /^ in_index=[2, 3],$/;" v
+in_index .\configs\_base_\models\apcnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\apcnet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\ccnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\ccnet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\cgnet.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\danet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\danet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\deeplabv3_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\deeplabv3_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_index=4,$/;" v
+in_index .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\dmnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\dmnet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\dnl_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\dnl_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\emanet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\emanet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\encnet_r50-d8.py /^ in_index=(1, 2, 3),$/;" v
+in_index .\configs\_base_\models\encnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\fast_scnn.py /^ in_index=-2,$/;" v
+in_index .\configs\_base_\models\fast_scnn.py /^ in_index=-3,$/;" v
+in_index .\configs\_base_\models\fast_scnn.py /^ in_index=-1,$/;" v
+in_index .\configs\_base_\models\fcn_hr18.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\_base_\models\fcn_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\fcn_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\fcn_unet_s5-d16.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\fcn_unet_s5-d16.py /^ in_index=4,$/;" v
+in_index .\configs\_base_\models\fpn_r50.py /^ in_index=[0, 1, 2, 3],$/;" v
+in_index .\configs\_base_\models\gcnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\gcnet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\lraspp_m-v3-d8.py /^ in_index=(0, 1, 2),$/;" v
+in_index .\configs\_base_\models\nonlocal_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\nonlocal_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\ocrnet_hr18.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\_base_\models\ocrnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\ocrnet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\pointrend_r50.py /^ in_index=[0, 1, 2, 3],$/;" v
+in_index .\configs\_base_\models\pointrend_r50.py /^ in_index=[0],$/;" v
+in_index .\configs\_base_\models\psanet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\psanet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\pspnet_r50-d8.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\pspnet_r50-d8.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\pspnet_unet_s5-d16.py /^ in_index=3,$/;" v
+in_index .\configs\_base_\models\pspnet_unet_s5-d16.py /^ in_index=4,$/;" v
+in_index .\configs\_base_\models\setr_naive_pup.py /^ in_index=23,$/;" v
+in_index .\configs\_base_\models\upernet_r50.py /^ in_index=2,$/;" v
+in_index .\configs\_base_\models\upernet_r50.py /^ in_index=[0, 1, 2, 3],$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=0,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=1,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=2,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=3,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=0,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=1,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=2,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=3,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=0,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=1,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=2,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=3,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=0,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=1,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=2,$/;" v
+in_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=3,$/;" v
+in_index .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=5,$/;" v
+in_index .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=7,$/;" v
+in_index .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=9,$/;" v
+in_index .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=11,$/;" v
+in_index .\configs\foodnet\ccnet_vit_768x768_80k.py /^ in_index=11,$/;" v
+in_index .\configs\foodnet\ccnet_vit_768x768_80k.py /^ in_index=9,$/;" v
+in_index .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ in_index=(0, 1, 2),$/;" v
+in_index .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ in_index=(0, 1, 2),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+in_index .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_index=[0, 1, 2, 3],$/;" v
+in_index .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_index=[0],$/;" v
+inference .\mmseg\models\segmentors\encoder_decoder.py /^ def inference(self, img, img_meta, rescale):$/;" m class:EncoderDecoder
+inference_segmentor .\demo\image_demo.py /^from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+inference_segmentor .\mmseg\apis\__init__.py /^from .inference import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+inference_segmentor .\mmseg\apis\inference.py /^def inference_segmentor(model, img):$/;" f
+inference_segmentor .\tests\test_inference.py /^from mmseg.apis import inference_segmentor, init_segmentor$/;" i
+init_dist .\tools\test.py /^from mmcv.runner import get_dist_info, init_dist, load_checkpoint$/;" i
+init_dist .\tools\train.py /^from mmcv.runner import init_dist$/;" i
+init_segmentor .\demo\image_demo.py /^from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+init_segmentor .\mmseg\apis\__init__.py /^from .inference import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+init_segmentor .\mmseg\apis\inference.py /^def init_segmentor(config, checkpoint=None, device='cuda:0'):$/;" f
+init_segmentor .\tests\test_inference.py /^from mmseg.apis import inference_segmentor, init_segmentor$/;" i
+init_weights .\mmseg\models\backbones\cgnet.py /^ def init_weights(self, pretrained=None):$/;" m class:CGNet
+init_weights .\mmseg\models\backbones\fast_scnn.py /^ def init_weights(self, pretrained=None):$/;" m class:FastSCNN
+init_weights .\mmseg\models\backbones\hrnet.py /^ def init_weights(self, pretrained=None):$/;" m class:HRNet
+init_weights .\mmseg\models\backbones\mobilenet_v2.py /^ def init_weights(self, pretrained=None):$/;" m class:MobileNetV2
+init_weights .\mmseg\models\backbones\mobilenet_v3.py /^ def init_weights(self, pretrained=None):$/;" m class:MobileNetV3
+init_weights .\mmseg\models\backbones\pvt.py /^ def init_weights(self, pretrained=None):$/;" m class:PyramidVisionTransformer
+init_weights .\mmseg\models\backbones\pvt_dia.py /^ def init_weights(self, pretrained=None):$/;" m class:PyramidVisionTransformer
+init_weights .\mmseg\models\backbones\resnet.py /^ def init_weights(self, pretrained=None):$/;" m class:ResNet
+init_weights .\mmseg\models\backbones\unet.py /^ def init_weights(self, pretrained=None):$/;" m class:UNet
+init_weights .\mmseg\models\backbones\vit.py /^ def init_weights(self, pretrained=None):$/;" m class:VisionTransformer
+init_weights .\mmseg\models\backbones\vit_mla.py /^ def init_weights(self, pretrained=None):$/;" m class:VIT_MLA
+init_weights .\mmseg\models\decode_heads\decode_head.py /^ def init_weights(self):$/;" m class:BaseDecodeHead
+init_weights .\mmseg\models\decode_heads\point_head.py /^ def init_weights(self):$/;" m class:PointHead
+init_weights .\mmseg\models\decode_heads\vit_up_head.py /^ def init_weights(self):$/;" m class:VisionTransformerUpHead
+init_weights .\mmseg\models\necks\fpn.py /^ def init_weights(self):$/;" m class:FPN
+init_weights .\mmseg\models\segmentors\base.py /^ def init_weights(self, pretrained=None):$/;" m class:BaseSegmentor
+init_weights .\mmseg\models\segmentors\cascade_encoder_decoder.py /^ def init_weights(self, pretrained=None):$/;" m class:CascadeEncoderDecoder
+init_weights .\mmseg\models\segmentors\encoder_decoder.py /^ def init_weights(self, pretrained=None):$/;" m class:EncoderDecoder
+init_weights .\mmseg\models\utils\self_attention_block.py /^ def init_weights(self):$/;" m class:SelfAttentionBlock
+init_weights .\tests\test_models\test_segmentor.py /^ def init_weights(self, pretrained=None):$/;" m class:ExampleBackbone
+input_shape .\tools\pytorch2onnx.py /^ input_shape = ($/;" v
+input_shape .\tools\pytorch2onnx.py /^ input_shape = (1, 3, args.shape[0], args.shape[0])$/;" v
+input_transform .\configs\_base_\models\fcn_hr18.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\_base_\models\lraspp_m-v3-d8.py /^ input_transform='multiple_select',$/;" v
+input_transform .\configs\_base_\models\ocrnet_hr18.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ input_transform='multiple_select',$/;" v
+input_transform .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ input_transform='multiple_select',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+input_transform .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ input_transform='resize_concat',$/;" v
+intersect_and_union .\mmseg\core\evaluation\metrics.py /^def intersect_and_union(pred_label,$/;" f
+interval .\configs\_base_\default_runtime.py /^ interval=50,$/;" v
+is_block .\tests\test_models\test_backbone.py /^def is_block(modules):$/;" f
+is_norm .\tests\test_models\test_backbone.py /^def is_norm(modules):$/;" f
+is_tuple_of .\mmseg\datasets\pipelines\transforms.py /^from mmcv.utils import deprecated_api_warning, is_tuple_of$/;" i
+is_tuple_of .\mmseg\models\decode_heads\lraspp_head.py /^from mmcv import is_tuple_of$/;" i
+isdir .\tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+join .\tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+join .\tests\test_models\test_forward.py /^from os.path import dirname, exists, join$/;" i
+json .\.dev\gather_models.py /^import json$/;" i
+json2labelImg .\tools\convert_datasets\cityscapes.py /^from cityscapesscripts.preparation.json2labelImg import json2labelImg$/;" i
+kaiming_init .\mmseg\models\backbones\mobilenet_v2.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+kaiming_init .\mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+kernel_size .\configs\_base_\models\fcn_hr18.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\_base_\models\ocrnet_hr18.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ kernel_size=1,$/;" v
+kernel_size .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ kernel_size=1,$/;" v
+key_pool_scales .\configs\_base_\models\ann_r50-d8.py /^ key_pool_scales=(1, 3, 6, 8),$/;" v
+legacy_mean_dice .\tests\test_metrics.py /^def legacy_mean_dice(results, gt_seg_maps, num_classes, ignore_index):$/;" f
+legacy_mean_iou .\tests\test_metrics.py /^def legacy_mean_iou(results, gt_seg_maps, num_classes, ignore_index):$/;" f
+load_annotations .\mmseg\datasets\custom.py /^ def load_annotations(self, img_dir, img_suffix, ann_dir, seg_map_suffix,$/;" m class:CustomDataset
+load_checkpoint .\mmseg\apis\inference.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\cgnet.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\hrnet.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\mobilenet_v2.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\mobilenet_v3.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\pvt.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\pvt_dia.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\resnet.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\mmseg\models\backbones\unet.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\tools\benchmark.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\tools\pytorch2onnx.py /^from mmcv.runner import load_checkpoint$/;" i
+load_checkpoint .\tools\test.py /^from mmcv.runner import get_dist_info, init_dist, load_checkpoint$/;" i
+load_from .\configs\_base_\default_runtime.py /^load_from = None$/;" v
+load_pretrained .\mmseg\models\backbones\helpers.py /^def load_pretrained(model, cfg=None, num_classes=1000, in_chans=3, filter_fn=None, strict=True, pos_embed_interp=False, num_patches=576, align_corners=False):$/;" f
+load_pretrained .\mmseg\models\backbones\vit.py /^from .helpers import load_pretrained$/;" i
+load_pretrained .\mmseg\models\backbones\vit_mla.py /^from .helpers import load_pretrained$/;" i
+load_pretrained .\mmseg\models\decode_heads\helpers.py /^def load_pretrained(model, cfg=None, num_classes=1000, in_chans=3, filter_fn=None, strict=True, pos_embed_interp=False, num_patches=576, align_corners=False):$/;" f
+load_pretrained .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .helpers import load_pretrained$/;" i
+load_pretrained .\mmseg\models\decode_heads\vit_mla_head.py /^from .helpers import load_pretrained$/;" i
+load_pretrained .\mmseg\models\decode_heads\vit_up_head.py /^from .helpers import load_pretrained$/;" i
+load_state_dict_from_url .\mmseg\models\backbones\helpers.py /^def load_state_dict_from_url(url, model_dir=None, file_name=None, check_hash=False, progress=True, map_location=None):$/;" f
+loadmat .\tools\convert_datasets\voc_aug.py /^from scipy.io import loadmat$/;" i
+log_config .\configs\_base_\default_runtime.py /^log_config = dict($/;" v
+log_level .\configs\_base_\default_runtime.py /^log_level = 'INFO'$/;" v
+logging .\mmseg\models\backbones\helpers.py /^import logging$/;" i
+logging .\mmseg\models\backbones\mobilenet_v2.py /^import logging$/;" i
+logging .\mmseg\models\backbones\mobilenet_v3.py /^import logging$/;" i
+logging .\mmseg\models\decode_heads\helpers.py /^import logging$/;" i
+logging .\mmseg\models\segmentors\base.py /^import logging$/;" i
+logging .\mmseg\utils\logger.py /^import logging$/;" i
+logging .\tests\test_eval_hook.py /^import logging$/;" i
+loss_decode .\configs\_base_\models\ann_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\apcnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\ccnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\cgnet.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\danet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\deeplabv3_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\dmnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\dnl_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\emanet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\encnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\fast_scnn.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\fast_scnn.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\fcn_hr18.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\fcn_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\fcn_unet_s5-d16.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\fpn_r50.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\gcnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\lraspp_m-v3-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\nonlocal_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\ocrnet_hr18.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\ocrnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\pointrend_r50.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\psanet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\pspnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\pspnet_unet_s5-d16.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\setr_mla.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\setr_naive_pup.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\_base_\models\upernet_r50.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ loss_decode=dict($/;" v
+loss_decode .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ loss_decode=dict($/;" v
+loss_se_decode .\configs\_base_\models\encnet_r50-d8.py /^ loss_se_decode=dict($/;" v
+loss_weight .\configs\_base_\models\cgnet.py /^ loss_weight=1.0,$/;" v
+losses .\mmseg\models\decode_heads\da_head.py /^ def losses(self, seg_logit, seg_label):$/;" m class:DAHead
+losses .\mmseg\models\decode_heads\decode_head.py /^ def losses(self, seg_logit, seg_label):$/;" m class:BaseDecodeHead
+losses .\mmseg\models\decode_heads\enc_head.py /^ def losses(self, seg_logit, seg_label):$/;" m class:EncHead
+losses .\mmseg\models\decode_heads\point_head.py /^ def losses(self, point_logits, point_label):$/;" m class:PointHead
+lovasz_grad .\mmseg\models\losses\lovasz_loss.py /^def lovasz_grad(gt_sorted):$/;" f
+lovasz_hinge .\mmseg\models\losses\lovasz_loss.py /^def lovasz_hinge(logits,$/;" f
+lovasz_hinge_flat .\mmseg\models\losses\lovasz_loss.py /^def lovasz_hinge_flat(logits, labels):$/;" f
+lovasz_softmax .\mmseg\models\losses\lovasz_loss.py /^def lovasz_softmax(probs,$/;" f
+lovasz_softmax_flat .\mmseg\models\losses\lovasz_loss.py /^def lovasz_softmax_flat(probs, labels, classes='present', class_weight=None):$/;" f
+lower_in_channels .\configs\_base_\models\fast_scnn.py /^ lower_in_channels=128,$/;" v
+lr_config .\configs\_base_\schedules\schedule_160k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+lr_config .\configs\_base_\schedules\schedule_20k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+lr_config .\configs\_base_\schedules\schedule_40k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+lr_config .\configs\_base_\schedules\schedule_80k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+lr_config .\configs\_base_\schedules\schedule_80k_step.py /^lr_config = dict($/;" v
+lr_config .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+lr_config .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+lr_config .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^lr_config = dict(policy='step', $/;" v
+lr_config .\configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^lr_config = dict(min_lr=2e-4)$/;" v
+lr_config .\configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^lr_config = dict(min_lr=2e-4)$/;" v
+lr_config .\configs\point_rend\pointrend_r50_512x1024_80k_cityscapes.py /^lr_config = dict(warmup='linear', warmup_iters=200)$/;" v
+lr_config .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^lr_config = dict(warmup='linear', warmup_iters=200)$/;" v
+main .\.dev\gather_models.py /^def main():$/;" f
+main .\.dev\upload_modelzoo.py /^def main():$/;" f
+main .\demo\image_demo.py /^def main():$/;" f
+main .\tools\benchmark.py /^def main():$/;" f
+main .\tools\convert_datasets\chase_db1.py /^def main():$/;" f
+main .\tools\convert_datasets\cityscapes.py /^def main():$/;" f
+main .\tools\convert_datasets\drive.py /^def main():$/;" f
+main .\tools\convert_datasets\hrf.py /^def main():$/;" f
+main .\tools\convert_datasets\pascal_context.py /^def main():$/;" f
+main .\tools\convert_datasets\stare.py /^def main():$/;" f
+main .\tools\convert_datasets\voc_aug.py /^def main():$/;" f
+main .\tools\get_flops.py /^def main():$/;" f
+main .\tools\print_config.py /^def main():$/;" f
+main .\tools\publish_model.py /^def main():$/;" f
+main .\tools\test.py /^def main():$/;" f
+main .\tools\train.py /^def main():$/;" f
+make_block_plugins .\mmseg\models\backbones\resnet.py /^ def make_block_plugins(self, in_channels, plugins):$/;" m class:Bottleneck
+make_divisible .\mmseg\models\backbones\mobilenet_v2.py /^from ..utils import InvertedResidual, make_divisible$/;" i
+make_divisible .\mmseg\models\utils\__init__.py /^from .make_divisible import make_divisible$/;" i
+make_divisible .\mmseg\models\utils\make_divisible.py /^def make_divisible(value, divisor, min_value=None, min_ratio=0.9):$/;" f
+make_divisible .\mmseg\models\utils\se_layer.py /^from .make_divisible import make_divisible$/;" i
+make_divisible .\tests\test_utils\test_make_divisible.py /^from mmseg.models.utils import make_divisible$/;" i
+make_layer .\mmseg\models\backbones\mobilenet_v2.py /^ def make_layer(self, out_channels, num_blocks, stride, dilation,$/;" m class:MobileNetV2
+make_res_layer .\mmseg\models\backbones\resnest.py /^ def make_res_layer(self, **kwargs):$/;" m class:ResNeSt
+make_res_layer .\mmseg\models\backbones\resnet.py /^ def make_res_layer(self, **kwargs):$/;" m class:ResNet
+make_res_layer .\mmseg\models\backbones\resnext.py /^ def make_res_layer(self, **kwargs):$/;" m class:ResNeXt
+make_stage_plugins .\mmseg\models\backbones\resnet.py /^ def make_stage_plugins(self, plugins, stage_idx):$/;" m class:ResNet
+mask_cross_entropy .\mmseg\models\losses\cross_entropy_loss.py /^def mask_cross_entropy(pred,$/;" f
+mask_size .\configs\_base_\models\psanet_r50-d8.py /^ mask_size=(97, 97),$/;" v
+master_doc .\docs\conf.py /^master_doc = 'index'$/;" v
+math .\mmseg\models\backbones\helpers.py /^import math$/;" i
+math .\mmseg\models\backbones\layers\weight_init.py /^import math$/;" i
+math .\mmseg\models\backbones\resnest.py /^import math$/;" i
+math .\mmseg\models\backbones\resnext.py /^import math$/;" i
+math .\mmseg\models\backbones\vit.py /^import math$/;" i
+math .\mmseg\models\backbones\vit_mla.py /^import math$/;" i
+math .\mmseg\models\decode_heads\ema_head.py /^import math$/;" i
+math .\mmseg\models\decode_heads\helpers.py /^import math$/;" i
+math .\mmseg\models\decode_heads\layers\weight_init.py /^import math$/;" i
+math .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import math$/;" i
+math .\mmseg\models\decode_heads\vit_mla_head.py /^import math$/;" i
+math .\mmseg\models\decode_heads\vit_up_head.py /^import math$/;" i
+math .\tests\test_data\test_dataset_builder.py /^import math$/;" i
+matplotlib .\mmseg\apis\inference.py /^import matplotlib.pyplot as plt$/;" i
+mean_dice .\mmseg\core\evaluation\__init__.py /^from .metrics import eval_metrics, mean_dice, mean_iou$/;" i
+mean_dice .\mmseg\core\evaluation\metrics.py /^def mean_dice(results,$/;" f
+mean_dice .\tests\test_metrics.py /^from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou$/;" i
+mean_iou .\mmseg\core\evaluation\__init__.py /^from .metrics import eval_metrics, mean_dice, mean_iou$/;" i
+mean_iou .\mmseg\core\evaluation\metrics.py /^def mean_iou(results,$/;" f
+mean_iou .\tests\test_metrics.py /^from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou$/;" i
+mla_channels .\configs\_base_\models\setr_mla.py /^ mla_channels=256,$/;" v
+mla_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ mla_channels=256,$/;" v
+mla_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ mla_channels=256,$/;" v
+mla_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ mla_channels=256,$/;" v
+mla_channels .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ mla_channels=256,$/;" v
+mla_index .\configs\_base_\models\setr_mla.py /^ mla_index=(5,11,17,23)$/;" v
+mla_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ mla_index=(5,7,9,11)$/;" v
+mla_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ mla_index=(5,7,9,11)$/;" v
+mla_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ mla_index=(5,7,9,11)$/;" v
+mla_index .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ mla_index=(5,11,17,23)$/;" v
+mlahead_channels .\configs\_base_\models\setr_mla.py /^ mlahead_channels=128,$/;" v
+mmcv .\.dev\gather_models.py /^import mmcv$/;" i
+mmcv .\mmseg\__init__.py /^import mmcv$/;" i
+mmcv .\mmseg\apis\inference.py /^import mmcv$/;" i
+mmcv .\mmseg\apis\test.py /^import mmcv$/;" i
+mmcv .\mmseg\core\evaluation\class_names.py /^import mmcv$/;" i
+mmcv .\mmseg\core\evaluation\metrics.py /^import mmcv$/;" i
+mmcv .\mmseg\datasets\cityscapes.py /^import mmcv$/;" i
+mmcv .\mmseg\datasets\custom.py /^import mmcv$/;" i
+mmcv .\mmseg\datasets\pipelines\formating.py /^import mmcv$/;" i
+mmcv .\mmseg\datasets\pipelines\loading.py /^import mmcv$/;" i
+mmcv .\mmseg\datasets\pipelines\test_time_aug.py /^import mmcv$/;" i
+mmcv .\mmseg\datasets\pipelines\transforms.py /^import mmcv$/;" i
+mmcv .\mmseg\models\backbones\mobilenet_v3.py /^import mmcv$/;" i
+mmcv .\mmseg\models\losses\lovasz_loss.py /^import mmcv$/;" i
+mmcv .\mmseg\models\segmentors\base.py /^import mmcv$/;" i
+mmcv .\mmseg\models\utils\se_layer.py /^import mmcv$/;" i
+mmcv .\tests\test_data\test_loading.py /^import mmcv$/;" i
+mmcv .\tests\test_data\test_transform.py /^import mmcv$/;" i
+mmcv .\tests\test_data\test_tta.py /^import mmcv$/;" i
+mmcv .\tests\test_eval_hook.py /^import mmcv.runner$/;" i
+mmcv .\tests\test_inference.py /^import mmcv$/;" i
+mmcv .\tests\test_utils\test_inverted_residual_module.py /^import mmcv$/;" i
+mmcv .\tests\test_utils\test_se_layer.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\chase_db1.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\cityscapes.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\drive.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\hrf.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\pascal_context.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\stare.py /^import mmcv$/;" i
+mmcv .\tools\convert_datasets\voc_aug.py /^import mmcv$/;" i
+mmcv .\tools\pytorch2onnx.py /^import mmcv$/;" i
+mmcv .\tools\test.py /^import mmcv$/;" i
+mmcv .\tools\train.py /^import mmcv$/;" i
+mmcv_max_version .\mmseg\__init__.py /^mmcv_max_version = digit_version(MMCV_MAX)$/;" v
+mmcv_min_version .\mmseg\__init__.py /^mmcv_min_version = digit_version(MMCV_MIN)$/;" v
+mmcv_version .\mmseg\__init__.py /^mmcv_version = digit_version(mmcv.__version__)$/;" v
+mmseg .\mmseg\utils\collect_env.py /^import mmseg$/;" i
+mmseg .\tests\test_config.py /^ import mmseg$/;" i
+mmseg .\tests\test_models\test_forward.py /^ import mmseg$/;" i
+mode .\configs\_base_\models\dnl_r50-d8.py /^ mode='embedded_gaussian',$/;" v
+mode .\configs\_base_\models\nonlocal_r50-d8.py /^ mode='embedded_gaussian',$/;" v
+mode .\configs\_base_\models\pointrend_r50.py /^ mode='whole',$/;" v
+model .\configs\_base_\models\ann_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\apcnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\ccnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\cgnet.py /^model = dict($/;" v
+model .\configs\_base_\models\danet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\deeplabv3_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^model = dict($/;" v
+model .\configs\_base_\models\deeplabv3plus_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\dmnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\dnl_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\emanet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\encnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\fast_scnn.py /^model = dict($/;" v
+model .\configs\_base_\models\fcn_hr18.py /^model = dict($/;" v
+model .\configs\_base_\models\fcn_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\fcn_unet_s5-d16.py /^model = dict($/;" v
+model .\configs\_base_\models\fpn_r50.py /^model = dict($/;" v
+model .\configs\_base_\models\gcnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\lraspp_m-v3-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\nonlocal_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\ocrnet_hr18.py /^model = dict($/;" v
+model .\configs\_base_\models\ocrnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\pointrend_r50.py /^model = dict($/;" v
+model .\configs\_base_\models\psanet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\pspnet_r50-d8.py /^model = dict($/;" v
+model .\configs\_base_\models\pspnet_unet_s5-d16.py /^model = dict($/;" v
+model .\configs\_base_\models\setr_mla.py /^model = dict($/;" v
+model .\configs\_base_\models\setr_naive_pup.py /^model = dict($/;" v
+model .\configs\_base_\models\upernet_r50.py /^model = dict($/;" v
+model .\configs\ann\ann_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ann\ann_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\ann\ann_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\ann\ann_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\ann\ann_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\apcnet\apcnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\apcnet\apcnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\apcnet\apcnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\apcnet\apcnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\apcnet\apcnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\apcnet\apcnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\apcnet\apcnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\apcnet\apcnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\ccnet\ccnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ccnet\ccnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\ccnet\ccnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\ccnet\ccnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\ccnet\ccnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\danet\danet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\danet\danet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\danet\danet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\danet\danet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\danet\danet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3\deeplabv3_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\deeplabv3\deeplabv3_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\deeplabv3plus\deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\dmnet\dmnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dmnet\dmnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dmnet\dmnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dmnet\dmnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dmnet\dmnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dmnet\dmnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dmnet\dmnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\dmnet\dmnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\dnlnet\dnl_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dnlnet\dnl_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dnlnet\dnl_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dnlnet\dnl_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dnlnet\dnl_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dnlnet\dnl_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\dnlnet\dnl_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\dnlnet\dnl_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\emanet\emanet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\emanet\emanet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\encnet\encnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\fcn\fcn_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\fcn\fcn_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^model = dict($/;" v
+model .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^model = dict($/;" v
+model .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^model = dict($/;" v
+model .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^model = dict($/;" v
+model .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^model = dict($/;" v
+model .\configs\foodnet\ccnet_r50-d8_512x1024_80k_RM.py /^model = dict(pretrained='.\/pretrained_model\/recipe1M_R50_LSTM.pth', backbone=dict(type='ResNet'))$/;" v
+model .\configs\foodnet\ccnet_vit_768x768_80k.py /^model = dict($/;" v
+model .\configs\foodnet\fpn_r50_512x1024_80k.py /^model = dict(decode_head=dict(num_classes=104))$/;" v
+model .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^model = dict(pretrained='.\/pretrained_model\/recipe1M_R50_LSTM.pth', $/;" v
+model .\configs\gcnet\gcnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\gcnet\gcnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\gcnet\gcnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\gcnet\gcnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\gcnet\gcnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18_512x512_160k_ade20k.py /^model = dict(decode_head=dict(num_classes=150))$/;" v
+model .\configs\hrnet\fcn_hr18_512x512_20k_voc12aug.py /^model = dict(decode_head=dict(num_classes=21))$/;" v
+model .\configs\hrnet\fcn_hr18_512x512_40k_voc12aug.py /^model = dict(decode_head=dict(num_classes=21))$/;" v
+model .\configs\hrnet\fcn_hr18_512x512_80k_ade20k.py /^model = dict(decode_head=dict(num_classes=150))$/;" v
+model .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/contrib\/mobilenet_v3_large')$/;" v
+model .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^model = dict($/;" v
+model .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^model = dict($/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\nonlocal_net\nonlocal_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\nonlocal_net\nonlocal_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\nonlocal_net\nonlocal_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\nonlocal_net\nonlocal_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^model = dict(decode_head=[$/;" v
+model .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^model = dict(decode_head=[$/;" v
+model .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^model = dict(decode_head=[$/;" v
+model .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^model = dict(decode_head=[$/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\point_rend\pointrend_r101_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\point_rend\pointrend_r101_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^model = dict(decode_head=[$/;" v
+model .\configs\psanet\psanet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\psanet\psanet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\psanet\psanet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\pspnet\pspnet_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\pspnet\pspnet_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+model .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+model .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\sem_fpn\fpn_r101_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\sem_fpn\fpn_r101_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\sem_fpn\fpn_r50_512x512_160k_ade20k.py /^model = dict(decode_head=dict(num_classes=150))$/;" v
+model .\configs\unet\deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+model .\configs\unet\deeplabv3_unet_s5-d16_128x128_40k_stare.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+model .\configs\unet\deeplabv3_unet_s5-d16_256x256_40k_hrf.py /^model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))$/;" v
+model .\configs\unet\deeplabv3_unet_s5-d16_64x64_40k_drive.py /^model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))$/;" v
+model .\configs\unet\fcn_unet_s5-d16_128x128_40k_chase_db1.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+model .\configs\unet\fcn_unet_s5-d16_128x128_40k_stare.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+model .\configs\unet\fcn_unet_s5-d16_256x256_40k_hrf.py /^model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))$/;" v
+model .\configs\unet\fcn_unet_s5-d16_64x64_40k_drive.py /^model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))$/;" v
+model .\configs\unet\pspnet_unet_s5-d16_128x128_40k_chase_db1.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+model .\configs\unet\pspnet_unet_s5-d16_128x128_40k_stare.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+model .\configs\unet\pspnet_unet_s5-d16_256x256_40k_hrf.py /^model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))$/;" v
+model .\configs\unet\pspnet_unet_s5-d16_64x64_40k_drive.py /^model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))$/;" v
+model .\configs\upernet\upernet_r101_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r101_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+model .\configs\upernet\upernet_r50_512x512_160k_ade20k.py /^model = dict($/;" v
+model .\configs\upernet\upernet_r50_512x512_20k_voc12aug.py /^model = dict($/;" v
+model .\configs\upernet\upernet_r50_512x512_40k_voc12aug.py /^model = dict($/;" v
+model .\configs\upernet\upernet_r50_512x512_80k_ade20k.py /^model = dict($/;" v
+model .\configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^model = dict($/;" v
+model .\configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^model = dict($/;" v
+model_name .\configs\_base_\models\setr_mla.py /^ model_name='vit_large_patch16_384',$/;" v
+model_name .\configs\_base_\models\setr_naive_pup.py /^ model_name='vit_base_patch16_224',$/;" v
+model_name .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ model_name='vit_base_patch16_384',$/;" v
+model_name .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ model_name='vit_base_patch16_224',$/;" v
+model_name .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ model_name='vit_base_patch16_224',$/;" v
+model_name .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ model_name='vit_base_patch16_224',$/;" v
+model_name .\configs\foodnet\ccnet_vit_768x768_80k.py /^ model_name='vit_large_patch16_224',$/;" v
+model_zoo .\mmseg\models\backbones\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+model_zoo .\mmseg\models\decode_heads\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+momentum .\configs\_base_\models\emanet_r50-d8.py /^ momentum=0.1,$/;" v
+msglist .\docs\stat.py /^msglist = '\\n'.join(x for _, _, x in stats)$/;" v
+multi_gpu_test .\mmseg\apis\__init__.py /^from .test import multi_gpu_test, single_gpu_test$/;" i
+multi_gpu_test .\mmseg\apis\test.py /^def multi_gpu_test(model,$/;" f
+multi_gpu_test .\mmseg\core\evaluation\eval_hooks.py /^ from mmseg.apis import multi_gpu_test$/;" i
+multi_gpu_test .\tests\test_eval_hook.py /^def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False):$/;" f
+multi_gpu_test .\tools\test.py /^from mmseg.apis import multi_gpu_test, single_gpu_test$/;" i
+multi_grid .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+multi_grid .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+multi_grid .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+multi_grid .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+neck .\configs\_base_\models\fpn_r50.py /^ neck=dict($/;" v
+neck .\configs\_base_\models\pointrend_r50.py /^ neck=dict($/;" v
+net .\tests\test_model.py /^net=torch.load(pthfile)$/;" v
+nn .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\cgnet.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\fast_scnn.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\helpers.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\helpers.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\hrnet.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\layers\drop.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\layers\drop.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\mobilenet_v2.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\mobilenet_v3.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\pvt.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\pvt.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\pvt_dia.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\pvt_dia.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\resnest.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\resnest.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\resnet.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\unet.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\vit.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\vit.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\backbones\vit_mla.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\backbones\vit_mla.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\builder.py /^from torch import nn$/;" i
+nn .\mmseg\models\decode_heads\ann_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\apc_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\apc_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\aspp_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\da_head.py /^from torch import nn$/;" i
+nn .\mmseg\models\decode_heads\da_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\decode_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\dm_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\dm_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\dnl_head.py /^from torch import nn$/;" i
+nn .\mmseg\models\decode_heads\ema_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\ema_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\enc_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\enc_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\fcn_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\fpn_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\helpers.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\helpers.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\layers\drop.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\layers\drop.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\lraspp_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\ocr_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\ocr_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\point_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\psa_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\psa_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\psp_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\sep_aspp_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\uper_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\decode_heads\vit_up_head.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\decode_heads\vit_up_head.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\losses\accuracy.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\losses\cross_entropy_loss.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\losses\cross_entropy_loss.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\losses\lovasz_loss.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\losses\lovasz_loss.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\losses\utils.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\necks\fpn.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\necks\fpn.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\segmentors\base.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\segmentors\cascade_encoder_decoder.py /^from torch import nn$/;" i
+nn .\mmseg\models\segmentors\encoder_decoder.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\segmentors\encoder_decoder.py /^import torch.nn.functional as F$/;" i
+nn .\mmseg\models\utils\inverted_residual.py /^from torch import nn as nn$/;" i
+nn .\mmseg\models\utils\res_layer.py /^from torch import nn as nn$/;" i
+nn .\mmseg\models\utils\se_layer.py /^import torch.nn as nn$/;" i
+nn .\mmseg\models\utils\self_attention_block.py /^from torch import nn as nn$/;" i
+nn .\mmseg\models\utils\up_conv_block.py /^import torch.nn as nn$/;" i
+nn .\mmseg\ops\encoding.py /^from torch import nn as nn$/;" i
+nn .\mmseg\ops\wrappers.py /^import torch.nn as nn$/;" i
+nn .\mmseg\ops\wrappers.py /^import torch.nn.functional as F$/;" i
+nn .\tests\test_config.py /^from torch import nn$/;" i
+nn .\tests\test_eval_hook.py /^import torch.nn as nn$/;" i
+nn .\tests\test_models\test_forward.py /^import torch.nn as nn$/;" i
+nn .\tests\test_models\test_segmentor.py /^from torch import nn$/;" i
+nn .\tests\test_models\test_unet.py /^from torch import nn$/;" i
+nn .\tools\pytorch2onnx.py /^from torch import nn$/;" i
+no_weight_decay .\mmseg\models\backbones\vit.py /^ def no_weight_decay(self):$/;" m class:VisionTransformer
+no_weight_decay .\mmseg\models\backbones\vit_mla.py /^ def no_weight_decay(self):$/;" m class:VIT_MLA
+noqa .\mmseg\core\__init__.py /^from .evaluation import * # noqa: F401, F403$/;" i
+noqa .\mmseg\core\__init__.py /^from .seg import * # noqa: F401, F403$/;" i
+noqa .\mmseg\core\__init__.py /^from .utils import * # noqa: F401, F403$/;" i
+noqa .\mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+noqa .\mmseg\models\__init__.py /^from .backbones import * # noqa: F401,F403$/;" i
+noqa .\mmseg\models\__init__.py /^from .decode_heads import * # noqa: F401,F403$/;" i
+noqa .\mmseg\models\__init__.py /^from .losses import * # noqa: F401,F403$/;" i
+noqa .\mmseg\models\__init__.py /^from .necks import * # noqa: F401,F403$/;" i
+noqa .\mmseg\models\__init__.py /^from .segmentors import * # noqa: F401,F403$/;" i
+noqa .\mmseg\models\backbones\helpers.py /^from urllib.parse import urlparse # noqa: F401$/;" i
+norm0 .\mmseg\models\backbones\resnest.py /^ def norm0(self):$/;" m class:SplitAttentionConv2d
+norm1 .\mmseg\models\backbones\hrnet.py /^ def norm1(self):$/;" m class:HRNet
+norm1 .\mmseg\models\backbones\resnest.py /^ def norm1(self):$/;" m class:SplitAttentionConv2d
+norm1 .\mmseg\models\backbones\resnet.py /^ def norm1(self):$/;" m class:BasicBlock
+norm1 .\mmseg\models\backbones\resnet.py /^ def norm1(self):$/;" m class:Bottleneck
+norm1 .\mmseg\models\backbones\resnet.py /^ def norm1(self):$/;" m class:ResNet
+norm2 .\mmseg\models\backbones\hrnet.py /^ def norm2(self):$/;" m class:HRNet
+norm2 .\mmseg\models\backbones\resnet.py /^ def norm2(self):$/;" m class:BasicBlock
+norm2 .\mmseg\models\backbones\resnet.py /^ def norm2(self):$/;" m class:Bottleneck
+norm3 .\mmseg\models\backbones\resnet.py /^ def norm3(self):$/;" m class:Bottleneck
+norm_cdf .\mmseg\models\backbones\layers\weight_init.py /^ def norm_cdf(x):$/;" f function:_no_grad_trunc_normal_
+norm_cdf .\mmseg\models\decode_heads\layers\weight_init.py /^ def norm_cdf(x):$/;" f function:_no_grad_trunc_normal_
+norm_cfg .\configs\_base_\models\ann_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\ann_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\apcnet_r50-d8.py /^ norm_cfg=dict(type='SyncBN', requires_grad=True),$/;" v
+norm_cfg .\configs\_base_\models\apcnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\apcnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\ccnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\ccnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\cgnet.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\cgnet.py /^norm_cfg = dict(type='SyncBN', eps=1e-03, requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\danet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\danet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\deeplabv3_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\deeplabv3_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\deeplabv3plus_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\dmnet_r50-d8.py /^ norm_cfg=dict(type='SyncBN', requires_grad=True),$/;" v
+norm_cfg .\configs\_base_\models\dmnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\dmnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\dnl_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\dnl_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\emanet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\emanet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\encnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\encnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\fast_scnn.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\fast_scnn.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\fast_scnn.py /^norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01)$/;" v
+norm_cfg .\configs\_base_\models\fcn_hr18.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\fcn_hr18.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\fcn_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\fcn_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\fpn_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\fpn_r50.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\gcnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\gcnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\lraspp_m-v3-d8.py /^ norm_cfg=norm_cfg),$/;" v
+norm_cfg .\configs\_base_\models\lraspp_m-v3-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\lraspp_m-v3-d8.py /^norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\nonlocal_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\nonlocal_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\ocrnet_hr18.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\ocrnet_hr18.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\ocrnet_hr18.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\ocrnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\ocrnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\ocrnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\pointrend_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\pointrend_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\pointrend_r50.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\psanet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\psanet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\pspnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\pspnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\setr_mla.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\setr_mla.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\setr_naive_pup.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\setr_naive_pup.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\_base_\models\upernet_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\_base_\models\upernet_r50.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\foodnet\ccnet_vit_768x768_80k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\foodnet\ccnet_vit_768x768_80k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg),$/;" v
+norm_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)$/;" v
+norm_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg),$/;" v
+norm_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_cfg .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval .\configs\_base_\models\ann_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\apcnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\ccnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\danet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\deeplabv3_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ norm_eval=False),$/;" v
+norm_eval .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\dmnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\dnl_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\emanet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\encnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\fcn_hr18.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\fcn_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\fcn_unet_s5-d16.py /^ norm_eval=False),$/;" v
+norm_eval .\configs\_base_\models\fpn_r50.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\gcnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\nonlocal_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\ocrnet_hr18.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\ocrnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\pointrend_r50.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\psanet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\pspnet_r50-d8.py /^ norm_eval=False,$/;" v
+norm_eval .\configs\_base_\models\pspnet_unet_s5-d16.py /^ norm_eval=False),$/;" v
+norm_eval .\configs\_base_\models\upernet_r50.py /^ norm_eval=False,$/;" v
+normal_init .\mmseg\models\decode_heads\decode_head.py /^from mmcv.cnn import normal_init$/;" i
+normal_init .\mmseg\models\decode_heads\point_head.py /^from mmcv.cnn import ConvModule, normal_init$/;" i
+normalization_factor .\configs\_base_\models\psanet_r50-d8.py /^ normalization_factor=1.0,$/;" v
+np .\docs\stat.py /^import numpy as np$/;" i
+np .\mmseg\apis\test.py /^import numpy as np$/;" i
+np .\mmseg\apis\train.py /^import numpy as np$/;" i
+np .\mmseg\core\evaluation\metrics.py /^import numpy as np$/;" i
+np .\mmseg\datasets\builder.py /^import numpy as np$/;" i
+np .\mmseg\datasets\cityscapes.py /^import numpy as np$/;" i
+np .\mmseg\datasets\custom.py /^import numpy as np$/;" i
+np .\mmseg\datasets\pipelines\formating.py /^import numpy as np$/;" i
+np .\mmseg\datasets\pipelines\loading.py /^import numpy as np$/;" i
+np .\mmseg\datasets\pipelines\transforms.py /^import numpy as np$/;" i
+np .\mmseg\models\decode_heads\fpn_head.py /^import numpy as np$/;" i
+np .\mmseg\models\segmentors\base.py /^import numpy as np$/;" i
+np .\tests\test_config.py /^ import numpy as np$/;" i
+np .\tests\test_data\test_dataset.py /^import numpy as np$/;" i
+np .\tests\test_data\test_loading.py /^import numpy as np$/;" i
+np .\tests\test_data\test_transform.py /^import numpy as np$/;" i
+np .\tests\test_metrics.py /^import numpy as np$/;" i
+np .\tests\test_models\test_forward.py /^import numpy as np$/;" i
+np .\tests\test_models\test_losses.py /^import numpy as np$/;" i
+np .\tests\test_models\test_segmentor.py /^import numpy as np$/;" i
+np .\tools\convert_datasets\pascal_context.py /^import numpy as np$/;" i
+np .\tools\convert_datasets\voc_aug.py /^import numpy as np$/;" i
+np .\tools\pytorch2onnx.py /^import numpy as np$/;" i
+np2tmp .\mmseg\apis\test.py /^def np2tmp(array, temp_file_name=None):$/;" f
+num_bases .\configs\_base_\models\emanet_r50-d8.py /^ num_bases=64,$/;" v
+num_blocks .\configs\_base_\models\cgnet.py /^ num_blocks=(3, 21),$/;" v
+num_blocks .\configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, ),$/;" v
+num_blocks .\configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, 4),$/;" v
+num_blocks .\configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, 4, 4),$/;" v
+num_blocks .\configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, 4, 4, 4),$/;" v
+num_blocks .\configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, ),$/;" v
+num_blocks .\configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, 4),$/;" v
+num_blocks .\configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, 4, 4),$/;" v
+num_blocks .\configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, 4, 4, 4),$/;" v
+num_branches .\configs\_base_\models\fcn_hr18.py /^ num_branches=1,$/;" v
+num_branches .\configs\_base_\models\fcn_hr18.py /^ num_branches=2,$/;" v
+num_branches .\configs\_base_\models\fcn_hr18.py /^ num_branches=3,$/;" v
+num_branches .\configs\_base_\models\fcn_hr18.py /^ num_branches=4,$/;" v
+num_branches .\configs\_base_\models\ocrnet_hr18.py /^ num_branches=1,$/;" v
+num_branches .\configs\_base_\models\ocrnet_hr18.py /^ num_branches=2,$/;" v
+num_branches .\configs\_base_\models\ocrnet_hr18.py /^ num_branches=3,$/;" v
+num_branches .\configs\_base_\models\ocrnet_hr18.py /^ num_branches=4,$/;" v
+num_channels .\configs\_base_\models\cgnet.py /^ num_channels=(32, 64, 128),$/;" v
+num_channels .\configs\_base_\models\fcn_hr18.py /^ num_channels=(18, 36)),$/;" v
+num_channels .\configs\_base_\models\fcn_hr18.py /^ num_channels=(18, 36, 72)),$/;" v
+num_channels .\configs\_base_\models\fcn_hr18.py /^ num_channels=(18, 36, 72, 144)))),$/;" v
+num_channels .\configs\_base_\models\fcn_hr18.py /^ num_channels=(64, )),$/;" v
+num_channels .\configs\_base_\models\ocrnet_hr18.py /^ num_channels=(18, 36)),$/;" v
+num_channels .\configs\_base_\models\ocrnet_hr18.py /^ num_channels=(18, 36, 72)),$/;" v
+num_channels .\configs\_base_\models\ocrnet_hr18.py /^ num_channels=(18, 36, 72, 144)))),$/;" v
+num_channels .\configs\_base_\models\ocrnet_hr18.py /^ num_channels=(64, )),$/;" v
+num_ckpts .\docs\stat.py /^num_ckpts = 0$/;" v
+num_classes .\configs\_base_\models\ann_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\apcnet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\ccnet_r50-d8.py /^ num_classes=104,$/;" v
+num_classes .\configs\_base_\models\cgnet.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\danet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\deeplabv3_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ num_classes=2,$/;" v
+num_classes .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\dmnet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\dnl_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\emanet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\encnet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\fast_scnn.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\fast_scnn.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\fcn_hr18.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\fcn_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\fcn_unet_s5-d16.py /^ num_classes=2,$/;" v
+num_classes .\configs\_base_\models\fpn_r50.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\gcnet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\lraspp_m-v3-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\nonlocal_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\ocrnet_hr18.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\ocrnet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\pointrend_r50.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\psanet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\pspnet_r50-d8.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\pspnet_unet_s5-d16.py /^ num_classes=2,$/;" v
+num_classes .\configs\_base_\models\setr_mla.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\setr_naive_pup.py /^ num_classes=19,$/;" v
+num_classes .\configs\_base_\models\upernet_r50.py /^ num_classes=19,$/;" v
+num_classes .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ num_classes=104,$/;" v
+num_classes .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_classes=104,$/;" v
+num_classes .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ num_classes=104,$/;" v
+num_classes .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ num_classes=104,$/;" v
+num_classes .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_classes=104,$/;" v
+num_classes .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_classes=104,$/;" v
+num_classes .\configs\foodnet\ccnet_vit_768x768_80k.py /^ num_classes=104,$/;" v
+num_classes .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ num_classes=19,$/;" v
+num_classes .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ num_classes=19,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ num_classes=150,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ num_classes=21,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ num_classes=21,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ num_classes=150,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ num_classes=19,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ num_classes=19,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ num_classes=19,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ num_classes=150,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ num_classes=21,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ num_classes=21,$/;" v
+num_classes .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ num_classes=150,$/;" v
+num_classes .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ num_classes=150,$/;" v
+num_codes .\configs\_base_\models\encnet_r50-d8.py /^ num_codes=32,$/;" v
+num_conv .\configs\_base_\models\setr_naive_pup.py /^ num_conv=2,$/;" v
+num_conv .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_conv=2,$/;" v
+num_conv .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_conv=2, $/;" v
+num_convs .\configs\_base_\models\ann_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\apcnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\ccnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\cgnet.py /^ num_convs=0,$/;" v
+num_convs .\configs\_base_\models\danet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\deeplabv3_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\dmnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\dnl_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\emanet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\encnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\fast_scnn.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\fcn_hr18.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\fcn_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\fcn_r50-d8.py /^ num_convs=2,$/;" v
+num_convs .\configs\_base_\models\fcn_unet_s5-d16.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\gcnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\nonlocal_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\ocrnet_hr18.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\ocrnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\psanet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\pspnet_r50-d8.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\pspnet_unet_s5-d16.py /^ num_convs=1,$/;" v
+num_convs .\configs\_base_\models\upernet_r50.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ num_convs=1,$/;" v
+num_convs .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ num_convs=1,$/;" v
+num_fcs .\configs\_base_\models\pointrend_r50.py /^ num_fcs=3,$/;" v
+num_fcs .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ num_fcs=3,$/;" v
+num_heads .\configs\_base_\models\setr_mla.py /^ num_heads=16, $/;" v
+num_heads .\configs\_base_\models\setr_naive_pup.py /^ num_heads=16,$/;" v
+num_heads .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ num_heads=12,$/;" v
+num_heads .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_heads=12,$/;" v
+num_heads .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ num_heads=12,$/;" v
+num_heads .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_heads=12,$/;" v
+num_heads .\configs\foodnet\ccnet_vit_768x768_80k.py /^ num_heads=12, $/;" v
+num_modules .\configs\_base_\models\fcn_hr18.py /^ num_modules=1,$/;" v
+num_modules .\configs\_base_\models\fcn_hr18.py /^ num_modules=3,$/;" v
+num_modules .\configs\_base_\models\fcn_hr18.py /^ num_modules=4,$/;" v
+num_modules .\configs\_base_\models\ocrnet_hr18.py /^ num_modules=1,$/;" v
+num_modules .\configs\_base_\models\ocrnet_hr18.py /^ num_modules=3,$/;" v
+num_modules .\configs\_base_\models\ocrnet_hr18.py /^ num_modules=4,$/;" v
+num_outs .\configs\_base_\models\fpn_r50.py /^ num_outs=4),$/;" v
+num_outs .\configs\_base_\models\pointrend_r50.py /^ num_outs=4),$/;" v
+num_stages .\configs\_base_\models\ann_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\apcnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\ccnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\danet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\deeplabv3_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ num_stages=5,$/;" v
+num_stages .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\dmnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\dnl_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\emanet_r50-d8.py /^ num_stages=3,$/;" v
+num_stages .\configs\_base_\models\emanet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\encnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\fcn_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\fcn_unet_s5-d16.py /^ num_stages=5,$/;" v
+num_stages .\configs\_base_\models\fpn_r50.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\gcnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\nonlocal_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\ocrnet_hr18.py /^ num_stages=2,$/;" v
+num_stages .\configs\_base_\models\ocrnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\ocrnet_r50-d8.py /^ num_stages=2,$/;" v
+num_stages .\configs\_base_\models\pointrend_r50.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\pointrend_r50.py /^ num_stages=2,$/;" v
+num_stages .\configs\_base_\models\psanet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\pspnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages .\configs\_base_\models\pspnet_unet_s5-d16.py /^ num_stages=5,$/;" v
+num_stages .\configs\_base_\models\upernet_r50.py /^ num_stages=4,$/;" v
+obj_from_dict .\tests\test_eval_hook.py /^from mmcv.runner import obj_from_dict$/;" i
+ocr_channels .\configs\_base_\models\ocrnet_hr18.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\_base_\models\ocrnet_r50-d8.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ ocr_channels=256,$/;" v
+ocr_channels .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ ocr_channels=256,$/;" v
+onnx .\tools\pytorch2onnx.py /^ import onnx$/;" i
+opset_version .\tools\pytorch2onnx.py /^ opset_version=args.opset_version,$/;" v
+optimizer .\configs\_base_\schedules\schedule_160k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer .\configs\_base_\schedules\schedule_20k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer .\configs\_base_\schedules\schedule_40k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer .\configs\_base_\schedules\schedule_80k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer .\configs\_base_\schedules\schedule_80k_step.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)$/;" v
+optimizer .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)$/;" v
+optimizer .\configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^optimizer = dict($/;" v
+optimizer .\configs\fastscnn\fast_scnn_4x8_80k_lr0.12_cityscapes.py /^optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5)$/;" v
+optimizer .\configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+optimizer .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+optimizer .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+optimizer .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+optimizer .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^optimizer = dict(lr=0.01, weight_decay=0.0, paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)}))$/;" v
+optimizer .\configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^optimizer = dict(lr=0.02)$/;" v
+optimizer .\configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^optimizer = dict(lr=0.02)$/;" v
+optimizer .\configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer .\configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+optimizer_config .\configs\_base_\schedules\schedule_160k.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\_base_\schedules\schedule_20k.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\_base_\schedules\schedule_40k.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\_base_\schedules\schedule_80k.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\_base_\schedules\schedule_80k_step.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\foodnet\fpn_r50_512x1024_80k.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^optimizer_config = dict()$/;" v
+optimizer_config .\configs\fp16\deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+optimizer_config .\configs\fp16\deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+optimizer_config .\configs\fp16\fcn_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+optimizer_config .\configs\fp16\pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+os .\.dev\gather_models.py /^import os$/;" i
+os .\.dev\gather_models.py /^import os.path as osp$/;" i
+os .\.dev\upload_modelzoo.py /^import os$/;" i
+os .\.dev\upload_modelzoo.py /^import os.path as osp$/;" i
+os .\docs\conf.py /^import os$/;" i
+os .\docs\stat.py /^import os.path as osp$/;" i
+os .\mmseg\apis\test.py /^import os.path as osp$/;" i
+os .\mmseg\core\evaluation\eval_hooks.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\chase_db1.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\cityscapes.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\custom.py /^import os$/;" i
+os .\mmseg\datasets\custom.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\drive.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\hrf.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\pascal_context.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\pipelines\loading.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\stare.py /^import os.path as osp$/;" i
+os .\mmseg\datasets\voc.py /^import os.path as osp$/;" i
+os .\mmseg\models\backbones\helpers.py /^import os$/;" i
+os .\tests\test_config.py /^import os$/;" i
+os .\tests\test_data\test_dataset.py /^import os.path as osp$/;" i
+os .\tests\test_data\test_dataset_builder.py /^import os.path as osp$/;" i
+os .\tests\test_data\test_loading.py /^import os.path as osp$/;" i
+os .\tests\test_data\test_transform.py /^import os.path as osp$/;" i
+os .\tests\test_data\test_tta.py /^import os.path as osp$/;" i
+os .\tests\test_inference.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\chase_db1.py /^import os$/;" i
+os .\tools\convert_datasets\chase_db1.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\cityscapes.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\drive.py /^import os$/;" i
+os .\tools\convert_datasets\drive.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\hrf.py /^import os$/;" i
+os .\tools\convert_datasets\hrf.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\pascal_context.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\stare.py /^import os$/;" i
+os .\tools\convert_datasets\stare.py /^import os.path as osp$/;" i
+os .\tools\convert_datasets\voc_aug.py /^import os.path as osp$/;" i
+os .\tools\test.py /^import os$/;" i
+os .\tools\train.py /^import os$/;" i
+os .\tools\train.py /^import os.path as osp$/;" i
+osp .\.dev\gather_models.py /^import os.path as osp$/;" i
+osp .\.dev\upload_modelzoo.py /^import os.path as osp$/;" i
+osp .\docs\stat.py /^import os.path as osp$/;" i
+osp .\mmseg\apis\test.py /^import os.path as osp$/;" i
+osp .\mmseg\core\evaluation\eval_hooks.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\chase_db1.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\cityscapes.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\custom.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\drive.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\hrf.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\pascal_context.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\pipelines\loading.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\stare.py /^import os.path as osp$/;" i
+osp .\mmseg\datasets\voc.py /^import os.path as osp$/;" i
+osp .\tests\test_data\test_dataset.py /^import os.path as osp$/;" i
+osp .\tests\test_data\test_dataset_builder.py /^import os.path as osp$/;" i
+osp .\tests\test_data\test_loading.py /^import os.path as osp$/;" i
+osp .\tests\test_data\test_transform.py /^import os.path as osp$/;" i
+osp .\tests\test_data\test_tta.py /^import os.path as osp$/;" i
+osp .\tests\test_inference.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\chase_db1.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\cityscapes.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\drive.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\hrf.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\pascal_context.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\stare.py /^import os.path as osp$/;" i
+osp .\tools\convert_datasets\voc_aug.py /^import os.path as osp$/;" i
+osp .\tools\train.py /^import os.path as osp$/;" i
+oss2 .\.dev\upload_modelzoo.py /^import oss2$/;" i
+out_channels .\configs\_base_\models\fpn_r50.py /^ out_channels=256,$/;" v
+out_channels .\configs\_base_\models\pointrend_r50.py /^ out_channels=256,$/;" v
+out_indices .\configs\_base_\models\ann_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\apcnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\ccnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\danet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\deeplabv3_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\dmnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\dnl_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\emanet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\encnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\fast_scnn.py /^ out_indices=(0, 1, 2),$/;" v
+out_indices .\configs\_base_\models\fcn_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\fpn_r50.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\gcnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\lraspp_m-v3-d8.py /^ out_indices=(1, 3, 16),$/;" v
+out_indices .\configs\_base_\models\nonlocal_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\ocrnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\pointrend_r50.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\psanet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\pspnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\_base_\models\upernet_r50.py /^ out_indices=(0, 1, 2, 3),$/;" v
+out_indices .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+out_indices .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ out_indices=(0, 1, 12),$/;" v
+out_indices .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ out_indices=(0, 1, 12),$/;" v
+output_file .\tools\pytorch2onnx.py /^ output_file=args.output_file,$/;" v
+pam_channels .\configs\_base_\models\danet_r50-d8.py /^ pam_channels=64,$/;" v
+pam_cls_seg .\mmseg\models\decode_heads\da_head.py /^ def pam_cls_seg(self, feat):$/;" m class:DAHead
+paper .\docs\stat.py /^ paper = set([(papertype, title)])$/;" v
+papertype .\docs\stat.py /^ papertype = _papertype[0]$/;" v
+paramwise_cfg .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ paramwise_cfg=dict($/;" v
+paramwise_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+paramwise_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+paramwise_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+paramwise_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+parse .\mmseg\models\backbones\layers\helpers.py /^ def parse(x):$/;" f function:_ntuple
+parse .\mmseg\models\decode_heads\layers\helpers.py /^ def parse(x):$/;" f function:_ntuple
+parse_args .\.dev\gather_models.py /^def parse_args():$/;" f
+parse_args .\.dev\upload_modelzoo.py /^def parse_args():$/;" f
+parse_args .\tools\benchmark.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\chase_db1.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\cityscapes.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\drive.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\hrf.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\pascal_context.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\stare.py /^def parse_args():$/;" f
+parse_args .\tools\convert_datasets\voc_aug.py /^def parse_args():$/;" f
+parse_args .\tools\get_flops.py /^def parse_args():$/;" f
+parse_args .\tools\print_config.py /^def parse_args():$/;" f
+parse_args .\tools\publish_model.py /^def parse_args():$/;" f
+parse_args .\tools\pytorch2onnx.py /^def parse_args():$/;" f
+parse_args .\tools\test.py /^def parse_args():$/;" f
+parse_args .\tools\train.py /^def parse_args():$/;" f
+parse_line .\setup.py /^ def parse_line(line):$/;" f function:parse_requirements
+parse_require_file .\setup.py /^ def parse_require_file(fpath):$/;" f function:parse_requirements
+parse_requirements .\setup.py /^def parse_requirements(fname='requirements.txt', with_version=True):$/;" f
+parse_version_info .\mmseg\version.py /^def parse_version_info(version_str):$/;" f
+partial .\mmseg\datasets\builder.py /^from functools import partial$/;" i
+partial .\mmseg\models\backbones\pvt.py /^from functools import partial$/;" i
+partial .\mmseg\models\backbones\pvt_dia.py /^from functools import partial$/;" i
+partial .\mmseg\models\backbones\vit.py /^from functools import partial$/;" i
+partial .\mmseg\models\backbones\vit_mla.py /^from functools import partial$/;" i
+partial .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from functools import partial$/;" i
+partial .\mmseg\models\decode_heads\vit_mla_head.py /^from functools import partial$/;" i
+partial .\mmseg\models\decode_heads\vit_up_head.py /^from functools import partial$/;" i
+partial .\tools\convert_datasets\pascal_context.py /^from functools import partial$/;" i
+partial .\tools\convert_datasets\voc_aug.py /^from functools import partial$/;" i
+partial .\tools\pytorch2onnx.py /^from functools import partial$/;" i
+patch .\tests\test_data\test_dataset.py /^from unittest.mock import MagicMock, patch$/;" i
+patch .\tests\test_eval_hook.py /^from unittest.mock import MagicMock, patch$/;" i
+patch .\tests\test_models\test_forward.py /^from unittest.mock import patch$/;" i
+patch .\tests\test_models\test_heads.py /^from unittest.mock import patch$/;" i
+patch_size .\configs\_base_\models\setr_mla.py /^ patch_size=16, $/;" v
+patch_size .\configs\_base_\models\setr_naive_pup.py /^ patch_size=16,$/;" v
+patch_size .\configs\foodnet\ccnet_vit_768x768_80k.py /^ patch_size=16, $/;" v
+pickle .\mmseg\apis\test.py /^import pickle$/;" i
+pipeline .\configs\_base_\datasets\FoodSeg103.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\FoodSeg103.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\FoodSeg103.py /^ pipeline=train_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\ade20k.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\ade20k.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\ade20k.py /^ pipeline=train_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\chase_db1.py /^ pipeline=train_pipeline)),$/;" v
+pipeline .\configs\_base_\datasets\chase_db1.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\chase_db1.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\cityscapes.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\cityscapes.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\cityscapes.py /^ pipeline=train_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\drive.py /^ pipeline=train_pipeline)),$/;" v
+pipeline .\configs\_base_\datasets\drive.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\drive.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\hrf.py /^ pipeline=train_pipeline)),$/;" v
+pipeline .\configs\_base_\datasets\hrf.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\hrf.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\pascal_context.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\pascal_context.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\pascal_context.py /^ pipeline=train_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\pascal_voc12.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\pascal_voc12.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\pascal_voc12.py /^ pipeline=train_pipeline),$/;" v
+pipeline .\configs\_base_\datasets\stare.py /^ pipeline=train_pipeline)),$/;" v
+pipeline .\configs\_base_\datasets\stare.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\_base_\datasets\stare.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ pipeline=test_pipeline))$/;" v
+pipeline .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ pipeline=test_pipeline),$/;" v
+pipeline .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ pipeline=train_pipeline),$/;" v
+platform .\mmseg\datasets\builder.py /^import platform$/;" i
+plt .\mmseg\apis\inference.py /^import matplotlib.pyplot as plt$/;" i
+point_sample .\mmseg\models\decode_heads\point_head.py /^from mmcv.ops import point_sample$/;" i
+policy .\configs\_base_\schedules\schedule_80k_step.py /^ policy='step',$/;" v
+pool_scales .\configs\_base_\models\apcnet_r50-d8.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pool_scales .\configs\_base_\models\pspnet_r50-d8.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pool_scales .\configs\_base_\models\pspnet_unet_s5-d16.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pool_scales .\configs\_base_\models\upernet_r50.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pooling_type .\configs\_base_\models\gcnet_r50-d8.py /^ pooling_type='att',$/;" v
+pos_embed_interp .\configs\_base_\models\setr_mla.py /^ pos_embed_interp=True,$/;" v
+pos_embed_interp .\configs\_base_\models\setr_naive_pup.py /^ pos_embed_interp=True,$/;" v
+pos_embed_interp .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ pos_embed_interp=True, $/;" v
+pos_embed_interp .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ pos_embed_interp=True, $/;" v
+pos_embed_interp .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ pos_embed_interp=True, $/;" v
+pos_embed_interp .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ pos_embed_interp=True, $/;" v
+pos_embed_interp .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ pos_embed_interp=True, $/;" v
+pos_embed_interp .\configs\foodnet\ccnet_vit_768x768_80k.py /^ pos_embed_interp=True,$/;" v
+pre_pipeline .\mmseg\datasets\custom.py /^ def pre_pipeline(self, results):$/;" m class:CustomDataset
+prepare_test_img .\mmseg\datasets\custom.py /^ def prepare_test_img(self, idx):$/;" m class:CustomDataset
+prepare_train_img .\mmseg\datasets\custom.py /^ def prepare_train_img(self, idx):$/;" m class:CustomDataset
+pretrained .\configs\_base_\models\ann_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\apcnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\ccnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\danet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\deeplabv3_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ pretrained=None,$/;" v
+pretrained .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\dmnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\dnl_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\emanet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\encnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\fcn_hr18.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18',$/;" v
+pretrained .\configs\_base_\models\fcn_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\fcn_unet_s5-d16.py /^ pretrained=None,$/;" v
+pretrained .\configs\_base_\models\fpn_r50.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\gcnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\nonlocal_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\ocrnet_hr18.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18',$/;" v
+pretrained .\configs\_base_\models\ocrnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\pointrend_r50.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\psanet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\pspnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\_base_\models\pspnet_unet_s5-d16.py /^ pretrained=None,$/;" v
+pretrained .\configs\_base_\models\upernet_r50.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+pretrained .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ pretrained='open-mmlab:\/\/contrib\/mobilenet_v3_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+pretrained .\configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+pretrained .\configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+pretrained .\configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+pretrained .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+pretrained .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+print_log .\mmseg\datasets\cityscapes.py /^from mmcv.utils import print_log$/;" i
+print_log .\mmseg\datasets\custom.py /^from mmcv.utils import print_log$/;" i
+process_checkpoint .\.dev\gather_models.py /^def process_checkpoint(in_file, out_file):$/;" f
+process_checkpoint .\tools\publish_model.py /^def process_checkpoint(in_file, out_file):$/;" f
+project .\docs\conf.py /^project = 'MMSegmentation'$/;" v
+project_channels .\configs\_base_\models\ann_r50-d8.py /^ project_channels=256,$/;" v
+psa_softmax .\configs\_base_\models\psanet_r50-d8.py /^ psa_softmax=True,$/;" v
+psa_type .\configs\_base_\models\psanet_r50-d8.py /^ psa_type='bi-direction',$/;" v
+psp_forward .\mmseg\models\decode_heads\uper_head.py /^ def psp_forward(self, inputs):$/;" m class:UPerHead
+pthfile .\tests\test_model.py /^pthfile = r'\/SEG\/mmsegmentation\/pretrained_model\/recipe1MP_R50.pth'$/;" v
+pvt_large .\mmseg\models\backbones\pvt.py /^class pvt_large(PyramidVisionTransformer):$/;" c
+pvt_small .\mmseg\models\backbones\__init__.py /^from .pvt import pvt_small, pvt_small_f4, pvt_tiny$/;" i
+pvt_small .\mmseg\models\backbones\pvt.py /^class pvt_small(PyramidVisionTransformer):$/;" c
+pvt_small_dia .\mmseg\models\backbones\__init__.py /^from .pvt_dia import pvt_small_dia$/;" i
+pvt_small_dia .\mmseg\models\backbones\pvt_dia.py /^class pvt_small_dia(PyramidVisionTransformer):$/;" c
+pvt_small_f4 .\mmseg\models\backbones\__init__.py /^from .pvt import pvt_small, pvt_small_f4, pvt_tiny$/;" i
+pvt_small_f4 .\mmseg\models\backbones\pvt.py /^class pvt_small_f4(PyramidVisionTransformer):$/;" c
+pvt_tiny .\mmseg\models\backbones\__init__.py /^from .pvt import pvt_small, pvt_small_f4, pvt_tiny$/;" i
+pvt_tiny .\mmseg\models\backbones\pvt.py /^class pvt_tiny(PyramidVisionTransformer):$/;" c
+pvt_tiny_dia .\mmseg\models\backbones\pvt_dia.py /^class pvt_tiny_dia(PyramidVisionTransformer):$/;" c
+pytest .\tests\test_data\test_dataset.py /^import pytest$/;" i
+pytest .\tests\test_data\test_dataset_builder.py /^import pytest$/;" i
+pytest .\tests\test_data\test_transform.py /^import pytest$/;" i
+pytest .\tests\test_data\test_tta.py /^import pytest$/;" i
+pytest .\tests\test_eval_hook.py /^import pytest$/;" i
+pytest .\tests\test_models\test_backbone.py /^import pytest$/;" i
+pytest .\tests\test_models\test_forward.py /^import pytest$/;" i
+pytest .\tests\test_models\test_heads.py /^import pytest$/;" i
+pytest .\tests\test_models\test_losses.py /^import pytest$/;" i
+pytest .\tests\test_models\test_unet.py /^import pytest$/;" i
+pytest .\tests\test_sampler.py /^import pytest$/;" i
+pytest .\tests\test_utils\test_inverted_residual_module.py /^import pytest$/;" i
+pytest .\tests\test_utils\test_se_layer.py /^import pytest$/;" i
+pytorch2onnx .\tools\pytorch2onnx.py /^def pytorch2onnx(model,$/;" f
+query_scales .\configs\_base_\models\ann_r50-d8.py /^ query_scales=(1, ),$/;" v
+radix .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+radix .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+radix .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+radix .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+radix .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+radix .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+radix .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+radix .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+random .\mmseg\apis\train.py /^import random$/;" i
+random .\mmseg\datasets\builder.py /^import random$/;" i
+random .\mmseg\datasets\pipelines\transforms.py /^from numpy import random$/;" i
+random_sample .\mmseg\datasets\pipelines\transforms.py /^ def random_sample(img_scales):$/;" m class:Resize
+random_sample_ratio .\mmseg\datasets\pipelines\transforms.py /^ def random_sample_ratio(img_scale, ratio_range):$/;" m class:Resize
+random_select .\mmseg\datasets\pipelines\transforms.py /^ def random_select(img_scales):$/;" m class:Resize
+ratio .\configs\_base_\models\gcnet_r50-d8.py /^ ratio=1 \/ 4.,$/;" v
+re .\docs\stat.py /^import re$/;" i
+re .\mmseg\models\backbones\helpers.py /^import re$/;" i
+re .\setup.py /^ import re$/;" i
+readme .\setup.py /^def readme():$/;" f
+recurrence .\configs\_base_\models\ccnet_r50-d8.py /^ recurrence=2,$/;" v
+reduce .\mmseg\datasets\custom.py /^from functools import reduce$/;" i
+reduce_loss .\mmseg\models\losses\__init__.py /^from .utils import reduce_loss, weight_reduce_loss, weighted_loss$/;" i
+reduce_loss .\mmseg\models\losses\utils.py /^def reduce_loss(loss, reduction):$/;" f
+reduce_loss .\tests\test_models\test_losses.py /^from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss$/;" i
+reduce_mean .\mmseg\models\decode_heads\ema_head.py /^def reduce_mean(tensor):$/;" f
+reduction .\configs\_base_\models\dnl_r50-d8.py /^ reduction=2,$/;" v
+reduction .\configs\_base_\models\nonlocal_r50-d8.py /^ reduction=2,$/;" v
+reduction_factor .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+reduction_factor .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+reductions .\configs\_base_\models\cgnet.py /^ reductions=(8, 16)),$/;" v
+register_extra_symbolics .\tools\pytorch2onnx.py /^from mmcv.onnx import register_extra_symbolics$/;" i
+register_model .\mmseg\models\backbones\pvt.py /^from timm.models.registry import register_model$/;" i
+register_model .\mmseg\models\backbones\pvt_dia.py /^from timm.models.registry import register_model$/;" i
+release .\docs\conf.py /^release = get_version()$/;" v
+relpath .\tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+repeat .\mmseg\models\backbones\layers\helpers.py /^from itertools import repeat$/;" i
+repeat .\mmseg\models\decode_heads\layers\helpers.py /^from itertools import repeat$/;" i
+reset_drop_path .\mmseg\models\backbones\pvt.py /^ def reset_drop_path(self, drop_path_rate):$/;" m class:PyramidVisionTransformer
+reset_drop_path .\mmseg\models\backbones\pvt_dia.py /^ def reset_drop_path(self, drop_path_rate):$/;" m class:PyramidVisionTransformer
+resize .\mmseg\models\backbones\fast_scnn.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\backbones\hrnet.py /^from mmseg.ops import Upsample, resize$/;" i
+resize .\mmseg\models\decode_heads\apc_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\aspp_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\decode_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\enc_head.py /^from mmseg.ops import Encoding, resize$/;" i
+resize .\mmseg\models\decode_heads\fpn_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\lraspp_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\ocr_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\point_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\psa_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\psp_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\sep_aspp_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\decode_heads\uper_head.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\segmentors\cascade_encoder_decoder.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\models\segmentors\encoder_decoder.py /^from mmseg.ops import resize$/;" i
+resize .\mmseg\ops\__init__.py /^from .wrappers import Upsample, resize$/;" i
+resize .\mmseg\ops\wrappers.py /^def resize(input,$/;" f
+resource .\mmseg\datasets\builder.py /^ import resource$/;" i
+results2img .\mmseg\datasets\cityscapes.py /^ def results2img(self, results, imgfile_prefix, to_label_id):$/;" m class:CityscapesDataset
+resume_from .\configs\_base_\default_runtime.py /^resume_from = None$/;" v
+return_counts .\docs\stat.py /^ return_counts=True)$/;" v
+rlimit .\mmseg\datasets\builder.py /^ rlimit = resource.getrlimit(resource.RLIMIT_NOFILE)$/;" v
+rt .\tools\pytorch2onnx.py /^import onnxruntime as rt$/;" i
+runner .\configs\_base_\schedules\schedule_160k.py /^runner = dict(type='IterBasedRunner', max_iters=160000)$/;" v
+runner .\configs\_base_\schedules\schedule_20k.py /^runner = dict(type='IterBasedRunner', max_iters=20000)$/;" v
+runner .\configs\_base_\schedules\schedule_40k.py /^runner = dict(type='IterBasedRunner', max_iters=40000)$/;" v
+runner .\configs\_base_\schedules\schedule_80k.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+runner .\configs\_base_\schedules\schedule_80k_step.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+runner .\configs\foodnet\fpn_r50_512x1024_80k.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+runner .\configs\foodnet\fpn_r50_512x1024_80k_RM.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+runner .\configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^runner = dict(type='IterBasedRunner', max_iters=320000)$/;" v
+runner .\configs\mobilenet_v3\lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py /^runner = dict(type='IterBasedRunner', max_iters=320000)$/;" v
+runner .\tests\test_eval_hook.py /^import mmcv.runner$/;" i
+sample .\mmseg\core\seg\sampler\base_pixel_sampler.py /^ def sample(self, seg_logit, seg_label):$/;" m class:BasePixelSampler
+sample .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^ def sample(self, seg_logit, seg_label):$/;" m class:OHEMPixelSampler
+sampler .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+sampler .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+sampler .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+sampler .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+samples_per_gpu .\configs\_base_\datasets\FoodSeg103.py /^ samples_per_gpu=2,$/;" v
+samples_per_gpu .\configs\_base_\datasets\ade20k.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\_base_\datasets\chase_db1.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\_base_\datasets\cityscapes.py /^ samples_per_gpu=2,$/;" v
+samples_per_gpu .\configs\_base_\datasets\drive.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\_base_\datasets\hrf.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\_base_\datasets\pascal_context.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\_base_\datasets\pascal_voc12.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\_base_\datasets\stare.py /^ samples_per_gpu=4,$/;" v
+samples_per_gpu .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ samples_per_gpu=8,$/;" v
+samples_per_gpu .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ samples_per_gpu=8,$/;" v
+saturation .\mmseg\datasets\pipelines\transforms.py /^ def saturation(self, img):$/;" m class:PhotoMetricDistortion
+scale_factor .\configs\_base_\models\pointrend_r50.py /^ scale_factor=2))$/;" v
+scaled_l2 .\mmseg\ops\encoding.py /^ def scaled_l2(x, codewords, scale):$/;" m class:Encoding
+scatter .\mmseg\apis\inference.py /^from mmcv.parallel import collate, scatter$/;" i
+segmentor .\tools\pytorch2onnx.py /^ segmentor = _convert_batchnorm(segmentor)$/;" v
+segmentor .\tools\pytorch2onnx.py /^ segmentor = build_segmentor($/;" v
+serialization .\tools\pytorch2onnx.py /^import torch.serialization$/;" i
+set_random_seed .\mmseg\apis\__init__.py /^from .train import get_root_logger, set_random_seed, train_segmentor$/;" i
+set_random_seed .\mmseg\apis\train.py /^def set_random_seed(seed, deterministic=False):$/;" f
+set_random_seed .\tools\train.py /^from mmseg.apis import set_random_seed, train_segmentor$/;" i
+setup .\docs\conf.py /^def setup(app):$/;" f
+setup .\setup.py /^from setuptools import find_packages, setup$/;" i
+setup_class .\tests\test_data\test_loading.py /^ def setup_class(cls):$/;" m class:TestLoading
+show .\tools\pytorch2onnx.py /^ show=args.show,$/;" v
+show_result .\mmseg\models\segmentors\base.py /^ def show_result(self,$/;" m class:BaseSegmentor
+show_result_pyplot .\demo\image_demo.py /^from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+show_result_pyplot .\mmseg\apis\__init__.py /^from .inference import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+show_result_pyplot .\mmseg\apis\inference.py /^def show_result_pyplot(model, img, result, palette=None, fig_size=(15, 10)):$/;" f
+shrink_factor .\configs\_base_\models\psanet_r50-d8.py /^ shrink_factor=2,$/;" v
+shutil .\.dev\gather_models.py /^import shutil$/;" i
+shutil .\mmseg\apis\test.py /^import shutil$/;" i
+simple_test .\mmseg\models\segmentors\base.py /^ def simple_test(self, img, img_meta, **kwargs):$/;" m class:BaseSegmentor
+simple_test .\mmseg\models\segmentors\encoder_decoder.py /^ def simple_test(self, img, img_meta, rescale=True):$/;" m class:EncoderDecoder
+single_gpu_test .\mmseg\apis\__init__.py /^from .test import multi_gpu_test, single_gpu_test$/;" i
+single_gpu_test .\mmseg\apis\test.py /^def single_gpu_test(model,$/;" f
+single_gpu_test .\mmseg\core\evaluation\eval_hooks.py /^ from mmseg.apis import single_gpu_test$/;" i
+single_gpu_test .\tests\test_eval_hook.py /^from mmseg.apis import single_gpu_test$/;" i
+single_gpu_test .\tools\test.py /^from mmseg.apis import multi_gpu_test, single_gpu_test$/;" i
+slide_inference .\mmseg\models\segmentors\encoder_decoder.py /^ def slide_inference(self, img, img_meta, rescale):$/;" m class:EncoderDecoder
+soft_limit .\mmseg\datasets\builder.py /^ soft_limit = min(4096, hard_limit)$/;" v
+source_suffix .\docs\conf.py /^source_suffix = {$/;" v
+split .\configs\_base_\datasets\pascal_context.py /^ split='ImageSets\/SegmentationContext\/train.txt',$/;" v
+split .\configs\_base_\datasets\pascal_context.py /^ split='ImageSets\/SegmentationContext\/val.txt',$/;" v
+split .\configs\_base_\datasets\pascal_voc12.py /^ split='ImageSets\/Segmentation\/train.txt',$/;" v
+split .\configs\_base_\datasets\pascal_voc12.py /^ split='ImageSets\/Segmentation\/val.txt',$/;" v
+split .\configs\_base_\datasets\pascal_voc12_aug.py /^ split=[$/;" v
+stage1 .\configs\_base_\models\fcn_hr18.py /^ stage1=dict($/;" v
+stage1 .\configs\_base_\models\ocrnet_hr18.py /^ stage1=dict($/;" v
+stage1 .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage1 .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 .\configs\_base_\models\fcn_hr18.py /^ stage2=dict($/;" v
+stage2 .\configs\_base_\models\ocrnet_hr18.py /^ stage2=dict($/;" v
+stage2 .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage2 .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 .\configs\_base_\models\fcn_hr18.py /^ stage3=dict($/;" v
+stage3 .\configs\_base_\models\ocrnet_hr18.py /^ stage3=dict($/;" v
+stage3 .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage3 .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 .\configs\_base_\models\fcn_hr18.py /^ stage4=dict($/;" v
+stage4 .\configs\_base_\models\ocrnet_hr18.py /^ stage4=dict($/;" v
+stage4 .\configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stage4 .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+stats .\docs\stat.py /^stats = []$/;" v
+stem_channels .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+stem_channels .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+step .\configs\_base_\schedules\schedule_80k_step.py /^ step=[40000, 60000], $/;" v
+step .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ step=[40000, 60000],$/;" v
+strides .\configs\_base_\models\ann_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\apcnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\ccnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\danet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\deeplabv3_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ strides=(1, 1, 1, 1, 1),$/;" v
+strides .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\dmnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\dnl_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\emanet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\encnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\fcn_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\fcn_unet_s5-d16.py /^ strides=(1, 1, 1, 1, 1),$/;" v
+strides .\configs\_base_\models\fpn_r50.py /^ strides=(1, 2, 2, 2),$/;" v
+strides .\configs\_base_\models\gcnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\nonlocal_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\ocrnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\pointrend_r50.py /^ strides=(1, 2, 2, 2),$/;" v
+strides .\configs\_base_\models\psanet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\pspnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+strides .\configs\_base_\models\pspnet_unet_s5-d16.py /^ strides=(1, 1, 1, 1, 1),$/;" v
+strides .\configs\_base_\models\upernet_r50.py /^ strides=(1, 2, 2, 2),$/;" v
+strides .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+strides .\configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+strides .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+strides .\configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+strides .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+strides .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+style .\configs\_base_\models\ann_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\apcnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\ccnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\danet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\deeplabv3_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\dmnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\dnl_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\emanet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\encnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\fcn_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\fpn_r50.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\gcnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\nonlocal_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\ocrnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\pointrend_r50.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\psanet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\pspnet_r50-d8.py /^ style='pytorch',$/;" v
+style .\configs\_base_\models\upernet_r50.py /^ style='pytorch',$/;" v
+subdivision_num_points .\configs\_base_\models\pointrend_r50.py /^ subdivision_num_points=8196,$/;" v
+subdivision_steps .\configs\_base_\models\pointrend_r50.py /^ subdivision_steps=2,$/;" v
+subprocess .\.dev\gather_models.py /^import subprocess$/;" i
+subprocess .\docs\conf.py /^import subprocess$/;" i
+subprocess .\tools\publish_model.py /^import subprocess$/;" i
+sys .\docs\conf.py /^import sys$/;" i
+sys .\mmseg\models\backbones\helpers.py /^import sys$/;" i
+sys .\setup.py /^ import sys$/;" i
+tarfile .\tools\convert_datasets\stare.py /^import tarfile$/;" i
+tempfile .\mmseg\apis\test.py /^import tempfile$/;" i
+tempfile .\mmseg\datasets\cityscapes.py /^import tempfile$/;" i
+tempfile .\tests\test_data\test_loading.py /^import tempfile$/;" i
+tempfile .\tests\test_eval_hook.py /^import tempfile$/;" i
+tempfile .\tools\convert_datasets\chase_db1.py /^import tempfile$/;" i
+tempfile .\tools\convert_datasets\drive.py /^import tempfile$/;" i
+tempfile .\tools\convert_datasets\hrf.py /^import tempfile$/;" i
+tempfile .\tools\convert_datasets\stare.py /^import tempfile$/;" i
+templates_path .\docs\conf.py /^templates_path = ['_templates']$/;" v
+tensor2imgs .\mmseg\apis\test.py /^from mmcv.image import tensor2imgs$/;" i
+test .\configs\_base_\datasets\FoodSeg103.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\Recipe1M_768x768.py /^ test=dict(pipeline=test_pipeline))$/;" v
+test .\configs\_base_\datasets\ade20k.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\chase_db1.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\cityscapes.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\cityscapes_769x769.py /^ test=dict(pipeline=test_pipeline))$/;" v
+test .\configs\_base_\datasets\drive.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\hrf.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\pascal_context.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\pascal_voc12.py /^ test=dict($/;" v
+test .\configs\_base_\datasets\stare.py /^ test=dict($/;" v
+test .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ test=dict($/;" v
+test .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ test=dict(pipeline=test_pipeline))$/;" v
+test_CLAHE .\tests\test_data\test_transform.py /^def test_CLAHE():$/;" f
+test_accuracy .\tests\test_models\test_losses.py /^def test_accuracy():$/;" f
+test_adjust_gamma .\tests\test_data\test_transform.py /^def test_adjust_gamma():$/;" f
+test_ann_forward .\tests\test_models\test_forward.py /^def test_ann_forward():$/;" f
+test_ann_head .\tests\test_models\test_heads.py /^def test_ann_head():$/;" f
+test_apc_head .\tests\test_models\test_heads.py /^def test_apc_head():$/;" f
+test_aspp_head .\tests\test_models\test_heads.py /^def test_aspp_head():$/;" f
+test_build_dataloader .\tests\test_data\test_dataset_builder.py /^def test_build_dataloader():$/;" f
+test_build_dataset .\tests\test_data\test_dataset_builder.py /^def test_build_dataset():$/;" f
+test_cascade_encoder_decoder .\tests\test_models\test_segmentor.py /^def test_cascade_encoder_decoder():$/;" f
+test_cc_head .\tests\test_models\test_heads.py /^def test_cc_head():$/;" f
+test_ccnet_forward .\tests\test_models\test_forward.py /^def test_ccnet_forward():$/;" f
+test_ce_loss .\tests\test_models\test_losses.py /^def test_ce_loss():$/;" f
+test_cfg .\configs\_base_\models\ann_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\apcnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\ccnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\cgnet.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\danet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\deeplabv3_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ test_cfg=dict(mode='slide', crop_size=256, stride=170))$/;" v
+test_cfg .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\dmnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\dnl_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\emanet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\encnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\fast_scnn.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\fcn_hr18.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\fcn_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^ test_cfg=dict(mode='slide', crop_size=256, stride=170))$/;" v
+test_cfg .\configs\_base_\models\fpn_r50.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\gcnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\lraspp_m-v3-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\nonlocal_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\ocrnet_hr18.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\ocrnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\pointrend_r50.py /^ test_cfg=dict($/;" v
+test_cfg .\configs\_base_\models\psanet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\pspnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^ test_cfg=dict(mode='slide', crop_size=256, stride=170))$/;" v
+test_cfg .\configs\_base_\models\setr_mla.py /^test_cfg = dict(mode='whole')$/;" v
+test_cfg .\configs\_base_\models\setr_naive_pup.py /^test_cfg = dict(mode='whole')$/;" v
+test_cfg .\configs\_base_\models\upernet_r50.py /^ test_cfg=dict(mode='whole'))$/;" v
+test_cfg .\configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+test_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+test_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+test_cfg .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+test_cfg .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+test_cfg .\configs\foodnet\ccnet_vit_768x768_80k.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+test_cfg .\configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+test_cfg .\configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))$/;" v
+test_cfg .\configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))$/;" v
+test_cfg .\configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cfg .\configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+test_cgnet_GlobalContextExtractor .\tests\test_models\test_backbone.py /^def test_cgnet_GlobalContextExtractor():$/;" f
+test_cgnet_backbone .\tests\test_models\test_backbone.py /^def test_cgnet_backbone():$/;" f
+test_cgnet_context_guided_block .\tests\test_models\test_backbone.py /^def test_cgnet_context_guided_block():$/;" f
+test_classes .\tests\test_data\test_dataset.py /^def test_classes():$/;" f
+test_config_build_segmentor .\tests\test_config.py /^def test_config_build_segmentor():$/;" f
+test_config_data_pipeline .\tests\test_config.py /^def test_config_data_pipeline():$/;" f
+test_custom_classes_override_default .\tests\test_data\test_dataset.py /^def test_custom_classes_override_default(dataset, classes):$/;" f
+test_custom_dataset .\tests\test_data\test_dataset.py /^def test_custom_dataset():$/;" f
+test_custom_dataset_custom_palette .\tests\test_data\test_dataset.py /^def test_custom_dataset_custom_palette():$/;" f
+test_custom_dataset_random_palette_is_generated .\tests\test_data\test_dataset.py /^def test_custom_dataset_random_palette_is_generated():$/;" f
+test_da_head .\tests\test_models\test_heads.py /^def test_da_head():$/;" f
+test_danet_forward .\tests\test_models\test_forward.py /^def test_danet_forward():$/;" f
+test_dataset_wrapper .\tests\test_data\test_dataset.py /^def test_dataset_wrapper():$/;" f
+test_decode_head .\tests\test_models\test_heads.py /^def test_decode_head():$/;" f
+test_deconv_module .\tests\test_models\test_unet.py /^def test_deconv_module():$/;" f
+test_deeplabv3_forward .\tests\test_models\test_forward.py /^def test_deeplabv3_forward():$/;" f
+test_deeplabv3plus_forward .\tests\test_models\test_forward.py /^def test_deeplabv3plus_forward():$/;" f
+test_dist_eval_hook .\tests\test_eval_hook.py /^def test_dist_eval_hook():$/;" f
+test_dist_eval_hook_epoch .\tests\test_eval_hook.py /^def test_dist_eval_hook_epoch():$/;" f
+test_dm_head .\tests\test_models\test_heads.py /^def test_dm_head():$/;" f
+test_dnl_head .\tests\test_models\test_heads.py /^def test_dnl_head():$/;" f
+test_dnlnet_forward .\tests\test_models\test_forward.py /^def test_dnlnet_forward():$/;" f
+test_dw_aspp_head .\tests\test_models\test_heads.py /^def test_dw_aspp_head():$/;" f
+test_emanet_forward .\tests\test_models\test_forward.py /^def test_emanet_forward():$/;" f
+test_emanet_head .\tests\test_models\test_heads.py /^def test_emanet_head():$/;" f
+test_enc_head .\tests\test_models\test_heads.py /^def test_enc_head():$/;" f
+test_encnet_forward .\tests\test_models\test_forward.py /^def test_encnet_forward():$/;" f
+test_encoder_decoder .\tests\test_models\test_segmentor.py /^def test_encoder_decoder():$/;" f
+test_epoch_eval_hook .\tests\test_eval_hook.py /^def test_epoch_eval_hook():$/;" f
+test_fastscnn_backbone .\tests\test_models\test_backbone.py /^def test_fastscnn_backbone():$/;" f
+test_fcn_forward .\tests\test_models\test_forward.py /^def test_fcn_forward():$/;" f
+test_fcn_head .\tests\test_models\test_heads.py /^def test_fcn_head():$/;" f
+test_flip .\tests\test_data\test_transform.py /^def test_flip():$/;" f
+test_fpn .\tests\test_models\test_necks.py /^def test_fpn():$/;" f
+test_gc_head .\tests\test_models\test_heads.py /^def test_gc_head():$/;" f
+test_gcnet_forward .\tests\test_models\test_forward.py /^def test_gcnet_forward():$/;" f
+test_hrnet_forward .\tests\test_models\test_forward.py /^def test_hrnet_forward():$/;" f
+test_interp_conv .\tests\test_models\test_unet.py /^def test_interp_conv():$/;" f
+test_inv_residual .\tests\test_utils\test_inverted_residual_module.py /^def test_inv_residual():$/;" f
+test_inv_residualv3 .\tests\test_utils\test_inverted_residual_module.py /^def test_inv_residualv3():$/;" f
+test_iter_eval_hook .\tests\test_eval_hook.py /^def test_iter_eval_hook():$/;" f
+test_load_img .\tests\test_data\test_loading.py /^ def test_load_img(self):$/;" m class:TestLoading
+test_load_seg .\tests\test_data\test_loading.py /^ def test_load_seg(self):$/;" m class:TestLoading
+test_load_seg_custom_classes .\tests\test_data\test_loading.py /^ def test_load_seg_custom_classes(self):$/;" m class:TestLoading
+test_lovasz_loss .\tests\test_models\test_losses.py /^def test_lovasz_loss():$/;" f
+test_lraspp_head .\tests\test_models\test_heads.py /^def test_lraspp_head():$/;" f
+test_make_divisible .\tests\test_utils\test_make_divisible.py /^def test_make_divisible():$/;" f
+test_mean_dice .\tests\test_metrics.py /^def test_mean_dice():$/;" f
+test_mean_iou .\tests\test_metrics.py /^def test_mean_iou():$/;" f
+test_metrics .\tests\test_metrics.py /^def test_metrics():$/;" f
+test_mobilenet_v2_forward .\tests\test_models\test_forward.py /^def test_mobilenet_v2_forward():$/;" f
+test_mobilenet_v3 .\tests\test_models\test_backbone.py /^def test_mobilenet_v3():$/;" f
+test_multi_scale_flip_aug .\tests\test_data\test_tta.py /^def test_multi_scale_flip_aug():$/;" f
+test_nl_head .\tests\test_models\test_heads.py /^def test_nl_head():$/;" f
+test_nonlocal_net_forward .\tests\test_models\test_forward.py /^def test_nonlocal_net_forward():$/;" f
+test_normalize .\tests\test_data\test_transform.py /^def test_normalize():$/;" f
+test_ocr_head .\tests\test_models\test_heads.py /^def test_ocr_head():$/;" f
+test_ocrnet_forward .\tests\test_models\test_forward.py /^def test_ocrnet_forward():$/;" f
+test_ohem_sampler .\tests\test_sampler.py /^def test_ohem_sampler():$/;" f
+test_pad .\tests\test_data\test_transform.py /^def test_pad():$/;" f
+test_palette .\tests\test_data\test_dataset.py /^def test_palette():$/;" f
+test_pipeline .\configs\_base_\datasets\FoodSeg103.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\Recipe1M_768x768.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\ade20k.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\chase_db1.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\cityscapes.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\cityscapes_769x769.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\drive.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\hrf.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\pascal_context.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\pascal_voc12.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\_base_\datasets\stare.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^test_pipeline = [$/;" v
+test_pipeline .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^test_pipeline = [$/;" v
+test_point_head .\tests\test_models\test_heads.py /^def test_point_head():$/;" f
+test_point_rend_forward .\tests\test_models\test_forward.py /^def test_point_rend_forward():$/;" f
+test_psa_head .\tests\test_models\test_heads.py /^def test_psa_head():$/;" f
+test_psanet_forward .\tests\test_models\test_forward.py /^def test_psanet_forward():$/;" f
+test_psp_head .\tests\test_models\test_heads.py /^def test_psp_head():$/;" f
+test_pspnet_forward .\tests\test_models\test_forward.py /^def test_pspnet_forward():$/;" f
+test_random_crop .\tests\test_data\test_transform.py /^def test_random_crop():$/;" f
+test_renext_bottleneck .\tests\test_models\test_backbone.py /^def test_renext_bottleneck():$/;" f
+test_rerange .\tests\test_data\test_transform.py /^def test_rerange():$/;" f
+test_resize .\tests\test_data\test_transform.py /^def test_resize():$/;" f
+test_resnest_backbone .\tests\test_models\test_backbone.py /^def test_resnest_backbone():$/;" f
+test_resnest_bottleneck .\tests\test_models\test_backbone.py /^def test_resnest_bottleneck():$/;" f
+test_resnet_backbone .\tests\test_models\test_backbone.py /^def test_resnet_backbone():$/;" f
+test_resnet_basic_block .\tests\test_models\test_backbone.py /^def test_resnet_basic_block():$/;" f
+test_resnet_bottleneck .\tests\test_models\test_backbone.py /^def test_resnet_bottleneck():$/;" f
+test_resnet_res_layer .\tests\test_models\test_backbone.py /^def test_resnet_res_layer():$/;" f
+test_resnext_backbone .\tests\test_models\test_backbone.py /^def test_resnext_backbone():$/;" f
+test_rgb2gray .\tests\test_data\test_transform.py /^def test_rgb2gray():$/;" f
+test_rotate .\tests\test_data\test_transform.py /^def test_rotate():$/;" f
+test_se_layer .\tests\test_utils\test_se_layer.py /^def test_se_layer():$/;" f
+test_seg_rescale .\tests\test_data\test_transform.py /^def test_seg_rescale():$/;" f
+test_sem_fpn_forward .\tests\test_models\test_forward.py /^def test_sem_fpn_forward():$/;" f
+test_sep_fcn_head .\tests\test_models\test_heads.py /^def test_sep_fcn_head():$/;" f
+test_test_time_augmentation_on_cpu .\tests\test_inference.py /^def test_test_time_augmentation_on_cpu():$/;" f
+test_unet .\tests\test_models\test_unet.py /^def test_unet():$/;" f
+test_unet_basic_conv_block .\tests\test_models\test_unet.py /^def test_unet_basic_conv_block():$/;" f
+test_up_conv_block .\tests\test_models\test_unet.py /^def test_up_conv_block():$/;" f
+test_uper_head .\tests\test_models\test_heads.py /^def test_uper_head():$/;" f
+test_upernet_forward .\tests\test_models\test_forward.py /^def test_upernet_forward():$/;" f
+test_utils .\tests\test_models\test_losses.py /^def test_utils():$/;" f
+time .\tools\benchmark.py /^import time$/;" i
+time .\tools\train.py /^import time$/;" i
+times .\configs\_base_\datasets\chase_db1.py /^ times=40000,$/;" v
+times .\configs\_base_\datasets\drive.py /^ times=40000,$/;" v
+times .\configs\_base_\datasets\hrf.py /^ times=40000,$/;" v
+times .\configs\_base_\datasets\stare.py /^ times=40000,$/;" v
+title .\docs\stat.py /^ title = content.split('\\n')[0].replace('#', '').strip()$/;" v
+titles .\docs\stat.py /^titles = []$/;" v
+to_1D .\mmseg\models\backbones\vit.py /^ def to_1D(self, x):$/;" m class:VisionTransformer
+to_1tuple .\mmseg\models\backbones\layers\helpers.py /^to_1tuple = _ntuple(1)$/;" v
+to_1tuple .\mmseg\models\decode_heads\layers\helpers.py /^to_1tuple = _ntuple(1)$/;" v
+to_2D .\mmseg\models\backbones\vit.py /^ def to_2D(self, x):$/;" m class:VisionTransformer
+to_2D .\mmseg\models\backbones\vit_mla.py /^ def to_2D(self, x):$/;" m class:Conv_MLA
+to_2D .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^ def to_2D(self, x):$/;" m class:VIT_MLA_AUXIHead
+to_2tuple .\mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_2tuple .\mmseg\models\backbones\layers\helpers.py /^to_2tuple = _ntuple(2)$/;" v
+to_2tuple .\mmseg\models\backbones\pvt.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_2tuple .\mmseg\models\backbones\pvt_dia.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_2tuple .\mmseg\models\backbones\vit.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_2tuple .\mmseg\models\backbones\vit_mla.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_2tuple .\mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_2tuple .\mmseg\models\decode_heads\layers\helpers.py /^to_2tuple = _ntuple(2)$/;" v
+to_2tuple .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_2tuple .\mmseg\models\decode_heads\vit_mla_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_2tuple .\mmseg\models\decode_heads\vit_up_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+to_3tuple .\mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_3tuple .\mmseg\models\backbones\layers\helpers.py /^to_3tuple = _ntuple(3)$/;" v
+to_3tuple .\mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_3tuple .\mmseg\models\decode_heads\layers\helpers.py /^to_3tuple = _ntuple(3)$/;" v
+to_4tuple .\mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_4tuple .\mmseg\models\backbones\layers\helpers.py /^to_4tuple = _ntuple(4)$/;" v
+to_4tuple .\mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_4tuple .\mmseg\models\decode_heads\layers\helpers.py /^to_4tuple = _ntuple(4)$/;" v
+to_cuda .\tests\test_models\test_heads.py /^def to_cuda(module, data):$/;" f
+to_ntuple .\mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_ntuple .\mmseg\models\backbones\layers\helpers.py /^to_ntuple = _ntuple$/;" v
+to_ntuple .\mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_ntuple .\mmseg\models\decode_heads\layers\helpers.py /^to_ntuple = _ntuple$/;" v
+to_tensor .\mmseg\datasets\pipelines\formating.py /^def to_tensor(data):$/;" f
+torch .\.dev\gather_models.py /^import torch$/;" i
+torch .\mmseg\apis\inference.py /^import torch$/;" i
+torch .\mmseg\apis\test.py /^import torch$/;" i
+torch .\mmseg\apis\test.py /^import torch.distributed as dist$/;" i
+torch .\mmseg\apis\train.py /^import torch$/;" i
+torch .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch$/;" i
+torch .\mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\datasets\pipelines\formating.py /^import torch$/;" i
+torch .\mmseg\models\backbones\cgnet.py /^import torch$/;" i
+torch .\mmseg\models\backbones\cgnet.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\cgnet.py /^import torch.utils.checkpoint as cp$/;" i
+torch .\mmseg\models\backbones\fast_scnn.py /^import torch$/;" i
+torch .\mmseg\models\backbones\fast_scnn.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\helpers.py /^import torch$/;" i
+torch .\mmseg\models\backbones\helpers.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\helpers.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\backbones\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+torch .\mmseg\models\backbones\hrnet.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\layers\drop.py /^import torch$/;" i
+torch .\mmseg\models\backbones\layers\drop.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\layers\drop.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\backbones\layers\weight_init.py /^import torch$/;" i
+torch .\mmseg\models\backbones\mobilenet_v2.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\mobilenet_v3.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\pvt.py /^import torch$/;" i
+torch .\mmseg\models\backbones\pvt.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\pvt.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\backbones\pvt_dia.py /^import torch$/;" i
+torch .\mmseg\models\backbones\pvt_dia.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\pvt_dia.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\backbones\resnest.py /^import torch$/;" i
+torch .\mmseg\models\backbones\resnest.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\resnest.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\backbones\resnest.py /^import torch.utils.checkpoint as cp$/;" i
+torch .\mmseg\models\backbones\resnet.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\resnet.py /^import torch.utils.checkpoint as cp$/;" i
+torch .\mmseg\models\backbones\unet.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\unet.py /^import torch.utils.checkpoint as cp$/;" i
+torch .\mmseg\models\backbones\vit.py /^import torch$/;" i
+torch .\mmseg\models\backbones\vit.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\vit.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\backbones\vit_mla.py /^import torch$/;" i
+torch .\mmseg\models\backbones\vit_mla.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\backbones\vit_mla.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\ann_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\ann_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\apc_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\apc_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\apc_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\aspp_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\aspp_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\cc_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\da_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\da_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\decode_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\decode_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\dm_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\dm_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\dm_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\dnl_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\ema_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\ema_head.py /^import torch.distributed as dist$/;" i
+torch .\mmseg\models\decode_heads\ema_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\ema_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\enc_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\enc_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\enc_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\fcn_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\fcn_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\fpn_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\gc_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\helpers.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\helpers.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\helpers.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+torch .\mmseg\models\decode_heads\layers\drop.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\layers\drop.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\layers\drop.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\layers\weight_init.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\lraspp_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\lraspp_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\nl_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\ocr_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\ocr_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\ocr_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\point_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\point_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\psa_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\psa_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\psa_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\psp_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\psp_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\sep_aspp_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\sep_aspp_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\uper_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\uper_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\vit_mla_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\decode_heads\vit_up_head.py /^import torch$/;" i
+torch .\mmseg\models\decode_heads\vit_up_head.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\decode_heads\vit_up_head.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\losses\accuracy.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\losses\cross_entropy_loss.py /^import torch$/;" i
+torch .\mmseg\models\losses\cross_entropy_loss.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\losses\cross_entropy_loss.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\losses\lovasz_loss.py /^import torch$/;" i
+torch .\mmseg\models\losses\lovasz_loss.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\losses\lovasz_loss.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\losses\utils.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\necks\fpn.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\necks\fpn.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\segmentors\base.py /^import torch$/;" i
+torch .\mmseg\models\segmentors\base.py /^import torch.distributed as dist$/;" i
+torch .\mmseg\models\segmentors\base.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\segmentors\encoder_decoder.py /^import torch$/;" i
+torch .\mmseg\models\segmentors\encoder_decoder.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\segmentors\encoder_decoder.py /^import torch.nn.functional as F$/;" i
+torch .\mmseg\models\utils\se_layer.py /^import torch.nn as nn$/;" i
+torch .\mmseg\models\utils\self_attention_block.py /^import torch$/;" i
+torch .\mmseg\models\utils\up_conv_block.py /^import torch$/;" i
+torch .\mmseg\models\utils\up_conv_block.py /^import torch.nn as nn$/;" i
+torch .\mmseg\ops\encoding.py /^import torch$/;" i
+torch .\mmseg\ops\wrappers.py /^import torch$/;" i
+torch .\mmseg\ops\wrappers.py /^import torch.nn as nn$/;" i
+torch .\mmseg\ops\wrappers.py /^import torch.nn.functional as F$/;" i
+torch .\tests\test_eval_hook.py /^import torch$/;" i
+torch .\tests\test_eval_hook.py /^import torch.nn as nn$/;" i
+torch .\tests\test_model.py /^import torch$/;" i
+torch .\tests\test_models\test_backbone.py /^import torch$/;" i
+torch .\tests\test_models\test_forward.py /^import torch$/;" i
+torch .\tests\test_models\test_forward.py /^import torch.nn as nn$/;" i
+torch .\tests\test_models\test_heads.py /^import torch$/;" i
+torch .\tests\test_models\test_losses.py /^import torch$/;" i
+torch .\tests\test_models\test_necks.py /^import torch$/;" i
+torch .\tests\test_models\test_segmentor.py /^import torch$/;" i
+torch .\tests\test_models\test_unet.py /^import torch$/;" i
+torch .\tests\test_sampler.py /^import torch$/;" i
+torch .\tests\test_utils\test_inverted_residual_module.py /^import torch$/;" i
+torch .\tests\test_utils\test_se_layer.py /^import torch$/;" i
+torch .\tools\benchmark.py /^import torch$/;" i
+torch .\tools\publish_model.py /^import torch$/;" i
+torch .\tools\pytorch2onnx.py /^import torch$/;" i
+torch .\tools\pytorch2onnx.py /^import torch._C$/;" i
+torch .\tools\pytorch2onnx.py /^import torch.serialization$/;" i
+torch .\tools\test.py /^import torch$/;" i
+torch .\tools\train.py /^import torch$/;" i
+total_intersect_and_union .\mmseg\core\evaluation\metrics.py /^def total_intersect_and_union(results,$/;" f
+total_iters .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^total_iters = 60000$/;" v
+total_iters .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^total_iters = 60000$/;" v
+train .\configs\_base_\datasets\FoodSeg103.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\Recipe1M_768x768.py /^ train=dict(pipeline=train_pipeline),$/;" v
+train .\configs\_base_\datasets\ade20k.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\chase_db1.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\cityscapes.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\cityscapes_769x769.py /^ train=dict(pipeline=train_pipeline),$/;" v
+train .\configs\_base_\datasets\drive.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\hrf.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\pascal_context.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\pascal_voc12.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\pascal_voc12_aug.py /^ train=dict($/;" v
+train .\configs\_base_\datasets\stare.py /^ train=dict($/;" v
+train .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ train=dict($/;" v
+train .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ train=dict(pipeline=train_pipeline),$/;" v
+train .\mmseg\models\backbones\cgnet.py /^ def train(self, mode=True):$/;" m class:CGNet
+train .\mmseg\models\backbones\hrnet.py /^ def train(self, mode=True):$/;" m class:HRNet
+train .\mmseg\models\backbones\mobilenet_v2.py /^ def train(self, mode=True):$/;" m class:MobileNetV2
+train .\mmseg\models\backbones\mobilenet_v3.py /^ def train(self, mode=True):$/;" m class:MobileNetV3
+train .\mmseg\models\backbones\resnet.py /^ def train(self, mode=True):$/;" m class:ResNet
+train .\mmseg\models\backbones\unet.py /^ def train(self, mode=True):$/;" m class:UNet
+train_cfg .\configs\_base_\models\ann_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\apcnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\ccnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\cgnet.py /^ train_cfg=dict(sampler=None),$/;" v
+train_cfg .\configs\_base_\models\danet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\deeplabv3_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\dmnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\dnl_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\emanet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\encnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\fast_scnn.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\fcn_hr18.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\fcn_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\fpn_r50.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\gcnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\lraspp_m-v3-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\nonlocal_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\ocrnet_hr18.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\ocrnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\pointrend_r50.py /^ train_cfg=dict($/;" v
+train_cfg .\configs\_base_\models\psanet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\pspnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^ train_cfg=dict(),$/;" v
+train_cfg .\configs\_base_\models\setr_mla.py /^train_cfg = dict()$/;" v
+train_cfg .\configs\_base_\models\setr_naive_pup.py /^train_cfg = dict()$/;" v
+train_cfg .\configs\_base_\models\upernet_r50.py /^ train_cfg=dict(),$/;" v
+train_pipeline .\configs\_base_\datasets\FoodSeg103.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\Recipe1M_768x768.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\ade20k.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\chase_db1.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\cityscapes.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\cityscapes_769x769.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\drive.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\hrf.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\pascal_context.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\pascal_voc12.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\_base_\datasets\stare.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^train_pipeline = [$/;" v
+train_pipeline .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^train_pipeline = [$/;" v
+train_segmentor .\mmseg\apis\__init__.py /^from .train import get_root_logger, set_random_seed, train_segmentor$/;" i
+train_segmentor .\mmseg\apis\train.py /^def train_segmentor(model,$/;" f
+train_segmentor .\tools\train.py /^from mmseg.apis import set_random_seed, train_segmentor$/;" i
+train_step .\mmseg\models\segmentors\base.py /^ def train_step(self, data_batch, optimizer, **kwargs):$/;" m class:BaseSegmentor
+train_step .\tests\test_eval_hook.py /^ def train_step(self, data_batch, optimizer):$/;" m class:ExampleModel
+transforms .\configs\_base_\datasets\FoodSeg103.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\Recipe1M_768x768.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\ade20k.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\chase_db1.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\cityscapes.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\cityscapes_769x769.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\drive.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\hrf.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\pascal_context.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\pascal_voc12.py /^ transforms=[$/;" v
+transforms .\configs\_base_\datasets\stare.py /^ transforms=[$/;" v
+transforms .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ transforms=[$/;" v
+transforms .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ transforms=[$/;" v
+trunc_normal_ .\mmseg\models\backbones\layers\__init__.py /^from .weight_init import trunc_normal_/;" i
+trunc_normal_ .\mmseg\models\backbones\layers\weight_init.py /^def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):$/;" f
+trunc_normal_ .\mmseg\models\backbones\pvt.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+trunc_normal_ .\mmseg\models\backbones\pvt_dia.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+trunc_normal_ .\mmseg\models\backbones\vit.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+trunc_normal_ .\mmseg\models\backbones\vit_mla.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+trunc_normal_ .\mmseg\models\decode_heads\layers\__init__.py /^from .weight_init import trunc_normal_/;" i
+trunc_normal_ .\mmseg\models\decode_heads\layers\weight_init.py /^def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):$/;" f
+trunc_normal_ .\mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+trunc_normal_ .\mmseg\models\decode_heads\vit_mla_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+trunc_normal_ .\mmseg\models\decode_heads\vit_up_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+type .\configs\_base_\datasets\FoodSeg103.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\FoodSeg103.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\Recipe1M_768x768.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\ade20k.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\ade20k.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\chase_db1.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\chase_db1.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\chase_db1.py /^ type='RepeatDataset',$/;" v
+type .\configs\_base_\datasets\chase_db1.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\cityscapes.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\cityscapes.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\cityscapes_769x769.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\drive.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\drive.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\drive.py /^ type='RepeatDataset',$/;" v
+type .\configs\_base_\datasets\drive.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\hrf.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\hrf.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\hrf.py /^ type='RepeatDataset',$/;" v
+type .\configs\_base_\datasets\hrf.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\pascal_context.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\pascal_context.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\pascal_voc12.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\pascal_voc12.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\stare.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\datasets\stare.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\_base_\datasets\stare.py /^ type='RepeatDataset',$/;" v
+type .\configs\_base_\datasets\stare.py /^ type=dataset_type,$/;" v
+type .\configs\_base_\models\ann_r50-d8.py /^ type='ANNHead',$/;" v
+type .\configs\_base_\models\ann_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\ann_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\ann_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\apcnet_r50-d8.py /^ type='APCHead',$/;" v
+type .\configs\_base_\models\apcnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\apcnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\apcnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\ccnet_r50-d8.py /^ type='CCHead',$/;" v
+type .\configs\_base_\models\ccnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\ccnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\ccnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\cgnet.py /^ type='CrossEntropyLoss',$/;" v
+type .\configs\_base_\models\cgnet.py /^ type='CGNet',$/;" v
+type .\configs\_base_\models\cgnet.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\cgnet.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\danet_r50-d8.py /^ type='DAHead',$/;" v
+type .\configs\_base_\models\danet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\danet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\danet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\deeplabv3_r50-d8.py /^ type='ASPPHead',$/;" v
+type .\configs\_base_\models\deeplabv3_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\deeplabv3_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\deeplabv3_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='ASPPHead',$/;" v
+type .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='UNet',$/;" v
+type .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='DepthwiseSeparableASPPHead',$/;" v
+type .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\dmnet_r50-d8.py /^ type='DMHead',$/;" v
+type .\configs\_base_\models\dmnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\dmnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\dmnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\dnl_r50-d8.py /^ type='DNLHead',$/;" v
+type .\configs\_base_\models\dnl_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\dnl_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\dnl_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\emanet_r50-d8.py /^ type='EMAHead',$/;" v
+type .\configs\_base_\models\emanet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\emanet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\emanet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\encnet_r50-d8.py /^ type='EncHead',$/;" v
+type .\configs\_base_\models\encnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\encnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\encnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\fast_scnn.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\fast_scnn.py /^ type='DepthwiseSeparableFCNHead',$/;" v
+type .\configs\_base_\models\fast_scnn.py /^ type='FastSCNN',$/;" v
+type .\configs\_base_\models\fast_scnn.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\fcn_hr18.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\fcn_hr18.py /^ type='HRNet',$/;" v
+type .\configs\_base_\models\fcn_hr18.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\fcn_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\fcn_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\fcn_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\fcn_unet_s5-d16.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\fcn_unet_s5-d16.py /^ type='UNet',$/;" v
+type .\configs\_base_\models\fcn_unet_s5-d16.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\fpn_r50.py /^ type='FPN',$/;" v
+type .\configs\_base_\models\fpn_r50.py /^ type='FPNHead',$/;" v
+type .\configs\_base_\models\fpn_r50.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\fpn_r50.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\gcnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\gcnet_r50-d8.py /^ type='GCHead',$/;" v
+type .\configs\_base_\models\gcnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\gcnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\lraspp_m-v3-d8.py /^ type='LRASPPHead',$/;" v
+type .\configs\_base_\models\lraspp_m-v3-d8.py /^ type='MobileNetV3',$/;" v
+type .\configs\_base_\models\lraspp_m-v3-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\nonlocal_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\nonlocal_r50-d8.py /^ type='NLHead',$/;" v
+type .\configs\_base_\models\nonlocal_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\nonlocal_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\ocrnet_hr18.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\ocrnet_hr18.py /^ type='OCRHead',$/;" v
+type .\configs\_base_\models\ocrnet_hr18.py /^ type='HRNet',$/;" v
+type .\configs\_base_\models\ocrnet_hr18.py /^ type='CascadeEncoderDecoder',$/;" v
+type .\configs\_base_\models\ocrnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\ocrnet_r50-d8.py /^ type='OCRHead',$/;" v
+type .\configs\_base_\models\ocrnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\ocrnet_r50-d8.py /^ type='CascadeEncoderDecoder',$/;" v
+type .\configs\_base_\models\pointrend_r50.py /^ type='FPNHead',$/;" v
+type .\configs\_base_\models\pointrend_r50.py /^ type='PointHead',$/;" v
+type .\configs\_base_\models\pointrend_r50.py /^ type='FPN',$/;" v
+type .\configs\_base_\models\pointrend_r50.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\pointrend_r50.py /^ type='CascadeEncoderDecoder',$/;" v
+type .\configs\_base_\models\psanet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\psanet_r50-d8.py /^ type='PSAHead',$/;" v
+type .\configs\_base_\models\psanet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\psanet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\pspnet_r50-d8.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\pspnet_r50-d8.py /^ type='PSPHead',$/;" v
+type .\configs\_base_\models\pspnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\pspnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\pspnet_unet_s5-d16.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\pspnet_unet_s5-d16.py /^ type='PSPHead',$/;" v
+type .\configs\_base_\models\pspnet_unet_s5-d16.py /^ type='UNet',$/;" v
+type .\configs\_base_\models\pspnet_unet_s5-d16.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\setr_mla.py /^ type='VIT_MLA',$/;" v
+type .\configs\_base_\models\setr_mla.py /^ type='VIT_MLAHead',$/;" v
+type .\configs\_base_\models\setr_mla.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\setr_naive_pup.py /^ type='VisionTransformer',$/;" v
+type .\configs\_base_\models\setr_naive_pup.py /^ type='VisionTransformerUpHead',$/;" v
+type .\configs\_base_\models\setr_naive_pup.py /^ type='EncoderDecoder',$/;" v
+type .\configs\_base_\models\upernet_r50.py /^ type='FCNHead',$/;" v
+type .\configs\_base_\models\upernet_r50.py /^ type='ResNetV1c',$/;" v
+type .\configs\_base_\models\upernet_r50.py /^ type='UPerHead',$/;" v
+type .\configs\_base_\models\upernet_r50.py /^ type='EncoderDecoder',$/;" v
+type .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ type=dataset_type,$/;" v
+type .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ type='MultiScaleFlipAug',$/;" v
+type .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ type='VIT_MLA_AUXIHead',$/;" v
+type .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ type='VIT_MLA_AUXIHead',$/;" v
+type .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ type='VIT_MLA_AUXIHead',$/;" v
+type .\configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ type='VIT_MLA_AUXIHead',$/;" v
+type .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ type='VisionTransformerUpHead',$/;" v
+type .\configs\foodnet\ccnet_vit_768x768_80k.py /^ type='VisionTransformer',$/;" v
+type .\configs\foodnet\ccnet_vit_768x768_80k.py /^ type='EncoderDecoder',$/;" v
+type .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+type .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ type='LRASPPHead',$/;" v
+type .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ type='MobileNetV3',$/;" v
+type .\configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ type='EncoderDecoder',$/;" v
+type .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ type='LRASPPHead',$/;" v
+type .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ type='MobileNetV3',$/;" v
+type .\configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ type='EncoderDecoder',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ type='OCRHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ type='FCNHead',$/;" v
+type .\configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ type='OCRHead',$/;" v
+type .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ type='FPNHead',$/;" v
+type .\configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ type='PointHead',$/;" v
+type .\configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+type .\configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+un_gz .\tools\convert_datasets\stare.py /^def un_gz(src, dst):$/;" f
+upsample_cfg .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ upsample_cfg=dict(type='InterpConv'),$/;" v
+upsample_cfg .\configs\_base_\models\fcn_unet_s5-d16.py /^ upsample_cfg=dict(type='InterpConv'),$/;" v
+upsample_cfg .\configs\_base_\models\pspnet_unet_s5-d16.py /^ upsample_cfg=dict(type='InterpConv'),$/;" v
+upsampling_method .\configs\_base_\models\setr_naive_pup.py /^ upsampling_method='bilinear',$/;" v
+upsampling_method .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ upsampling_method='bilinear',$/;" v
+upsampling_method .\configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ upsampling_method='bilinear', $/;" v
+url .\docs\stat.py /^ url = osp.dirname(f.replace('..\/', url_prefix))$/;" v
+url_prefix .\docs\stat.py /^url_prefix = 'https:\/\/github.com\/open-mmlab\/mmsegmentation\/blob\/master\/'$/;" v
+urlparse .\mmseg\models\backbones\helpers.py /^from urllib.parse import urlparse # noqa: F401$/;" i
+use_scale .\configs\_base_\models\dnl_r50-d8.py /^ use_scale=True,$/;" v
+use_scale .\configs\_base_\models\nonlocal_r50-d8.py /^ use_scale=True,$/;" v
+use_se_loss .\configs\_base_\models\encnet_r50-d8.py /^ use_se_loss=True,$/;" v
+use_sigmoid .\configs\_base_\models\cgnet.py /^ use_sigmoid=False,$/;" v
+utils .\mmseg\models\backbones\cgnet.py /^import torch.utils.checkpoint as cp$/;" i
+utils .\mmseg\models\backbones\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+utils .\mmseg\models\backbones\resnest.py /^import torch.utils.checkpoint as cp$/;" i
+utils .\mmseg\models\backbones\resnet.py /^import torch.utils.checkpoint as cp$/;" i
+utils .\mmseg\models\backbones\unet.py /^import torch.utils.checkpoint as cp$/;" i
+utils .\mmseg\models\decode_heads\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+val .\configs\_base_\datasets\FoodSeg103.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\Recipe1M_768x768.py /^ val=dict(pipeline=test_pipeline),$/;" v
+val .\configs\_base_\datasets\ade20k.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\chase_db1.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\cityscapes.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\cityscapes_769x769.py /^ val=dict(pipeline=test_pipeline),$/;" v
+val .\configs\_base_\datasets\drive.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\hrf.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\pascal_context.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\pascal_voc12.py /^ val=dict($/;" v
+val .\configs\_base_\datasets\stare.py /^ val=dict($/;" v
+val .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ val=dict($/;" v
+val .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ val=dict(pipeline=test_pipeline),$/;" v
+val_step .\mmseg\models\segmentors\base.py /^ def val_step(self, data_batch, **kwargs):$/;" m class:BaseSegmentor
+verify .\tools\pytorch2onnx.py /^ verify=args.verify)$/;" v
+version_file .\docs\conf.py /^version_file = '..\/mmseg\/version.py'$/;" v
+version_file .\setup.py /^version_file = 'mmseg\/version.py'$/;" v
+version_info .\mmseg\__init__.py /^from .version import __version__, version_info$/;" i
+version_info .\mmseg\version.py /^version_info = parse_version_info(__version__)$/;" v
+voc_classes .\mmseg\core\evaluation\class_names.py /^def voc_classes():$/;" f
+voc_palette .\mmseg\core\evaluation\class_names.py /^def voc_palette():$/;" f
+warnings .\mmseg\apis\train.py /^import warnings$/;" i
+warnings .\mmseg\datasets\pipelines\test_time_aug.py /^import warnings$/;" i
+warnings .\mmseg\models\backbones\helpers.py /^import warnings$/;" i
+warnings .\mmseg\models\backbones\layers\weight_init.py /^import warnings$/;" i
+warnings .\mmseg\models\builder.py /^import warnings$/;" i
+warnings .\mmseg\models\decode_heads\layers\weight_init.py /^import warnings$/;" i
+warnings .\mmseg\models\segmentors\base.py /^import warnings$/;" i
+warnings .\mmseg\ops\wrappers.py /^import warnings$/;" i
+weight_reduce_loss .\mmseg\models\losses\__init__.py /^from .utils import reduce_loss, weight_reduce_loss, weighted_loss$/;" i
+weight_reduce_loss .\mmseg\models\losses\cross_entropy_loss.py /^from .utils import weight_reduce_loss$/;" i
+weight_reduce_loss .\mmseg\models\losses\lovasz_loss.py /^from .utils import weight_reduce_loss$/;" i
+weight_reduce_loss .\mmseg\models\losses\utils.py /^def weight_reduce_loss(loss, weight=None, reduction='mean', avg_factor=None):$/;" f
+weight_reduce_loss .\tests\test_models\test_losses.py /^from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss$/;" i
+weighted_loss .\mmseg\models\losses\__init__.py /^from .utils import reduce_loss, weight_reduce_loss, weighted_loss$/;" i
+weighted_loss .\mmseg\models\losses\utils.py /^def weighted_loss(loss_func):$/;" f
+whole_inference .\mmseg\models\segmentors\encoder_decoder.py /^ def whole_inference(self, img, img_meta, rescale):$/;" m class:EncoderDecoder
+widen_factor .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+widen_factor .\configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+with_auxiliary_head .\mmseg\models\segmentors\base.py /^ def with_auxiliary_head(self):$/;" m class:BaseSegmentor
+with_cp .\configs\_base_\models\deeplabv3_unet_s5-d16.py /^ with_cp=False,$/;" v
+with_cp .\configs\_base_\models\fcn_unet_s5-d16.py /^ with_cp=False,$/;" v
+with_cp .\configs\_base_\models\pspnet_unet_s5-d16.py /^ with_cp=False,$/;" v
+with_decode_head .\mmseg\models\segmentors\base.py /^ def with_decode_head(self):$/;" m class:BaseSegmentor
+with_neck .\mmseg\models\segmentors\base.py /^ def with_neck(self):$/;" m class:BaseSegmentor
+worker_init_fn .\mmseg\datasets\builder.py /^def worker_init_fn(worker_id, num_workers, rank, seed):$/;" f
+workers_per_gpu .\configs\_base_\datasets\FoodSeg103.py /^ workers_per_gpu=2,$/;" v
+workers_per_gpu .\configs\_base_\datasets\ade20k.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\_base_\datasets\chase_db1.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\_base_\datasets\cityscapes.py /^ workers_per_gpu=2,$/;" v
+workers_per_gpu .\configs\_base_\datasets\drive.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\_base_\datasets\hrf.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\_base_\datasets\pascal_context.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\_base_\datasets\pascal_voc12.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\_base_\datasets\stare.py /^ workers_per_gpu=4,$/;" v
+workers_per_gpu .\configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ workers_per_gpu=8,$/;" v
+workers_per_gpu .\configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ workers_per_gpu=8,$/;" v
+workflow .\configs\_base_\default_runtime.py /^workflow = [('train', 1)]$/;" v
+wrapper .\mmseg\models\losses\utils.py /^ def wrapper(pred,$/;" f function:weighted_loss
+xavier_init .\mmseg\models\necks\fpn.py /^from mmcv.cnn import ConvModule, xavier_init$/;" i
+zipfile .\mmseg\models\backbones\helpers.py /^import zipfile$/;" i
+zipfile .\tools\convert_datasets\chase_db1.py /^import zipfile$/;" i
+zipfile .\tools\convert_datasets\drive.py /^import zipfile$/;" i
+zipfile .\tools\convert_datasets\hrf.py /^import zipfile$/;" i
diff --git a/FoodSeg103/.tags_sorted_by_file b/FoodSeg103/.tags_sorted_by_file
new file mode 100644
index 0000000000000000000000000000000000000000..e8030a12c49274a2649e6a5904cce7a2fb91fe51
--- /dev/null
+++ b/FoodSeg103/.tags_sorted_by_file
@@ -0,0 +1,5568 @@
+RESULTS_LUT dev\gather_models.py /^RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc']$/;" v
+argparse dev\gather_models.py /^import argparse$/;" i
+get_final_iter dev\gather_models.py /^def get_final_iter(config):$/;" f
+get_final_results dev\gather_models.py /^def get_final_results(log_json_path, iter_num):$/;" f
+glob dev\gather_models.py /^import glob$/;" i
+json dev\gather_models.py /^import json$/;" i
+main dev\gather_models.py /^def main():$/;" f
+mmcv dev\gather_models.py /^import mmcv$/;" i
+os dev\gather_models.py /^import os$/;" i
+os dev\gather_models.py /^import os.path as osp$/;" i
+osp dev\gather_models.py /^import os.path as osp$/;" i
+parse_args dev\gather_models.py /^def parse_args():$/;" f
+process_checkpoint dev\gather_models.py /^def process_checkpoint(in_file, out_file):$/;" f
+shutil dev\gather_models.py /^import shutil$/;" i
+subprocess dev\gather_models.py /^import subprocess$/;" i
+torch dev\gather_models.py /^import torch$/;" i
+ACCESS_KEY_ID dev\upload_modelzoo.py /^ACCESS_KEY_ID = os.getenv('OSS_ACCESS_KEY_ID', None)$/;" v
+ACCESS_KEY_SECRET dev\upload_modelzoo.py /^ACCESS_KEY_SECRET = os.getenv('OSS_ACCESS_KEY_SECRET', None)$/;" v
+BUCKET_NAME dev\upload_modelzoo.py /^BUCKET_NAME = 'openmmlab'$/;" v
+ENDPOINT dev\upload_modelzoo.py /^ENDPOINT = 'https:\/\/oss-accelerate.aliyuncs.com'$/;" v
+argparse dev\upload_modelzoo.py /^import argparse$/;" i
+main dev\upload_modelzoo.py /^def main():$/;" f
+os dev\upload_modelzoo.py /^import os$/;" i
+os dev\upload_modelzoo.py /^import os.path as osp$/;" i
+osp dev\upload_modelzoo.py /^import os.path as osp$/;" i
+oss2 dev\upload_modelzoo.py /^import oss2$/;" i
+parse_args dev\upload_modelzoo.py /^def parse_args():$/;" f
+ann_dir configs\_base_\datasets\FoodSeg103.py /^ ann_dir='ann_dir\/test',$/;" v
+ann_dir configs\_base_\datasets\FoodSeg103.py /^ ann_dir='ann_dir\/train',$/;" v
+crop_size configs\_base_\datasets\FoodSeg103.py /^crop_size = (512, 1024)$/;" v
+data configs\_base_\datasets\FoodSeg103.py /^data = dict($/;" v
+data_root configs\_base_\datasets\FoodSeg103.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\FoodSeg103.py /^data_root = '.\/data\/Recipe1M\/'$/;" v
+dataset_type configs\_base_\datasets\FoodSeg103.py /^dataset_type = 'CustomDataset'$/;" v
+flip configs\_base_\datasets\FoodSeg103.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\FoodSeg103.py /^ img_dir='img_dir\/test',$/;" v
+img_dir configs\_base_\datasets\FoodSeg103.py /^ img_dir='img_dir\/train',$/;" v
+img_norm_cfg configs\_base_\datasets\FoodSeg103.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\FoodSeg103.py /^ img_scale=(2048, 1024),$/;" v
+pipeline configs\_base_\datasets\FoodSeg103.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\FoodSeg103.py /^ pipeline=test_pipeline),$/;" v
+pipeline configs\_base_\datasets\FoodSeg103.py /^ pipeline=train_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\FoodSeg103.py /^ samples_per_gpu=2,$/;" v
+test configs\_base_\datasets\FoodSeg103.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\FoodSeg103.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\FoodSeg103.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\FoodSeg103.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\FoodSeg103.py /^ transforms=[$/;" v
+type configs\_base_\datasets\FoodSeg103.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\FoodSeg103.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\FoodSeg103.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\FoodSeg103.py /^ workers_per_gpu=2,$/;" v
+_base_ configs\_base_\datasets\Recipe1M_768x768.py /^_base_ = '.\/Recipe1M.py'$/;" v
+crop_size configs\_base_\datasets\Recipe1M_768x768.py /^crop_size = (768, 768)$/;" v
+data configs\_base_\datasets\Recipe1M_768x768.py /^data = dict($/;" v
+flip configs\_base_\datasets\Recipe1M_768x768.py /^ flip=False,$/;" v
+img_norm_cfg configs\_base_\datasets\Recipe1M_768x768.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\Recipe1M_768x768.py /^ img_scale=(2049, 1025),$/;" v
+test configs\_base_\datasets\Recipe1M_768x768.py /^ test=dict(pipeline=test_pipeline))$/;" v
+test_pipeline configs\_base_\datasets\Recipe1M_768x768.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\Recipe1M_768x768.py /^ train=dict(pipeline=train_pipeline),$/;" v
+train_pipeline configs\_base_\datasets\Recipe1M_768x768.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\Recipe1M_768x768.py /^ transforms=[$/;" v
+type configs\_base_\datasets\Recipe1M_768x768.py /^ type='MultiScaleFlipAug',$/;" v
+val configs\_base_\datasets\Recipe1M_768x768.py /^ val=dict(pipeline=test_pipeline),$/;" v
+ann_dir configs\_base_\datasets\ade20k.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir configs\_base_\datasets\ade20k.py /^ ann_dir='annotations\/validation',$/;" v
+crop_size configs\_base_\datasets\ade20k.py /^crop_size = (512, 512)$/;" v
+data configs\_base_\datasets\ade20k.py /^data = dict($/;" v
+data_root configs\_base_\datasets\ade20k.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\ade20k.py /^data_root = 'data\/ade\/ADEChallengeData2016'$/;" v
+dataset_type configs\_base_\datasets\ade20k.py /^dataset_type = 'ADE20KDataset'$/;" v
+flip configs\_base_\datasets\ade20k.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\ade20k.py /^ img_dir='images\/training',$/;" v
+img_dir configs\_base_\datasets\ade20k.py /^ img_dir='images\/validation',$/;" v
+img_norm_cfg configs\_base_\datasets\ade20k.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\ade20k.py /^ img_scale=(2048, 512),$/;" v
+pipeline configs\_base_\datasets\ade20k.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\ade20k.py /^ pipeline=test_pipeline),$/;" v
+pipeline configs\_base_\datasets\ade20k.py /^ pipeline=train_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\ade20k.py /^ samples_per_gpu=4,$/;" v
+test configs\_base_\datasets\ade20k.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\ade20k.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\ade20k.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\ade20k.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\ade20k.py /^ transforms=[$/;" v
+type configs\_base_\datasets\ade20k.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\ade20k.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\ade20k.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\ade20k.py /^ workers_per_gpu=4,$/;" v
+ann_dir configs\_base_\datasets\chase_db1.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir configs\_base_\datasets\chase_db1.py /^ ann_dir='annotations\/validation',$/;" v
+crop_size configs\_base_\datasets\chase_db1.py /^crop_size = (128, 128)$/;" v
+data configs\_base_\datasets\chase_db1.py /^data = dict($/;" v
+data_root configs\_base_\datasets\chase_db1.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\chase_db1.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\chase_db1.py /^data_root = 'data\/CHASE_DB1'$/;" v
+dataset configs\_base_\datasets\chase_db1.py /^ dataset=dict($/;" v
+dataset_type configs\_base_\datasets\chase_db1.py /^dataset_type = 'ChaseDB1Dataset'$/;" v
+flip configs\_base_\datasets\chase_db1.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\chase_db1.py /^ img_dir='images\/training',$/;" v
+img_dir configs\_base_\datasets\chase_db1.py /^ img_dir='images\/validation',$/;" v
+img_norm_cfg configs\_base_\datasets\chase_db1.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\chase_db1.py /^ img_scale=img_scale,$/;" v
+img_scale configs\_base_\datasets\chase_db1.py /^img_scale = (960, 999)$/;" v
+pipeline configs\_base_\datasets\chase_db1.py /^ pipeline=train_pipeline)),$/;" v
+pipeline configs\_base_\datasets\chase_db1.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\chase_db1.py /^ pipeline=test_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\chase_db1.py /^ samples_per_gpu=4,$/;" v
+test configs\_base_\datasets\chase_db1.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\chase_db1.py /^test_pipeline = [$/;" v
+times configs\_base_\datasets\chase_db1.py /^ times=40000,$/;" v
+train configs\_base_\datasets\chase_db1.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\chase_db1.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\chase_db1.py /^ transforms=[$/;" v
+type configs\_base_\datasets\chase_db1.py /^ type=dataset_type,$/;" v
+type configs\_base_\datasets\chase_db1.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\chase_db1.py /^ type='RepeatDataset',$/;" v
+type configs\_base_\datasets\chase_db1.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\chase_db1.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\chase_db1.py /^ workers_per_gpu=4,$/;" v
+ann_dir configs\_base_\datasets\cityscapes.py /^ ann_dir='gtFine\/train',$/;" v
+ann_dir configs\_base_\datasets\cityscapes.py /^ ann_dir='gtFine\/val',$/;" v
+crop_size configs\_base_\datasets\cityscapes.py /^crop_size = (512, 1024)$/;" v
+data configs\_base_\datasets\cityscapes.py /^data = dict($/;" v
+data_root configs\_base_\datasets\cityscapes.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\cityscapes.py /^data_root = 'data\/cityscapes\/'$/;" v
+dataset_type configs\_base_\datasets\cityscapes.py /^dataset_type = 'CityscapesDataset'$/;" v
+flip configs\_base_\datasets\cityscapes.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\cityscapes.py /^ img_dir='leftImg8bit\/train',$/;" v
+img_dir configs\_base_\datasets\cityscapes.py /^ img_dir='leftImg8bit\/val',$/;" v
+img_norm_cfg configs\_base_\datasets\cityscapes.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\cityscapes.py /^ img_scale=(2048, 1024),$/;" v
+pipeline configs\_base_\datasets\cityscapes.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\cityscapes.py /^ pipeline=test_pipeline),$/;" v
+pipeline configs\_base_\datasets\cityscapes.py /^ pipeline=train_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\cityscapes.py /^ samples_per_gpu=2,$/;" v
+test configs\_base_\datasets\cityscapes.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\cityscapes.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\cityscapes.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\cityscapes.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\cityscapes.py /^ transforms=[$/;" v
+type configs\_base_\datasets\cityscapes.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\cityscapes.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\cityscapes.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\cityscapes.py /^ workers_per_gpu=2,$/;" v
+_base_ configs\_base_\datasets\cityscapes_769x769.py /^_base_ = '.\/cityscapes.py'$/;" v
+crop_size configs\_base_\datasets\cityscapes_769x769.py /^crop_size = (769, 769)$/;" v
+data configs\_base_\datasets\cityscapes_769x769.py /^data = dict($/;" v
+flip configs\_base_\datasets\cityscapes_769x769.py /^ flip=False,$/;" v
+img_norm_cfg configs\_base_\datasets\cityscapes_769x769.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\cityscapes_769x769.py /^ img_scale=(2049, 1025),$/;" v
+test configs\_base_\datasets\cityscapes_769x769.py /^ test=dict(pipeline=test_pipeline))$/;" v
+test_pipeline configs\_base_\datasets\cityscapes_769x769.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\cityscapes_769x769.py /^ train=dict(pipeline=train_pipeline),$/;" v
+train_pipeline configs\_base_\datasets\cityscapes_769x769.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\cityscapes_769x769.py /^ transforms=[$/;" v
+type configs\_base_\datasets\cityscapes_769x769.py /^ type='MultiScaleFlipAug',$/;" v
+val configs\_base_\datasets\cityscapes_769x769.py /^ val=dict(pipeline=test_pipeline),$/;" v
+ann_dir configs\_base_\datasets\drive.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir configs\_base_\datasets\drive.py /^ ann_dir='annotations\/validation',$/;" v
+crop_size configs\_base_\datasets\drive.py /^crop_size = (64, 64)$/;" v
+data configs\_base_\datasets\drive.py /^data = dict($/;" v
+data_root configs\_base_\datasets\drive.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\drive.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\drive.py /^data_root = 'data\/DRIVE'$/;" v
+dataset configs\_base_\datasets\drive.py /^ dataset=dict($/;" v
+dataset_type configs\_base_\datasets\drive.py /^dataset_type = 'DRIVEDataset'$/;" v
+flip configs\_base_\datasets\drive.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\drive.py /^ img_dir='images\/training',$/;" v
+img_dir configs\_base_\datasets\drive.py /^ img_dir='images\/validation',$/;" v
+img_norm_cfg configs\_base_\datasets\drive.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\drive.py /^ img_scale=img_scale,$/;" v
+img_scale configs\_base_\datasets\drive.py /^img_scale = (584, 565)$/;" v
+pipeline configs\_base_\datasets\drive.py /^ pipeline=train_pipeline)),$/;" v
+pipeline configs\_base_\datasets\drive.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\drive.py /^ pipeline=test_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\drive.py /^ samples_per_gpu=4,$/;" v
+test configs\_base_\datasets\drive.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\drive.py /^test_pipeline = [$/;" v
+times configs\_base_\datasets\drive.py /^ times=40000,$/;" v
+train configs\_base_\datasets\drive.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\drive.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\drive.py /^ transforms=[$/;" v
+type configs\_base_\datasets\drive.py /^ type=dataset_type,$/;" v
+type configs\_base_\datasets\drive.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\drive.py /^ type='RepeatDataset',$/;" v
+type configs\_base_\datasets\drive.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\drive.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\drive.py /^ workers_per_gpu=4,$/;" v
+ann_dir configs\_base_\datasets\hrf.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir configs\_base_\datasets\hrf.py /^ ann_dir='annotations\/validation',$/;" v
+crop_size configs\_base_\datasets\hrf.py /^crop_size = (256, 256)$/;" v
+data configs\_base_\datasets\hrf.py /^data = dict($/;" v
+data_root configs\_base_\datasets\hrf.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\hrf.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\hrf.py /^data_root = 'data\/HRF'$/;" v
+dataset configs\_base_\datasets\hrf.py /^ dataset=dict($/;" v
+dataset_type configs\_base_\datasets\hrf.py /^dataset_type = 'HRFDataset'$/;" v
+flip configs\_base_\datasets\hrf.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\hrf.py /^ img_dir='images\/training',$/;" v
+img_dir configs\_base_\datasets\hrf.py /^ img_dir='images\/validation',$/;" v
+img_norm_cfg configs\_base_\datasets\hrf.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\hrf.py /^ img_scale=img_scale,$/;" v
+img_scale configs\_base_\datasets\hrf.py /^img_scale = (2336, 3504)$/;" v
+pipeline configs\_base_\datasets\hrf.py /^ pipeline=train_pipeline)),$/;" v
+pipeline configs\_base_\datasets\hrf.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\hrf.py /^ pipeline=test_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\hrf.py /^ samples_per_gpu=4,$/;" v
+test configs\_base_\datasets\hrf.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\hrf.py /^test_pipeline = [$/;" v
+times configs\_base_\datasets\hrf.py /^ times=40000,$/;" v
+train configs\_base_\datasets\hrf.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\hrf.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\hrf.py /^ transforms=[$/;" v
+type configs\_base_\datasets\hrf.py /^ type=dataset_type,$/;" v
+type configs\_base_\datasets\hrf.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\hrf.py /^ type='RepeatDataset',$/;" v
+type configs\_base_\datasets\hrf.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\hrf.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\hrf.py /^ workers_per_gpu=4,$/;" v
+ann_dir configs\_base_\datasets\pascal_context.py /^ ann_dir='SegmentationClassContext',$/;" v
+crop_size configs\_base_\datasets\pascal_context.py /^crop_size = (480, 480)$/;" v
+data configs\_base_\datasets\pascal_context.py /^data = dict($/;" v
+data_root configs\_base_\datasets\pascal_context.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\pascal_context.py /^data_root = 'data\/VOCdevkit\/VOC2010\/'$/;" v
+dataset_type configs\_base_\datasets\pascal_context.py /^dataset_type = 'PascalContextDataset'$/;" v
+flip configs\_base_\datasets\pascal_context.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\pascal_context.py /^ img_dir='JPEGImages',$/;" v
+img_norm_cfg configs\_base_\datasets\pascal_context.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\pascal_context.py /^ img_scale=img_scale,$/;" v
+img_scale configs\_base_\datasets\pascal_context.py /^img_scale = (520, 520)$/;" v
+pipeline configs\_base_\datasets\pascal_context.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\pascal_context.py /^ pipeline=test_pipeline),$/;" v
+pipeline configs\_base_\datasets\pascal_context.py /^ pipeline=train_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\pascal_context.py /^ samples_per_gpu=4,$/;" v
+split configs\_base_\datasets\pascal_context.py /^ split='ImageSets\/SegmentationContext\/train.txt',$/;" v
+split configs\_base_\datasets\pascal_context.py /^ split='ImageSets\/SegmentationContext\/val.txt',$/;" v
+test configs\_base_\datasets\pascal_context.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\pascal_context.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\pascal_context.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\pascal_context.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\pascal_context.py /^ transforms=[$/;" v
+type configs\_base_\datasets\pascal_context.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\pascal_context.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\pascal_context.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\pascal_context.py /^ workers_per_gpu=4,$/;" v
+ann_dir configs\_base_\datasets\pascal_voc12.py /^ ann_dir='SegmentationClass',$/;" v
+crop_size configs\_base_\datasets\pascal_voc12.py /^crop_size = (512, 512)$/;" v
+data configs\_base_\datasets\pascal_voc12.py /^data = dict($/;" v
+data_root configs\_base_\datasets\pascal_voc12.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\pascal_voc12.py /^data_root = 'data\/VOCdevkit\/VOC2012'$/;" v
+dataset_type configs\_base_\datasets\pascal_voc12.py /^dataset_type = 'PascalVOCDataset'$/;" v
+flip configs\_base_\datasets\pascal_voc12.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\pascal_voc12.py /^ img_dir='JPEGImages',$/;" v
+img_norm_cfg configs\_base_\datasets\pascal_voc12.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\pascal_voc12.py /^ img_scale=(2048, 512),$/;" v
+pipeline configs\_base_\datasets\pascal_voc12.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\pascal_voc12.py /^ pipeline=test_pipeline),$/;" v
+pipeline configs\_base_\datasets\pascal_voc12.py /^ pipeline=train_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\pascal_voc12.py /^ samples_per_gpu=4,$/;" v
+split configs\_base_\datasets\pascal_voc12.py /^ split='ImageSets\/Segmentation\/train.txt',$/;" v
+split configs\_base_\datasets\pascal_voc12.py /^ split='ImageSets\/Segmentation\/val.txt',$/;" v
+test configs\_base_\datasets\pascal_voc12.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\pascal_voc12.py /^test_pipeline = [$/;" v
+train configs\_base_\datasets\pascal_voc12.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\pascal_voc12.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\pascal_voc12.py /^ transforms=[$/;" v
+type configs\_base_\datasets\pascal_voc12.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\pascal_voc12.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\pascal_voc12.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\pascal_voc12.py /^ workers_per_gpu=4,$/;" v
+_base_ configs\_base_\datasets\pascal_voc12_aug.py /^_base_ = '.\/pascal_voc12.py'$/;" v
+ann_dir configs\_base_\datasets\pascal_voc12_aug.py /^ ann_dir=['SegmentationClass', 'SegmentationClassAug'],$/;" v
+data configs\_base_\datasets\pascal_voc12_aug.py /^data = dict($/;" v
+split configs\_base_\datasets\pascal_voc12_aug.py /^ split=[$/;" v
+train configs\_base_\datasets\pascal_voc12_aug.py /^ train=dict($/;" v
+ann_dir configs\_base_\datasets\stare.py /^ ann_dir='annotations\/training',$/;" v
+ann_dir configs\_base_\datasets\stare.py /^ ann_dir='annotations\/validation',$/;" v
+crop_size configs\_base_\datasets\stare.py /^crop_size = (128, 128)$/;" v
+data configs\_base_\datasets\stare.py /^data = dict($/;" v
+data_root configs\_base_\datasets\stare.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\stare.py /^ data_root=data_root,$/;" v
+data_root configs\_base_\datasets\stare.py /^data_root = 'data\/STARE'$/;" v
+dataset configs\_base_\datasets\stare.py /^ dataset=dict($/;" v
+dataset_type configs\_base_\datasets\stare.py /^dataset_type = 'STAREDataset'$/;" v
+flip configs\_base_\datasets\stare.py /^ flip=False,$/;" v
+img_dir configs\_base_\datasets\stare.py /^ img_dir='images\/training',$/;" v
+img_dir configs\_base_\datasets\stare.py /^ img_dir='images\/validation',$/;" v
+img_norm_cfg configs\_base_\datasets\stare.py /^img_norm_cfg = dict($/;" v
+img_scale configs\_base_\datasets\stare.py /^ img_scale=img_scale,$/;" v
+img_scale configs\_base_\datasets\stare.py /^img_scale = (605, 700)$/;" v
+pipeline configs\_base_\datasets\stare.py /^ pipeline=train_pipeline)),$/;" v
+pipeline configs\_base_\datasets\stare.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\_base_\datasets\stare.py /^ pipeline=test_pipeline),$/;" v
+samples_per_gpu configs\_base_\datasets\stare.py /^ samples_per_gpu=4,$/;" v
+test configs\_base_\datasets\stare.py /^ test=dict($/;" v
+test_pipeline configs\_base_\datasets\stare.py /^test_pipeline = [$/;" v
+times configs\_base_\datasets\stare.py /^ times=40000,$/;" v
+train configs\_base_\datasets\stare.py /^ train=dict($/;" v
+train_pipeline configs\_base_\datasets\stare.py /^train_pipeline = [$/;" v
+transforms configs\_base_\datasets\stare.py /^ transforms=[$/;" v
+type configs\_base_\datasets\stare.py /^ type=dataset_type,$/;" v
+type configs\_base_\datasets\stare.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\_base_\datasets\stare.py /^ type='RepeatDataset',$/;" v
+type configs\_base_\datasets\stare.py /^ type=dataset_type,$/;" v
+val configs\_base_\datasets\stare.py /^ val=dict($/;" v
+workers_per_gpu configs\_base_\datasets\stare.py /^ workers_per_gpu=4,$/;" v
+cudnn_benchmark configs\_base_\default_runtime.py /^cudnn_benchmark = True$/;" v
+dist_params configs\_base_\default_runtime.py /^dist_params = dict(backend='nccl')$/;" v
+hooks configs\_base_\default_runtime.py /^ hooks=[$/;" v
+interval configs\_base_\default_runtime.py /^ interval=50,$/;" v
+load_from configs\_base_\default_runtime.py /^load_from = None$/;" v
+log_config configs\_base_\default_runtime.py /^log_config = dict($/;" v
+log_level configs\_base_\default_runtime.py /^log_level = 'INFO'$/;" v
+resume_from configs\_base_\default_runtime.py /^resume_from = None$/;" v
+workflow configs\_base_\default_runtime.py /^workflow = [('train', 1)]$/;" v
+align_corners configs\_base_\models\ann_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\ann_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\ann_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\ann_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\ann_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\ann_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\ann_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\ann_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\ann_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\ann_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\ann_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\ann_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\ann_r50-d8.py /^ in_channels=[1024, 2048],$/;" v
+in_index configs\_base_\models\ann_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\ann_r50-d8.py /^ in_index=[2, 3],$/;" v
+key_pool_scales configs\_base_\models\ann_r50-d8.py /^ key_pool_scales=(1, 3, 6, 8),$/;" v
+loss_decode configs\_base_\models\ann_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\ann_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\ann_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\ann_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\ann_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\ann_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\ann_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\ann_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\ann_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\ann_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+project_channels configs\_base_\models\ann_r50-d8.py /^ project_channels=256,$/;" v
+query_scales configs\_base_\models\ann_r50-d8.py /^ query_scales=(1, ),$/;" v
+strides configs\_base_\models\ann_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\ann_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\ann_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\ann_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\ann_r50-d8.py /^ type='ANNHead',$/;" v
+type configs\_base_\models\ann_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\ann_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\ann_r50-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\apcnet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\apcnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\apcnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\apcnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\apcnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\apcnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\apcnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\apcnet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\apcnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\apcnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\apcnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\apcnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\apcnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\apcnet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\apcnet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\apcnet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\apcnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\apcnet_r50-d8.py /^ norm_cfg=dict(type='SyncBN', requires_grad=True),$/;" v
+norm_cfg configs\_base_\models\apcnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\apcnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\apcnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\apcnet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\apcnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\apcnet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\apcnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pool_scales configs\_base_\models\apcnet_r50-d8.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pretrained configs\_base_\models\apcnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\apcnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\apcnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\apcnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\apcnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\apcnet_r50-d8.py /^ type='APCHead',$/;" v
+type configs\_base_\models\apcnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\apcnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\apcnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\ccnet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\ccnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\ccnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\ccnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\ccnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\ccnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\ccnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\ccnet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\ccnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\ccnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\ccnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\ccnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\ccnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\ccnet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\ccnet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\ccnet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\ccnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\ccnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\ccnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\ccnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\ccnet_r50-d8.py /^ num_classes=104,$/;" v
+num_convs configs\_base_\models\ccnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\ccnet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\ccnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\ccnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+recurrence configs\_base_\models\ccnet_r50-d8.py /^ recurrence=2,$/;" v
+strides configs\_base_\models\ccnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\ccnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\ccnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\ccnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\ccnet_r50-d8.py /^ type='CCHead',$/;" v
+type configs\_base_\models\ccnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\ccnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\ccnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+backbone configs\_base_\models\cgnet.py /^ backbone=dict($/;" v
+channels configs\_base_\models\cgnet.py /^ channels=256,$/;" v
+class_weight configs\_base_\models\cgnet.py /^ class_weight=[$/;" v
+concat_input configs\_base_\models\cgnet.py /^ concat_input=False,$/;" v
+decode_head configs\_base_\models\cgnet.py /^ decode_head=dict($/;" v
+dilations configs\_base_\models\cgnet.py /^ dilations=(2, 4),$/;" v
+dropout_ratio configs\_base_\models\cgnet.py /^ dropout_ratio=0,$/;" v
+in_channels configs\_base_\models\cgnet.py /^ in_channels=256,$/;" v
+in_channels configs\_base_\models\cgnet.py /^ in_channels=3,$/;" v
+in_index configs\_base_\models\cgnet.py /^ in_index=2,$/;" v
+loss_decode configs\_base_\models\cgnet.py /^ loss_decode=dict($/;" v
+loss_weight configs\_base_\models\cgnet.py /^ loss_weight=1.0,$/;" v
+model configs\_base_\models\cgnet.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\cgnet.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\cgnet.py /^norm_cfg = dict(type='SyncBN', eps=1e-03, requires_grad=True)$/;" v
+num_blocks configs\_base_\models\cgnet.py /^ num_blocks=(3, 21),$/;" v
+num_channels configs\_base_\models\cgnet.py /^ num_channels=(32, 64, 128),$/;" v
+num_classes configs\_base_\models\cgnet.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\cgnet.py /^ num_convs=0,$/;" v
+reductions configs\_base_\models\cgnet.py /^ reductions=(8, 16)),$/;" v
+test_cfg configs\_base_\models\cgnet.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\cgnet.py /^ train_cfg=dict(sampler=None),$/;" v
+type configs\_base_\models\cgnet.py /^ type='CrossEntropyLoss',$/;" v
+type configs\_base_\models\cgnet.py /^ type='CGNet',$/;" v
+type configs\_base_\models\cgnet.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\cgnet.py /^ type='EncoderDecoder',$/;" v
+use_sigmoid configs\_base_\models\cgnet.py /^ use_sigmoid=False,$/;" v
+align_corners configs\_base_\models\danet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\danet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\danet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\danet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\danet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\danet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\danet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\danet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\danet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\danet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\danet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\danet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\danet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\danet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\danet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\danet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\danet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\danet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\danet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\danet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\danet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\danet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\danet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\danet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pam_channels configs\_base_\models\danet_r50-d8.py /^ pam_channels=64,$/;" v
+pretrained configs\_base_\models\danet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\danet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\danet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\danet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\danet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\danet_r50-d8.py /^ type='DAHead',$/;" v
+type configs\_base_\models\danet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\danet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\danet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\deeplabv3_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\deeplabv3_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\deeplabv3_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\deeplabv3_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\deeplabv3_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\deeplabv3_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\deeplabv3_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\deeplabv3_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\deeplabv3_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\deeplabv3_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations configs\_base_\models\deeplabv3_r50-d8.py /^ dilations=(1, 12, 24, 36),$/;" v
+dropout_ratio configs\_base_\models\deeplabv3_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\deeplabv3_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\deeplabv3_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\deeplabv3_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\deeplabv3_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\deeplabv3_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\deeplabv3_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\deeplabv3_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\deeplabv3_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\deeplabv3_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\deeplabv3_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\deeplabv3_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\deeplabv3_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\deeplabv3_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\deeplabv3_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\deeplabv3_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\deeplabv3_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\deeplabv3_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\deeplabv3_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\deeplabv3_r50-d8.py /^ type='ASPPHead',$/;" v
+type configs\_base_\models\deeplabv3_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\deeplabv3_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\deeplabv3_r50-d8.py /^ type='EncoderDecoder',$/;" v
+act_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^ act_cfg=dict(type='ReLU'),$/;" v
+align_corners configs\_base_\models\deeplabv3_unet_s5-d16.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\deeplabv3_unet_s5-d16.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\deeplabv3_unet_s5-d16.py /^ backbone=dict($/;" v
+base_channels configs\_base_\models\deeplabv3_unet_s5-d16.py /^ base_channels=64,$/;" v
+channels configs\_base_\models\deeplabv3_unet_s5-d16.py /^ channels=16,$/;" v
+channels configs\_base_\models\deeplabv3_unet_s5-d16.py /^ channels=64,$/;" v
+concat_input configs\_base_\models\deeplabv3_unet_s5-d16.py /^ concat_input=False,$/;" v
+conv_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^ conv_cfg=None,$/;" v
+dec_dilations configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dec_dilations=(1, 1, 1, 1),$/;" v
+dec_num_convs configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dec_num_convs=(2, 2, 2, 2),$/;" v
+decode_head configs\_base_\models\deeplabv3_unet_s5-d16.py /^ decode_head=dict($/;" v
+dilations configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dilations=(1, 12, 24, 36),$/;" v
+downsamples configs\_base_\models\deeplabv3_unet_s5-d16.py /^ downsamples=(True, True, True, True),$/;" v
+dropout_ratio configs\_base_\models\deeplabv3_unet_s5-d16.py /^ dropout_ratio=0.1,$/;" v
+enc_dilations configs\_base_\models\deeplabv3_unet_s5-d16.py /^ enc_dilations=(1, 1, 1, 1, 1),$/;" v
+enc_num_convs configs\_base_\models\deeplabv3_unet_s5-d16.py /^ enc_num_convs=(2, 2, 2, 2, 2),$/;" v
+in_channels configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_channels=128,$/;" v
+in_channels configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_channels=3,$/;" v
+in_channels configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_channels=64,$/;" v
+in_index configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_index=3,$/;" v
+in_index configs\_base_\models\deeplabv3_unet_s5-d16.py /^ in_index=4,$/;" v
+loss_decode configs\_base_\models\deeplabv3_unet_s5-d16.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\deeplabv3_unet_s5-d16.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\deeplabv3_unet_s5-d16.py /^ norm_eval=False),$/;" v
+num_classes configs\_base_\models\deeplabv3_unet_s5-d16.py /^ num_classes=2,$/;" v
+num_convs configs\_base_\models\deeplabv3_unet_s5-d16.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\deeplabv3_unet_s5-d16.py /^ num_stages=5,$/;" v
+pretrained configs\_base_\models\deeplabv3_unet_s5-d16.py /^ pretrained=None,$/;" v
+strides configs\_base_\models\deeplabv3_unet_s5-d16.py /^ strides=(1, 1, 1, 1, 1),$/;" v
+test_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^ test_cfg=dict(mode='slide', crop_size=256, stride=170))$/;" v
+train_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='ASPPHead',$/;" v
+type configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='UNet',$/;" v
+type configs\_base_\models\deeplabv3_unet_s5-d16.py /^ type='EncoderDecoder',$/;" v
+upsample_cfg configs\_base_\models\deeplabv3_unet_s5-d16.py /^ upsample_cfg=dict(type='InterpConv'),$/;" v
+with_cp configs\_base_\models\deeplabv3_unet_s5-d16.py /^ with_cp=False,$/;" v
+align_corners configs\_base_\models\deeplabv3plus_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\deeplabv3plus_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\deeplabv3plus_r50-d8.py /^ backbone=dict($/;" v
+c1_channels configs\_base_\models\deeplabv3plus_r50-d8.py /^ c1_channels=48,$/;" v
+c1_in_channels configs\_base_\models\deeplabv3plus_r50-d8.py /^ c1_in_channels=256,$/;" v
+channels configs\_base_\models\deeplabv3plus_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\deeplabv3plus_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\deeplabv3plus_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\deeplabv3plus_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\deeplabv3plus_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\deeplabv3plus_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\deeplabv3plus_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dilations configs\_base_\models\deeplabv3plus_r50-d8.py /^ dilations=(1, 12, 24, 36),$/;" v
+dropout_ratio configs\_base_\models\deeplabv3plus_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\deeplabv3plus_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\deeplabv3plus_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\deeplabv3plus_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\deeplabv3plus_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\deeplabv3plus_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\deeplabv3plus_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\deeplabv3plus_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\deeplabv3plus_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\deeplabv3plus_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\deeplabv3plus_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\deeplabv3plus_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\deeplabv3plus_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\deeplabv3plus_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\deeplabv3plus_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\deeplabv3plus_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='DepthwiseSeparableASPPHead',$/;" v
+type configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\deeplabv3plus_r50-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\dmnet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\dmnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\dmnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\dmnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\dmnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\dmnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\dmnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\dmnet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\dmnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\dmnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\dmnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+filter_sizes configs\_base_\models\dmnet_r50-d8.py /^ filter_sizes=(1, 3, 5, 7),$/;" v
+in_channels configs\_base_\models\dmnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\dmnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\dmnet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\dmnet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\dmnet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\dmnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\dmnet_r50-d8.py /^ norm_cfg=dict(type='SyncBN', requires_grad=True),$/;" v
+norm_cfg configs\_base_\models\dmnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\dmnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\dmnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\dmnet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\dmnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\dmnet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\dmnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\dmnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\dmnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\dmnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\dmnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\dmnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\dmnet_r50-d8.py /^ type='DMHead',$/;" v
+type configs\_base_\models\dmnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\dmnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\dmnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\dnl_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\dnl_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\dnl_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\dnl_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\dnl_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\dnl_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\dnl_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\dnl_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\dnl_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\dnl_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\dnl_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\dnl_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\dnl_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\dnl_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\dnl_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\dnl_r50-d8.py /^ loss_decode=dict($/;" v
+mode configs\_base_\models\dnl_r50-d8.py /^ mode='embedded_gaussian',$/;" v
+model configs\_base_\models\dnl_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\dnl_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\dnl_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\dnl_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\dnl_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\dnl_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\dnl_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\dnl_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\dnl_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+reduction configs\_base_\models\dnl_r50-d8.py /^ reduction=2,$/;" v
+strides configs\_base_\models\dnl_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\dnl_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\dnl_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\dnl_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\dnl_r50-d8.py /^ type='DNLHead',$/;" v
+type configs\_base_\models\dnl_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\dnl_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\dnl_r50-d8.py /^ type='EncoderDecoder',$/;" v
+use_scale configs\_base_\models\dnl_r50-d8.py /^ use_scale=True,$/;" v
+align_corners configs\_base_\models\emanet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\emanet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\emanet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\emanet_r50-d8.py /^ channels=256,$/;" v
+concat_input configs\_base_\models\emanet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\emanet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\emanet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\emanet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\emanet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\emanet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+ema_channels configs\_base_\models\emanet_r50-d8.py /^ ema_channels=512,$/;" v
+in_channels configs\_base_\models\emanet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\emanet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\emanet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\emanet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\emanet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\emanet_r50-d8.py /^model = dict($/;" v
+momentum configs\_base_\models\emanet_r50-d8.py /^ momentum=0.1,$/;" v
+norm_cfg configs\_base_\models\emanet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\emanet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\emanet_r50-d8.py /^ norm_eval=False,$/;" v
+num_bases configs\_base_\models\emanet_r50-d8.py /^ num_bases=64,$/;" v
+num_classes configs\_base_\models\emanet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\emanet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\emanet_r50-d8.py /^ num_stages=3,$/;" v
+num_stages configs\_base_\models\emanet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\emanet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\emanet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\emanet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\emanet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\emanet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\emanet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\emanet_r50-d8.py /^ type='EMAHead',$/;" v
+type configs\_base_\models\emanet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\emanet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\emanet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+add_lateral configs\_base_\models\encnet_r50-d8.py /^ add_lateral=False,$/;" v
+align_corners configs\_base_\models\encnet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\encnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\encnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\encnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\encnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\encnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\encnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\encnet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\encnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\encnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\encnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\encnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\encnet_r50-d8.py /^ in_channels=[512, 1024, 2048],$/;" v
+in_index configs\_base_\models\encnet_r50-d8.py /^ in_index=(1, 2, 3),$/;" v
+in_index configs\_base_\models\encnet_r50-d8.py /^ in_index=2,$/;" v
+loss_decode configs\_base_\models\encnet_r50-d8.py /^ loss_decode=dict($/;" v
+loss_se_decode configs\_base_\models\encnet_r50-d8.py /^ loss_se_decode=dict($/;" v
+model configs\_base_\models\encnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\encnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\encnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\encnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\encnet_r50-d8.py /^ num_classes=19,$/;" v
+num_codes configs\_base_\models\encnet_r50-d8.py /^ num_codes=32,$/;" v
+num_convs configs\_base_\models\encnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\encnet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\encnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\encnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\encnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\encnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\encnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\encnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\encnet_r50-d8.py /^ type='EncHead',$/;" v
+type configs\_base_\models\encnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\encnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\encnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+use_se_loss configs\_base_\models\encnet_r50-d8.py /^ use_se_loss=True,$/;" v
+align_corners configs\_base_\models\fast_scnn.py /^ align_corners=False,$/;" v
+align_corners configs\_base_\models\fast_scnn.py /^ align_corners=False),$/;" v
+align_corners configs\_base_\models\fast_scnn.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\fast_scnn.py /^ auxiliary_head=[$/;" v
+backbone configs\_base_\models\fast_scnn.py /^ backbone=dict($/;" v
+channels configs\_base_\models\fast_scnn.py /^ channels=32,$/;" v
+channels configs\_base_\models\fast_scnn.py /^ channels=128,$/;" v
+concat_input configs\_base_\models\fast_scnn.py /^ concat_input=False,$/;" v
+concat_input configs\_base_\models\fast_scnn.py /^ concat_input=False,$/;" v
+decode_head configs\_base_\models\fast_scnn.py /^ decode_head=dict($/;" v
+downsample_dw_channels configs\_base_\models\fast_scnn.py /^ downsample_dw_channels=(32, 48),$/;" v
+fusion_out_channels configs\_base_\models\fast_scnn.py /^ fusion_out_channels=128,$/;" v
+global_block_channels configs\_base_\models\fast_scnn.py /^ global_block_channels=(64, 96, 128),$/;" v
+global_block_strides configs\_base_\models\fast_scnn.py /^ global_block_strides=(2, 2, 1),$/;" v
+global_in_channels configs\_base_\models\fast_scnn.py /^ global_in_channels=64,$/;" v
+global_out_channels configs\_base_\models\fast_scnn.py /^ global_out_channels=128,$/;" v
+higher_in_channels configs\_base_\models\fast_scnn.py /^ higher_in_channels=64,$/;" v
+in_channels configs\_base_\models\fast_scnn.py /^ in_channels=128,$/;" v
+in_channels configs\_base_\models\fast_scnn.py /^ in_channels=64,$/;" v
+in_channels configs\_base_\models\fast_scnn.py /^ in_channels=128,$/;" v
+in_index configs\_base_\models\fast_scnn.py /^ in_index=-2,$/;" v
+in_index configs\_base_\models\fast_scnn.py /^ in_index=-3,$/;" v
+in_index configs\_base_\models\fast_scnn.py /^ in_index=-1,$/;" v
+loss_decode configs\_base_\models\fast_scnn.py /^ loss_decode=dict($/;" v
+loss_decode configs\_base_\models\fast_scnn.py /^ loss_decode=dict($/;" v
+lower_in_channels configs\_base_\models\fast_scnn.py /^ lower_in_channels=128,$/;" v
+model configs\_base_\models\fast_scnn.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\fast_scnn.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\fast_scnn.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\fast_scnn.py /^norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01)$/;" v
+num_classes configs\_base_\models\fast_scnn.py /^ num_classes=19,$/;" v
+num_classes configs\_base_\models\fast_scnn.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\fast_scnn.py /^ num_convs=1,$/;" v
+out_indices configs\_base_\models\fast_scnn.py /^ out_indices=(0, 1, 2),$/;" v
+test_cfg configs\_base_\models\fast_scnn.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\fast_scnn.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\fast_scnn.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\fast_scnn.py /^ type='DepthwiseSeparableFCNHead',$/;" v
+type configs\_base_\models\fast_scnn.py /^ type='FastSCNN',$/;" v
+type configs\_base_\models\fast_scnn.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\fcn_hr18.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\fcn_hr18.py /^ backbone=dict($/;" v
+block configs\_base_\models\fcn_hr18.py /^ block='BASIC',$/;" v
+block configs\_base_\models\fcn_hr18.py /^ block='BOTTLENECK',$/;" v
+channels configs\_base_\models\fcn_hr18.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+concat_input configs\_base_\models\fcn_hr18.py /^ concat_input=False,$/;" v
+decode_head configs\_base_\models\fcn_hr18.py /^ decode_head=dict($/;" v
+dropout_ratio configs\_base_\models\fcn_hr18.py /^ dropout_ratio=-1,$/;" v
+extra configs\_base_\models\fcn_hr18.py /^ extra=dict($/;" v
+in_channels configs\_base_\models\fcn_hr18.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_index configs\_base_\models\fcn_hr18.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\_base_\models\fcn_hr18.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\_base_\models\fcn_hr18.py /^ kernel_size=1,$/;" v
+loss_decode configs\_base_\models\fcn_hr18.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\fcn_hr18.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\fcn_hr18.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\fcn_hr18.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\fcn_hr18.py /^ norm_eval=False,$/;" v
+num_blocks configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, ),$/;" v
+num_blocks configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, 4),$/;" v
+num_blocks configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, 4, 4),$/;" v
+num_blocks configs\_base_\models\fcn_hr18.py /^ num_blocks=(4, 4, 4, 4),$/;" v
+num_branches configs\_base_\models\fcn_hr18.py /^ num_branches=1,$/;" v
+num_branches configs\_base_\models\fcn_hr18.py /^ num_branches=2,$/;" v
+num_branches configs\_base_\models\fcn_hr18.py /^ num_branches=3,$/;" v
+num_branches configs\_base_\models\fcn_hr18.py /^ num_branches=4,$/;" v
+num_channels configs\_base_\models\fcn_hr18.py /^ num_channels=(18, 36)),$/;" v
+num_channels configs\_base_\models\fcn_hr18.py /^ num_channels=(18, 36, 72)),$/;" v
+num_channels configs\_base_\models\fcn_hr18.py /^ num_channels=(18, 36, 72, 144)))),$/;" v
+num_channels configs\_base_\models\fcn_hr18.py /^ num_channels=(64, )),$/;" v
+num_classes configs\_base_\models\fcn_hr18.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\fcn_hr18.py /^ num_convs=1,$/;" v
+num_modules configs\_base_\models\fcn_hr18.py /^ num_modules=1,$/;" v
+num_modules configs\_base_\models\fcn_hr18.py /^ num_modules=3,$/;" v
+num_modules configs\_base_\models\fcn_hr18.py /^ num_modules=4,$/;" v
+pretrained configs\_base_\models\fcn_hr18.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18',$/;" v
+stage1 configs\_base_\models\fcn_hr18.py /^ stage1=dict($/;" v
+stage2 configs\_base_\models\fcn_hr18.py /^ stage2=dict($/;" v
+stage3 configs\_base_\models\fcn_hr18.py /^ stage3=dict($/;" v
+stage4 configs\_base_\models\fcn_hr18.py /^ stage4=dict($/;" v
+test_cfg configs\_base_\models\fcn_hr18.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\fcn_hr18.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\fcn_hr18.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\fcn_hr18.py /^ type='HRNet',$/;" v
+type configs\_base_\models\fcn_hr18.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\fcn_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\fcn_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\fcn_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\fcn_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\fcn_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\fcn_r50-d8.py /^ concat_input=False,$/;" v
+concat_input configs\_base_\models\fcn_r50-d8.py /^ concat_input=True,$/;" v
+contract_dilation configs\_base_\models\fcn_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\fcn_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\fcn_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\fcn_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\fcn_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\fcn_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\fcn_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\fcn_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\fcn_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\fcn_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\fcn_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\fcn_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\fcn_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\fcn_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\fcn_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\fcn_r50-d8.py /^ num_convs=1,$/;" v
+num_convs configs\_base_\models\fcn_r50-d8.py /^ num_convs=2,$/;" v
+num_stages configs\_base_\models\fcn_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\fcn_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\fcn_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\fcn_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\fcn_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\fcn_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\fcn_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\fcn_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\fcn_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\fcn_r50-d8.py /^ type='EncoderDecoder',$/;" v
+act_cfg configs\_base_\models\fcn_unet_s5-d16.py /^ act_cfg=dict(type='ReLU'),$/;" v
+align_corners configs\_base_\models\fcn_unet_s5-d16.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\fcn_unet_s5-d16.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\fcn_unet_s5-d16.py /^ backbone=dict($/;" v
+base_channels configs\_base_\models\fcn_unet_s5-d16.py /^ base_channels=64,$/;" v
+channels configs\_base_\models\fcn_unet_s5-d16.py /^ channels=64,$/;" v
+concat_input configs\_base_\models\fcn_unet_s5-d16.py /^ concat_input=False,$/;" v
+conv_cfg configs\_base_\models\fcn_unet_s5-d16.py /^ conv_cfg=None,$/;" v
+dec_dilations configs\_base_\models\fcn_unet_s5-d16.py /^ dec_dilations=(1, 1, 1, 1),$/;" v
+dec_num_convs configs\_base_\models\fcn_unet_s5-d16.py /^ dec_num_convs=(2, 2, 2, 2),$/;" v
+decode_head configs\_base_\models\fcn_unet_s5-d16.py /^ decode_head=dict($/;" v
+downsamples configs\_base_\models\fcn_unet_s5-d16.py /^ downsamples=(True, True, True, True),$/;" v
+dropout_ratio configs\_base_\models\fcn_unet_s5-d16.py /^ dropout_ratio=0.1,$/;" v
+enc_dilations configs\_base_\models\fcn_unet_s5-d16.py /^ enc_dilations=(1, 1, 1, 1, 1),$/;" v
+enc_num_convs configs\_base_\models\fcn_unet_s5-d16.py /^ enc_num_convs=(2, 2, 2, 2, 2),$/;" v
+in_channels configs\_base_\models\fcn_unet_s5-d16.py /^ in_channels=128,$/;" v
+in_channels configs\_base_\models\fcn_unet_s5-d16.py /^ in_channels=3,$/;" v
+in_channels configs\_base_\models\fcn_unet_s5-d16.py /^ in_channels=64,$/;" v
+in_index configs\_base_\models\fcn_unet_s5-d16.py /^ in_index=3,$/;" v
+in_index configs\_base_\models\fcn_unet_s5-d16.py /^ in_index=4,$/;" v
+loss_decode configs\_base_\models\fcn_unet_s5-d16.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\fcn_unet_s5-d16.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\fcn_unet_s5-d16.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\fcn_unet_s5-d16.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\fcn_unet_s5-d16.py /^ norm_eval=False),$/;" v
+num_classes configs\_base_\models\fcn_unet_s5-d16.py /^ num_classes=2,$/;" v
+num_convs configs\_base_\models\fcn_unet_s5-d16.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\fcn_unet_s5-d16.py /^ num_stages=5,$/;" v
+pretrained configs\_base_\models\fcn_unet_s5-d16.py /^ pretrained=None,$/;" v
+strides configs\_base_\models\fcn_unet_s5-d16.py /^ strides=(1, 1, 1, 1, 1),$/;" v
+test_cfg configs\_base_\models\fcn_unet_s5-d16.py /^ test_cfg=dict(mode='slide', crop_size=256, stride=170))$/;" v
+train_cfg configs\_base_\models\fcn_unet_s5-d16.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\fcn_unet_s5-d16.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\fcn_unet_s5-d16.py /^ type='UNet',$/;" v
+type configs\_base_\models\fcn_unet_s5-d16.py /^ type='EncoderDecoder',$/;" v
+upsample_cfg configs\_base_\models\fcn_unet_s5-d16.py /^ upsample_cfg=dict(type='InterpConv'),$/;" v
+with_cp configs\_base_\models\fcn_unet_s5-d16.py /^ with_cp=False,$/;" v
+align_corners configs\_base_\models\fpn_r50.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\fpn_r50.py /^ backbone=dict($/;" v
+channels configs\_base_\models\fpn_r50.py /^ channels=128,$/;" v
+contract_dilation configs\_base_\models\fpn_r50.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\fpn_r50.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\fpn_r50.py /^ depth=50,$/;" v
+dilations configs\_base_\models\fpn_r50.py /^ dilations=(1, 1, 1, 1),$/;" v
+dropout_ratio configs\_base_\models\fpn_r50.py /^ dropout_ratio=0.1,$/;" v
+feature_strides configs\_base_\models\fpn_r50.py /^ feature_strides=[4, 8, 16, 32],$/;" v
+in_channels configs\_base_\models\fpn_r50.py /^ in_channels=[256, 256, 256, 256],$/;" v
+in_channels configs\_base_\models\fpn_r50.py /^ in_channels=[256, 512, 1024, 2048],$/;" v
+in_index configs\_base_\models\fpn_r50.py /^ in_index=[0, 1, 2, 3],$/;" v
+loss_decode configs\_base_\models\fpn_r50.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\fpn_r50.py /^model = dict($/;" v
+neck configs\_base_\models\fpn_r50.py /^ neck=dict($/;" v
+norm_cfg configs\_base_\models\fpn_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\fpn_r50.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\fpn_r50.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\fpn_r50.py /^ num_classes=19,$/;" v
+num_outs configs\_base_\models\fpn_r50.py /^ num_outs=4),$/;" v
+num_stages configs\_base_\models\fpn_r50.py /^ num_stages=4,$/;" v
+out_channels configs\_base_\models\fpn_r50.py /^ out_channels=256,$/;" v
+out_indices configs\_base_\models\fpn_r50.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\fpn_r50.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\fpn_r50.py /^ strides=(1, 2, 2, 2),$/;" v
+style configs\_base_\models\fpn_r50.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\fpn_r50.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\fpn_r50.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\fpn_r50.py /^ type='FPN',$/;" v
+type configs\_base_\models\fpn_r50.py /^ type='FPNHead',$/;" v
+type configs\_base_\models\fpn_r50.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\fpn_r50.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\gcnet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\gcnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\gcnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\gcnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\gcnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\gcnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\gcnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\gcnet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\gcnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\gcnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\gcnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+fusion_types configs\_base_\models\gcnet_r50-d8.py /^ fusion_types=('channel_add', ),$/;" v
+in_channels configs\_base_\models\gcnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\gcnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\gcnet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\gcnet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\gcnet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\gcnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\gcnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\gcnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\gcnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\gcnet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\gcnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\gcnet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\gcnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pooling_type configs\_base_\models\gcnet_r50-d8.py /^ pooling_type='att',$/;" v
+pretrained configs\_base_\models\gcnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+ratio configs\_base_\models\gcnet_r50-d8.py /^ ratio=1 \/ 4.,$/;" v
+strides configs\_base_\models\gcnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\gcnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\gcnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\gcnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\gcnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\gcnet_r50-d8.py /^ type='GCHead',$/;" v
+type configs\_base_\models\gcnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\gcnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+act_cfg configs\_base_\models\lraspp_m-v3-d8.py /^ act_cfg=dict(type='ReLU'),$/;" v
+align_corners configs\_base_\models\lraspp_m-v3-d8.py /^ align_corners=False,$/;" v
+arch configs\_base_\models\lraspp_m-v3-d8.py /^ arch='large',$/;" v
+backbone configs\_base_\models\lraspp_m-v3-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\lraspp_m-v3-d8.py /^ channels=128,$/;" v
+decode_head configs\_base_\models\lraspp_m-v3-d8.py /^ decode_head=dict($/;" v
+dropout_ratio configs\_base_\models\lraspp_m-v3-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\lraspp_m-v3-d8.py /^ in_channels=(16, 24, 960),$/;" v
+in_index configs\_base_\models\lraspp_m-v3-d8.py /^ in_index=(0, 1, 2),$/;" v
+input_transform configs\_base_\models\lraspp_m-v3-d8.py /^ input_transform='multiple_select',$/;" v
+loss_decode configs\_base_\models\lraspp_m-v3-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\lraspp_m-v3-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\lraspp_m-v3-d8.py /^ norm_cfg=norm_cfg),$/;" v
+norm_cfg configs\_base_\models\lraspp_m-v3-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\lraspp_m-v3-d8.py /^norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)$/;" v
+num_classes configs\_base_\models\lraspp_m-v3-d8.py /^ num_classes=19,$/;" v
+out_indices configs\_base_\models\lraspp_m-v3-d8.py /^ out_indices=(1, 3, 16),$/;" v
+test_cfg configs\_base_\models\lraspp_m-v3-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\lraspp_m-v3-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\lraspp_m-v3-d8.py /^ type='LRASPPHead',$/;" v
+type configs\_base_\models\lraspp_m-v3-d8.py /^ type='MobileNetV3',$/;" v
+type configs\_base_\models\lraspp_m-v3-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\nonlocal_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\nonlocal_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\nonlocal_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\nonlocal_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\nonlocal_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\nonlocal_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\nonlocal_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\nonlocal_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\nonlocal_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\nonlocal_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\nonlocal_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\nonlocal_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\nonlocal_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\nonlocal_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\nonlocal_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\nonlocal_r50-d8.py /^ loss_decode=dict($/;" v
+mode configs\_base_\models\nonlocal_r50-d8.py /^ mode='embedded_gaussian',$/;" v
+model configs\_base_\models\nonlocal_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\nonlocal_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\nonlocal_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\nonlocal_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\nonlocal_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\nonlocal_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\nonlocal_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\nonlocal_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\nonlocal_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+reduction configs\_base_\models\nonlocal_r50-d8.py /^ reduction=2,$/;" v
+strides configs\_base_\models\nonlocal_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\nonlocal_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\nonlocal_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\nonlocal_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\nonlocal_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\nonlocal_r50-d8.py /^ type='NLHead',$/;" v
+type configs\_base_\models\nonlocal_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\nonlocal_r50-d8.py /^ type='EncoderDecoder',$/;" v
+use_scale configs\_base_\models\nonlocal_r50-d8.py /^ use_scale=True,$/;" v
+align_corners configs\_base_\models\ocrnet_hr18.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\ocrnet_hr18.py /^ backbone=dict($/;" v
+block configs\_base_\models\ocrnet_hr18.py /^ block='BASIC',$/;" v
+block configs\_base_\models\ocrnet_hr18.py /^ block='BOTTLENECK',$/;" v
+channels configs\_base_\models\ocrnet_hr18.py /^ channels=512,$/;" v
+channels configs\_base_\models\ocrnet_hr18.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+concat_input configs\_base_\models\ocrnet_hr18.py /^ concat_input=False,$/;" v
+decode_head configs\_base_\models\ocrnet_hr18.py /^ decode_head=[$/;" v
+dropout_ratio configs\_base_\models\ocrnet_hr18.py /^ dropout_ratio=-1,$/;" v
+extra configs\_base_\models\ocrnet_hr18.py /^ extra=dict($/;" v
+in_channels configs\_base_\models\ocrnet_hr18.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_index configs\_base_\models\ocrnet_hr18.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\_base_\models\ocrnet_hr18.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\_base_\models\ocrnet_hr18.py /^ kernel_size=1,$/;" v
+loss_decode configs\_base_\models\ocrnet_hr18.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\ocrnet_hr18.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\ocrnet_hr18.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\ocrnet_hr18.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\ocrnet_hr18.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\ocrnet_hr18.py /^ norm_eval=False,$/;" v
+num_blocks configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, ),$/;" v
+num_blocks configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, 4),$/;" v
+num_blocks configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, 4, 4),$/;" v
+num_blocks configs\_base_\models\ocrnet_hr18.py /^ num_blocks=(4, 4, 4, 4),$/;" v
+num_branches configs\_base_\models\ocrnet_hr18.py /^ num_branches=1,$/;" v
+num_branches configs\_base_\models\ocrnet_hr18.py /^ num_branches=2,$/;" v
+num_branches configs\_base_\models\ocrnet_hr18.py /^ num_branches=3,$/;" v
+num_branches configs\_base_\models\ocrnet_hr18.py /^ num_branches=4,$/;" v
+num_channels configs\_base_\models\ocrnet_hr18.py /^ num_channels=(18, 36)),$/;" v
+num_channels configs\_base_\models\ocrnet_hr18.py /^ num_channels=(18, 36, 72)),$/;" v
+num_channels configs\_base_\models\ocrnet_hr18.py /^ num_channels=(18, 36, 72, 144)))),$/;" v
+num_channels configs\_base_\models\ocrnet_hr18.py /^ num_channels=(64, )),$/;" v
+num_classes configs\_base_\models\ocrnet_hr18.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\ocrnet_hr18.py /^ num_convs=1,$/;" v
+num_modules configs\_base_\models\ocrnet_hr18.py /^ num_modules=1,$/;" v
+num_modules configs\_base_\models\ocrnet_hr18.py /^ num_modules=3,$/;" v
+num_modules configs\_base_\models\ocrnet_hr18.py /^ num_modules=4,$/;" v
+num_stages configs\_base_\models\ocrnet_hr18.py /^ num_stages=2,$/;" v
+ocr_channels configs\_base_\models\ocrnet_hr18.py /^ ocr_channels=256,$/;" v
+pretrained configs\_base_\models\ocrnet_hr18.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18',$/;" v
+stage1 configs\_base_\models\ocrnet_hr18.py /^ stage1=dict($/;" v
+stage2 configs\_base_\models\ocrnet_hr18.py /^ stage2=dict($/;" v
+stage3 configs\_base_\models\ocrnet_hr18.py /^ stage3=dict($/;" v
+stage4 configs\_base_\models\ocrnet_hr18.py /^ stage4=dict($/;" v
+test_cfg configs\_base_\models\ocrnet_hr18.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\ocrnet_hr18.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\ocrnet_hr18.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\ocrnet_hr18.py /^ type='OCRHead',$/;" v
+type configs\_base_\models\ocrnet_hr18.py /^ type='HRNet',$/;" v
+type configs\_base_\models\ocrnet_hr18.py /^ type='CascadeEncoderDecoder',$/;" v
+align_corners configs\_base_\models\ocrnet_r50-d8.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\ocrnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\ocrnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\ocrnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\ocrnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\ocrnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\ocrnet_r50-d8.py /^ decode_head=[$/;" v
+depth configs\_base_\models\ocrnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\ocrnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\ocrnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\ocrnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\ocrnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\ocrnet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\ocrnet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\ocrnet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\ocrnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\ocrnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\ocrnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\ocrnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\ocrnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\ocrnet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\ocrnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\ocrnet_r50-d8.py /^ num_stages=4,$/;" v
+num_stages configs\_base_\models\ocrnet_r50-d8.py /^ num_stages=2,$/;" v
+ocr_channels configs\_base_\models\ocrnet_r50-d8.py /^ ocr_channels=256,$/;" v
+out_indices configs\_base_\models\ocrnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\ocrnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\ocrnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\ocrnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\ocrnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\ocrnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\ocrnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\ocrnet_r50-d8.py /^ type='OCRHead',$/;" v
+type configs\_base_\models\ocrnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\ocrnet_r50-d8.py /^ type='CascadeEncoderDecoder',$/;" v
+align_corners configs\_base_\models\pointrend_r50.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\pointrend_r50.py /^ backbone=dict($/;" v
+channels configs\_base_\models\pointrend_r50.py /^ channels=128,$/;" v
+channels configs\_base_\models\pointrend_r50.py /^ channels=256,$/;" v
+coarse_pred_each_layer configs\_base_\models\pointrend_r50.py /^ coarse_pred_each_layer=True,$/;" v
+contract_dilation configs\_base_\models\pointrend_r50.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\pointrend_r50.py /^ decode_head=[$/;" v
+depth configs\_base_\models\pointrend_r50.py /^ depth=50,$/;" v
+dilations configs\_base_\models\pointrend_r50.py /^ dilations=(1, 1, 1, 1),$/;" v
+dropout_ratio configs\_base_\models\pointrend_r50.py /^ dropout_ratio=-1,$/;" v
+feature_strides configs\_base_\models\pointrend_r50.py /^ feature_strides=[4, 8, 16, 32],$/;" v
+in_channels configs\_base_\models\pointrend_r50.py /^ in_channels=[256, 256, 256, 256],$/;" v
+in_channels configs\_base_\models\pointrend_r50.py /^ in_channels=[256],$/;" v
+in_channels configs\_base_\models\pointrend_r50.py /^ in_channels=[256, 512, 1024, 2048],$/;" v
+in_index configs\_base_\models\pointrend_r50.py /^ in_index=[0, 1, 2, 3],$/;" v
+in_index configs\_base_\models\pointrend_r50.py /^ in_index=[0],$/;" v
+loss_decode configs\_base_\models\pointrend_r50.py /^ loss_decode=dict($/;" v
+mode configs\_base_\models\pointrend_r50.py /^ mode='whole',$/;" v
+model configs\_base_\models\pointrend_r50.py /^model = dict($/;" v
+neck configs\_base_\models\pointrend_r50.py /^ neck=dict($/;" v
+norm_cfg configs\_base_\models\pointrend_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\pointrend_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\pointrend_r50.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\pointrend_r50.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\pointrend_r50.py /^ num_classes=19,$/;" v
+num_fcs configs\_base_\models\pointrend_r50.py /^ num_fcs=3,$/;" v
+num_outs configs\_base_\models\pointrend_r50.py /^ num_outs=4),$/;" v
+num_stages configs\_base_\models\pointrend_r50.py /^ num_stages=4,$/;" v
+num_stages configs\_base_\models\pointrend_r50.py /^ num_stages=2,$/;" v
+out_channels configs\_base_\models\pointrend_r50.py /^ out_channels=256,$/;" v
+out_indices configs\_base_\models\pointrend_r50.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\pointrend_r50.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+scale_factor configs\_base_\models\pointrend_r50.py /^ scale_factor=2))$/;" v
+strides configs\_base_\models\pointrend_r50.py /^ strides=(1, 2, 2, 2),$/;" v
+style configs\_base_\models\pointrend_r50.py /^ style='pytorch',$/;" v
+subdivision_num_points configs\_base_\models\pointrend_r50.py /^ subdivision_num_points=8196,$/;" v
+subdivision_steps configs\_base_\models\pointrend_r50.py /^ subdivision_steps=2,$/;" v
+test_cfg configs\_base_\models\pointrend_r50.py /^ test_cfg=dict($/;" v
+train_cfg configs\_base_\models\pointrend_r50.py /^ train_cfg=dict($/;" v
+type configs\_base_\models\pointrend_r50.py /^ type='FPNHead',$/;" v
+type configs\_base_\models\pointrend_r50.py /^ type='PointHead',$/;" v
+type configs\_base_\models\pointrend_r50.py /^ type='FPN',$/;" v
+type configs\_base_\models\pointrend_r50.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\pointrend_r50.py /^ type='CascadeEncoderDecoder',$/;" v
+align_corners configs\_base_\models\psanet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\psanet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\psanet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\psanet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\psanet_r50-d8.py /^ channels=512,$/;" v
+compact configs\_base_\models\psanet_r50-d8.py /^ compact=False,$/;" v
+concat_input configs\_base_\models\psanet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\psanet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\psanet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\psanet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\psanet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\psanet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\psanet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\psanet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\psanet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\psanet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\psanet_r50-d8.py /^ loss_decode=dict($/;" v
+mask_size configs\_base_\models\psanet_r50-d8.py /^ mask_size=(97, 97),$/;" v
+model configs\_base_\models\psanet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\psanet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\psanet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\psanet_r50-d8.py /^ norm_eval=False,$/;" v
+normalization_factor configs\_base_\models\psanet_r50-d8.py /^ normalization_factor=1.0,$/;" v
+num_classes configs\_base_\models\psanet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\psanet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\psanet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\psanet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pretrained configs\_base_\models\psanet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+psa_softmax configs\_base_\models\psanet_r50-d8.py /^ psa_softmax=True,$/;" v
+psa_type configs\_base_\models\psanet_r50-d8.py /^ psa_type='bi-direction',$/;" v
+shrink_factor configs\_base_\models\psanet_r50-d8.py /^ shrink_factor=2,$/;" v
+strides configs\_base_\models\psanet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\psanet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\psanet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\psanet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\psanet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\psanet_r50-d8.py /^ type='PSAHead',$/;" v
+type configs\_base_\models\psanet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\psanet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\pspnet_r50-d8.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\pspnet_r50-d8.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\pspnet_r50-d8.py /^ backbone=dict($/;" v
+channels configs\_base_\models\pspnet_r50-d8.py /^ channels=256,$/;" v
+channels configs\_base_\models\pspnet_r50-d8.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\pspnet_r50-d8.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\pspnet_r50-d8.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\pspnet_r50-d8.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\pspnet_r50-d8.py /^ depth=50,$/;" v
+dilations configs\_base_\models\pspnet_r50-d8.py /^ dilations=(1, 1, 2, 4),$/;" v
+dropout_ratio configs\_base_\models\pspnet_r50-d8.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\pspnet_r50-d8.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\pspnet_r50-d8.py /^ in_channels=2048,$/;" v
+in_index configs\_base_\models\pspnet_r50-d8.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\pspnet_r50-d8.py /^ in_index=3,$/;" v
+loss_decode configs\_base_\models\pspnet_r50-d8.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\pspnet_r50-d8.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\pspnet_r50-d8.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\pspnet_r50-d8.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\pspnet_r50-d8.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\pspnet_r50-d8.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\pspnet_r50-d8.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\pspnet_r50-d8.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\pspnet_r50-d8.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pool_scales configs\_base_\models\pspnet_r50-d8.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pretrained configs\_base_\models\pspnet_r50-d8.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\pspnet_r50-d8.py /^ strides=(1, 2, 1, 1),$/;" v
+style configs\_base_\models\pspnet_r50-d8.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\pspnet_r50-d8.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\pspnet_r50-d8.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\pspnet_r50-d8.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\pspnet_r50-d8.py /^ type='PSPHead',$/;" v
+type configs\_base_\models\pspnet_r50-d8.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\pspnet_r50-d8.py /^ type='EncoderDecoder',$/;" v
+act_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^ act_cfg=dict(type='ReLU'),$/;" v
+align_corners configs\_base_\models\pspnet_unet_s5-d16.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\pspnet_unet_s5-d16.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\pspnet_unet_s5-d16.py /^ backbone=dict($/;" v
+base_channels configs\_base_\models\pspnet_unet_s5-d16.py /^ base_channels=64,$/;" v
+channels configs\_base_\models\pspnet_unet_s5-d16.py /^ channels=16,$/;" v
+channels configs\_base_\models\pspnet_unet_s5-d16.py /^ channels=64,$/;" v
+concat_input configs\_base_\models\pspnet_unet_s5-d16.py /^ concat_input=False,$/;" v
+conv_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^ conv_cfg=None,$/;" v
+dec_dilations configs\_base_\models\pspnet_unet_s5-d16.py /^ dec_dilations=(1, 1, 1, 1),$/;" v
+dec_num_convs configs\_base_\models\pspnet_unet_s5-d16.py /^ dec_num_convs=(2, 2, 2, 2),$/;" v
+decode_head configs\_base_\models\pspnet_unet_s5-d16.py /^ decode_head=dict($/;" v
+downsamples configs\_base_\models\pspnet_unet_s5-d16.py /^ downsamples=(True, True, True, True),$/;" v
+dropout_ratio configs\_base_\models\pspnet_unet_s5-d16.py /^ dropout_ratio=0.1,$/;" v
+enc_dilations configs\_base_\models\pspnet_unet_s5-d16.py /^ enc_dilations=(1, 1, 1, 1, 1),$/;" v
+enc_num_convs configs\_base_\models\pspnet_unet_s5-d16.py /^ enc_num_convs=(2, 2, 2, 2, 2),$/;" v
+in_channels configs\_base_\models\pspnet_unet_s5-d16.py /^ in_channels=128,$/;" v
+in_channels configs\_base_\models\pspnet_unet_s5-d16.py /^ in_channels=3,$/;" v
+in_channels configs\_base_\models\pspnet_unet_s5-d16.py /^ in_channels=64,$/;" v
+in_index configs\_base_\models\pspnet_unet_s5-d16.py /^ in_index=3,$/;" v
+in_index configs\_base_\models\pspnet_unet_s5-d16.py /^ in_index=4,$/;" v
+loss_decode configs\_base_\models\pspnet_unet_s5-d16.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\pspnet_unet_s5-d16.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\pspnet_unet_s5-d16.py /^ norm_eval=False),$/;" v
+num_classes configs\_base_\models\pspnet_unet_s5-d16.py /^ num_classes=2,$/;" v
+num_convs configs\_base_\models\pspnet_unet_s5-d16.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\pspnet_unet_s5-d16.py /^ num_stages=5,$/;" v
+pool_scales configs\_base_\models\pspnet_unet_s5-d16.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pretrained configs\_base_\models\pspnet_unet_s5-d16.py /^ pretrained=None,$/;" v
+strides configs\_base_\models\pspnet_unet_s5-d16.py /^ strides=(1, 1, 1, 1, 1),$/;" v
+test_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^ test_cfg=dict(mode='slide', crop_size=256, stride=170))$/;" v
+train_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\pspnet_unet_s5-d16.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\pspnet_unet_s5-d16.py /^ type='PSPHead',$/;" v
+type configs\_base_\models\pspnet_unet_s5-d16.py /^ type='UNet',$/;" v
+type configs\_base_\models\pspnet_unet_s5-d16.py /^ type='EncoderDecoder',$/;" v
+upsample_cfg configs\_base_\models\pspnet_unet_s5-d16.py /^ upsample_cfg=dict(type='InterpConv'),$/;" v
+with_cp configs\_base_\models\pspnet_unet_s5-d16.py /^ with_cp=False,$/;" v
+align_corners configs\_base_\models\setr_mla.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\setr_mla.py /^ backbone=dict($/;" v
+channels configs\_base_\models\setr_mla.py /^ channels=512,$/;" v
+decode_head configs\_base_\models\setr_mla.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\setr_mla.py /^ depth=24,$/;" v
+drop_rate configs\_base_\models\setr_mla.py /^ drop_rate=0.1,$/;" v
+embed_dim configs\_base_\models\setr_mla.py /^ embed_dim=1024,$/;" v
+img_size configs\_base_\models\setr_mla.py /^ img_size=768,$/;" v
+in_channels configs\_base_\models\setr_mla.py /^ in_channels=1024,$/;" v
+in_chans configs\_base_\models\setr_mla.py /^ in_chans=3,$/;" v
+loss_decode configs\_base_\models\setr_mla.py /^ loss_decode=dict($/;" v
+mla_channels configs\_base_\models\setr_mla.py /^ mla_channels=256,$/;" v
+mla_index configs\_base_\models\setr_mla.py /^ mla_index=(5,11,17,23)$/;" v
+mlahead_channels configs\_base_\models\setr_mla.py /^ mlahead_channels=128,$/;" v
+model configs\_base_\models\setr_mla.py /^model = dict($/;" v
+model_name configs\_base_\models\setr_mla.py /^ model_name='vit_large_patch16_384',$/;" v
+norm_cfg configs\_base_\models\setr_mla.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\setr_mla.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\_base_\models\setr_mla.py /^ num_classes=19,$/;" v
+num_heads configs\_base_\models\setr_mla.py /^ num_heads=16, $/;" v
+patch_size configs\_base_\models\setr_mla.py /^ patch_size=16, $/;" v
+pos_embed_interp configs\_base_\models\setr_mla.py /^ pos_embed_interp=True,$/;" v
+test_cfg configs\_base_\models\setr_mla.py /^test_cfg = dict(mode='whole')$/;" v
+train_cfg configs\_base_\models\setr_mla.py /^train_cfg = dict()$/;" v
+type configs\_base_\models\setr_mla.py /^ type='VIT_MLA',$/;" v
+type configs\_base_\models\setr_mla.py /^ type='VIT_MLAHead',$/;" v
+type configs\_base_\models\setr_mla.py /^ type='EncoderDecoder',$/;" v
+align_corners configs\_base_\models\setr_naive_pup.py /^ align_corners=False,$/;" v
+backbone configs\_base_\models\setr_naive_pup.py /^ backbone=dict($/;" v
+channels configs\_base_\models\setr_naive_pup.py /^ channels=512,$/;" v
+decode_head configs\_base_\models\setr_naive_pup.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\setr_naive_pup.py /^ depth=24,$/;" v
+drop_rate configs\_base_\models\setr_naive_pup.py /^ drop_rate=0.1,$/;" v
+embed_dim configs\_base_\models\setr_naive_pup.py /^ embed_dim=1024,$/;" v
+img_size configs\_base_\models\setr_naive_pup.py /^ img_size=768,$/;" v
+in_channels configs\_base_\models\setr_naive_pup.py /^ in_channels=1024,$/;" v
+in_chans configs\_base_\models\setr_naive_pup.py /^ in_chans=3,$/;" v
+in_index configs\_base_\models\setr_naive_pup.py /^ in_index=23,$/;" v
+loss_decode configs\_base_\models\setr_naive_pup.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\setr_naive_pup.py /^model = dict($/;" v
+model_name configs\_base_\models\setr_naive_pup.py /^ model_name='vit_base_patch16_224',$/;" v
+norm_cfg configs\_base_\models\setr_naive_pup.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\setr_naive_pup.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\_base_\models\setr_naive_pup.py /^ num_classes=19,$/;" v
+num_conv configs\_base_\models\setr_naive_pup.py /^ num_conv=2,$/;" v
+num_heads configs\_base_\models\setr_naive_pup.py /^ num_heads=16,$/;" v
+patch_size configs\_base_\models\setr_naive_pup.py /^ patch_size=16,$/;" v
+pos_embed_interp configs\_base_\models\setr_naive_pup.py /^ pos_embed_interp=True,$/;" v
+test_cfg configs\_base_\models\setr_naive_pup.py /^test_cfg = dict(mode='whole')$/;" v
+train_cfg configs\_base_\models\setr_naive_pup.py /^train_cfg = dict()$/;" v
+type configs\_base_\models\setr_naive_pup.py /^ type='VisionTransformer',$/;" v
+type configs\_base_\models\setr_naive_pup.py /^ type='VisionTransformerUpHead',$/;" v
+type configs\_base_\models\setr_naive_pup.py /^ type='EncoderDecoder',$/;" v
+upsampling_method configs\_base_\models\setr_naive_pup.py /^ upsampling_method='bilinear',$/;" v
+align_corners configs\_base_\models\upernet_r50.py /^ align_corners=False,$/;" v
+auxiliary_head configs\_base_\models\upernet_r50.py /^ auxiliary_head=dict($/;" v
+backbone configs\_base_\models\upernet_r50.py /^ backbone=dict($/;" v
+channels configs\_base_\models\upernet_r50.py /^ channels=256,$/;" v
+channels configs\_base_\models\upernet_r50.py /^ channels=512,$/;" v
+concat_input configs\_base_\models\upernet_r50.py /^ concat_input=False,$/;" v
+contract_dilation configs\_base_\models\upernet_r50.py /^ contract_dilation=True),$/;" v
+decode_head configs\_base_\models\upernet_r50.py /^ decode_head=dict($/;" v
+depth configs\_base_\models\upernet_r50.py /^ depth=50,$/;" v
+dilations configs\_base_\models\upernet_r50.py /^ dilations=(1, 1, 1, 1),$/;" v
+dropout_ratio configs\_base_\models\upernet_r50.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\_base_\models\upernet_r50.py /^ in_channels=1024,$/;" v
+in_channels configs\_base_\models\upernet_r50.py /^ in_channels=[256, 512, 1024, 2048],$/;" v
+in_index configs\_base_\models\upernet_r50.py /^ in_index=2,$/;" v
+in_index configs\_base_\models\upernet_r50.py /^ in_index=[0, 1, 2, 3],$/;" v
+loss_decode configs\_base_\models\upernet_r50.py /^ loss_decode=dict($/;" v
+model configs\_base_\models\upernet_r50.py /^model = dict($/;" v
+norm_cfg configs\_base_\models\upernet_r50.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\_base_\models\upernet_r50.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+norm_eval configs\_base_\models\upernet_r50.py /^ norm_eval=False,$/;" v
+num_classes configs\_base_\models\upernet_r50.py /^ num_classes=19,$/;" v
+num_convs configs\_base_\models\upernet_r50.py /^ num_convs=1,$/;" v
+num_stages configs\_base_\models\upernet_r50.py /^ num_stages=4,$/;" v
+out_indices configs\_base_\models\upernet_r50.py /^ out_indices=(0, 1, 2, 3),$/;" v
+pool_scales configs\_base_\models\upernet_r50.py /^ pool_scales=(1, 2, 3, 6),$/;" v
+pretrained configs\_base_\models\upernet_r50.py /^ pretrained='open-mmlab:\/\/resnet50_v1c',$/;" v
+strides configs\_base_\models\upernet_r50.py /^ strides=(1, 2, 2, 2),$/;" v
+style configs\_base_\models\upernet_r50.py /^ style='pytorch',$/;" v
+test_cfg configs\_base_\models\upernet_r50.py /^ test_cfg=dict(mode='whole'))$/;" v
+train_cfg configs\_base_\models\upernet_r50.py /^ train_cfg=dict(),$/;" v
+type configs\_base_\models\upernet_r50.py /^ type='FCNHead',$/;" v
+type configs\_base_\models\upernet_r50.py /^ type='ResNetV1c',$/;" v
+type configs\_base_\models\upernet_r50.py /^ type='UPerHead',$/;" v
+type configs\_base_\models\upernet_r50.py /^ type='EncoderDecoder',$/;" v
+checkpoint_config configs\_base_\schedules\schedule_160k.py /^checkpoint_config = dict(by_epoch=False, interval=16000)$/;" v
+evaluation configs\_base_\schedules\schedule_160k.py /^evaluation = dict(interval=16000, metric='mIoU')$/;" v
+lr_config configs\_base_\schedules\schedule_160k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+optimizer configs\_base_\schedules\schedule_160k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer_config configs\_base_\schedules\schedule_160k.py /^optimizer_config = dict()$/;" v
+runner configs\_base_\schedules\schedule_160k.py /^runner = dict(type='IterBasedRunner', max_iters=160000)$/;" v
+checkpoint_config configs\_base_\schedules\schedule_20k.py /^checkpoint_config = dict(by_epoch=False, interval=2000)$/;" v
+evaluation configs\_base_\schedules\schedule_20k.py /^evaluation = dict(interval=2000, metric='mIoU')$/;" v
+lr_config configs\_base_\schedules\schedule_20k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+optimizer configs\_base_\schedules\schedule_20k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer_config configs\_base_\schedules\schedule_20k.py /^optimizer_config = dict()$/;" v
+runner configs\_base_\schedules\schedule_20k.py /^runner = dict(type='IterBasedRunner', max_iters=20000)$/;" v
+checkpoint_config configs\_base_\schedules\schedule_40k.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+evaluation configs\_base_\schedules\schedule_40k.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+lr_config configs\_base_\schedules\schedule_40k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+optimizer configs\_base_\schedules\schedule_40k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer_config configs\_base_\schedules\schedule_40k.py /^optimizer_config = dict()$/;" v
+runner configs\_base_\schedules\schedule_40k.py /^runner = dict(type='IterBasedRunner', max_iters=40000)$/;" v
+checkpoint_config configs\_base_\schedules\schedule_80k.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+evaluation configs\_base_\schedules\schedule_80k.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+lr_config configs\_base_\schedules\schedule_80k.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+optimizer configs\_base_\schedules\schedule_80k.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer_config configs\_base_\schedules\schedule_80k.py /^optimizer_config = dict()$/;" v
+runner configs\_base_\schedules\schedule_80k.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+by_epoch configs\_base_\schedules\schedule_80k_step.py /^ by_epoch=False)$/;" v
+checkpoint_config configs\_base_\schedules\schedule_80k_step.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+evaluation configs\_base_\schedules\schedule_80k_step.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+lr_config configs\_base_\schedules\schedule_80k_step.py /^lr_config = dict($/;" v
+optimizer configs\_base_\schedules\schedule_80k_step.py /^optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)$/;" v
+optimizer_config configs\_base_\schedules\schedule_80k_step.py /^optimizer_config = dict()$/;" v
+policy configs\_base_\schedules\schedule_80k_step.py /^ policy='step',$/;" v
+runner configs\_base_\schedules\schedule_80k_step.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+step configs\_base_\schedules\schedule_80k_step.py /^ step=[40000, 60000], $/;" v
+_base_ configs\ann\ann_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/ann_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\ann\ann_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/ann_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\ann\ann_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/ann_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\ann\ann_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/ann_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\ann\ann_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/ann_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\ann\ann_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/ann_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\ann\ann_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/ann_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\ann\ann_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/ann_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\ann\ann_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ann\ann_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ann\ann_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ann\ann_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\ann\ann_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\ann\ann_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\ann\ann_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\ann\ann_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\ann\ann_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\ann\ann_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\ann\ann_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\ann\ann_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\ann\ann_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\ann\ann_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\ann\ann_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\ann\ann_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\ann\ann_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\apcnet\apcnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\apcnet\apcnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\apcnet\apcnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\apcnet\apcnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\apcnet\apcnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/apcnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\apcnet\apcnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\apcnet\apcnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/apcnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\apcnet\apcnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\apcnet\apcnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\apcnet\apcnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\apcnet\apcnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/apcnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\apcnet\apcnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\apcnet\apcnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\apcnet\apcnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\apcnet\apcnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\apcnet\apcnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\apcnet\apcnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\apcnet\apcnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\apcnet\apcnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\apcnet\apcnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\apcnet\apcnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\apcnet\apcnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x1024_40k_Recipe1M.py /^_base_ = ['..\/_base_\/datasets\/Recipe1M.py',$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/ccnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/ccnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/ccnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/ccnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/ccnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\ccnet\ccnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ccnet\ccnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ccnet\ccnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ccnet\ccnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\ccnet\ccnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\ccnet\ccnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\ccnet\ccnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\ccnet\ccnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\ccnet\ccnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\ccnet\ccnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\ccnet\ccnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\ccnet\ccnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\ccnet\ccnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\ccnet\ccnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\ccnet\ccnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\ccnet\ccnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\ccnet\ccnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^_base_ = ['..\/_base_\/models\/cgnet.py', '..\/_base_\/default_runtime.py']$/;" v
+ann_dir configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ ann_dir='gtFine\/train',$/;" v
+ann_dir configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ ann_dir='gtFine\/val',$/;" v
+checkpoint_config configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+crop_size configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^crop_size = (512, 1024)$/;" v
+data configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^data = dict($/;" v
+data_root configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ data_root=data_root,$/;" v
+data_root configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^data_root = 'data\/cityscapes\/'$/;" v
+dataset_type configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^dataset_type = 'CityscapesDataset'$/;" v
+evaluation configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+flip configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ flip=False,$/;" v
+img_dir configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ img_dir='leftImg8bit\/train',$/;" v
+img_dir configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ img_dir='leftImg8bit\/val',$/;" v
+img_norm_cfg configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^img_norm_cfg = dict($/;" v
+img_scale configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ img_scale=(2048, 1024),$/;" v
+lr_config configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+optimizer configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)$/;" v
+optimizer_config configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^optimizer_config = dict()$/;" v
+pipeline configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ pipeline=test_pipeline))$/;" v
+pipeline configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ pipeline=test_pipeline),$/;" v
+pipeline configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ pipeline=train_pipeline),$/;" v
+samples_per_gpu configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ samples_per_gpu=8,$/;" v
+test configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ test=dict($/;" v
+test_pipeline configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^test_pipeline = [$/;" v
+total_iters configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^total_iters = 60000$/;" v
+train configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ train=dict($/;" v
+train_pipeline configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^train_pipeline = [$/;" v
+transforms configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ transforms=[$/;" v
+type configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ type='MultiScaleFlipAug',$/;" v
+type configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ type=dataset_type,$/;" v
+val configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ val=dict($/;" v
+workers_per_gpu configs\cgnet\cgnet_512x1024_60k_cityscapes.py /^ workers_per_gpu=8,$/;" v
+_base_ configs\cgnet\cgnet_680x680_60k_cityscapes.py /^_base_ = [$/;" v
+checkpoint_config configs\cgnet\cgnet_680x680_60k_cityscapes.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+crop_size configs\cgnet\cgnet_680x680_60k_cityscapes.py /^crop_size = (680, 680)$/;" v
+data configs\cgnet\cgnet_680x680_60k_cityscapes.py /^data = dict($/;" v
+evaluation configs\cgnet\cgnet_680x680_60k_cityscapes.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+flip configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ flip=False,$/;" v
+img_norm_cfg configs\cgnet\cgnet_680x680_60k_cityscapes.py /^img_norm_cfg = dict($/;" v
+img_scale configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ img_scale=(2048, 1024),$/;" v
+lr_config configs\cgnet\cgnet_680x680_60k_cityscapes.py /^lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)$/;" v
+optimizer configs\cgnet\cgnet_680x680_60k_cityscapes.py /^optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)$/;" v
+optimizer_config configs\cgnet\cgnet_680x680_60k_cityscapes.py /^optimizer_config = dict()$/;" v
+samples_per_gpu configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ samples_per_gpu=8,$/;" v
+test configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ test=dict(pipeline=test_pipeline))$/;" v
+test_pipeline configs\cgnet\cgnet_680x680_60k_cityscapes.py /^test_pipeline = [$/;" v
+total_iters configs\cgnet\cgnet_680x680_60k_cityscapes.py /^total_iters = 60000$/;" v
+train configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ train=dict(pipeline=train_pipeline),$/;" v
+train_pipeline configs\cgnet\cgnet_680x680_60k_cityscapes.py /^train_pipeline = [$/;" v
+transforms configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ transforms=[$/;" v
+type configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ type='MultiScaleFlipAug',$/;" v
+val configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ val=dict(pipeline=test_pipeline),$/;" v
+workers_per_gpu configs\cgnet\cgnet_680x680_60k_cityscapes.py /^ workers_per_gpu=8,$/;" v
+_base_ configs\danet\danet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/danet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\danet\danet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/danet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\danet\danet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/danet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\danet\danet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/danet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\danet\danet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/danet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\danet\danet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/danet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\danet\danet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/danet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\danet\danet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/danet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\danet\danet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\danet\danet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\danet\danet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\danet\danet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\danet\danet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\danet\danet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\danet\danet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\danet\danet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\danet\danet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\danet\danet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\danet\danet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\danet\danet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\danet\danet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\danet\danet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\danet\danet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\danet\danet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\danet\danet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+backbone configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ decode_head=dict($/;" v
+depth configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ depth=101,$/;" v
+dilations configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+model configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^model = dict($/;" v
+multi_grid configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+pretrained configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+sampler configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+strides configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+depth configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ depth=101,$/;" v
+dilations configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+model configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^model = dict($/;" v
+multi_grid configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+pretrained configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+sampler configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+strides configs\deeplabv3\deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/deeplabv3_r50-d8_480x480_40k_pascal_context.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/deeplabv3_r50-d8_480x480_80k_pascal_context.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/deeplabv3_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\deeplabv3\deeplabv3_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3\deeplabv3_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+backbone configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3\deeplabv3_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+channels configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3\deeplabv3_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+channels configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3\deeplabv3_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+channels configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3\deeplabv3_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+channels configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3\deeplabv3_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+optimizer configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\deeplabv3\deeplabv3_r50-d8_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+optimizer configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\deeplabv3\deeplabv3_r50-d8_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\deeplabv3\deeplabv3_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\deeplabv3\deeplabv3_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\deeplabv3\deeplabv3_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\deeplabv3\deeplabv3_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\deeplabv3\deeplabv3_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ decode_head=dict($/;" v
+depth configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ depth=101,$/;" v
+dilations configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^model = dict($/;" v
+multi_grid configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+sampler configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+strides configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+depth configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ depth=101,$/;" v
+dilations configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2),$/;" v
+dilations configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ dilations=(1, 6, 12, 18),$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^model = dict($/;" v
+multi_grid configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ multi_grid=(1, 2, 4)),$/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet101_v1c',$/;" v
+sampler configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))$/;" v
+strides configs\deeplabv3plus\deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1),$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+c1_channels configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_in_channels configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+channels configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+c1_channels configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_in_channels configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+channels configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+c1_channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_in_channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+c1_channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ c1_channels=12,$/;" v
+c1_in_channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ c1_in_channels=64,$/;" v
+channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\deeplabv3plus\deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+optimizer configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^ auxiliary_head=dict(num_classes=60),$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+optimizer configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\deeplabv3plus\deeplabv3plus_r50-d8_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\deeplabv3plus\deeplabv3plus_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\deeplabv3plus\deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\deeplabv3plus\deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\dmnet\dmnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\dmnet\dmnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dmnet\dmnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\dmnet\dmnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dmnet\dmnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/dmnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\dmnet\dmnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dmnet\dmnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/dmnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\dmnet\dmnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dmnet\dmnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\dmnet\dmnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dmnet\dmnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/dmnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\dmnet\dmnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dmnet\dmnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\dmnet\dmnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\dmnet\dmnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\dmnet\dmnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\dmnet\dmnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\dmnet\dmnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\dmnet\dmnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\dmnet\dmnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\dmnet\dmnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\dmnet\dmnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\dnlnet\dnl_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\dnlnet\dnl_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dnlnet\dnl_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\dnlnet\dnl_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dnlnet\dnl_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/dnl_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\dnlnet\dnl_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dnlnet\dnl_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/dnl_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\dnlnet\dnl_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dnlnet\dnl_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\dnlnet\dnl_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dnlnet\dnl_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/dnl_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\dnlnet\dnl_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\dnlnet\dnl_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\dnlnet\dnl_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\dnlnet\dnl_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\dnlnet\dnl_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\dnlnet\dnl_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\dnlnet\dnl_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\dnlnet\dnl_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\dnlnet\dnl_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\dnlnet\dnl_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+custom_keys configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.))))$/;" v
+decode_head configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+optimizer configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^optimizer = dict($/;" v
+paramwise_cfg configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ paramwise_cfg=dict($/;" v
+test_cfg configs\dnlnet\dnl_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\emanet\emanet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/emanet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\emanet\emanet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\emanet\emanet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/emanet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\emanet\emanet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\emanet\emanet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\emanet\emanet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\encnet\encnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\encnet\encnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\encnet\encnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/encnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\encnet\encnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/encnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\encnet\encnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/encnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\encnet\encnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/encnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\encnet\encnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\encnet\encnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/encnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\encnet\encnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\encnet\encnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\encnet\encnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\encnet\encnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\encnet\encnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\encnet\encnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\encnet\encnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\encnet\encnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\encnet\encnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\encnet\encnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\encnet\encnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\encnet\encnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\encnet\encnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\encnet\encnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\encnet\encnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\encnet\encnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\encnet\encnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+auxiliary_head configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^ auxiliary_head=dict(num_classes=150))$/;" v
+backbone configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^ backbone=dict(stem_channels=128),$/;" v
+decode_head configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150),$/;" v
+model configs\encnet\encnet_r50s-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\fastscnn\fast_scnn_4x8_80k_lr0.12_cityscapes.py /^_base_ = [$/;" v
+data configs\fastscnn\fast_scnn_4x8_80k_lr0.12_cityscapes.py /^data = dict(samples_per_gpu=2, workers_per_gpu=4)$/;" v
+optimizer configs\fastscnn\fast_scnn_4x8_80k_lr0.12_cityscapes.py /^optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5)$/;" v
+_base_ configs\fcn\fcn_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/fcn_r50-d8_480x480_40k_pascal_context.py'$/;" v
+model configs\fcn\fcn_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/fcn_r50-d8_480x480_80k_pascal_context.py'$/;" v
+model configs\fcn\fcn_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\fcn\fcn_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\fcn\fcn_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/fcn_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\fcn\fcn_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/fcn_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\fcn\fcn_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/fcn_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\fcn\fcn_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/fcn_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\fcn\fcn_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\fcn\fcn_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\fcn\fcn_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\fcn\fcn_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+backbone configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\fcn\fcn_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+channels configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\fcn\fcn_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+channels configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\fcn\fcn_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+channels configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\fcn\fcn_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+channels configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\fcn\fcn_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+decode_head configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+optimizer configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\fcn\fcn_r50-d8_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+decode_head configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+optimizer configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\fcn\fcn_r50-d8_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\fcn\fcn_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\fcn\fcn_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\fcn\fcn_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\fcn\fcn_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\fcn\fcn_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\fcn\fcn_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\fcn\fcn_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\fcn\fcn_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\fcn\fcn_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\fcn\fcn_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\fcn\fcn_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\fcn\fcn_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\fcn\fcn_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\fcn\fcn_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\fcn\fcn_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\fcn\fcn_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\fcn\fcn_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\fcn\fcn_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\fcn\fcn_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/fcn_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\fcn\fcn_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^_base_ = [$/;" v
+align_corners configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ align_corners=False,$/;" v
+auxiliary_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ auxiliary_head=[$/;" v
+backbone configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ backbone=dict($/;" v
+channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ channels=512,$/;" v
+crop_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^crop_size = (768, 768)$/;" v
+data configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^data = dict(samples_per_gpu=1)$/;" v
+decode_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+depth configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ depth=12,$/;" v
+drop_rate configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ drop_rate=0.,$/;" v
+embed_dim configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ embed_dim=768,$/;" v
+find_unused_parameters configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^find_unused_parameters = True$/;" v
+img_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ img_size=768,$/;" v
+in_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_channels=256,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=0,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=1,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=2,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ in_index=3,$/;" v
+loss_decode configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ loss_decode=dict($/;" v
+mla_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ mla_channels=256,$/;" v
+mla_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ mla_index=(5,7,9,11)$/;" v
+model configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^model = dict($/;" v
+model_name configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ model_name='vit_base_patch16_384',$/;" v
+num_classes configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ num_classes=104,$/;" v
+num_heads configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ num_heads=12,$/;" v
+optimizer configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+paramwise_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+pos_embed_interp configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ pos_embed_interp=True, $/;" v
+test_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+type configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base.py /^ type='VIT_MLA_AUXIHead',$/;" v
+_base_ configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^_base_ = [$/;" v
+align_corners configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False,$/;" v
+auxiliary_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ auxiliary_head=[$/;" v
+backbone configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ backbone=dict($/;" v
+channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ channels=512,$/;" v
+crop_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^crop_size = (768, 768)$/;" v
+data configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^data = dict(samples_per_gpu=1)$/;" v
+decode_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+depth configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ depth=12,$/;" v
+drop_rate configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ drop_rate=0.,$/;" v
+embed_dim configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ embed_dim=768,$/;" v
+find_unused_parameters configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^find_unused_parameters = True$/;" v
+img_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ img_size=768,$/;" v
+in_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_channels=256,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=0,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=1,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=2,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=3,$/;" v
+loss_decode configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ loss_decode=dict($/;" v
+mla_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ mla_channels=256,$/;" v
+mla_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ mla_index=(5,7,9,11)$/;" v
+model configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^model = dict($/;" v
+model_name configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ model_name='vit_base_patch16_224',$/;" v
+num_classes configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_classes=104,$/;" v
+num_heads configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_heads=12,$/;" v
+optimizer configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+paramwise_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+pos_embed_interp configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ pos_embed_interp=True, $/;" v
+test_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+type configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224.py /^ type='VIT_MLA_AUXIHead',$/;" v
+_base_ configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^_base_ = [$/;" v
+align_corners configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ align_corners=False,$/;" v
+auxiliary_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ auxiliary_head=[$/;" v
+backbone configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ backbone=dict($/;" v
+by_epoch configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ by_epoch=False)$/;" v
+channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ channels=512,$/;" v
+crop_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^crop_size = (768, 768)$/;" v
+data configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^data = dict(samples_per_gpu=1)$/;" v
+decode_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+depth configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ depth=12,$/;" v
+drop_rate configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ drop_rate=0.,$/;" v
+embed_dim configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ embed_dim=768,$/;" v
+find_unused_parameters configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^find_unused_parameters = True$/;" v
+img_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ img_size=768,$/;" v
+in_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_channels=256,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=0,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=1,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=2,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ in_index=3,$/;" v
+loss_decode configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ loss_decode=dict($/;" v
+lr_config configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^lr_config = dict(policy='step', $/;" v
+mla_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ mla_channels=256,$/;" v
+mla_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ mla_index=(5,7,9,11)$/;" v
+model configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^model = dict($/;" v
+model_name configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ model_name='vit_base_patch16_224',$/;" v
+num_classes configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ num_classes=104,$/;" v
+num_heads configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ num_heads=12,$/;" v
+optimizer configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+paramwise_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+pos_embed_interp configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ pos_embed_interp=True, $/;" v
+step configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ step=[40000, 60000],$/;" v
+test_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+type configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_base_224_step.py /^ type='VIT_MLA_AUXIHead',$/;" v
+_base_ configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^_base_ = [$/;" v
+align_corners configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ align_corners=False,$/;" v
+auxiliary_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ auxiliary_head=[$/;" v
+backbone configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ backbone=dict($/;" v
+channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ channels=512,$/;" v
+checkpoint_config configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+crop_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^crop_size = (768, 768)$/;" v
+data configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^data = dict(samples_per_gpu=1)$/;" v
+decode_head configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),$/;" v
+drop_rate configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ drop_rate=0.,$/;" v
+evaluation configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^evaluation = dict(interval=80000, metric='mIoU')$/;" v
+find_unused_parameters configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^find_unused_parameters = True$/;" v
+img_size configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ img_size=768,$/;" v
+in_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_channels=256,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=0,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=1,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=2,$/;" v
+in_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ in_index=3,$/;" v
+loss_decode configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ loss_decode=dict($/;" v
+mla_channels configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ mla_channels=256,$/;" v
+mla_index configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ mla_index=(5,11,17,23)$/;" v
+model configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^model = dict($/;" v
+num_classes configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ num_classes=104,$/;" v
+optimizer configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^optimizer = dict(lr=0.002, weight_decay=0.0,$/;" v
+paramwise_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})$/;" v
+pos_embed_interp configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ pos_embed_interp=True, $/;" v
+test_cfg configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+type configs\foodnet\SETR_MLA_768x768_80k_Recipe1M_bs_8_large.py /^ type='VIT_MLA_AUXIHead',$/;" v
+_base_ configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^_base_ = [$/;" v
+align_corners configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False,$/;" v
+align_corners configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False, $/;" v
+align_corners configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ align_corners=False,$/;" v
+auxiliary_head configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ auxiliary_head=[$/;" v
+backbone configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ backbone=dict($/;" v
+channels configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ channels=512,$/;" v
+channels configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ channels=512,$/;" v
+crop_size configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^crop_size = (768, 768)$/;" v
+data configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^data = dict(samples_per_gpu=1)$/;" v
+decode_head configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ decode_head=dict($/;" v
+depth configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ depth=12,$/;" v
+drop_rate configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ drop_rate=0.$/;" v
+embed_dim configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ embed_dim=768,$/;" v
+embed_dim configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ embed_dim=768,$/;" v
+find_unused_parameters configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^find_unused_parameters = True$/;" v
+img_size configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ img_size=768,$/;" v
+img_size configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ img_size=768, $/;" v
+in_channels configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_channels=768,$/;" v
+in_channels configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_channels=768,$/;" v
+in_index configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=5,$/;" v
+in_index configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=7,$/;" v
+in_index configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=9,$/;" v
+in_index configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ in_index=11,$/;" v
+loss_decode configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ loss_decode=dict($/;" v
+model configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^model = dict($/;" v
+model_name configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ model_name='vit_base_patch16_224',$/;" v
+norm_cfg configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_classes=104,$/;" v
+num_classes configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_classes=104,$/;" v
+num_conv configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_conv=2,$/;" v
+num_conv configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_conv=2, $/;" v
+num_heads configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ num_heads=12,$/;" v
+optimizer configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^optimizer = dict(lr=0.01, weight_decay=0.0, paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)}))$/;" v
+pos_embed_interp configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ pos_embed_interp=True, $/;" v
+test_cfg configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+type configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ type='VisionTransformerUpHead',$/;" v
+upsampling_method configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ upsampling_method='bilinear',$/;" v
+upsampling_method configs\foodnet\SETR_Naive_768x768_80k_Recipe1M_bs_8_base_224.py /^ upsampling_method='bilinear', $/;" v
+_base_ configs\foodnet\ccnet_r50-d8_512x1024_80k.py /^_base_ = [$/;" v
+_base_ configs\foodnet\ccnet_r50-d8_512x1024_80k_RM.py /^_base_ = [$/;" v
+model configs\foodnet\ccnet_r50-d8_512x1024_80k_RM.py /^model = dict(pretrained='.\/pretrained_model\/recipe1M_R50_LSTM.pth', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\foodnet\ccnet_vit_768x768_80k.py /^_base_ = [$/;" v
+align_corners configs\foodnet\ccnet_vit_768x768_80k.py /^ align_corners=False,$/;" v
+auxiliary_head configs\foodnet\ccnet_vit_768x768_80k.py /^ auxiliary_head=dict($/;" v
+backbone configs\foodnet\ccnet_vit_768x768_80k.py /^ backbone=dict($/;" v
+crop_size configs\foodnet\ccnet_vit_768x768_80k.py /^crop_size = (768, 768)$/;" v
+data configs\foodnet\ccnet_vit_768x768_80k.py /^data = dict(samples_per_gpu=1)$/;" v
+decode_head configs\foodnet\ccnet_vit_768x768_80k.py /^ decode_head=dict($/;" v
+depth configs\foodnet\ccnet_vit_768x768_80k.py /^ depth=12,$/;" v
+drop_rate configs\foodnet\ccnet_vit_768x768_80k.py /^ drop_rate=0.0,$/;" v
+embed_dim configs\foodnet\ccnet_vit_768x768_80k.py /^ embed_dim=768,$/;" v
+find_unused_parameters configs\foodnet\ccnet_vit_768x768_80k.py /^find_unused_parameters = True$/;" v
+img_size configs\foodnet\ccnet_vit_768x768_80k.py /^ img_size=768,$/;" v
+in_channels configs\foodnet\ccnet_vit_768x768_80k.py /^ in_channels=768,$/;" v
+in_chans configs\foodnet\ccnet_vit_768x768_80k.py /^ in_chans=3,$/;" v
+in_index configs\foodnet\ccnet_vit_768x768_80k.py /^ in_index=11,$/;" v
+in_index configs\foodnet\ccnet_vit_768x768_80k.py /^ in_index=9,$/;" v
+model configs\foodnet\ccnet_vit_768x768_80k.py /^model = dict($/;" v
+model_name configs\foodnet\ccnet_vit_768x768_80k.py /^ model_name='vit_large_patch16_224',$/;" v
+norm_cfg configs\foodnet\ccnet_vit_768x768_80k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\foodnet\ccnet_vit_768x768_80k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\foodnet\ccnet_vit_768x768_80k.py /^ num_classes=104,$/;" v
+num_heads configs\foodnet\ccnet_vit_768x768_80k.py /^ num_heads=12, $/;" v
+patch_size configs\foodnet\ccnet_vit_768x768_80k.py /^ patch_size=16, $/;" v
+pos_embed_interp configs\foodnet\ccnet_vit_768x768_80k.py /^ pos_embed_interp=True,$/;" v
+test_cfg configs\foodnet\ccnet_vit_768x768_80k.py /^test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))$/;" v
+type configs\foodnet\ccnet_vit_768x768_80k.py /^ type='VisionTransformer',$/;" v
+type configs\foodnet\ccnet_vit_768x768_80k.py /^ type='EncoderDecoder',$/;" v
+_base_ configs\foodnet\fpn_r50_512x1024_80k.py /^_base_ = [$/;" v
+checkpoint_config configs\foodnet\fpn_r50_512x1024_80k.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+evaluation configs\foodnet\fpn_r50_512x1024_80k.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+model configs\foodnet\fpn_r50_512x1024_80k.py /^model = dict(decode_head=dict(num_classes=104))$/;" v
+optimizer_config configs\foodnet\fpn_r50_512x1024_80k.py /^optimizer_config = dict()$/;" v
+runner configs\foodnet\fpn_r50_512x1024_80k.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+_base_ configs\foodnet\fpn_r50_512x1024_80k_RM.py /^_base_ = [$/;" v
+backbone configs\foodnet\fpn_r50_512x1024_80k_RM.py /^ backbone=dict(type='ResNet'), $/;" v
+checkpoint_config configs\foodnet\fpn_r50_512x1024_80k_RM.py /^checkpoint_config = dict(by_epoch=False, interval=4000)$/;" v
+decode_head configs\foodnet\fpn_r50_512x1024_80k_RM.py /^ decode_head=dict(num_classes=104))$/;" v
+evaluation configs\foodnet\fpn_r50_512x1024_80k_RM.py /^evaluation = dict(interval=4000, metric='mIoU')$/;" v
+model configs\foodnet\fpn_r50_512x1024_80k_RM.py /^model = dict(pretrained='.\/pretrained_model\/recipe1M_R50_LSTM.pth', $/;" v
+optimizer_config configs\foodnet\fpn_r50_512x1024_80k_RM.py /^optimizer_config = dict()$/;" v
+runner configs\foodnet\fpn_r50_512x1024_80k_RM.py /^runner = dict(type='IterBasedRunner', max_iters=80000)$/;" v
+_base_ configs\fp16\deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+optimizer_config configs\fp16\deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+_base_ configs\fp16\deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+optimizer_config configs\fp16\deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+_base_ configs\fp16\fcn_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+optimizer_config configs\fp16\fcn_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+_base_ configs\fp16\pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+optimizer_config configs\fp16\pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py /^optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/gcnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/gcnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/gcnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/gcnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/gcnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\gcnet\gcnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\gcnet\gcnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\gcnet\gcnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\gcnet\gcnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\gcnet\gcnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\gcnet\gcnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\gcnet\gcnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\gcnet\gcnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\gcnet\gcnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\gcnet\gcnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\gcnet\gcnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\gcnet\gcnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\gcnet\gcnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\gcnet\gcnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\gcnet\gcnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\gcnet\gcnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\gcnet\gcnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+decode_head configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^model = dict($/;" v
+optimizer configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\hrnet\fcn_hr18_480x480_40k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+decode_head configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60),$/;" v
+model configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^model = dict($/;" v
+optimizer configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\hrnet\fcn_hr18_480x480_80k_pascal_context.py /^ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))$/;" v
+_base_ configs\hrnet\fcn_hr18_512x1024_160k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\hrnet\fcn_hr18_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\hrnet\fcn_hr18_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\hrnet\fcn_hr18_512x512_160k_ade20k.py /^_base_ = [$/;" v
+model configs\hrnet\fcn_hr18_512x512_160k_ade20k.py /^model = dict(decode_head=dict(num_classes=150))$/;" v
+_base_ configs\hrnet\fcn_hr18_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+model configs\hrnet\fcn_hr18_512x512_20k_voc12aug.py /^model = dict(decode_head=dict(num_classes=21))$/;" v
+_base_ configs\hrnet\fcn_hr18_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+model configs\hrnet\fcn_hr18_512x512_40k_voc12aug.py /^model = dict(decode_head=dict(num_classes=21))$/;" v
+_base_ configs\hrnet\fcn_hr18_512x512_80k_ade20k.py /^_base_ = [$/;" v
+model configs\hrnet\fcn_hr18_512x512_80k_ade20k.py /^model = dict(decode_head=dict(num_classes=150))$/;" v
+_base_ configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_40k_pascal_context.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_480x480_40k_pascal_context.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_80k_pascal_context.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_480x480_80k_pascal_context.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_160k_cityscapes.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x1024_160k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_40k_cityscapes.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x1024_40k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x1024_80k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_160k_ade20k.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x512_160k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_20k_voc12aug.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x512_20k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_40k_voc12aug.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x512_40k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_80k_ade20k.py'$/;" v
+backbone configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+extra configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\hrnet\fcn_hr18s_512x512_80k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_40k_pascal_context.py'$/;" v
+backbone configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_480x480_40k_pascal_context.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^_base_ = '.\/fcn_hr18_480x480_80k_pascal_context.py'$/;" v
+backbone configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_480x480_80k_pascal_context.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_160k_cityscapes.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x1024_160k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_40k_cityscapes.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x1024_40k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^_base_ = '.\/fcn_hr18_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x1024_80k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_160k_ade20k.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x512_160k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_20k_voc12aug.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x512_20k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^_base_ = '.\/fcn_hr18_512x512_40k_voc12aug.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x512_40k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^_base_ = '.\/fcn_hr18_512x512_80k_ade20k.py'$/;" v
+backbone configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+decode_head configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ decode_head=dict($/;" v
+extra configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ extra=dict($/;" v
+model configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^model = dict($/;" v
+pretrained configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\hrnet\fcn_hr48_512x512_80k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+_base_ configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_delete_ configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320),$/;" v
+dilations configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x512_160k_ade20k.py'$/;" v
+_delete_ configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320),$/;" v
+dilations configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\deeplabv3_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_delete_ configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320, c1_in_channels=24),$/;" v
+dilations configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'$/;" v
+_delete_ configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320, c1_in_channels=24),$/;" v
+dilations configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_delete_ configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320),$/;" v
+dilations configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\fcn_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x512_160k_ade20k.py'$/;" v
+_delete_ configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320),$/;" v
+dilations configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\fcn_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+_delete_ configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ decode_head=dict(in_channels=320),$/;" v
+dilations configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\pspnet_m-v2-d8_512x1024_80k_cityscapes.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x512_160k_ade20k.py'$/;" v
+_delete_ configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ _delete_=True,$/;" v
+auxiliary_head configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(in_channels=96))$/;" v
+backbone configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+decode_head configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ decode_head=dict(in_channels=320),$/;" v
+dilations configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ dilations=(1, 1, 1, 2, 2, 4, 4),$/;" v
+model configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+out_indices configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ out_indices=(1, 2, 4, 6)),$/;" v
+pretrained configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ pretrained='mmcls:\/\/mobilenet_v2',$/;" v
+strides configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ strides=(1, 2, 2, 1, 1, 1, 1),$/;" v
+type configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ type='MobileNetV2',$/;" v
+widen_factor configs\mobilenet_v2\pspnet_m-v2-d8_512x512_160k_ade20k.py /^ widen_factor=1.,$/;" v
+_base_ configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^_base_ = [$/;" v
+data configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^data = dict(samples_per_gpu=4, workers_per_gpu=4)$/;" v
+model configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/contrib\/mobilenet_v3_large')$/;" v
+runner configs\mobilenet_v3\lraspp_m-v3-d8_512x1024_320k_cityscapes.py /^runner = dict(type='IterBasedRunner', max_iters=320000)$/;" v
+_base_ configs\mobilenet_v3\lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py /^_base_ = [$/;" v
+data configs\mobilenet_v3\lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py /^data = dict(samples_per_gpu=4, workers_per_gpu=4)$/;" v
+runner configs\mobilenet_v3\lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py /^runner = dict(type='IterBasedRunner', max_iters=320000)$/;" v
+_base_ configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^_base_ = '.\/lraspp_m-v3-d8_512x1024_320k_cityscapes.py'$/;" v
+act_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ act_cfg=dict(type='ReLU'),$/;" v
+align_corners configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ align_corners=False,$/;" v
+arch configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ arch='small',$/;" v
+backbone configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ backbone=dict($/;" v
+channels configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ decode_head=dict($/;" v
+dropout_ratio configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ in_channels=(16, 16, 576),$/;" v
+in_index configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ in_index=(0, 1, 2),$/;" v
+input_transform configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ input_transform='multiple_select',$/;" v
+loss_decode configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ loss_decode=dict($/;" v
+model configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^model = dict($/;" v
+norm_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg),$/;" v
+norm_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)$/;" v
+num_classes configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ num_classes=19,$/;" v
+out_indices configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ out_indices=(0, 1, 12),$/;" v
+pretrained configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ pretrained='open-mmlab:\/\/contrib\/mobilenet_v3_small',$/;" v
+type configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ type='LRASPPHead',$/;" v
+type configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ type='MobileNetV3',$/;" v
+type configs\mobilenet_v3\lraspp_m-v3s-d8_512x1024_320k_cityscapes.py /^ type='EncoderDecoder',$/;" v
+_base_ configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^_base_ = '.\/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py'$/;" v
+act_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ act_cfg=dict(type='ReLU'),$/;" v
+align_corners configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ align_corners=False,$/;" v
+arch configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ arch='small',$/;" v
+backbone configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ backbone=dict($/;" v
+channels configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ decode_head=dict($/;" v
+dropout_ratio configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ dropout_ratio=0.1,$/;" v
+in_channels configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ in_channels=(16, 16, 576),$/;" v
+in_index configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ in_index=(0, 1, 2),$/;" v
+input_transform configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ input_transform='multiple_select',$/;" v
+loss_decode configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ loss_decode=dict($/;" v
+model configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^model = dict($/;" v
+norm_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg),$/;" v
+norm_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)$/;" v
+num_classes configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ num_classes=19,$/;" v
+out_indices configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ out_indices=(0, 1, 12),$/;" v
+type configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ type='LRASPPHead',$/;" v
+type configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ type='MobileNetV3',$/;" v
+type configs\mobilenet_v3\lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py /^ type='EncoderDecoder',$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/nonlocal_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/nonlocal_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/nonlocal_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/nonlocal_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/nonlocal_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\nonlocal_net\nonlocal_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\nonlocal_net\nonlocal_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\nonlocal_net\nonlocal_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\nonlocal_net\nonlocal_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\nonlocal_net\nonlocal_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\nonlocal_net\nonlocal_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\nonlocal_net\nonlocal_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\nonlocal_net\nonlocal_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\nonlocal_net\nonlocal_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\nonlocal_net\nonlocal_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\nonlocal_net\nonlocal_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x1024_160k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^_base_ = [$/;" v
+align_corners configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ align_corners=False,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ concat_input=False,$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ dropout_ratio=-1,$/;" v
+in_channels configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_index configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^model = dict(decode_head=[$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ num_classes=150,$/;" v
+num_convs configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ ocr_channels=256,$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_160k_ade20k.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+align_corners configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ align_corners=False,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ concat_input=False,$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+in_channels configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_index configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^model = dict(decode_head=[$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ num_classes=21,$/;" v
+num_convs configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ ocr_channels=256,$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_20k_voc12aug.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+align_corners configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ align_corners=False,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ concat_input=False,$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+in_channels configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_index configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^model = dict(decode_head=[$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ num_classes=21,$/;" v
+num_convs configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ ocr_channels=256,$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_40k_voc12aug.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^_base_ = [$/;" v
+align_corners configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ align_corners=False,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ channels=sum([18, 36, 72, 144]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ concat_input=False,$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ dropout_ratio=-1,$/;" v
+in_channels configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ in_channels=[18, 36, 72, 144],$/;" v
+in_index configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^model = dict(decode_head=[$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ num_classes=150,$/;" v
+num_convs configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ ocr_channels=256,$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr18_512x512_80k_ade20k.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_160k_cityscapes.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x1024_160k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_40k_cityscapes.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x1024_40k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x1024_80k_cityscapes.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_160k_ade20k.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x512_160k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_20k_voc12aug.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x512_20k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_40k_voc12aug.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x512_40k_voc12aug.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_80k_ade20k.py'$/;" v
+backbone configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+extra configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ extra=dict($/;" v
+model configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^model = dict($/;" v
+pretrained configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w18_small',$/;" v
+stage1 configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage1=dict(num_blocks=(2, )),$/;" v
+stage2 configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage2=dict(num_blocks=(2, 2)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr18s_512x512_80k_ade20k.py /^ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_160k_cityscapes.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ num_classes=19,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x1024_160k_cityscapes.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_40k_cityscapes.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ num_classes=19,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x1024_40k_cityscapes.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^_base_ = '.\/ocrnet_hr18_512x1024_80k_cityscapes.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ num_classes=19,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x1024_80k_cityscapes.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_160k_ade20k.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ num_classes=150,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_160k_ade20k.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_20k_voc12aug.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ num_classes=21,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_20k_voc12aug.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^_base_ = '.\/ocrnet_hr18_512x512_40k_voc12aug.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ num_classes=21,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_40k_voc12aug.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^_base_ = '.\/ocrnet_hr18_512x512_80k_ade20k.py'$/;" v
+align_corners configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ align_corners=False,$/;" v
+backbone configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ backbone=dict($/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ channels=512,$/;" v
+channels configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ channels=sum([48, 96, 192, 384]),$/;" v
+concat_input configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ concat_input=False,$/;" v
+decode_head configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ decode_head=[$/;" v
+dropout_ratio configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ dropout_ratio=-1,$/;" v
+extra configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ extra=dict($/;" v
+in_channels configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ in_channels=[48, 96, 192, 384],$/;" v
+in_index configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ in_index=(0, 1, 2, 3),$/;" v
+input_transform configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ input_transform='resize_concat',$/;" v
+kernel_size configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ kernel_size=1,$/;" v
+loss_decode configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ loss_decode=dict($/;" v
+model configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^model = dict($/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ num_classes=150,$/;" v
+num_convs configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ num_convs=1,$/;" v
+ocr_channels configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ ocr_channels=256,$/;" v
+pretrained configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ pretrained='open-mmlab:\/\/msra\/hrnetv2_w48',$/;" v
+stage2 configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ stage2=dict(num_channels=(48, 96)),$/;" v
+stage3 configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ stage3=dict(num_channels=(48, 96, 192)),$/;" v
+stage4 configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ stage4=dict(num_channels=(48, 96, 192, 384)))),$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ type='FCNHead',$/;" v
+type configs\ocrnet\ocrnet_hr48_512x512_80k_ade20k.py /^ type='OCRHead',$/;" v
+_base_ configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^_base_ = [$/;" v
+lr_config configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^lr_config = dict(min_lr=2e-4)$/;" v
+model configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+optimizer configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py /^optimizer = dict(lr=0.02)$/;" v
+_base_ configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py /^_base_ = [$/;" v
+model configs\ocrnet\ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^_base_ = [$/;" v
+lr_config configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^lr_config = dict(min_lr=2e-4)$/;" v
+model configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+optimizer configs\ocrnet\ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py /^optimizer = dict(lr=0.02)$/;" v
+_base_ configs\point_rend\pointrend_r101_512x1024_80k_cityscapes.py /^_base_ = '.\/pointrend_r50_512x1024_80k_cityscapes.py'$/;" v
+model configs\point_rend\pointrend_r101_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\point_rend\pointrend_r101_512x512_160k_ade20k.py /^_base_ = '.\/pointrend_r50_512x512_160k_ade20k.py'$/;" v
+model configs\point_rend\pointrend_r101_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\point_rend\pointrend_r50_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+lr_config configs\point_rend\pointrend_r50_512x1024_80k_cityscapes.py /^lr_config = dict(warmup='linear', warmup_iters=200)$/;" v
+_base_ configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^_base_ = [$/;" v
+align_corners configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ align_corners=False,$/;" v
+channels configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ channels=128,$/;" v
+channels configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ channels=256,$/;" v
+coarse_pred_each_layer configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ coarse_pred_each_layer=True,$/;" v
+dropout_ratio configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ dropout_ratio=-1,$/;" v
+feature_strides configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ feature_strides=[4, 8, 16, 32],$/;" v
+in_channels configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_channels=[256, 256, 256, 256],$/;" v
+in_channels configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_channels=[256],$/;" v
+in_index configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_index=[0, 1, 2, 3],$/;" v
+in_index configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ in_index=[0],$/;" v
+loss_decode configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ loss_decode=dict($/;" v
+lr_config configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^lr_config = dict(warmup='linear', warmup_iters=200)$/;" v
+model configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^model = dict(decode_head=[$/;" v
+norm_cfg configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ norm_cfg=norm_cfg,$/;" v
+norm_cfg configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^norm_cfg = dict(type='SyncBN', requires_grad=True)$/;" v
+num_classes configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ num_classes=150,$/;" v
+num_fcs configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ num_fcs=3,$/;" v
+type configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ type='FPNHead',$/;" v
+type configs\point_rend\pointrend_r50_512x512_160k_ade20k.py /^ type='PointHead',$/;" v
+_base_ configs\psanet\psanet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\psanet\psanet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\psanet\psanet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/psanet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\psanet\psanet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/psanet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\psanet\psanet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/psanet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\psanet\psanet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/psanet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\psanet\psanet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\psanet\psanet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/psanet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\psanet\psanet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\psanet\psanet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\psanet\psanet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+auxiliary_head configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^ auxiliary_head=dict(num_classes=150))$/;" v
+decode_head configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(mask_size=(66, 66), num_classes=150),$/;" v
+model configs\psanet\psanet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\psanet\psanet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\psanet\psanet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\psanet\psanet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\psanet\psanet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\psanet\psanet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\psanet\psanet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+auxiliary_head configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^ auxiliary_head=dict(num_classes=150))$/;" v
+decode_head configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(mask_size=(66, 66), num_classes=150),$/;" v
+model configs\psanet\psanet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\psanet\psanet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\psanet\psanet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_480x480_40k_pascal_context.py /^_base_ = '.\/pspnet_r50-d8_480x480_40k_pascal_context.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_480x480_40k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_480x480_80k_pascal_context.py /^_base_ = '.\/pspnet_r50-d8_480x480_80k_pascal_context.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_480x480_80k_pascal_context.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_512x1024_40k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_40k_cityscapes.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_512x512_160k_ade20k.py /^_base_ = '.\/pspnet_r50-d8_512x512_160k_ade20k.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_512x512_20k_voc12aug.py /^_base_ = '.\/pspnet_r50-d8_512x512_20k_voc12aug.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_512x512_40k_voc12aug.py /^_base_ = '.\/pspnet_r50-d8_512x512_40k_voc12aug.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_512x512_80k_ade20k.py /^_base_ = '.\/pspnet_r50-d8_512x512_80k_ade20k.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_769x769_40k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_40k_cityscapes.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\pspnet\pspnet_r101-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+backbone configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\pspnet\pspnet_r101b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+backbone configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=101))$/;" v
+model configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\pspnet\pspnet_r101b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet101',$/;" v
+_base_ configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+channels configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\pspnet\pspnet_r18-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ backbone=dict(depth=18),$/;" v
+channels configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\pspnet\pspnet_r18-d8_769x769_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnet18_v1c',$/;" v
+_base_ configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+auxiliary_head configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+channels configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\pspnet\pspnet_r18b-d8_512x1024_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+auxiliary_head configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(in_channels=256, channels=64))$/;" v
+backbone configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ backbone=dict(type='ResNet', depth=18),$/;" v
+channels configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ channels=128,$/;" v
+decode_head configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ decode_head=dict($/;" v
+in_channels configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ in_channels=512,$/;" v
+model configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\pspnet\pspnet_r18b-d8_769x769_80k_cityscapes.py /^ pretrained='torchvision:\/\/resnet18',$/;" v
+_base_ configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^_base_ = [$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))$/;" v
+model configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^model = dict($/;" v
+optimizer configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\pspnet\pspnet_r50-d8_480x480_40k_pascal_context.py /^test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))$/;" v
+_base_ configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^_base_ = [$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))$/;" v
+model configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^model = dict($/;" v
+optimizer configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)$/;" v
+test_cfg configs\pspnet\pspnet_r50-d8_480x480_80k_pascal_context.py /^test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))$/;" v
+_base_ configs\pspnet\pspnet_r50-d8_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\pspnet\pspnet_r50-d8_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\pspnet\pspnet_r50-d8_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\pspnet\pspnet_r50-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\pspnet\pspnet_r50-d8_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\pspnet\pspnet_r50-d8_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\pspnet\pspnet_r50-d8_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\pspnet\pspnet_r50-d8_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\pspnet\pspnet_r50-d8_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\pspnet\pspnet_r50-d8_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\pspnet\pspnet_r50-d8_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\pspnet\pspnet_r50-d8_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\pspnet\pspnet_r50b-d8_512x1024_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_512x1024_80k_cityscapes.py'$/;" v
+model configs\pspnet\pspnet_r50b-d8_512x1024_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\pspnet\pspnet_r50b-d8_769x769_80k_cityscapes.py /^_base_ = '.\/pspnet_r50-d8_769x769_80k_cityscapes.py'$/;" v
+model configs\pspnet\pspnet_r50b-d8_769x769_80k_cityscapes.py /^model = dict(pretrained='torchvision:\/\/resnet50', backbone=dict(type='ResNet'))$/;" v
+_base_ configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+avg_down_stride configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+model configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+type configs\resnest\deeplabv3_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3\/deeplabv3_r101-d8_512x512_160k_ade20k.py'$/;" v
+avg_down_stride configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+model configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+type configs\resnest\deeplabv3_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+avg_down_stride configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+model configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+type configs\resnest\deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/deeplabv3plus\/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'$/;" v
+avg_down_stride configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+model configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+type configs\resnest\deeplabv3plus_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+avg_down_stride configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+model configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+type configs\resnest\fcn_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/fcn\/fcn_r101-d8_512x512_160k_ade20k.py'$/;" v
+avg_down_stride configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+model configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+type configs\resnest\fcn_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x1024_80k_cityscapes.py'$/;" v
+avg_down_stride configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ backbone=dict($/;" v
+model configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^model = dict($/;" v
+pretrained configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ stem_channels=128,$/;" v
+type configs\resnest\pspnet_s101-d8_512x1024_80k_cityscapes.py /^ type='ResNeSt',$/;" v
+_base_ configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^_base_ = '..\/pspnet\/pspnet_r101-d8_512x512_160k_ade20k.py'$/;" v
+avg_down_stride configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ avg_down_stride=True))$/;" v
+backbone configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ backbone=dict($/;" v
+model configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^model = dict($/;" v
+pretrained configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ pretrained='open-mmlab:\/\/resnest101',$/;" v
+radix configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ radix=2,$/;" v
+reduction_factor configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ reduction_factor=4,$/;" v
+stem_channels configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ stem_channels=128,$/;" v
+type configs\resnest\pspnet_s101-d8_512x512_160k_ade20k.py /^ type='ResNeSt',$/;" v
+_base_ configs\sem_fpn\fpn_r101_512x1024_80k_cityscapes.py /^_base_ = '.\/fpn_r50_512x1024_80k_cityscapes.py'$/;" v
+model configs\sem_fpn\fpn_r101_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\sem_fpn\fpn_r101_512x512_160k_ade20k.py /^_base_ = '.\/fpn_r50_512x512_160k_ade20k.py'$/;" v
+model configs\sem_fpn\fpn_r101_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\sem_fpn\fpn_r50_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\sem_fpn\fpn_r50_512x512_160k_ade20k.py /^_base_ = [$/;" v
+model configs\sem_fpn\fpn_r50_512x512_160k_ade20k.py /^model = dict(decode_head=dict(num_classes=150))$/;" v
+_base_ configs\unet\deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py /^_base_ = [$/;" v
+evaluation configs\unet\deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+_base_ configs\unet\deeplabv3_unet_s5-d16_128x128_40k_stare.py /^_base_ = [$/;" v
+evaluation configs\unet\deeplabv3_unet_s5-d16_128x128_40k_stare.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\deeplabv3_unet_s5-d16_128x128_40k_stare.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+_base_ configs\unet\deeplabv3_unet_s5-d16_256x256_40k_hrf.py /^_base_ = [$/;" v
+evaluation configs\unet\deeplabv3_unet_s5-d16_256x256_40k_hrf.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\deeplabv3_unet_s5-d16_256x256_40k_hrf.py /^model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))$/;" v
+_base_ configs\unet\deeplabv3_unet_s5-d16_64x64_40k_drive.py /^_base_ = [$/;" v
+evaluation configs\unet\deeplabv3_unet_s5-d16_64x64_40k_drive.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\deeplabv3_unet_s5-d16_64x64_40k_drive.py /^model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))$/;" v
+_base_ configs\unet\fcn_unet_s5-d16_128x128_40k_chase_db1.py /^_base_ = [$/;" v
+evaluation configs\unet\fcn_unet_s5-d16_128x128_40k_chase_db1.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\fcn_unet_s5-d16_128x128_40k_chase_db1.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+_base_ configs\unet\fcn_unet_s5-d16_128x128_40k_stare.py /^_base_ = [$/;" v
+evaluation configs\unet\fcn_unet_s5-d16_128x128_40k_stare.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\fcn_unet_s5-d16_128x128_40k_stare.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+_base_ configs\unet\fcn_unet_s5-d16_256x256_40k_hrf.py /^_base_ = [$/;" v
+evaluation configs\unet\fcn_unet_s5-d16_256x256_40k_hrf.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\fcn_unet_s5-d16_256x256_40k_hrf.py /^model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))$/;" v
+_base_ configs\unet\fcn_unet_s5-d16_64x64_40k_drive.py /^_base_ = [$/;" v
+evaluation configs\unet\fcn_unet_s5-d16_64x64_40k_drive.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\fcn_unet_s5-d16_64x64_40k_drive.py /^model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))$/;" v
+_base_ configs\unet\pspnet_unet_s5-d16_128x128_40k_chase_db1.py /^_base_ = [$/;" v
+evaluation configs\unet\pspnet_unet_s5-d16_128x128_40k_chase_db1.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\pspnet_unet_s5-d16_128x128_40k_chase_db1.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+_base_ configs\unet\pspnet_unet_s5-d16_128x128_40k_stare.py /^_base_ = [$/;" v
+evaluation configs\unet\pspnet_unet_s5-d16_128x128_40k_stare.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\pspnet_unet_s5-d16_128x128_40k_stare.py /^model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))$/;" v
+_base_ configs\unet\pspnet_unet_s5-d16_256x256_40k_hrf.py /^_base_ = [$/;" v
+evaluation configs\unet\pspnet_unet_s5-d16_256x256_40k_hrf.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\pspnet_unet_s5-d16_256x256_40k_hrf.py /^model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))$/;" v
+_base_ configs\unet\pspnet_unet_s5-d16_64x64_40k_drive.py /^_base_ = [$/;" v
+evaluation configs\unet\pspnet_unet_s5-d16_64x64_40k_drive.py /^evaluation = dict(metric='mDice')$/;" v
+model configs\unet\pspnet_unet_s5-d16_64x64_40k_drive.py /^model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))$/;" v
+_base_ configs\upernet\upernet_r101_512x1024_40k_cityscapes.py /^_base_ = '.\/upernet_r50_512x1024_40k_cityscapes.py'$/;" v
+model configs\upernet\upernet_r101_512x1024_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_512x1024_80k_cityscapes.py /^_base_ = '.\/upernet_r50_512x1024_80k_cityscapes.py'$/;" v
+model configs\upernet\upernet_r101_512x1024_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_512x512_160k_ade20k.py /^_base_ = '.\/upernet_r50_512x512_160k_ade20k.py'$/;" v
+model configs\upernet\upernet_r101_512x512_160k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_512x512_20k_voc12aug.py /^_base_ = '.\/upernet_r50_512x512_20k_voc12aug.py'$/;" v
+model configs\upernet\upernet_r101_512x512_20k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_512x512_40k_voc12aug.py /^_base_ = '.\/upernet_r50_512x512_40k_voc12aug.py'$/;" v
+model configs\upernet\upernet_r101_512x512_40k_voc12aug.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_512x512_80k_ade20k.py /^_base_ = '.\/upernet_r50_512x512_80k_ade20k.py'$/;" v
+model configs\upernet\upernet_r101_512x512_80k_ade20k.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_769x769_40k_cityscapes.py /^_base_ = '.\/upernet_r50_769x769_40k_cityscapes.py'$/;" v
+model configs\upernet\upernet_r101_769x769_40k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r101_769x769_80k_cityscapes.py /^_base_ = '.\/upernet_r50_769x769_80k_cityscapes.py'$/;" v
+model configs\upernet\upernet_r101_769x769_80k_cityscapes.py /^model = dict(pretrained='open-mmlab:\/\/resnet101_v1c', backbone=dict(depth=101))$/;" v
+_base_ configs\upernet\upernet_r50_512x1024_40k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\upernet\upernet_r50_512x1024_80k_cityscapes.py /^_base_ = [$/;" v
+_base_ configs\upernet\upernet_r50_512x512_160k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\upernet\upernet_r50_512x512_160k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\upernet\upernet_r50_512x512_160k_ade20k.py /^model = dict($/;" v
+_base_ configs\upernet\upernet_r50_512x512_20k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\upernet\upernet_r50_512x512_20k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\upernet\upernet_r50_512x512_20k_voc12aug.py /^model = dict($/;" v
+_base_ configs\upernet\upernet_r50_512x512_40k_voc12aug.py /^_base_ = [$/;" v
+decode_head configs\upernet\upernet_r50_512x512_40k_voc12aug.py /^ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))$/;" v
+model configs\upernet\upernet_r50_512x512_40k_voc12aug.py /^model = dict($/;" v
+_base_ configs\upernet\upernet_r50_512x512_80k_ade20k.py /^_base_ = [$/;" v
+decode_head configs\upernet\upernet_r50_512x512_80k_ade20k.py /^ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))$/;" v
+model configs\upernet\upernet_r50_512x512_80k_ade20k.py /^model = dict($/;" v
+_base_ configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\upernet\upernet_r50_769x769_40k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+_base_ configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^_base_ = [$/;" v
+auxiliary_head configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^ auxiliary_head=dict(align_corners=True),$/;" v
+decode_head configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^ decode_head=dict(align_corners=True),$/;" v
+model configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^model = dict($/;" v
+test_cfg configs\upernet\upernet_r50_769x769_80k_cityscapes.py /^ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))$/;" v
+ArgumentParser demo\image_demo.py /^from argparse import ArgumentParser$/;" i
+get_palette demo\image_demo.py /^from mmseg.core.evaluation import get_palette$/;" i
+inference_segmentor demo\image_demo.py /^from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+init_segmentor demo\image_demo.py /^from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+main demo\image_demo.py /^def main():$/;" f
+show_result_pyplot demo\image_demo.py /^from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+author docs\conf.py /^author = 'MMSegmentation Authors'$/;" v
+autodoc_mock_imports docs\conf.py /^autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version']$/;" v
+builder_inited_handler docs\conf.py /^def builder_inited_handler(app):$/;" f
+copyright docs\conf.py /^copyright = '2020-2020, OpenMMLab'$/;" v
+exclude_patterns docs\conf.py /^exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']$/;" v
+extensions docs\conf.py /^extensions = [$/;" v
+get_version docs\conf.py /^def get_version():$/;" f
+html_static_path docs\conf.py /^html_static_path = ['_static']$/;" v
+html_theme docs\conf.py /^html_theme = 'sphinx_rtd_theme'$/;" v
+master_doc docs\conf.py /^master_doc = 'index'$/;" v
+os docs\conf.py /^import os$/;" i
+project docs\conf.py /^project = 'MMSegmentation'$/;" v
+release docs\conf.py /^release = get_version()$/;" v
+setup docs\conf.py /^def setup(app):$/;" f
+source_suffix docs\conf.py /^source_suffix = {$/;" v
+subprocess docs\conf.py /^import subprocess$/;" i
+sys docs\conf.py /^import sys$/;" i
+templates_path docs\conf.py /^templates_path = ['_templates']$/;" v
+version_file docs\conf.py /^version_file = '..\/mmseg\/version.py'$/;" v
+BUILDDIR docs\make.bat /^set BUILDDIR=_build$/;" v
+SOURCEDIR docs\make.bat /^set SOURCEDIR=.$/;" v
+SPHINXBUILD docs\make.bat /^ set SPHINXBUILD=sphinx-build$/;" v
+end docs\make.bat /^:end$/;" l
+help docs\make.bat /^:help$/;" l
+_papertype docs\stat.py /^ _papertype = [x for x in re.findall(r'\\[([A-Z]+)\\]', content)]$/;" v
+allpapers docs\stat.py /^allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats])$/;" v
+ckpts docs\stat.py /^ ckpts = set(x.lower().strip()$/;" v
+content docs\stat.py /^ content = content_file.read()$/;" v
+countstr docs\stat.py /^countstr = '\\n'.join($/;" v
+files docs\stat.py /^files = sorted(glob.glob('..\/configs\/*\/README.md'))$/;" v
+func docs\stat.py /^import functools as func$/;" i
+glob docs\stat.py /^import glob$/;" i
+msglist docs\stat.py /^msglist = '\\n'.join(x for _, _, x in stats)$/;" v
+np docs\stat.py /^import numpy as np$/;" i
+num_ckpts docs\stat.py /^num_ckpts = 0$/;" v
+os docs\stat.py /^import os.path as osp$/;" i
+osp docs\stat.py /^import os.path as osp$/;" i
+paper docs\stat.py /^ paper = set([(papertype, title)])$/;" v
+papertype docs\stat.py /^ papertype = _papertype[0]$/;" v
+re docs\stat.py /^import re$/;" i
+return_counts docs\stat.py /^ return_counts=True)$/;" v
+stats docs\stat.py /^stats = []$/;" v
+title docs\stat.py /^ title = content.split('\\n')[0].replace('#', '').strip()$/;" v
+titles docs\stat.py /^titles = []$/;" v
+url docs\stat.py /^ url = osp.dirname(f.replace('..\/', url_prefix))$/;" v
+url_prefix docs\stat.py /^url_prefix = 'https:\/\/github.com\/open-mmlab\/mmsegmentation\/blob\/master\/'$/;" v
+MMCV_MAX mmseg\__init__.py /^MMCV_MAX = '1.3.0'$/;" v
+MMCV_MIN mmseg\__init__.py /^MMCV_MIN = '1.1.4'$/;" v
+__all__ mmseg\__init__.py /^__all__ = ['__version__', 'version_info']$/;" v
+__version__ mmseg\__init__.py /^from .version import __version__, version_info$/;" i
+digit_version mmseg\__init__.py /^def digit_version(version_str):$/;" f
+mmcv mmseg\__init__.py /^import mmcv$/;" i
+mmcv_max_version mmseg\__init__.py /^mmcv_max_version = digit_version(MMCV_MAX)$/;" v
+mmcv_min_version mmseg\__init__.py /^mmcv_min_version = digit_version(MMCV_MIN)$/;" v
+mmcv_version mmseg\__init__.py /^mmcv_version = digit_version(mmcv.__version__)$/;" v
+version_info mmseg\__init__.py /^from .version import __version__, version_info$/;" i
+__all__ mmseg\apis\__init__.py /^__all__ = [$/;" v
+get_root_logger mmseg\apis\__init__.py /^from .train import get_root_logger, set_random_seed, train_segmentor$/;" i
+inference_segmentor mmseg\apis\__init__.py /^from .inference import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+init_segmentor mmseg\apis\__init__.py /^from .inference import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+multi_gpu_test mmseg\apis\__init__.py /^from .test import multi_gpu_test, single_gpu_test$/;" i
+set_random_seed mmseg\apis\__init__.py /^from .train import get_root_logger, set_random_seed, train_segmentor$/;" i
+show_result_pyplot mmseg\apis\__init__.py /^from .inference import inference_segmentor, init_segmentor, show_result_pyplot$/;" i
+single_gpu_test mmseg\apis\__init__.py /^from .test import multi_gpu_test, single_gpu_test$/;" i
+train_segmentor mmseg\apis\__init__.py /^from .train import get_root_logger, set_random_seed, train_segmentor$/;" i
+Compose mmseg\apis\inference.py /^from mmseg.datasets.pipelines import Compose$/;" i
+LoadImage mmseg\apis\inference.py /^class LoadImage:$/;" c
+__call__ mmseg\apis\inference.py /^ def __call__(self, results):$/;" m class:LoadImage file:
+build_segmentor mmseg\apis\inference.py /^from mmseg.models import build_segmentor$/;" i
+collate mmseg\apis\inference.py /^from mmcv.parallel import collate, scatter$/;" i
+inference_segmentor mmseg\apis\inference.py /^def inference_segmentor(model, img):$/;" f
+init_segmentor mmseg\apis\inference.py /^def init_segmentor(config, checkpoint=None, device='cuda:0'):$/;" f
+load_checkpoint mmseg\apis\inference.py /^from mmcv.runner import load_checkpoint$/;" i
+matplotlib mmseg\apis\inference.py /^import matplotlib.pyplot as plt$/;" i
+mmcv mmseg\apis\inference.py /^import mmcv$/;" i
+plt mmseg\apis\inference.py /^import matplotlib.pyplot as plt$/;" i
+scatter mmseg\apis\inference.py /^from mmcv.parallel import collate, scatter$/;" i
+show_result_pyplot mmseg\apis\inference.py /^def show_result_pyplot(model, img, result, palette=None, fig_size=(15, 10)):$/;" f
+torch mmseg\apis\inference.py /^import torch$/;" i
+collect_results_cpu mmseg\apis\test.py /^def collect_results_cpu(result_part, size, tmpdir=None):$/;" f
+collect_results_gpu mmseg\apis\test.py /^def collect_results_gpu(result_part, size):$/;" f
+dist mmseg\apis\test.py /^import torch.distributed as dist$/;" i
+get_dist_info mmseg\apis\test.py /^from mmcv.runner import get_dist_info$/;" i
+mmcv mmseg\apis\test.py /^import mmcv$/;" i
+multi_gpu_test mmseg\apis\test.py /^def multi_gpu_test(model,$/;" f
+np mmseg\apis\test.py /^import numpy as np$/;" i
+np2tmp mmseg\apis\test.py /^def np2tmp(array, temp_file_name=None):$/;" f
+os mmseg\apis\test.py /^import os.path as osp$/;" i
+osp mmseg\apis\test.py /^import os.path as osp$/;" i
+pickle mmseg\apis\test.py /^import pickle$/;" i
+shutil mmseg\apis\test.py /^import shutil$/;" i
+single_gpu_test mmseg\apis\test.py /^def single_gpu_test(model,$/;" f
+tempfile mmseg\apis\test.py /^import tempfile$/;" i
+tensor2imgs mmseg\apis\test.py /^from mmcv.image import tensor2imgs$/;" i
+torch mmseg\apis\test.py /^import torch$/;" i
+torch mmseg\apis\test.py /^import torch.distributed as dist$/;" i
+DistEvalHook mmseg\apis\train.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+EvalHook mmseg\apis\train.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+MMDataParallel mmseg\apis\train.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+MMDistributedDataParallel mmseg\apis\train.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+build_dataloader mmseg\apis\train.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset mmseg\apis\train.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_optimizer mmseg\apis\train.py /^from mmcv.runner import build_optimizer, build_runner$/;" i
+build_runner mmseg\apis\train.py /^from mmcv.runner import build_optimizer, build_runner$/;" i
+get_root_logger mmseg\apis\train.py /^from mmseg.utils import get_root_logger$/;" i
+np mmseg\apis\train.py /^import numpy as np$/;" i
+random mmseg\apis\train.py /^import random$/;" i
+set_random_seed mmseg\apis\train.py /^def set_random_seed(seed, deterministic=False):$/;" f
+torch mmseg\apis\train.py /^import torch$/;" i
+train_segmentor mmseg\apis\train.py /^def train_segmentor(model,$/;" f
+warnings mmseg\apis\train.py /^import warnings$/;" i
+F401 mmseg\core\__init__.py /^from .evaluation import * # noqa: F401, F403$/;" i
+F401 mmseg\core\__init__.py /^from .seg import * # noqa: F401, F403$/;" i
+F401 mmseg\core\__init__.py /^from .utils import * # noqa: F401, F403$/;" i
+F403 mmseg\core\__init__.py /^from .evaluation import * # noqa: F401, F403$/;" i
+F403 mmseg\core\__init__.py /^from .seg import * # noqa: F401, F403$/;" i
+F403 mmseg\core\__init__.py /^from .utils import * # noqa: F401, F403$/;" i
+noqa mmseg\core\__init__.py /^from .evaluation import * # noqa: F401, F403$/;" i
+noqa mmseg\core\__init__.py /^from .seg import * # noqa: F401, F403$/;" i
+noqa mmseg\core\__init__.py /^from .utils import * # noqa: F401, F403$/;" i
+DistEvalHook mmseg\core\evaluation\__init__.py /^from .eval_hooks import DistEvalHook, EvalHook$/;" i
+EvalHook mmseg\core\evaluation\__init__.py /^from .eval_hooks import DistEvalHook, EvalHook$/;" i
+__all__ mmseg\core\evaluation\__init__.py /^__all__ = [$/;" v
+eval_metrics mmseg\core\evaluation\__init__.py /^from .metrics import eval_metrics, mean_dice, mean_iou$/;" i
+get_classes mmseg\core\evaluation\__init__.py /^from .class_names import get_classes, get_palette$/;" i
+get_palette mmseg\core\evaluation\__init__.py /^from .class_names import get_classes, get_palette$/;" i
+mean_dice mmseg\core\evaluation\__init__.py /^from .metrics import eval_metrics, mean_dice, mean_iou$/;" i
+mean_iou mmseg\core\evaluation\__init__.py /^from .metrics import eval_metrics, mean_dice, mean_iou$/;" i
+ade_classes mmseg\core\evaluation\class_names.py /^def ade_classes():$/;" f
+ade_palette mmseg\core\evaluation\class_names.py /^def ade_palette():$/;" f
+cityscapes_classes mmseg\core\evaluation\class_names.py /^def cityscapes_classes():$/;" f
+cityscapes_palette mmseg\core\evaluation\class_names.py /^def cityscapes_palette():$/;" f
+dataset_aliases mmseg\core\evaluation\class_names.py /^dataset_aliases = {$/;" v
+get_classes mmseg\core\evaluation\class_names.py /^def get_classes(dataset):$/;" f
+get_palette mmseg\core\evaluation\class_names.py /^def get_palette(dataset):$/;" f
+mmcv mmseg\core\evaluation\class_names.py /^import mmcv$/;" i
+voc_classes mmseg\core\evaluation\class_names.py /^def voc_classes():$/;" f
+voc_palette mmseg\core\evaluation\class_names.py /^def voc_palette():$/;" f
+DataLoader mmseg\core\evaluation\eval_hooks.py /^from torch.utils.data import DataLoader$/;" i
+DistEvalHook mmseg\core\evaluation\eval_hooks.py /^class DistEvalHook(EvalHook):$/;" c
+EvalHook mmseg\core\evaluation\eval_hooks.py /^class EvalHook(Hook):$/;" c
+Hook mmseg\core\evaluation\eval_hooks.py /^from mmcv.runner import Hook$/;" i
+__init__ mmseg\core\evaluation\eval_hooks.py /^ def __init__(self, dataloader, interval=1, by_epoch=False, **eval_kwargs):$/;" m class:EvalHook
+__init__ mmseg\core\evaluation\eval_hooks.py /^ def __init__(self,$/;" m class:DistEvalHook
+after_train_epoch mmseg\core\evaluation\eval_hooks.py /^ def after_train_epoch(self, runner):$/;" m class:DistEvalHook
+after_train_epoch mmseg\core\evaluation\eval_hooks.py /^ def after_train_epoch(self, runner):$/;" m class:EvalHook
+after_train_iter mmseg\core\evaluation\eval_hooks.py /^ def after_train_iter(self, runner):$/;" m class:DistEvalHook
+after_train_iter mmseg\core\evaluation\eval_hooks.py /^ def after_train_iter(self, runner):$/;" m class:EvalHook
+evaluate mmseg\core\evaluation\eval_hooks.py /^ def evaluate(self, runner, results):$/;" m class:EvalHook
+multi_gpu_test mmseg\core\evaluation\eval_hooks.py /^ from mmseg.apis import multi_gpu_test$/;" i
+os mmseg\core\evaluation\eval_hooks.py /^import os.path as osp$/;" i
+osp mmseg\core\evaluation\eval_hooks.py /^import os.path as osp$/;" i
+single_gpu_test mmseg\core\evaluation\eval_hooks.py /^ from mmseg.apis import single_gpu_test$/;" i
+eval_metrics mmseg\core\evaluation\metrics.py /^def eval_metrics(results,$/;" f
+intersect_and_union mmseg\core\evaluation\metrics.py /^def intersect_and_union(pred_label,$/;" f
+mean_dice mmseg\core\evaluation\metrics.py /^def mean_dice(results,$/;" f
+mean_iou mmseg\core\evaluation\metrics.py /^def mean_iou(results,$/;" f
+mmcv mmseg\core\evaluation\metrics.py /^import mmcv$/;" i
+np mmseg\core\evaluation\metrics.py /^import numpy as np$/;" i
+total_intersect_and_union mmseg\core\evaluation\metrics.py /^def total_intersect_and_union(results,$/;" f
+BasePixelSampler mmseg\core\seg\__init__.py /^from .sampler import BasePixelSampler, OHEMPixelSampler$/;" i
+OHEMPixelSampler mmseg\core\seg\__init__.py /^from .sampler import BasePixelSampler, OHEMPixelSampler$/;" i
+__all__ mmseg\core\seg\__init__.py /^__all__ = ['build_pixel_sampler', 'BasePixelSampler', 'OHEMPixelSampler']$/;" v
+build_pixel_sampler mmseg\core\seg\__init__.py /^from .builder import build_pixel_sampler$/;" i
+PIXEL_SAMPLERS mmseg\core\seg\builder.py /^PIXEL_SAMPLERS = Registry('pixel sampler')$/;" v
+Registry mmseg\core\seg\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+build_from_cfg mmseg\core\seg\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+build_pixel_sampler mmseg\core\seg\builder.py /^def build_pixel_sampler(cfg, **default_args):$/;" f
+BasePixelSampler mmseg\core\seg\sampler\__init__.py /^from .base_pixel_sampler import BasePixelSampler$/;" i
+OHEMPixelSampler mmseg\core\seg\sampler\__init__.py /^from .ohem_pixel_sampler import OHEMPixelSampler$/;" i
+__all__ mmseg\core\seg\sampler\__init__.py /^__all__ = ['BasePixelSampler', 'OHEMPixelSampler']$/;" v
+ABCMeta mmseg\core\seg\sampler\base_pixel_sampler.py /^from abc import ABCMeta, abstractmethod$/;" i
+BasePixelSampler mmseg\core\seg\sampler\base_pixel_sampler.py /^class BasePixelSampler(metaclass=ABCMeta):$/;" c
+__init__ mmseg\core\seg\sampler\base_pixel_sampler.py /^ def __init__(self, **kwargs):$/;" m class:BasePixelSampler
+abstractmethod mmseg\core\seg\sampler\base_pixel_sampler.py /^from abc import ABCMeta, abstractmethod$/;" i
+sample mmseg\core\seg\sampler\base_pixel_sampler.py /^ def sample(self, seg_logit, seg_label):$/;" m class:BasePixelSampler
+BasePixelSampler mmseg\core\seg\sampler\ohem_pixel_sampler.py /^from .base_pixel_sampler import BasePixelSampler$/;" i
+F mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch.nn.functional as F$/;" i
+OHEMPixelSampler mmseg\core\seg\sampler\ohem_pixel_sampler.py /^class OHEMPixelSampler(BasePixelSampler):$/;" c
+PIXEL_SAMPLERS mmseg\core\seg\sampler\ohem_pixel_sampler.py /^from ..builder import PIXEL_SAMPLERS$/;" i
+__init__ mmseg\core\seg\sampler\ohem_pixel_sampler.py /^ def __init__(self, context, thresh=None, min_kept=100000):$/;" m class:OHEMPixelSampler
+nn mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch.nn.functional as F$/;" i
+sample mmseg\core\seg\sampler\ohem_pixel_sampler.py /^ def sample(self, seg_logit, seg_label):$/;" m class:OHEMPixelSampler
+torch mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch$/;" i
+torch mmseg\core\seg\sampler\ohem_pixel_sampler.py /^import torch.nn.functional as F$/;" i
+__all__ mmseg\core\utils\__init__.py /^__all__ = ['add_prefix']$/;" v
+add_prefix mmseg\core\utils\__init__.py /^from .misc import add_prefix$/;" i
+add_prefix mmseg\core\utils\misc.py /^def add_prefix(inputs, prefix):$/;" f
+ADE20KDataset mmseg\datasets\__init__.py /^from .ade import ADE20KDataset$/;" i
+ChaseDB1Dataset mmseg\datasets\__init__.py /^from .chase_db1 import ChaseDB1Dataset$/;" i
+CityscapesDataset mmseg\datasets\__init__.py /^from .cityscapes import CityscapesDataset$/;" i
+ConcatDataset mmseg\datasets\__init__.py /^from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+CustomDataset mmseg\datasets\__init__.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+DRIVEDataset mmseg\datasets\__init__.py /^from .drive import DRIVEDataset$/;" i
+HRFDataset mmseg\datasets\__init__.py /^from .hrf import HRFDataset$/;" i
+PIPELINES mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+PascalContextDataset mmseg\datasets\__init__.py /^from .pascal_context import PascalContextDataset$/;" i
+PascalVOCDataset mmseg\datasets\__init__.py /^from .voc import PascalVOCDataset$/;" i
+RepeatDataset mmseg\datasets\__init__.py /^from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+STAREDataset mmseg\datasets\__init__.py /^from .stare import STAREDataset$/;" i
+__all__ mmseg\datasets\__init__.py /^__all__ = [$/;" v
+build_dataloader mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+build_dataset mmseg\datasets\__init__.py /^from .builder import DATASETS, PIPELINES, build_dataloader, build_dataset$/;" i
+ADE20KDataset mmseg\datasets\ade.py /^class ADE20KDataset(CustomDataset):$/;" c
+CLASSES mmseg\datasets\ade.py /^ CLASSES = ($/;" v class:ADE20KDataset
+CustomDataset mmseg\datasets\ade.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\ade.py /^from .builder import DATASETS$/;" i
+PALETTE mmseg\datasets\ade.py /^ PALETTE = [[120, 120, 120], [180, 120, 120], [6, 230, 230], [80, 50, 50],$/;" v class:ADE20KDataset
+__init__ mmseg\datasets\ade.py /^ def __init__(self, **kwargs):$/;" m class:ADE20KDataset
+ConcatDataset mmseg\datasets\builder.py /^ from .dataset_wrappers import ConcatDataset$/;" i
+ConcatDataset mmseg\datasets\builder.py /^ from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+DATASETS mmseg\datasets\builder.py /^DATASETS = Registry('dataset')$/;" v
+DataLoader mmseg\datasets\builder.py /^from mmcv.utils.parrots_wrapper import DataLoader, PoolDataLoader$/;" i
+DistributedSampler mmseg\datasets\builder.py /^from torch.utils.data import DistributedSampler$/;" i
+PIPELINES mmseg\datasets\builder.py /^PIPELINES = Registry('pipeline')$/;" v
+PoolDataLoader mmseg\datasets\builder.py /^from mmcv.utils.parrots_wrapper import DataLoader, PoolDataLoader$/;" i
+Registry mmseg\datasets\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+RepeatDataset mmseg\datasets\builder.py /^ from .dataset_wrappers import ConcatDataset, RepeatDataset$/;" i
+_concat_dataset mmseg\datasets\builder.py /^def _concat_dataset(cfg, default_args=None):$/;" f
+build_dataloader mmseg\datasets\builder.py /^def build_dataloader(dataset,$/;" f
+build_dataset mmseg\datasets\builder.py /^def build_dataset(cfg, default_args=None):$/;" f
+build_from_cfg mmseg\datasets\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+collate mmseg\datasets\builder.py /^from mmcv.parallel import collate$/;" i
+copy mmseg\datasets\builder.py /^import copy$/;" i
+get_dist_info mmseg\datasets\builder.py /^from mmcv.runner import get_dist_info$/;" i
+hard_limit mmseg\datasets\builder.py /^ hard_limit = rlimit[1]$/;" v
+np mmseg\datasets\builder.py /^import numpy as np$/;" i
+partial mmseg\datasets\builder.py /^from functools import partial$/;" i
+platform mmseg\datasets\builder.py /^import platform$/;" i
+random mmseg\datasets\builder.py /^import random$/;" i
+resource mmseg\datasets\builder.py /^ import resource$/;" i
+rlimit mmseg\datasets\builder.py /^ rlimit = resource.getrlimit(resource.RLIMIT_NOFILE)$/;" v
+soft_limit mmseg\datasets\builder.py /^ soft_limit = min(4096, hard_limit)$/;" v
+worker_init_fn mmseg\datasets\builder.py /^def worker_init_fn(worker_id, num_workers, rank, seed):$/;" f
+CLASSES mmseg\datasets\chase_db1.py /^ CLASSES = ('background', 'vessel')$/;" v class:ChaseDB1Dataset
+ChaseDB1Dataset mmseg\datasets\chase_db1.py /^class ChaseDB1Dataset(CustomDataset):$/;" c
+CustomDataset mmseg\datasets\chase_db1.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\chase_db1.py /^from .builder import DATASETS$/;" i
+PALETTE mmseg\datasets\chase_db1.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:ChaseDB1Dataset
+__init__ mmseg\datasets\chase_db1.py /^ def __init__(self, **kwargs):$/;" m class:ChaseDB1Dataset
+os mmseg\datasets\chase_db1.py /^import os.path as osp$/;" i
+osp mmseg\datasets\chase_db1.py /^import os.path as osp$/;" i
+CLASSES mmseg\datasets\cityscapes.py /^ CLASSES = ('road', 'sidewalk', 'building', 'wall', 'fence', 'pole',$/;" v class:CityscapesDataset
+CSEval mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+CSLabels mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+CSLabels mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+CityscapesDataset mmseg\datasets\cityscapes.py /^class CityscapesDataset(CustomDataset):$/;" c
+CustomDataset mmseg\datasets\cityscapes.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\cityscapes.py /^from .builder import DATASETS$/;" i
+Image mmseg\datasets\cityscapes.py /^from PIL import Image$/;" i
+PALETTE mmseg\datasets\cityscapes.py /^ PALETTE = [[128, 64, 128], [244, 35, 232], [70, 70, 70], [102, 102, 156],$/;" v class:CityscapesDataset
+__init__ mmseg\datasets\cityscapes.py /^ def __init__(self, **kwargs):$/;" m class:CityscapesDataset
+_convert_to_label_id mmseg\datasets\cityscapes.py /^ def _convert_to_label_id(result):$/;" m class:CityscapesDataset
+_evaluate_cityscapes mmseg\datasets\cityscapes.py /^ def _evaluate_cityscapes(self, results, logger, imgfile_prefix):$/;" m class:CityscapesDataset
+cityscapesscripts mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+cityscapesscripts mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+cityscapesscripts mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+evaluate mmseg\datasets\cityscapes.py /^ def evaluate(self,$/;" m class:CityscapesDataset
+evaluation mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+format_results mmseg\datasets\cityscapes.py /^ def format_results(self, results, imgfile_prefix=None, to_label_id=True):$/;" m class:CityscapesDataset
+helpers mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+helpers mmseg\datasets\cityscapes.py /^ import cityscapesscripts.helpers.labels as CSLabels$/;" i
+mmcv mmseg\datasets\cityscapes.py /^import mmcv$/;" i
+noqa mmseg\datasets\cityscapes.py /^ import cityscapesscripts.evaluation.evalPixelLevelSemanticLabeling as CSEval # noqa$/;" i
+np mmseg\datasets\cityscapes.py /^import numpy as np$/;" i
+os mmseg\datasets\cityscapes.py /^import os.path as osp$/;" i
+osp mmseg\datasets\cityscapes.py /^import os.path as osp$/;" i
+print_log mmseg\datasets\cityscapes.py /^from mmcv.utils import print_log$/;" i
+results2img mmseg\datasets\cityscapes.py /^ def results2img(self, results, imgfile_prefix, to_label_id):$/;" m class:CityscapesDataset
+tempfile mmseg\datasets\cityscapes.py /^import tempfile$/;" i
+AsciiTable mmseg\datasets\custom.py /^from terminaltables import AsciiTable$/;" i
+CLASSES mmseg\datasets\custom.py /^ CLASSES = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,$/;" v class:CustomDataset
+Compose mmseg\datasets\custom.py /^from .pipelines import Compose$/;" i
+CustomDataset mmseg\datasets\custom.py /^class CustomDataset(Dataset):$/;" c
+DATASETS mmseg\datasets\custom.py /^from .builder import DATASETS$/;" i
+Dataset mmseg\datasets\custom.py /^from torch.utils.data import Dataset$/;" i
+PALETTE mmseg\datasets\custom.py /^ PALETTE = [[0, 0, 0], [40, 100, 150], [80, 150, 200], [120, 200, 10], [160, 10, 60],$/;" v class:CustomDataset
+__getitem__ mmseg\datasets\custom.py /^ def __getitem__(self, idx):$/;" m class:CustomDataset file:
+__init__ mmseg\datasets\custom.py /^ def __init__(self,$/;" m class:CustomDataset
+__len__ mmseg\datasets\custom.py /^ def __len__(self):$/;" m class:CustomDataset file:
+eval_metrics mmseg\datasets\custom.py /^from mmseg.core import eval_metrics$/;" i
+evaluate mmseg\datasets\custom.py /^ def evaluate(self,$/;" m class:CustomDataset
+format_results mmseg\datasets\custom.py /^ def format_results(self, results, **kwargs):$/;" m class:CustomDataset
+get_ann_info mmseg\datasets\custom.py /^ def get_ann_info(self, idx):$/;" m class:CustomDataset
+get_classes_and_palette mmseg\datasets\custom.py /^ def get_classes_and_palette(self, classes=None, palette=None):$/;" m class:CustomDataset
+get_gt_seg_maps mmseg\datasets\custom.py /^ def get_gt_seg_maps(self, efficient_test=False):$/;" m class:CustomDataset
+get_palette_for_custom_classes mmseg\datasets\custom.py /^ def get_palette_for_custom_classes(self, class_names, palette=None):$/;" m class:CustomDataset
+get_root_logger mmseg\datasets\custom.py /^from mmseg.utils import get_root_logger$/;" i
+load_annotations mmseg\datasets\custom.py /^ def load_annotations(self, img_dir, img_suffix, ann_dir, seg_map_suffix,$/;" m class:CustomDataset
+mmcv mmseg\datasets\custom.py /^import mmcv$/;" i
+np mmseg\datasets\custom.py /^import numpy as np$/;" i
+os mmseg\datasets\custom.py /^import os$/;" i
+os mmseg\datasets\custom.py /^import os.path as osp$/;" i
+osp mmseg\datasets\custom.py /^import os.path as osp$/;" i
+pre_pipeline mmseg\datasets\custom.py /^ def pre_pipeline(self, results):$/;" m class:CustomDataset
+prepare_test_img mmseg\datasets\custom.py /^ def prepare_test_img(self, idx):$/;" m class:CustomDataset
+prepare_train_img mmseg\datasets\custom.py /^ def prepare_train_img(self, idx):$/;" m class:CustomDataset
+print_log mmseg\datasets\custom.py /^from mmcv.utils import print_log$/;" i
+reduce mmseg\datasets\custom.py /^from functools import reduce$/;" i
+ConcatDataset mmseg\datasets\dataset_wrappers.py /^class ConcatDataset(_ConcatDataset):$/;" c
+DATASETS mmseg\datasets\dataset_wrappers.py /^from .builder import DATASETS$/;" i
+RepeatDataset mmseg\datasets\dataset_wrappers.py /^class RepeatDataset(object):$/;" c
+_ConcatDataset mmseg\datasets\dataset_wrappers.py /^from torch.utils.data.dataset import ConcatDataset as _ConcatDataset$/;" i
+__getitem__ mmseg\datasets\dataset_wrappers.py /^ def __getitem__(self, idx):$/;" m class:RepeatDataset file:
+__init__ mmseg\datasets\dataset_wrappers.py /^ def __init__(self, dataset, times):$/;" m class:RepeatDataset
+__init__ mmseg\datasets\dataset_wrappers.py /^ def __init__(self, datasets):$/;" m class:ConcatDataset
+__len__ mmseg\datasets\dataset_wrappers.py /^ def __len__(self):$/;" m class:RepeatDataset file:
+CLASSES mmseg\datasets\drive.py /^ CLASSES = ('background', 'vessel')$/;" v class:DRIVEDataset
+CustomDataset mmseg\datasets\drive.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\drive.py /^from .builder import DATASETS$/;" i
+DRIVEDataset mmseg\datasets\drive.py /^class DRIVEDataset(CustomDataset):$/;" c
+PALETTE mmseg\datasets\drive.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:DRIVEDataset
+__init__ mmseg\datasets\drive.py /^ def __init__(self, **kwargs):$/;" m class:DRIVEDataset
+os mmseg\datasets\drive.py /^import os.path as osp$/;" i
+osp mmseg\datasets\drive.py /^import os.path as osp$/;" i
+CLASSES mmseg\datasets\hrf.py /^ CLASSES = ('background', 'vessel')$/;" v class:HRFDataset
+CustomDataset mmseg\datasets\hrf.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\hrf.py /^from .builder import DATASETS$/;" i
+HRFDataset mmseg\datasets\hrf.py /^class HRFDataset(CustomDataset):$/;" c
+PALETTE mmseg\datasets\hrf.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:HRFDataset
+__init__ mmseg\datasets\hrf.py /^ def __init__(self, **kwargs):$/;" m class:HRFDataset
+os mmseg\datasets\hrf.py /^import os.path as osp$/;" i
+osp mmseg\datasets\hrf.py /^import os.path as osp$/;" i
+CLASSES mmseg\datasets\pascal_context.py /^ CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle',$/;" v class:PascalContextDataset
+CustomDataset mmseg\datasets\pascal_context.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\pascal_context.py /^from .builder import DATASETS$/;" i
+PALETTE mmseg\datasets\pascal_context.py /^ PALETTE = [[120, 120, 120], [180, 120, 120], [6, 230, 230], [80, 50, 50],$/;" v class:PascalContextDataset
+PascalContextDataset mmseg\datasets\pascal_context.py /^class PascalContextDataset(CustomDataset):$/;" c
+__init__ mmseg\datasets\pascal_context.py /^ def __init__(self, split, **kwargs):$/;" m class:PascalContextDataset
+os mmseg\datasets\pascal_context.py /^import os.path as osp$/;" i
+osp mmseg\datasets\pascal_context.py /^import os.path as osp$/;" i
+AdjustGamma mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+CLAHE mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+Collect mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+Compose mmseg\datasets\pipelines\__init__.py /^from .compose import Compose$/;" i
+ImageToTensor mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+LoadAnnotations mmseg\datasets\pipelines\__init__.py /^from .loading import LoadAnnotations, LoadImageFromFile$/;" i
+LoadImageFromFile mmseg\datasets\pipelines\__init__.py /^from .loading import LoadAnnotations, LoadImageFromFile$/;" i
+MultiScaleFlipAug mmseg\datasets\pipelines\__init__.py /^from .test_time_aug import MultiScaleFlipAug$/;" i
+Normalize mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+Pad mmseg\datasets\pipelines\__init__.py /^from .transforms import (CLAHE, AdjustGamma, Normalize, Pad,$/;" i
+ToDataContainer mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+ToTensor mmseg\datasets\pipelines\__init__.py /^from .formating import (Collect, ImageToTensor, ToDataContainer, ToTensor,$/;" i
+__all__ mmseg\datasets\pipelines\__init__.py /^__all__ = [$/;" v
+Compose mmseg\datasets\pipelines\compose.py /^class Compose(object):$/;" c
+PIPELINES mmseg\datasets\pipelines\compose.py /^from ..builder import PIPELINES$/;" i
+__call__ mmseg\datasets\pipelines\compose.py /^ def __call__(self, data):$/;" m class:Compose file:
+__init__ mmseg\datasets\pipelines\compose.py /^ def __init__(self, transforms):$/;" m class:Compose
+__repr__ mmseg\datasets\pipelines\compose.py /^ def __repr__(self):$/;" m class:Compose file:
+build_from_cfg mmseg\datasets\pipelines\compose.py /^from mmcv.utils import build_from_cfg$/;" i
+collections mmseg\datasets\pipelines\compose.py /^import collections$/;" i
+Collect mmseg\datasets\pipelines\formating.py /^class Collect(object):$/;" c
+DC mmseg\datasets\pipelines\formating.py /^from mmcv.parallel import DataContainer as DC$/;" i
+DefaultFormatBundle mmseg\datasets\pipelines\formating.py /^class DefaultFormatBundle(object):$/;" c
+ImageToTensor mmseg\datasets\pipelines\formating.py /^class ImageToTensor(object):$/;" c
+PIPELINES mmseg\datasets\pipelines\formating.py /^from ..builder import PIPELINES$/;" i
+Sequence mmseg\datasets\pipelines\formating.py /^from collections.abc import Sequence$/;" i
+ToDataContainer mmseg\datasets\pipelines\formating.py /^class ToDataContainer(object):$/;" c
+ToTensor mmseg\datasets\pipelines\formating.py /^class ToTensor(object):$/;" c
+Transpose mmseg\datasets\pipelines\formating.py /^class Transpose(object):$/;" c
+__call__ mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:Collect file:
+__call__ mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:DefaultFormatBundle file:
+__call__ mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:ImageToTensor file:
+__call__ mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:ToDataContainer file:
+__call__ mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:ToTensor file:
+__call__ mmseg\datasets\pipelines\formating.py /^ def __call__(self, results):$/;" m class:Transpose file:
+__init__ mmseg\datasets\pipelines\formating.py /^ def __init__(self, keys):$/;" m class:ImageToTensor
+__init__ mmseg\datasets\pipelines\formating.py /^ def __init__(self, keys):$/;" m class:ToTensor
+__init__ mmseg\datasets\pipelines\formating.py /^ def __init__(self, keys, order):$/;" m class:Transpose
+__init__ mmseg\datasets\pipelines\formating.py /^ def __init__(self,$/;" m class:Collect
+__init__ mmseg\datasets\pipelines\formating.py /^ def __init__(self,$/;" m class:ToDataContainer
+__repr__ mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:Collect file:
+__repr__ mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:DefaultFormatBundle file:
+__repr__ mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:ImageToTensor file:
+__repr__ mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:ToDataContainer file:
+__repr__ mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:ToTensor file:
+__repr__ mmseg\datasets\pipelines\formating.py /^ def __repr__(self):$/;" m class:Transpose file:
+mmcv mmseg\datasets\pipelines\formating.py /^import mmcv$/;" i
+np mmseg\datasets\pipelines\formating.py /^import numpy as np$/;" i
+to_tensor mmseg\datasets\pipelines\formating.py /^def to_tensor(data):$/;" f
+torch mmseg\datasets\pipelines\formating.py /^import torch$/;" i
+LoadAnnotations mmseg\datasets\pipelines\loading.py /^class LoadAnnotations(object):$/;" c
+LoadImageFromFile mmseg\datasets\pipelines\loading.py /^class LoadImageFromFile(object):$/;" c
+PIPELINES mmseg\datasets\pipelines\loading.py /^from ..builder import PIPELINES$/;" i
+__call__ mmseg\datasets\pipelines\loading.py /^ def __call__(self, results):$/;" m class:LoadAnnotations file:
+__call__ mmseg\datasets\pipelines\loading.py /^ def __call__(self, results):$/;" m class:LoadImageFromFile file:
+__init__ mmseg\datasets\pipelines\loading.py /^ def __init__(self,$/;" m class:LoadAnnotations
+__init__ mmseg\datasets\pipelines\loading.py /^ def __init__(self,$/;" m class:LoadImageFromFile
+__repr__ mmseg\datasets\pipelines\loading.py /^ def __repr__(self):$/;" m class:LoadAnnotations file:
+__repr__ mmseg\datasets\pipelines\loading.py /^ def __repr__(self):$/;" m class:LoadImageFromFile file:
+mmcv mmseg\datasets\pipelines\loading.py /^import mmcv$/;" i
+np mmseg\datasets\pipelines\loading.py /^import numpy as np$/;" i
+os mmseg\datasets\pipelines\loading.py /^import os.path as osp$/;" i
+osp mmseg\datasets\pipelines\loading.py /^import os.path as osp$/;" i
+Compose mmseg\datasets\pipelines\test_time_aug.py /^from .compose import Compose$/;" i
+MultiScaleFlipAug mmseg\datasets\pipelines\test_time_aug.py /^class MultiScaleFlipAug(object):$/;" c
+PIPELINES mmseg\datasets\pipelines\test_time_aug.py /^from ..builder import PIPELINES$/;" i
+__call__ mmseg\datasets\pipelines\test_time_aug.py /^ def __call__(self, results):$/;" m class:MultiScaleFlipAug file:
+__init__ mmseg\datasets\pipelines\test_time_aug.py /^ def __init__(self,$/;" m class:MultiScaleFlipAug
+__repr__ mmseg\datasets\pipelines\test_time_aug.py /^ def __repr__(self):$/;" m class:MultiScaleFlipAug file:
+mmcv mmseg\datasets\pipelines\test_time_aug.py /^import mmcv$/;" i
+warnings mmseg\datasets\pipelines\test_time_aug.py /^import warnings$/;" i
+AdjustGamma mmseg\datasets\pipelines\transforms.py /^class AdjustGamma(object):$/;" c
+CLAHE mmseg\datasets\pipelines\transforms.py /^class CLAHE(object):$/;" c
+Normalize mmseg\datasets\pipelines\transforms.py /^class Normalize(object):$/;" c
+PIPELINES mmseg\datasets\pipelines\transforms.py /^from ..builder import PIPELINES$/;" i
+Pad mmseg\datasets\pipelines\transforms.py /^class Pad(object):$/;" c
+PhotoMetricDistortion mmseg\datasets\pipelines\transforms.py /^class PhotoMetricDistortion(object):$/;" c
+RGB2Gray mmseg\datasets\pipelines\transforms.py /^class RGB2Gray(object):$/;" c
+RandomCrop mmseg\datasets\pipelines\transforms.py /^class RandomCrop(object):$/;" c
+RandomFlip mmseg\datasets\pipelines\transforms.py /^class RandomFlip(object):$/;" c
+RandomRotate mmseg\datasets\pipelines\transforms.py /^class RandomRotate(object):$/;" c
+Rerange mmseg\datasets\pipelines\transforms.py /^class Rerange(object):$/;" c
+Resize mmseg\datasets\pipelines\transforms.py /^class Resize(object):$/;" c
+SegRescale mmseg\datasets\pipelines\transforms.py /^class SegRescale(object):$/;" c
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:AdjustGamma file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:CLAHE file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Normalize file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Pad file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:PhotoMetricDistortion file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RGB2Gray file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RandomCrop file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RandomFlip file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:RandomRotate file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Rerange file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:Resize file:
+__call__ mmseg\datasets\pipelines\transforms.py /^ def __call__(self, results):$/;" m class:SegRescale file:
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, clip_limit=40.0, tile_grid_size=(8, 8)):$/;" m class:CLAHE
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, crop_size, cat_max_ratio=1., ignore_index=255):$/;" m class:RandomCrop
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, gamma=1.0):$/;" m class:AdjustGamma
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, mean, std, to_rgb=True):$/;" m class:Normalize
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, min_value=0, max_value=255):$/;" m class:Rerange
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, out_channels=None, weights=(0.299, 0.587, 0.114)):$/;" m class:RGB2Gray
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, prob=None, direction='horizontal'):$/;" m class:RandomFlip
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self, scale_factor=1):$/;" m class:SegRescale
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:Pad
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:PhotoMetricDistortion
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:RandomRotate
+__init__ mmseg\datasets\pipelines\transforms.py /^ def __init__(self,$/;" m class:Resize
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:AdjustGamma file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:CLAHE file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Normalize file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Pad file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:PhotoMetricDistortion file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RGB2Gray file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RandomCrop file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RandomFlip file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:RandomRotate file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Rerange file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:Resize file:
+__repr__ mmseg\datasets\pipelines\transforms.py /^ def __repr__(self):$/;" m class:SegRescale file:
+_pad_img mmseg\datasets\pipelines\transforms.py /^ def _pad_img(self, results):$/;" m class:Pad
+_pad_seg mmseg\datasets\pipelines\transforms.py /^ def _pad_seg(self, results):$/;" m class:Pad
+_random_scale mmseg\datasets\pipelines\transforms.py /^ def _random_scale(self, results):$/;" m class:Resize
+_resize_img mmseg\datasets\pipelines\transforms.py /^ def _resize_img(self, results):$/;" m class:Resize
+_resize_seg mmseg\datasets\pipelines\transforms.py /^ def _resize_seg(self, results):$/;" m class:Resize
+brightness mmseg\datasets\pipelines\transforms.py /^ def brightness(self, img):$/;" m class:PhotoMetricDistortion
+contrast mmseg\datasets\pipelines\transforms.py /^ def contrast(self, img):$/;" m class:PhotoMetricDistortion
+convert mmseg\datasets\pipelines\transforms.py /^ def convert(self, img, alpha=1, beta=0):$/;" m class:PhotoMetricDistortion
+crop mmseg\datasets\pipelines\transforms.py /^ def crop(self, img, crop_bbox):$/;" m class:RandomCrop
+deprecated_api_warning mmseg\datasets\pipelines\transforms.py /^from mmcv.utils import deprecated_api_warning, is_tuple_of$/;" i
+get_crop_bbox mmseg\datasets\pipelines\transforms.py /^ def get_crop_bbox(self, img):$/;" m class:RandomCrop
+hue mmseg\datasets\pipelines\transforms.py /^ def hue(self, img):$/;" m class:PhotoMetricDistortion
+is_tuple_of mmseg\datasets\pipelines\transforms.py /^from mmcv.utils import deprecated_api_warning, is_tuple_of$/;" i
+mmcv mmseg\datasets\pipelines\transforms.py /^import mmcv$/;" i
+np mmseg\datasets\pipelines\transforms.py /^import numpy as np$/;" i
+random mmseg\datasets\pipelines\transforms.py /^from numpy import random$/;" i
+random_sample mmseg\datasets\pipelines\transforms.py /^ def random_sample(img_scales):$/;" m class:Resize
+random_sample_ratio mmseg\datasets\pipelines\transforms.py /^ def random_sample_ratio(img_scale, ratio_range):$/;" m class:Resize
+random_select mmseg\datasets\pipelines\transforms.py /^ def random_select(img_scales):$/;" m class:Resize
+saturation mmseg\datasets\pipelines\transforms.py /^ def saturation(self, img):$/;" m class:PhotoMetricDistortion
+CLASSES mmseg\datasets\stare.py /^ CLASSES = ('background', 'vessel')$/;" v class:STAREDataset
+CustomDataset mmseg\datasets\stare.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\stare.py /^from .builder import DATASETS$/;" i
+PALETTE mmseg\datasets\stare.py /^ PALETTE = [[120, 120, 120], [6, 230, 230]]$/;" v class:STAREDataset
+STAREDataset mmseg\datasets\stare.py /^class STAREDataset(CustomDataset):$/;" c
+__init__ mmseg\datasets\stare.py /^ def __init__(self, **kwargs):$/;" m class:STAREDataset
+os mmseg\datasets\stare.py /^import os.path as osp$/;" i
+osp mmseg\datasets\stare.py /^import os.path as osp$/;" i
+CLASSES mmseg\datasets\voc.py /^ CLASSES = ('background', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle',$/;" v class:PascalVOCDataset
+CustomDataset mmseg\datasets\voc.py /^from .custom import CustomDataset$/;" i
+DATASETS mmseg\datasets\voc.py /^from .builder import DATASETS$/;" i
+PALETTE mmseg\datasets\voc.py /^ PALETTE = [[0, 0, 0], [128, 0, 0], [0, 128, 0], [128, 128, 0], [0, 0, 128],$/;" v class:PascalVOCDataset
+PascalVOCDataset mmseg\datasets\voc.py /^class PascalVOCDataset(CustomDataset):$/;" c
+__init__ mmseg\datasets\voc.py /^ def __init__(self, split, **kwargs):$/;" m class:PascalVOCDataset
+os mmseg\datasets\voc.py /^import os.path as osp$/;" i
+osp mmseg\datasets\voc.py /^import os.path as osp$/;" i
+BACKBONES mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+F401 mmseg\models\__init__.py /^from .backbones import * # noqa: F401,F403$/;" i
+F401 mmseg\models\__init__.py /^from .decode_heads import * # noqa: F401,F403$/;" i
+F401 mmseg\models\__init__.py /^from .losses import * # noqa: F401,F403$/;" i
+F401 mmseg\models\__init__.py /^from .necks import * # noqa: F401,F403$/;" i
+F401 mmseg\models\__init__.py /^from .segmentors import * # noqa: F401,F403$/;" i
+F403 mmseg\models\__init__.py /^from .backbones import * # noqa: F401,F403$/;" i
+F403 mmseg\models\__init__.py /^from .decode_heads import * # noqa: F401,F403$/;" i
+F403 mmseg\models\__init__.py /^from .losses import * # noqa: F401,F403$/;" i
+F403 mmseg\models\__init__.py /^from .necks import * # noqa: F401,F403$/;" i
+F403 mmseg\models\__init__.py /^from .segmentors import * # noqa: F401,F403$/;" i
+HEADS mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+LOSSES mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+SEGMENTORS mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+__all__ mmseg\models\__init__.py /^__all__ = [$/;" v
+build_backbone mmseg\models\__init__.py /^from .builder import (BACKBONES, HEADS, LOSSES, SEGMENTORS, build_backbone,$/;" i
+noqa mmseg\models\__init__.py /^from .backbones import * # noqa: F401,F403$/;" i
+noqa mmseg\models\__init__.py /^from .decode_heads import * # noqa: F401,F403$/;" i
+noqa mmseg\models\__init__.py /^from .losses import * # noqa: F401,F403$/;" i
+noqa mmseg\models\__init__.py /^from .necks import * # noqa: F401,F403$/;" i
+noqa mmseg\models\__init__.py /^from .segmentors import * # noqa: F401,F403$/;" i
+CGNet mmseg\models\backbones\__init__.py /^from .cgnet import CGNet$/;" i
+FastSCNN mmseg\models\backbones\__init__.py /^from .fast_scnn import FastSCNN$/;" i
+HRNet mmseg\models\backbones\__init__.py /^from .hrnet import HRNet$/;" i
+MobileNetV2 mmseg\models\backbones\__init__.py /^from .mobilenet_v2 import MobileNetV2$/;" i
+MobileNetV3 mmseg\models\backbones\__init__.py /^from .mobilenet_v3 import MobileNetV3$/;" i
+ResNeSt mmseg\models\backbones\__init__.py /^from .resnest import ResNeSt$/;" i
+ResNeXt mmseg\models\backbones\__init__.py /^from .resnext import ResNeXt$/;" i
+ResNet mmseg\models\backbones\__init__.py /^from .resnet import ResNet, ResNetV1c, ResNetV1d$/;" i
+ResNetV1c mmseg\models\backbones\__init__.py /^from .resnet import ResNet, ResNetV1c, ResNetV1d$/;" i
+ResNetV1d mmseg\models\backbones\__init__.py /^from .resnet import ResNet, ResNetV1c, ResNetV1d$/;" i
+UNet mmseg\models\backbones\__init__.py /^from .unet import UNet$/;" i
+VIT_MLA mmseg\models\backbones\__init__.py /^from .vit_mla import VIT_MLA$/;" i
+VisionTransformer mmseg\models\backbones\__init__.py /^from .vit import VisionTransformer$/;" i
+__all__ mmseg\models\backbones\__init__.py /^__all__ = [$/;" v
+pvt_small mmseg\models\backbones\__init__.py /^from .pvt import pvt_small, pvt_small_f4, pvt_tiny$/;" i
+pvt_small_dia mmseg\models\backbones\__init__.py /^from .pvt_dia import pvt_small_dia$/;" i
+pvt_small_f4 mmseg\models\backbones\__init__.py /^from .pvt import pvt_small, pvt_small_f4, pvt_tiny$/;" i
+pvt_tiny mmseg\models\backbones\__init__.py /^from .pvt import pvt_small, pvt_small_f4, pvt_tiny$/;" i
+BACKBONES mmseg\models\backbones\cgnet.py /^from ..builder import BACKBONES$/;" i
+CGNet mmseg\models\backbones\cgnet.py /^class CGNet(nn.Module):$/;" c
+ContextGuidedBlock mmseg\models\backbones\cgnet.py /^class ContextGuidedBlock(nn.Module):$/;" c
+ConvModule mmseg\models\backbones\cgnet.py /^from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer,$/;" i
+GlobalContextExtractor mmseg\models\backbones\cgnet.py /^class GlobalContextExtractor(nn.Module):$/;" c
+InputInjection mmseg\models\backbones\cgnet.py /^class InputInjection(nn.Module):$/;" c
+_BatchNorm mmseg\models\backbones\cgnet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\cgnet.py /^ def __init__(self, channel, reduction=16, with_cp=False):$/;" m class:GlobalContextExtractor
+__init__ mmseg\models\backbones\cgnet.py /^ def __init__(self, num_downsampling):$/;" m class:InputInjection
+__init__ mmseg\models\backbones\cgnet.py /^ def __init__(self,$/;" m class:CGNet
+__init__ mmseg\models\backbones\cgnet.py /^ def __init__(self,$/;" m class:ContextGuidedBlock
+_inner_forward mmseg\models\backbones\cgnet.py /^ def _inner_forward(x):$/;" f function:ContextGuidedBlock.forward
+_inner_forward mmseg\models\backbones\cgnet.py /^ def _inner_forward(x):$/;" f function:GlobalContextExtractor.forward
+build_conv_layer mmseg\models\backbones\cgnet.py /^from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer,$/;" i
+build_norm_layer mmseg\models\backbones\cgnet.py /^from mmcv.cnn import (ConvModule, build_conv_layer, build_norm_layer,$/;" i
+cp mmseg\models\backbones\cgnet.py /^import torch.utils.checkpoint as cp$/;" i
+forward mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:CGNet
+forward mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:ContextGuidedBlock
+forward mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:GlobalContextExtractor
+forward mmseg\models\backbones\cgnet.py /^ def forward(self, x):$/;" m class:InputInjection
+get_root_logger mmseg\models\backbones\cgnet.py /^from mmseg.utils import get_root_logger$/;" i
+init_weights mmseg\models\backbones\cgnet.py /^ def init_weights(self, pretrained=None):$/;" m class:CGNet
+load_checkpoint mmseg\models\backbones\cgnet.py /^from mmcv.runner import load_checkpoint$/;" i
+nn mmseg\models\backbones\cgnet.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\cgnet.py /^import torch$/;" i
+torch mmseg\models\backbones\cgnet.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\cgnet.py /^import torch.utils.checkpoint as cp$/;" i
+train mmseg\models\backbones\cgnet.py /^ def train(self, mode=True):$/;" m class:CGNet
+utils mmseg\models\backbones\cgnet.py /^import torch.utils.checkpoint as cp$/;" i
+BACKBONES mmseg\models\backbones\fast_scnn.py /^from ..builder import BACKBONES$/;" i
+ConvModule mmseg\models\backbones\fast_scnn.py /^from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init,$/;" i
+DepthwiseSeparableConvModule mmseg\models\backbones\fast_scnn.py /^from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init,$/;" i
+FastSCNN mmseg\models\backbones\fast_scnn.py /^class FastSCNN(nn.Module):$/;" c
+FeatureFusionModule mmseg\models\backbones\fast_scnn.py /^class FeatureFusionModule(nn.Module):$/;" c
+GlobalFeatureExtractor mmseg\models\backbones\fast_scnn.py /^class GlobalFeatureExtractor(nn.Module):$/;" c
+InvertedResidual mmseg\models\backbones\fast_scnn.py /^from ..utils.inverted_residual import InvertedResidual$/;" i
+LearningToDownsample mmseg\models\backbones\fast_scnn.py /^class LearningToDownsample(nn.Module):$/;" c
+PPM mmseg\models\backbones\fast_scnn.py /^from mmseg.models.decode_heads.psp_head import PPM$/;" i
+_BatchNorm mmseg\models\backbones\fast_scnn.py /^from torch.nn.modules.batchnorm import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:FastSCNN
+__init__ mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:FeatureFusionModule
+__init__ mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:GlobalFeatureExtractor
+__init__ mmseg\models\backbones\fast_scnn.py /^ def __init__(self,$/;" m class:LearningToDownsample
+_make_layer mmseg\models\backbones\fast_scnn.py /^ def _make_layer(self,$/;" m class:GlobalFeatureExtractor
+constant_init mmseg\models\backbones\fast_scnn.py /^from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, constant_init,$/;" i
+forward mmseg\models\backbones\fast_scnn.py /^ def forward(self, higher_res_feature, lower_res_feature):$/;" m class:FeatureFusionModule
+forward mmseg\models\backbones\fast_scnn.py /^ def forward(self, x):$/;" m class:FastSCNN
+forward mmseg\models\backbones\fast_scnn.py /^ def forward(self, x):$/;" m class:GlobalFeatureExtractor
+forward mmseg\models\backbones\fast_scnn.py /^ def forward(self, x):$/;" m class:LearningToDownsample
+init_weights mmseg\models\backbones\fast_scnn.py /^ def init_weights(self, pretrained=None):$/;" m class:FastSCNN
+nn mmseg\models\backbones\fast_scnn.py /^import torch.nn as nn$/;" i
+resize mmseg\models\backbones\fast_scnn.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\backbones\fast_scnn.py /^import torch$/;" i
+torch mmseg\models\backbones\fast_scnn.py /^import torch.nn as nn$/;" i
+F mmseg\models\backbones\helpers.py /^import torch.nn.functional as F$/;" i
+F401 mmseg\models\backbones\helpers.py /^from urllib.parse import urlparse # noqa: F401$/;" i
+HASH_REGEX mmseg\models\backbones\helpers.py /^HASH_REGEX = re.compile(r'-([a-f0-9]*)\\.')$/;" v
+_logger mmseg\models\backbones\helpers.py /^_logger = logging.getLogger(__name__)$/;" v
+errno mmseg\models\backbones\helpers.py /^import errno$/;" i
+load_pretrained mmseg\models\backbones\helpers.py /^def load_pretrained(model, cfg=None, num_classes=1000, in_chans=3, filter_fn=None, strict=True, pos_embed_interp=False, num_patches=576, align_corners=False):$/;" f
+load_state_dict_from_url mmseg\models\backbones\helpers.py /^def load_state_dict_from_url(url, model_dir=None, file_name=None, check_hash=False, progress=True, map_location=None):$/;" f
+logging mmseg\models\backbones\helpers.py /^import logging$/;" i
+math mmseg\models\backbones\helpers.py /^import math$/;" i
+model_zoo mmseg\models\backbones\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+nn mmseg\models\backbones\helpers.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\helpers.py /^import torch.nn.functional as F$/;" i
+noqa mmseg\models\backbones\helpers.py /^from urllib.parse import urlparse # noqa: F401$/;" i
+os mmseg\models\backbones\helpers.py /^import os$/;" i
+re mmseg\models\backbones\helpers.py /^import re$/;" i
+sys mmseg\models\backbones\helpers.py /^import sys$/;" i
+torch mmseg\models\backbones\helpers.py /^import torch$/;" i
+torch mmseg\models\backbones\helpers.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\helpers.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\backbones\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+urlparse mmseg\models\backbones\helpers.py /^from urllib.parse import urlparse # noqa: F401$/;" i
+utils mmseg\models\backbones\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+warnings mmseg\models\backbones\helpers.py /^import warnings$/;" i
+zipfile mmseg\models\backbones\helpers.py /^import zipfile$/;" i
+BACKBONES mmseg\models\backbones\hrnet.py /^from ..builder import BACKBONES$/;" i
+BasicBlock mmseg\models\backbones\hrnet.py /^from .resnet import BasicBlock, Bottleneck$/;" i
+Bottleneck mmseg\models\backbones\hrnet.py /^from .resnet import BasicBlock, Bottleneck$/;" i
+HRModule mmseg\models\backbones\hrnet.py /^class HRModule(nn.Module):$/;" c
+HRNet mmseg\models\backbones\hrnet.py /^class HRNet(nn.Module):$/;" c
+Upsample mmseg\models\backbones\hrnet.py /^from mmseg.ops import Upsample, resize$/;" i
+_BatchNorm mmseg\models\backbones\hrnet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\hrnet.py /^ def __init__(self,$/;" m class:HRModule
+__init__ mmseg\models\backbones\hrnet.py /^ def __init__(self,$/;" m class:HRNet
+_check_branches mmseg\models\backbones\hrnet.py /^ def _check_branches(self, num_branches, num_blocks, in_channels,$/;" m class:HRModule
+_make_branches mmseg\models\backbones\hrnet.py /^ def _make_branches(self, num_branches, block, num_blocks, num_channels):$/;" m class:HRModule
+_make_fuse_layers mmseg\models\backbones\hrnet.py /^ def _make_fuse_layers(self):$/;" m class:HRModule
+_make_layer mmseg\models\backbones\hrnet.py /^ def _make_layer(self, block, inplanes, planes, blocks, stride=1):$/;" m class:HRNet
+_make_one_branch mmseg\models\backbones\hrnet.py /^ def _make_one_branch(self,$/;" m class:HRModule
+_make_stage mmseg\models\backbones\hrnet.py /^ def _make_stage(self, layer_config, in_channels, multiscale_output=True):$/;" m class:HRNet
+_make_transition_layer mmseg\models\backbones\hrnet.py /^ def _make_transition_layer(self, num_channels_pre_layer,$/;" m class:HRNet
+blocks_dict mmseg\models\backbones\hrnet.py /^ blocks_dict = {'BASIC': BasicBlock, 'BOTTLENECK': Bottleneck}$/;" v class:HRNet
+build_conv_layer mmseg\models\backbones\hrnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init,$/;" i
+build_norm_layer mmseg\models\backbones\hrnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init,$/;" i
+constant_init mmseg\models\backbones\hrnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init,$/;" i
+forward mmseg\models\backbones\hrnet.py /^ def forward(self, x):$/;" m class:HRModule
+forward mmseg\models\backbones\hrnet.py /^ def forward(self, x):$/;" m class:HRNet
+get_root_logger mmseg\models\backbones\hrnet.py /^from mmseg.utils import get_root_logger$/;" i
+init_weights mmseg\models\backbones\hrnet.py /^ def init_weights(self, pretrained=None):$/;" m class:HRNet
+load_checkpoint mmseg\models\backbones\hrnet.py /^from mmcv.runner import load_checkpoint$/;" i
+nn mmseg\models\backbones\hrnet.py /^import torch.nn as nn$/;" i
+norm1 mmseg\models\backbones\hrnet.py /^ def norm1(self):$/;" m class:HRNet
+norm2 mmseg\models\backbones\hrnet.py /^ def norm2(self):$/;" m class:HRNet
+resize mmseg\models\backbones\hrnet.py /^from mmseg.ops import Upsample, resize$/;" i
+torch mmseg\models\backbones\hrnet.py /^import torch.nn as nn$/;" i
+train mmseg\models\backbones\hrnet.py /^ def train(self, mode=True):$/;" m class:HRNet
+DropBlock2d mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+DropPath mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_block_2d mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_path mmseg\models\backbones\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+to_2tuple mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_3tuple mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_4tuple mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_ntuple mmseg\models\backbones\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+trunc_normal_ mmseg\models\backbones\layers\__init__.py /^from .weight_init import trunc_normal_/;" i
+DropBlock2d mmseg\models\backbones\layers\drop.py /^class DropBlock2d(nn.Module):$/;" c
+DropPath mmseg\models\backbones\layers\drop.py /^class DropPath(nn.Module):$/;" c
+F mmseg\models\backbones\layers\drop.py /^import torch.nn.functional as F$/;" i
+__init__ mmseg\models\backbones\layers\drop.py /^ def __init__(self, drop_prob=None):$/;" m class:DropPath
+__init__ mmseg\models\backbones\layers\drop.py /^ def __init__(self,$/;" m class:DropBlock2d
+drop_block_2d mmseg\models\backbones\layers\drop.py /^def drop_block_2d($/;" f
+drop_block_fast_2d mmseg\models\backbones\layers\drop.py /^def drop_block_fast_2d($/;" f
+drop_path mmseg\models\backbones\layers\drop.py /^def drop_path(x, drop_prob: float = 0., training: bool = False):$/;" f
+forward mmseg\models\backbones\layers\drop.py /^ def forward(self, x):$/;" m class:DropBlock2d
+forward mmseg\models\backbones\layers\drop.py /^ def forward(self, x):$/;" m class:DropPath
+nn mmseg\models\backbones\layers\drop.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\layers\drop.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\backbones\layers\drop.py /^import torch$/;" i
+torch mmseg\models\backbones\layers\drop.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\layers\drop.py /^import torch.nn.functional as F$/;" i
+_ntuple mmseg\models\backbones\layers\helpers.py /^def _ntuple(n):$/;" f
+container_abcs mmseg\models\backbones\layers\helpers.py /^from torch._six import container_abcs$/;" i
+parse mmseg\models\backbones\layers\helpers.py /^ def parse(x):$/;" f function:_ntuple
+repeat mmseg\models\backbones\layers\helpers.py /^from itertools import repeat$/;" i
+to_1tuple mmseg\models\backbones\layers\helpers.py /^to_1tuple = _ntuple(1)$/;" v
+to_2tuple mmseg\models\backbones\layers\helpers.py /^to_2tuple = _ntuple(2)$/;" v
+to_3tuple mmseg\models\backbones\layers\helpers.py /^to_3tuple = _ntuple(3)$/;" v
+to_4tuple mmseg\models\backbones\layers\helpers.py /^to_4tuple = _ntuple(4)$/;" v
+to_ntuple mmseg\models\backbones\layers\helpers.py /^to_ntuple = _ntuple$/;" v
+_no_grad_trunc_normal_ mmseg\models\backbones\layers\weight_init.py /^def _no_grad_trunc_normal_(tensor, mean, std, a, b):$/;" f
+math mmseg\models\backbones\layers\weight_init.py /^import math$/;" i
+norm_cdf mmseg\models\backbones\layers\weight_init.py /^ def norm_cdf(x):$/;" f function:_no_grad_trunc_normal_
+torch mmseg\models\backbones\layers\weight_init.py /^import torch$/;" i
+trunc_normal_ mmseg\models\backbones\layers\weight_init.py /^def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):$/;" f
+warnings mmseg\models\backbones\layers\weight_init.py /^import warnings$/;" i
+BACKBONES mmseg\models\backbones\mobilenet_v2.py /^from ..builder import BACKBONES$/;" i
+ConvModule mmseg\models\backbones\mobilenet_v2.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+InvertedResidual mmseg\models\backbones\mobilenet_v2.py /^from ..utils import InvertedResidual, make_divisible$/;" i
+MobileNetV2 mmseg\models\backbones\mobilenet_v2.py /^class MobileNetV2(nn.Module):$/;" c
+_BatchNorm mmseg\models\backbones\mobilenet_v2.py /^from torch.nn.modules.batchnorm import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\mobilenet_v2.py /^ def __init__(self,$/;" m class:MobileNetV2
+_freeze_stages mmseg\models\backbones\mobilenet_v2.py /^ def _freeze_stages(self):$/;" m class:MobileNetV2
+arch_settings mmseg\models\backbones\mobilenet_v2.py /^ arch_settings = [[1, 16, 1], [6, 24, 2], [6, 32, 3], [6, 64, 4],$/;" v class:MobileNetV2
+constant_init mmseg\models\backbones\mobilenet_v2.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+forward mmseg\models\backbones\mobilenet_v2.py /^ def forward(self, x):$/;" m class:MobileNetV2
+init_weights mmseg\models\backbones\mobilenet_v2.py /^ def init_weights(self, pretrained=None):$/;" m class:MobileNetV2
+kaiming_init mmseg\models\backbones\mobilenet_v2.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+load_checkpoint mmseg\models\backbones\mobilenet_v2.py /^from mmcv.runner import load_checkpoint$/;" i
+logging mmseg\models\backbones\mobilenet_v2.py /^import logging$/;" i
+make_divisible mmseg\models\backbones\mobilenet_v2.py /^from ..utils import InvertedResidual, make_divisible$/;" i
+make_layer mmseg\models\backbones\mobilenet_v2.py /^ def make_layer(self, out_channels, num_blocks, stride, dilation,$/;" m class:MobileNetV2
+nn mmseg\models\backbones\mobilenet_v2.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\mobilenet_v2.py /^import torch.nn as nn$/;" i
+train mmseg\models\backbones\mobilenet_v2.py /^ def train(self, mode=True):$/;" m class:MobileNetV2
+BACKBONES mmseg\models\backbones\mobilenet_v3.py /^from ..builder import BACKBONES$/;" i
+Conv2dAdaptivePadding mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn.bricks import Conv2dAdaptivePadding$/;" i
+ConvModule mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+InvertedResidual mmseg\models\backbones\mobilenet_v3.py /^from ..utils import InvertedResidualV3 as InvertedResidual$/;" i
+MobileNetV3 mmseg\models\backbones\mobilenet_v3.py /^class MobileNetV3(nn.Module):$/;" c
+_BatchNorm mmseg\models\backbones\mobilenet_v3.py /^from torch.nn.modules.batchnorm import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\mobilenet_v3.py /^ def __init__(self,$/;" m class:MobileNetV3
+_freeze_stages mmseg\models\backbones\mobilenet_v3.py /^ def _freeze_stages(self):$/;" m class:MobileNetV3
+_make_layer mmseg\models\backbones\mobilenet_v3.py /^ def _make_layer(self):$/;" m class:MobileNetV3
+arch_settings mmseg\models\backbones\mobilenet_v3.py /^ arch_settings = {$/;" v class:MobileNetV3
+constant_init mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+forward mmseg\models\backbones\mobilenet_v3.py /^ def forward(self, x):$/;" m class:MobileNetV3
+init_weights mmseg\models\backbones\mobilenet_v3.py /^ def init_weights(self, pretrained=None):$/;" m class:MobileNetV3
+kaiming_init mmseg\models\backbones\mobilenet_v3.py /^from mmcv.cnn import ConvModule, constant_init, kaiming_init$/;" i
+load_checkpoint mmseg\models\backbones\mobilenet_v3.py /^from mmcv.runner import load_checkpoint$/;" i
+logging mmseg\models\backbones\mobilenet_v3.py /^import logging$/;" i
+mmcv mmseg\models\backbones\mobilenet_v3.py /^import mmcv$/;" i
+nn mmseg\models\backbones\mobilenet_v3.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\mobilenet_v3.py /^import torch.nn as nn$/;" i
+train mmseg\models\backbones\mobilenet_v3.py /^ def train(self, mode=True):$/;" m class:MobileNetV3
+Attention mmseg\models\backbones\pvt.py /^class Attention(nn.Module):$/;" c
+BACKBONES mmseg\models\backbones\pvt.py /^from ..builder import BACKBONES$/;" i
+Block mmseg\models\backbones\pvt.py /^class Block(nn.Module):$/;" c
+DropPath mmseg\models\backbones\pvt.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\backbones\pvt.py /^import torch.nn.functional as F$/;" i
+Mlp mmseg\models\backbones\pvt.py /^class Mlp(nn.Module):$/;" c
+PatchEmbed mmseg\models\backbones\pvt.py /^class PatchEmbed(nn.Module):$/;" c
+PyramidVisionTransformer mmseg\models\backbones\pvt.py /^class PyramidVisionTransformer(nn.Module):$/;" c
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_large
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_small
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_small_f4
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, **kwargs):$/;" m class:pvt_tiny
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1):$/;" m class:Attention
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):$/;" m class:PatchEmbed
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classes=1000, embed_dims=[64, 128, 256, 512],$/;" m class:PyramidVisionTransformer
+__init__ mmseg\models\backbones\pvt.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+_cfg mmseg\models\backbones\pvt.py /^from timm.models.vision_transformer import _cfg$/;" i
+_conv_filter mmseg\models\backbones\pvt.py /^def _conv_filter(state_dict, patch_size=16):$/;" f
+_get_pos_embed mmseg\models\backbones\pvt.py /^ def _get_pos_embed(self, pos_embed, patch_embed, H, W):$/;" m class:PyramidVisionTransformer
+_init_weights mmseg\models\backbones\pvt.py /^ def _init_weights(self, m):$/;" m class:PyramidVisionTransformer
+forward mmseg\models\backbones\pvt.py /^ def forward(self, x):$/;" m class:Mlp
+forward mmseg\models\backbones\pvt.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward mmseg\models\backbones\pvt.py /^ def forward(self, x):$/;" m class:PyramidVisionTransformer
+forward mmseg\models\backbones\pvt.py /^ def forward(self, x, H, W):$/;" m class:Attention
+forward mmseg\models\backbones\pvt.py /^ def forward(self, x, H, W):$/;" m class:Block
+forward_features mmseg\models\backbones\pvt.py /^ def forward_features(self, x):$/;" m class:PyramidVisionTransformer
+get_root_logger mmseg\models\backbones\pvt.py /^from mmseg.utils import get_root_logger$/;" i
+init_weights mmseg\models\backbones\pvt.py /^ def init_weights(self, pretrained=None):$/;" m class:PyramidVisionTransformer
+load_checkpoint mmseg\models\backbones\pvt.py /^from mmcv.runner import load_checkpoint$/;" i
+nn mmseg\models\backbones\pvt.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\pvt.py /^import torch.nn.functional as F$/;" i
+partial mmseg\models\backbones\pvt.py /^from functools import partial$/;" i
+pvt_large mmseg\models\backbones\pvt.py /^class pvt_large(PyramidVisionTransformer):$/;" c
+pvt_small mmseg\models\backbones\pvt.py /^class pvt_small(PyramidVisionTransformer):$/;" c
+pvt_small_f4 mmseg\models\backbones\pvt.py /^class pvt_small_f4(PyramidVisionTransformer):$/;" c
+pvt_tiny mmseg\models\backbones\pvt.py /^class pvt_tiny(PyramidVisionTransformer):$/;" c
+register_model mmseg\models\backbones\pvt.py /^from timm.models.registry import register_model$/;" i
+reset_drop_path mmseg\models\backbones\pvt.py /^ def reset_drop_path(self, drop_path_rate):$/;" m class:PyramidVisionTransformer
+to_2tuple mmseg\models\backbones\pvt.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\backbones\pvt.py /^import torch$/;" i
+torch mmseg\models\backbones\pvt.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\pvt.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\backbones\pvt.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+Attention mmseg\models\backbones\pvt_dia.py /^class Attention(nn.Module):$/;" c
+BACKBONES mmseg\models\backbones\pvt_dia.py /^from ..builder import BACKBONES$/;" i
+Block mmseg\models\backbones\pvt_dia.py /^class Block(nn.Module):$/;" c
+DropPath mmseg\models\backbones\pvt_dia.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\backbones\pvt_dia.py /^import torch.nn.functional as F$/;" i
+Mlp mmseg\models\backbones\pvt_dia.py /^class Mlp(nn.Module):$/;" c
+PatchEmbed mmseg\models\backbones\pvt_dia.py /^class PatchEmbed(nn.Module):$/;" c
+PyramidVisionTransformer mmseg\models\backbones\pvt_dia.py /^class PyramidVisionTransformer(nn.Module):$/;" c
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, **kwargs):$/;" m class:pvt_small_dia
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, **kwargs):$/;" m class:pvt_tiny_dia
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1):$/;" m class:Attention
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768, dilation=1):$/;" m class:PatchEmbed
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classes=1000, embed_dims=[64, 128, 256, 512],$/;" m class:PyramidVisionTransformer
+__init__ mmseg\models\backbones\pvt_dia.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+_cfg mmseg\models\backbones\pvt_dia.py /^from timm.models.vision_transformer import _cfg$/;" i
+_conv_filter mmseg\models\backbones\pvt_dia.py /^def _conv_filter(state_dict, patch_size=16):$/;" f
+_get_pos_embed mmseg\models\backbones\pvt_dia.py /^ def _get_pos_embed(self, pos_embed, patch_embed, H, W):$/;" m class:PyramidVisionTransformer
+_init_weights mmseg\models\backbones\pvt_dia.py /^ def _init_weights(self, m):$/;" m class:PyramidVisionTransformer
+forward mmseg\models\backbones\pvt_dia.py /^ def forward(self, x):$/;" m class:Mlp
+forward mmseg\models\backbones\pvt_dia.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward mmseg\models\backbones\pvt_dia.py /^ def forward(self, x):$/;" m class:PyramidVisionTransformer
+forward mmseg\models\backbones\pvt_dia.py /^ def forward(self, x, H, W):$/;" m class:Attention
+forward mmseg\models\backbones\pvt_dia.py /^ def forward(self, x, H, W):$/;" m class:Block
+forward_features mmseg\models\backbones\pvt_dia.py /^ def forward_features(self, x):$/;" m class:PyramidVisionTransformer
+get_root_logger mmseg\models\backbones\pvt_dia.py /^from mmseg.utils import get_root_logger$/;" i
+init_weights mmseg\models\backbones\pvt_dia.py /^ def init_weights(self, pretrained=None):$/;" m class:PyramidVisionTransformer
+load_checkpoint mmseg\models\backbones\pvt_dia.py /^from mmcv.runner import load_checkpoint$/;" i
+nn mmseg\models\backbones\pvt_dia.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\pvt_dia.py /^import torch.nn.functional as F$/;" i
+partial mmseg\models\backbones\pvt_dia.py /^from functools import partial$/;" i
+pvt_small_dia mmseg\models\backbones\pvt_dia.py /^class pvt_small_dia(PyramidVisionTransformer):$/;" c
+pvt_tiny_dia mmseg\models\backbones\pvt_dia.py /^class pvt_tiny_dia(PyramidVisionTransformer):$/;" c
+register_model mmseg\models\backbones\pvt_dia.py /^from timm.models.registry import register_model$/;" i
+reset_drop_path mmseg\models\backbones\pvt_dia.py /^ def reset_drop_path(self, drop_path_rate):$/;" m class:PyramidVisionTransformer
+to_2tuple mmseg\models\backbones\pvt_dia.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\backbones\pvt_dia.py /^import torch$/;" i
+torch mmseg\models\backbones\pvt_dia.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\pvt_dia.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\backbones\pvt_dia.py /^from timm.models.layers import DropPath, to_2tuple, trunc_normal_$/;" i
+BACKBONES mmseg\models\backbones\resnest.py /^from ..builder import BACKBONES$/;" i
+Bottleneck mmseg\models\backbones\resnest.py /^class Bottleneck(_Bottleneck):$/;" c
+F mmseg\models\backbones\resnest.py /^import torch.nn.functional as F$/;" i
+RSoftmax mmseg\models\backbones\resnest.py /^class RSoftmax(nn.Module):$/;" c
+ResLayer mmseg\models\backbones\resnest.py /^from ..utils import ResLayer$/;" i
+ResNeSt mmseg\models\backbones\resnest.py /^class ResNeSt(ResNetV1d):$/;" c
+ResNetV1d mmseg\models\backbones\resnest.py /^from .resnet import ResNetV1d$/;" i
+SplitAttentionConv2d mmseg\models\backbones\resnest.py /^class SplitAttentionConv2d(nn.Module):$/;" c
+_Bottleneck mmseg\models\backbones\resnest.py /^from .resnet import Bottleneck as _Bottleneck$/;" i
+__init__ mmseg\models\backbones\resnest.py /^ def __init__(self, radix, groups):$/;" m class:RSoftmax
+__init__ mmseg\models\backbones\resnest.py /^ def __init__(self,$/;" m class:Bottleneck
+__init__ mmseg\models\backbones\resnest.py /^ def __init__(self,$/;" m class:ResNeSt
+__init__ mmseg\models\backbones\resnest.py /^ def __init__(self,$/;" m class:SplitAttentionConv2d
+_inner_forward mmseg\models\backbones\resnest.py /^ def _inner_forward(x):$/;" f function:Bottleneck.forward
+arch_settings mmseg\models\backbones\resnest.py /^ arch_settings = {$/;" v class:ResNeSt
+build_conv_layer mmseg\models\backbones\resnest.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_norm_layer mmseg\models\backbones\resnest.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+cp mmseg\models\backbones\resnest.py /^import torch.utils.checkpoint as cp$/;" i
+expansion mmseg\models\backbones\resnest.py /^ expansion = 4$/;" v class:Bottleneck
+forward mmseg\models\backbones\resnest.py /^ def forward(self, x):$/;" m class:Bottleneck
+forward mmseg\models\backbones\resnest.py /^ def forward(self, x):$/;" m class:RSoftmax
+forward mmseg\models\backbones\resnest.py /^ def forward(self, x):$/;" m class:SplitAttentionConv2d
+make_res_layer mmseg\models\backbones\resnest.py /^ def make_res_layer(self, **kwargs):$/;" m class:ResNeSt
+math mmseg\models\backbones\resnest.py /^import math$/;" i
+nn mmseg\models\backbones\resnest.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\resnest.py /^import torch.nn.functional as F$/;" i
+norm0 mmseg\models\backbones\resnest.py /^ def norm0(self):$/;" m class:SplitAttentionConv2d
+norm1 mmseg\models\backbones\resnest.py /^ def norm1(self):$/;" m class:SplitAttentionConv2d
+torch mmseg\models\backbones\resnest.py /^import torch$/;" i
+torch mmseg\models\backbones\resnest.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\resnest.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\backbones\resnest.py /^import torch.utils.checkpoint as cp$/;" i
+utils mmseg\models\backbones\resnest.py /^import torch.utils.checkpoint as cp$/;" i
+BACKBONES mmseg\models\backbones\resnet.py /^from ..builder import BACKBONES$/;" i
+BasicBlock mmseg\models\backbones\resnet.py /^class BasicBlock(nn.Module):$/;" c
+Bottleneck mmseg\models\backbones\resnet.py /^class Bottleneck(nn.Module):$/;" c
+ResLayer mmseg\models\backbones\resnet.py /^from ..utils import ResLayer$/;" i
+ResNet mmseg\models\backbones\resnet.py /^class ResNet(nn.Module):$/;" c
+ResNetV1c mmseg\models\backbones\resnet.py /^class ResNetV1c(ResNet):$/;" c
+ResNetV1d mmseg\models\backbones\resnet.py /^class ResNetV1d(ResNet):$/;" c
+_BatchNorm mmseg\models\backbones\resnet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\resnet.py /^ def __init__(self, **kwargs):$/;" m class:ResNetV1c
+__init__ mmseg\models\backbones\resnet.py /^ def __init__(self, **kwargs):$/;" m class:ResNetV1d
+__init__ mmseg\models\backbones\resnet.py /^ def __init__(self,$/;" m class:BasicBlock
+__init__ mmseg\models\backbones\resnet.py /^ def __init__(self,$/;" m class:Bottleneck
+__init__ mmseg\models\backbones\resnet.py /^ def __init__(self,$/;" m class:ResNet
+_freeze_stages mmseg\models\backbones\resnet.py /^ def _freeze_stages(self):$/;" m class:ResNet
+_inner_forward mmseg\models\backbones\resnet.py /^ def _inner_forward(x):$/;" f function:BasicBlock.forward
+_inner_forward mmseg\models\backbones\resnet.py /^ def _inner_forward(x):$/;" f function:Bottleneck.forward
+_make_stem_layer mmseg\models\backbones\resnet.py /^ def _make_stem_layer(self, in_channels, stem_channels):$/;" m class:ResNet
+arch_settings mmseg\models\backbones\resnet.py /^ arch_settings = {$/;" v class:ResNet
+build_conv_layer mmseg\models\backbones\resnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer,$/;" i
+build_norm_layer mmseg\models\backbones\resnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer,$/;" i
+build_plugin_layer mmseg\models\backbones\resnet.py /^from mmcv.cnn import (build_conv_layer, build_norm_layer, build_plugin_layer,$/;" i
+cp mmseg\models\backbones\resnet.py /^import torch.utils.checkpoint as cp$/;" i
+expansion mmseg\models\backbones\resnet.py /^ expansion = 1$/;" v class:BasicBlock
+expansion mmseg\models\backbones\resnet.py /^ expansion = 4$/;" v class:Bottleneck
+forward mmseg\models\backbones\resnet.py /^ def forward(self, x):$/;" m class:BasicBlock
+forward mmseg\models\backbones\resnet.py /^ def forward(self, x):$/;" m class:Bottleneck
+forward mmseg\models\backbones\resnet.py /^ def forward(self, x):$/;" m class:ResNet
+forward_plugin mmseg\models\backbones\resnet.py /^ def forward_plugin(self, x, plugin_names):$/;" m class:Bottleneck
+get_root_logger mmseg\models\backbones\resnet.py /^from mmseg.utils import get_root_logger$/;" i
+init_weights mmseg\models\backbones\resnet.py /^ def init_weights(self, pretrained=None):$/;" m class:ResNet
+load_checkpoint mmseg\models\backbones\resnet.py /^from mmcv.runner import load_checkpoint$/;" i
+make_block_plugins mmseg\models\backbones\resnet.py /^ def make_block_plugins(self, in_channels, plugins):$/;" m class:Bottleneck
+make_res_layer mmseg\models\backbones\resnet.py /^ def make_res_layer(self, **kwargs):$/;" m class:ResNet
+make_stage_plugins mmseg\models\backbones\resnet.py /^ def make_stage_plugins(self, plugins, stage_idx):$/;" m class:ResNet
+nn mmseg\models\backbones\resnet.py /^import torch.nn as nn$/;" i
+norm1 mmseg\models\backbones\resnet.py /^ def norm1(self):$/;" m class:BasicBlock
+norm1 mmseg\models\backbones\resnet.py /^ def norm1(self):$/;" m class:Bottleneck
+norm1 mmseg\models\backbones\resnet.py /^ def norm1(self):$/;" m class:ResNet
+norm2 mmseg\models\backbones\resnet.py /^ def norm2(self):$/;" m class:BasicBlock
+norm2 mmseg\models\backbones\resnet.py /^ def norm2(self):$/;" m class:Bottleneck
+norm3 mmseg\models\backbones\resnet.py /^ def norm3(self):$/;" m class:Bottleneck
+torch mmseg\models\backbones\resnet.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\resnet.py /^import torch.utils.checkpoint as cp$/;" i
+train mmseg\models\backbones\resnet.py /^ def train(self, mode=True):$/;" m class:ResNet
+utils mmseg\models\backbones\resnet.py /^import torch.utils.checkpoint as cp$/;" i
+BACKBONES mmseg\models\backbones\resnext.py /^from ..builder import BACKBONES$/;" i
+Bottleneck mmseg\models\backbones\resnext.py /^class Bottleneck(_Bottleneck):$/;" c
+ResLayer mmseg\models\backbones\resnext.py /^from ..utils import ResLayer$/;" i
+ResNeXt mmseg\models\backbones\resnext.py /^class ResNeXt(ResNet):$/;" c
+ResNet mmseg\models\backbones\resnext.py /^from .resnet import ResNet$/;" i
+_Bottleneck mmseg\models\backbones\resnext.py /^from .resnet import Bottleneck as _Bottleneck$/;" i
+__init__ mmseg\models\backbones\resnext.py /^ def __init__(self, groups=1, base_width=4, **kwargs):$/;" m class:ResNeXt
+__init__ mmseg\models\backbones\resnext.py /^ def __init__(self,$/;" m class:Bottleneck
+arch_settings mmseg\models\backbones\resnext.py /^ arch_settings = {$/;" v class:ResNeXt
+build_conv_layer mmseg\models\backbones\resnext.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_norm_layer mmseg\models\backbones\resnext.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+make_res_layer mmseg\models\backbones\resnext.py /^ def make_res_layer(self, **kwargs):$/;" m class:ResNeXt
+math mmseg\models\backbones\resnext.py /^import math$/;" i
+BACKBONES mmseg\models\backbones\unet.py /^from ..builder import BACKBONES$/;" i
+BasicConvBlock mmseg\models\backbones\unet.py /^class BasicConvBlock(nn.Module):$/;" c
+ConvModule mmseg\models\backbones\unet.py /^from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,$/;" i
+DeconvModule mmseg\models\backbones\unet.py /^class DeconvModule(nn.Module):$/;" c
+InterpConv mmseg\models\backbones\unet.py /^class InterpConv(nn.Module):$/;" c
+UNet mmseg\models\backbones\unet.py /^class UNet(nn.Module):$/;" c
+UPSAMPLE_LAYERS mmseg\models\backbones\unet.py /^from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,$/;" i
+UpConvBlock mmseg\models\backbones\unet.py /^from ..utils import UpConvBlock$/;" i
+_BatchNorm mmseg\models\backbones\unet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+__init__ mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:BasicConvBlock
+__init__ mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:DeconvModule
+__init__ mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:InterpConv
+__init__ mmseg\models\backbones\unet.py /^ def __init__(self,$/;" m class:UNet
+_check_input_devisible mmseg\models\backbones\unet.py /^ def _check_input_devisible(self, x):$/;" m class:UNet
+build_activation_layer mmseg\models\backbones\unet.py /^from mmcv.cnn import (UPSAMPLE_LAYERS, ConvModule, build_activation_layer,$/;" i
+cp mmseg\models\backbones\unet.py /^import torch.utils.checkpoint as cp$/;" i
+forward mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:BasicConvBlock
+forward mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:DeconvModule
+forward mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:InterpConv
+forward mmseg\models\backbones\unet.py /^ def forward(self, x):$/;" m class:UNet
+get_root_logger mmseg\models\backbones\unet.py /^from mmseg.utils import get_root_logger$/;" i
+init_weights mmseg\models\backbones\unet.py /^ def init_weights(self, pretrained=None):$/;" m class:UNet
+load_checkpoint mmseg\models\backbones\unet.py /^from mmcv.runner import load_checkpoint$/;" i
+nn mmseg\models\backbones\unet.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\unet.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\unet.py /^import torch.utils.checkpoint as cp$/;" i
+train mmseg\models\backbones\unet.py /^ def train(self, mode=True):$/;" m class:UNet
+utils mmseg\models\backbones\unet.py /^import torch.utils.checkpoint as cp$/;" i
+Attention mmseg\models\backbones\vit.py /^class Attention(nn.Module):$/;" c
+BACKBONES mmseg\models\backbones\vit.py /^from ..builder import BACKBONES$/;" i
+Block mmseg\models\backbones\vit.py /^class Block(nn.Module):$/;" c
+DropPath mmseg\models\backbones\vit.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\backbones\vit.py /^import torch.nn.functional as F$/;" i
+HybridEmbed mmseg\models\backbones\vit.py /^class HybridEmbed(nn.Module):$/;" c
+Mlp mmseg\models\backbones\vit.py /^class Mlp(nn.Module):$/;" c
+PatchEmbed mmseg\models\backbones\vit.py /^class PatchEmbed(nn.Module):$/;" c
+VisionTransformer mmseg\models\backbones\vit.py /^class VisionTransformer(nn.Module):$/;" c
+__init__ mmseg\models\backbones\vit.py /^ def __init__(self, backbone, img_size=224, feature_size=None, in_chans=3, embed_dim=768):$/;" m class:HybridEmbed
+__init__ mmseg\models\backbones\vit.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ mmseg\models\backbones\vit.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.):$/;" m class:Attention
+__init__ mmseg\models\backbones\vit.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):$/;" m class:PatchEmbed
+__init__ mmseg\models\backbones\vit.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+__init__ mmseg\models\backbones\vit.py /^ def __init__(self, model_name='vit_large_patch16_384', img_size=384, patch_size=16, in_chans=3, embed_dim=1024, depth=24,$/;" m class:VisionTransformer
+_cfg mmseg\models\backbones\vit.py /^def _cfg(url='', **kwargs):$/;" f
+_conv_filter mmseg\models\backbones\vit.py /^ def _conv_filter(self, state_dict, patch_size=16):$/;" m class:VisionTransformer
+build_norm_layer mmseg\models\backbones\vit.py /^from mmcv.cnn import build_norm_layer$/;" i
+default_cfgs mmseg\models\backbones\vit.py /^default_cfgs = {$/;" v
+forward mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:Attention
+forward mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:Block
+forward mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:HybridEmbed
+forward mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:Mlp
+forward mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward mmseg\models\backbones\vit.py /^ def forward(self, x):$/;" m class:VisionTransformer
+init_weights mmseg\models\backbones\vit.py /^ def init_weights(self, pretrained=None):$/;" m class:VisionTransformer
+load_pretrained mmseg\models\backbones\vit.py /^from .helpers import load_pretrained$/;" i
+math mmseg\models\backbones\vit.py /^import math$/;" i
+nn mmseg\models\backbones\vit.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\vit.py /^import torch.nn.functional as F$/;" i
+no_weight_decay mmseg\models\backbones\vit.py /^ def no_weight_decay(self):$/;" m class:VisionTransformer
+partial mmseg\models\backbones\vit.py /^from functools import partial$/;" i
+to_1D mmseg\models\backbones\vit.py /^ def to_1D(self, x):$/;" m class:VisionTransformer
+to_2D mmseg\models\backbones\vit.py /^ def to_2D(self, x):$/;" m class:VisionTransformer
+to_2tuple mmseg\models\backbones\vit.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\backbones\vit.py /^import torch$/;" i
+torch mmseg\models\backbones\vit.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\vit.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\backbones\vit.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+Attention mmseg\models\backbones\vit_mla.py /^class Attention(nn.Module):$/;" c
+BACKBONES mmseg\models\backbones\vit_mla.py /^from ..builder import BACKBONES$/;" i
+Block mmseg\models\backbones\vit_mla.py /^class Block(nn.Module):$/;" c
+Conv_MLA mmseg\models\backbones\vit_mla.py /^class Conv_MLA(nn.Module):$/;" c
+DropPath mmseg\models\backbones\vit_mla.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\backbones\vit_mla.py /^import torch.nn.functional as F$/;" i
+HybridEmbed mmseg\models\backbones\vit_mla.py /^class HybridEmbed(nn.Module):$/;" c
+Mlp mmseg\models\backbones\vit_mla.py /^class Mlp(nn.Module):$/;" c
+PatchEmbed mmseg\models\backbones\vit_mla.py /^class PatchEmbed(nn.Module):$/;" c
+VIT_MLA mmseg\models\backbones\vit_mla.py /^class VIT_MLA(nn.Module):$/;" c
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, backbone, img_size=224, feature_size=None, in_chans=3, embed_dim=768):$/;" m class:HybridEmbed
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,$/;" m class:Block
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.):$/;" m class:Attention
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768):$/;" m class:PatchEmbed
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, in_channels=1024, mla_channels=256, norm_cfg=None):$/;" m class:Conv_MLA
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):$/;" m class:Mlp
+__init__ mmseg\models\backbones\vit_mla.py /^ def __init__(self, model_name='vit_large_patch16_384', img_size=384, patch_size=16, in_chans=3, embed_dim=1024, depth=24,$/;" m class:VIT_MLA
+_cfg mmseg\models\backbones\vit_mla.py /^def _cfg(url='', **kwargs):$/;" f
+_conv_filter mmseg\models\backbones\vit_mla.py /^ def _conv_filter(self, state_dict, patch_size=16):$/;" m class:VIT_MLA
+build_norm_layer mmseg\models\backbones\vit_mla.py /^from mmcv.cnn import build_norm_layer$/;" i
+default_cfgs mmseg\models\backbones\vit_mla.py /^default_cfgs = {$/;" v
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, res2, res3, res4, res5):$/;" m class:Conv_MLA
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:Attention
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:Block
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:HybridEmbed
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:Mlp
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:PatchEmbed
+forward mmseg\models\backbones\vit_mla.py /^ def forward(self, x):$/;" m class:VIT_MLA
+init_weights mmseg\models\backbones\vit_mla.py /^ def init_weights(self, pretrained=None):$/;" m class:VIT_MLA
+load_pretrained mmseg\models\backbones\vit_mla.py /^from .helpers import load_pretrained$/;" i
+math mmseg\models\backbones\vit_mla.py /^import math$/;" i
+nn mmseg\models\backbones\vit_mla.py /^import torch.nn as nn$/;" i
+nn mmseg\models\backbones\vit_mla.py /^import torch.nn.functional as F$/;" i
+no_weight_decay mmseg\models\backbones\vit_mla.py /^ def no_weight_decay(self):$/;" m class:VIT_MLA
+partial mmseg\models\backbones\vit_mla.py /^from functools import partial$/;" i
+to_2D mmseg\models\backbones\vit_mla.py /^ def to_2D(self, x):$/;" m class:Conv_MLA
+to_2tuple mmseg\models\backbones\vit_mla.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\backbones\vit_mla.py /^import torch$/;" i
+torch mmseg\models\backbones\vit_mla.py /^import torch.nn as nn$/;" i
+torch mmseg\models\backbones\vit_mla.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\backbones\vit_mla.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+BACKBONES mmseg\models\builder.py /^BACKBONES = Registry('backbone')$/;" v
+HEADS mmseg\models\builder.py /^HEADS = Registry('head')$/;" v
+LOSSES mmseg\models\builder.py /^LOSSES = Registry('loss')$/;" v
+NECKS mmseg\models\builder.py /^NECKS = Registry('neck')$/;" v
+Registry mmseg\models\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+SEGMENTORS mmseg\models\builder.py /^SEGMENTORS = Registry('segmentor')$/;" v
+build mmseg\models\builder.py /^def build(cfg, registry, default_args=None):$/;" f
+build_backbone mmseg\models\builder.py /^def build_backbone(cfg):$/;" f
+build_from_cfg mmseg\models\builder.py /^from mmcv.utils import Registry, build_from_cfg$/;" i
+build_head mmseg\models\builder.py /^def build_head(cfg):$/;" f
+build_loss mmseg\models\builder.py /^def build_loss(cfg):$/;" f
+build_neck mmseg\models\builder.py /^def build_neck(cfg):$/;" f
+build_segmentor mmseg\models\builder.py /^def build_segmentor(cfg, train_cfg=None, test_cfg=None):$/;" f
+nn mmseg\models\builder.py /^from torch import nn$/;" i
+warnings mmseg\models\builder.py /^import warnings$/;" i
+ANNHead mmseg\models\decode_heads\__init__.py /^from .ann_head import ANNHead$/;" i
+APCHead mmseg\models\decode_heads\__init__.py /^from .apc_head import APCHead$/;" i
+ASPPHead mmseg\models\decode_heads\__init__.py /^from .aspp_head import ASPPHead$/;" i
+CCHead mmseg\models\decode_heads\__init__.py /^from .cc_head import CCHead$/;" i
+DAHead mmseg\models\decode_heads\__init__.py /^from .da_head import DAHead$/;" i
+DMHead mmseg\models\decode_heads\__init__.py /^from .dm_head import DMHead$/;" i
+DNLHead mmseg\models\decode_heads\__init__.py /^from .dnl_head import DNLHead$/;" i
+DepthwiseSeparableASPPHead mmseg\models\decode_heads\__init__.py /^from .sep_aspp_head import DepthwiseSeparableASPPHead$/;" i
+DepthwiseSeparableFCNHead mmseg\models\decode_heads\__init__.py /^from .sep_fcn_head import DepthwiseSeparableFCNHead$/;" i
+EMAHead mmseg\models\decode_heads\__init__.py /^from .ema_head import EMAHead$/;" i
+EncHead mmseg\models\decode_heads\__init__.py /^from .enc_head import EncHead$/;" i
+FCNHead mmseg\models\decode_heads\__init__.py /^from .fcn_head import FCNHead$/;" i
+FPNHead mmseg\models\decode_heads\__init__.py /^from .fpn_head import FPNHead$/;" i
+GCHead mmseg\models\decode_heads\__init__.py /^from .gc_head import GCHead$/;" i
+LRASPPHead mmseg\models\decode_heads\__init__.py /^from .lraspp_head import LRASPPHead$/;" i
+NLHead mmseg\models\decode_heads\__init__.py /^from .nl_head import NLHead$/;" i
+OCRHead mmseg\models\decode_heads\__init__.py /^from .ocr_head import OCRHead$/;" i
+PSAHead mmseg\models\decode_heads\__init__.py /^from .psa_head import PSAHead$/;" i
+PSPHead mmseg\models\decode_heads\__init__.py /^from .psp_head import PSPHead$/;" i
+PointHead mmseg\models\decode_heads\__init__.py /^from .point_head import PointHead$/;" i
+UPerHead mmseg\models\decode_heads\__init__.py /^from .uper_head import UPerHead$/;" i
+VIT_MLAHead mmseg\models\decode_heads\__init__.py /^from .vit_mla_head import VIT_MLAHead$/;" i
+VIT_MLA_AUXIHead mmseg\models\decode_heads\__init__.py /^from .vit_mla_auxi_head import VIT_MLA_AUXIHead$/;" i
+VisionTransformerUpHead mmseg\models\decode_heads\__init__.py /^from .vit_up_head import VisionTransformerUpHead$/;" i
+__all__ mmseg\models\decode_heads\__init__.py /^__all__ = [$/;" v
+AFNB mmseg\models\decode_heads\ann_head.py /^class AFNB(nn.Module):$/;" c
+ANNHead mmseg\models\decode_heads\ann_head.py /^class ANNHead(BaseDecodeHead):$/;" c
+APNB mmseg\models\decode_heads\ann_head.py /^class APNB(nn.Module):$/;" c
+BaseDecodeHead mmseg\models\decode_heads\ann_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\ann_head.py /^from mmcv.cnn import ConvModule$/;" i
+HEADS mmseg\models\decode_heads\ann_head.py /^from ..builder import HEADS$/;" i
+PPMConcat mmseg\models\decode_heads\ann_head.py /^class PPMConcat(nn.ModuleList):$/;" c
+SelfAttentionBlock mmseg\models\decode_heads\ann_head.py /^class SelfAttentionBlock(_SelfAttentionBlock):$/;" c
+_SelfAttentionBlock mmseg\models\decode_heads\ann_head.py /^from ..utils import SelfAttentionBlock as _SelfAttentionBlock$/;" i
+__init__ mmseg\models\decode_heads\ann_head.py /^ def __init__(self, in_channels, channels, out_channels, query_scales,$/;" m class:APNB
+__init__ mmseg\models\decode_heads\ann_head.py /^ def __init__(self, low_in_channels, high_in_channels, channels,$/;" m class:AFNB
+__init__ mmseg\models\decode_heads\ann_head.py /^ def __init__(self, low_in_channels, high_in_channels, channels,$/;" m class:SelfAttentionBlock
+__init__ mmseg\models\decode_heads\ann_head.py /^ def __init__(self, pool_scales=(1, 3, 6, 8)):$/;" m class:PPMConcat
+__init__ mmseg\models\decode_heads\ann_head.py /^ def __init__(self,$/;" m class:ANNHead
+forward mmseg\models\decode_heads\ann_head.py /^ def forward(self, feats):$/;" m class:APNB
+forward mmseg\models\decode_heads\ann_head.py /^ def forward(self, feats):$/;" m class:PPMConcat
+forward mmseg\models\decode_heads\ann_head.py /^ def forward(self, inputs):$/;" m class:ANNHead
+forward mmseg\models\decode_heads\ann_head.py /^ def forward(self, low_feats, high_feats):$/;" m class:AFNB
+nn mmseg\models\decode_heads\ann_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\ann_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\ann_head.py /^import torch.nn as nn$/;" i
+ACM mmseg\models\decode_heads\apc_head.py /^class ACM(nn.Module):$/;" c
+APCHead mmseg\models\decode_heads\apc_head.py /^class APCHead(BaseDecodeHead):$/;" c
+BaseDecodeHead mmseg\models\decode_heads\apc_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\apc_head.py /^from mmcv.cnn import ConvModule$/;" i
+F mmseg\models\decode_heads\apc_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\apc_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\apc_head.py /^ def __init__(self, pool_scale, fusion, in_channels, channels, conv_cfg,$/;" m class:ACM
+__init__ mmseg\models\decode_heads\apc_head.py /^ def __init__(self, pool_scales=(1, 2, 3, 6), fusion=True, **kwargs):$/;" m class:APCHead
+forward mmseg\models\decode_heads\apc_head.py /^ def forward(self, inputs):$/;" m class:APCHead
+forward mmseg\models\decode_heads\apc_head.py /^ def forward(self, x):$/;" m class:ACM
+nn mmseg\models\decode_heads\apc_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\apc_head.py /^import torch.nn.functional as F$/;" i
+resize mmseg\models\decode_heads\apc_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\apc_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\apc_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\apc_head.py /^import torch.nn.functional as F$/;" i
+ASPPHead mmseg\models\decode_heads\aspp_head.py /^class ASPPHead(BaseDecodeHead):$/;" c
+ASPPModule mmseg\models\decode_heads\aspp_head.py /^class ASPPModule(nn.ModuleList):$/;" c
+BaseDecodeHead mmseg\models\decode_heads\aspp_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\aspp_head.py /^from mmcv.cnn import ConvModule$/;" i
+HEADS mmseg\models\decode_heads\aspp_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\aspp_head.py /^ def __init__(self, dilations, in_channels, channels, conv_cfg, norm_cfg,$/;" m class:ASPPModule
+__init__ mmseg\models\decode_heads\aspp_head.py /^ def __init__(self, dilations=(1, 6, 12, 18), **kwargs):$/;" m class:ASPPHead
+forward mmseg\models\decode_heads\aspp_head.py /^ def forward(self, inputs):$/;" m class:ASPPHead
+forward mmseg\models\decode_heads\aspp_head.py /^ def forward(self, x):$/;" m class:ASPPModule
+nn mmseg\models\decode_heads\aspp_head.py /^import torch.nn as nn$/;" i
+resize mmseg\models\decode_heads\aspp_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\aspp_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\aspp_head.py /^import torch.nn as nn$/;" i
+ABCMeta mmseg\models\decode_heads\cascade_decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+BaseCascadeDecodeHead mmseg\models\decode_heads\cascade_decode_head.py /^class BaseCascadeDecodeHead(BaseDecodeHead, metaclass=ABCMeta):$/;" c
+BaseDecodeHead mmseg\models\decode_heads\cascade_decode_head.py /^from .decode_head import BaseDecodeHead$/;" i
+__init__ mmseg\models\decode_heads\cascade_decode_head.py /^ def __init__(self, *args, **kwargs):$/;" m class:BaseCascadeDecodeHead
+abstractmethod mmseg\models\decode_heads\cascade_decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+forward mmseg\models\decode_heads\cascade_decode_head.py /^ def forward(self, inputs, prev_output):$/;" m class:BaseCascadeDecodeHead
+forward_test mmseg\models\decode_heads\cascade_decode_head.py /^ def forward_test(self, inputs, prev_output, img_metas, test_cfg):$/;" m class:BaseCascadeDecodeHead
+forward_train mmseg\models\decode_heads\cascade_decode_head.py /^ def forward_train(self, inputs, prev_output, img_metas, gt_semantic_seg,$/;" m class:BaseCascadeDecodeHead
+CCHead mmseg\models\decode_heads\cc_head.py /^class CCHead(FCNHead):$/;" c
+CrissCrossAttention mmseg\models\decode_heads\cc_head.py /^ CrissCrossAttention = None$/;" v
+CrissCrossAttention mmseg\models\decode_heads\cc_head.py /^ from mmcv.ops import CrissCrossAttention$/;" i
+FCNHead mmseg\models\decode_heads\cc_head.py /^from .fcn_head import FCNHead$/;" i
+HEADS mmseg\models\decode_heads\cc_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\cc_head.py /^ def __init__(self, recurrence=2, **kwargs):$/;" m class:CCHead
+forward mmseg\models\decode_heads\cc_head.py /^ def forward(self, inputs):$/;" m class:CCHead
+torch mmseg\models\decode_heads\cc_head.py /^import torch$/;" i
+BaseDecodeHead mmseg\models\decode_heads\da_head.py /^from .decode_head import BaseDecodeHead$/;" i
+CAM mmseg\models\decode_heads\da_head.py /^class CAM(nn.Module):$/;" c
+ConvModule mmseg\models\decode_heads\da_head.py /^from mmcv.cnn import ConvModule, Scale$/;" i
+DAHead mmseg\models\decode_heads\da_head.py /^class DAHead(BaseDecodeHead):$/;" c
+F mmseg\models\decode_heads\da_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\da_head.py /^from ..builder import HEADS$/;" i
+PAM mmseg\models\decode_heads\da_head.py /^class PAM(_SelfAttentionBlock):$/;" c
+Scale mmseg\models\decode_heads\da_head.py /^from mmcv.cnn import ConvModule, Scale$/;" i
+_SelfAttentionBlock mmseg\models\decode_heads\da_head.py /^from ..utils import SelfAttentionBlock as _SelfAttentionBlock$/;" i
+__init__ mmseg\models\decode_heads\da_head.py /^ def __init__(self):$/;" m class:CAM
+__init__ mmseg\models\decode_heads\da_head.py /^ def __init__(self, in_channels, channels):$/;" m class:PAM
+__init__ mmseg\models\decode_heads\da_head.py /^ def __init__(self, pam_channels, **kwargs):$/;" m class:DAHead
+add_prefix mmseg\models\decode_heads\da_head.py /^from mmseg.core import add_prefix$/;" i
+cam_cls_seg mmseg\models\decode_heads\da_head.py /^ def cam_cls_seg(self, feat):$/;" m class:DAHead
+forward mmseg\models\decode_heads\da_head.py /^ def forward(self, inputs):$/;" m class:DAHead
+forward mmseg\models\decode_heads\da_head.py /^ def forward(self, x):$/;" m class:CAM
+forward mmseg\models\decode_heads\da_head.py /^ def forward(self, x):$/;" m class:PAM
+forward_test mmseg\models\decode_heads\da_head.py /^ def forward_test(self, inputs, img_metas, test_cfg):$/;" m class:DAHead
+losses mmseg\models\decode_heads\da_head.py /^ def losses(self, seg_logit, seg_label):$/;" m class:DAHead
+nn mmseg\models\decode_heads\da_head.py /^from torch import nn$/;" i
+nn mmseg\models\decode_heads\da_head.py /^import torch.nn.functional as F$/;" i
+pam_cls_seg mmseg\models\decode_heads\da_head.py /^ def pam_cls_seg(self, feat):$/;" m class:DAHead
+torch mmseg\models\decode_heads\da_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\da_head.py /^import torch.nn.functional as F$/;" i
+ABCMeta mmseg\models\decode_heads\decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+BaseDecodeHead mmseg\models\decode_heads\decode_head.py /^class BaseDecodeHead(nn.Module, metaclass=ABCMeta):$/;" c
+__init__ mmseg\models\decode_heads\decode_head.py /^ def __init__(self,$/;" m class:BaseDecodeHead
+_init_inputs mmseg\models\decode_heads\decode_head.py /^ def _init_inputs(self, in_channels, in_index, input_transform):$/;" m class:BaseDecodeHead
+_transform_inputs mmseg\models\decode_heads\decode_head.py /^ def _transform_inputs(self, inputs):$/;" m class:BaseDecodeHead
+abstractmethod mmseg\models\decode_heads\decode_head.py /^from abc import ABCMeta, abstractmethod$/;" i
+accuracy mmseg\models\decode_heads\decode_head.py /^from ..losses import accuracy$/;" i
+auto_fp16 mmseg\models\decode_heads\decode_head.py /^from mmcv.runner import auto_fp16, force_fp32$/;" i
+build_loss mmseg\models\decode_heads\decode_head.py /^from ..builder import build_loss$/;" i
+build_pixel_sampler mmseg\models\decode_heads\decode_head.py /^from mmseg.core import build_pixel_sampler$/;" i
+cls_seg mmseg\models\decode_heads\decode_head.py /^ def cls_seg(self, feat):$/;" m class:BaseDecodeHead
+extra_repr mmseg\models\decode_heads\decode_head.py /^ def extra_repr(self):$/;" m class:BaseDecodeHead
+force_fp32 mmseg\models\decode_heads\decode_head.py /^from mmcv.runner import auto_fp16, force_fp32$/;" i
+forward mmseg\models\decode_heads\decode_head.py /^ def forward(self, inputs):$/;" m class:BaseDecodeHead
+forward_test mmseg\models\decode_heads\decode_head.py /^ def forward_test(self, inputs, img_metas, test_cfg):$/;" m class:BaseDecodeHead
+forward_train mmseg\models\decode_heads\decode_head.py /^ def forward_train(self, inputs, img_metas, gt_semantic_seg, train_cfg):$/;" m class:BaseDecodeHead
+init_weights mmseg\models\decode_heads\decode_head.py /^ def init_weights(self):$/;" m class:BaseDecodeHead
+losses mmseg\models\decode_heads\decode_head.py /^ def losses(self, seg_logit, seg_label):$/;" m class:BaseDecodeHead
+nn mmseg\models\decode_heads\decode_head.py /^import torch.nn as nn$/;" i
+normal_init mmseg\models\decode_heads\decode_head.py /^from mmcv.cnn import normal_init$/;" i
+resize mmseg\models\decode_heads\decode_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\decode_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\decode_head.py /^import torch.nn as nn$/;" i
+BaseDecodeHead mmseg\models\decode_heads\dm_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\dm_head.py /^from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer$/;" i
+DCM mmseg\models\decode_heads\dm_head.py /^class DCM(nn.Module):$/;" c
+DMHead mmseg\models\decode_heads\dm_head.py /^class DMHead(BaseDecodeHead):$/;" c
+F mmseg\models\decode_heads\dm_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\dm_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\dm_head.py /^ def __init__(self, filter_size, fusion, in_channels, channels, conv_cfg,$/;" m class:DCM
+__init__ mmseg\models\decode_heads\dm_head.py /^ def __init__(self, filter_sizes=(1, 3, 5, 7), fusion=False, **kwargs):$/;" m class:DMHead
+build_activation_layer mmseg\models\decode_heads\dm_head.py /^from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer$/;" i
+build_norm_layer mmseg\models\decode_heads\dm_head.py /^from mmcv.cnn import ConvModule, build_activation_layer, build_norm_layer$/;" i
+forward mmseg\models\decode_heads\dm_head.py /^ def forward(self, inputs):$/;" m class:DMHead
+forward mmseg\models\decode_heads\dm_head.py /^ def forward(self, x):$/;" m class:DCM
+nn mmseg\models\decode_heads\dm_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\dm_head.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\decode_heads\dm_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\dm_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\dm_head.py /^import torch.nn.functional as F$/;" i
+DNLHead mmseg\models\decode_heads\dnl_head.py /^class DNLHead(FCNHead):$/;" c
+DisentangledNonLocal2d mmseg\models\decode_heads\dnl_head.py /^class DisentangledNonLocal2d(NonLocal2d):$/;" c
+FCNHead mmseg\models\decode_heads\dnl_head.py /^from .fcn_head import FCNHead$/;" i
+HEADS mmseg\models\decode_heads\dnl_head.py /^from ..builder import HEADS$/;" i
+NonLocal2d mmseg\models\decode_heads\dnl_head.py /^from mmcv.cnn import NonLocal2d$/;" i
+__init__ mmseg\models\decode_heads\dnl_head.py /^ def __init__(self, *arg, temperature, **kwargs):$/;" m class:DisentangledNonLocal2d
+__init__ mmseg\models\decode_heads\dnl_head.py /^ def __init__(self,$/;" m class:DNLHead
+embedded_gaussian mmseg\models\decode_heads\dnl_head.py /^ def embedded_gaussian(self, theta_x, phi_x):$/;" m class:DisentangledNonLocal2d
+forward mmseg\models\decode_heads\dnl_head.py /^ def forward(self, inputs):$/;" m class:DNLHead
+forward mmseg\models\decode_heads\dnl_head.py /^ def forward(self, x):$/;" m class:DisentangledNonLocal2d
+nn mmseg\models\decode_heads\dnl_head.py /^from torch import nn$/;" i
+torch mmseg\models\decode_heads\dnl_head.py /^import torch$/;" i
+BaseDecodeHead mmseg\models\decode_heads\ema_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\ema_head.py /^from mmcv.cnn import ConvModule$/;" i
+EMAHead mmseg\models\decode_heads\ema_head.py /^class EMAHead(BaseDecodeHead):$/;" c
+EMAModule mmseg\models\decode_heads\ema_head.py /^class EMAModule(nn.Module):$/;" c
+F mmseg\models\decode_heads\ema_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\ema_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\ema_head.py /^ def __init__(self, channels, num_bases, num_stages, momentum):$/;" m class:EMAModule
+__init__ mmseg\models\decode_heads\ema_head.py /^ def __init__(self,$/;" m class:EMAHead
+dist mmseg\models\decode_heads\ema_head.py /^import torch.distributed as dist$/;" i
+forward mmseg\models\decode_heads\ema_head.py /^ def forward(self, feats):$/;" m class:EMAModule
+forward mmseg\models\decode_heads\ema_head.py /^ def forward(self, inputs):$/;" m class:EMAHead
+math mmseg\models\decode_heads\ema_head.py /^import math$/;" i
+nn mmseg\models\decode_heads\ema_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\ema_head.py /^import torch.nn.functional as F$/;" i
+reduce_mean mmseg\models\decode_heads\ema_head.py /^def reduce_mean(tensor):$/;" f
+torch mmseg\models\decode_heads\ema_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\ema_head.py /^import torch.distributed as dist$/;" i
+torch mmseg\models\decode_heads\ema_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\ema_head.py /^import torch.nn.functional as F$/;" i
+BaseDecodeHead mmseg\models\decode_heads\enc_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\enc_head.py /^from mmcv.cnn import ConvModule, build_norm_layer$/;" i
+EncHead mmseg\models\decode_heads\enc_head.py /^class EncHead(BaseDecodeHead):$/;" c
+EncModule mmseg\models\decode_heads\enc_head.py /^class EncModule(nn.Module):$/;" c
+Encoding mmseg\models\decode_heads\enc_head.py /^from mmseg.ops import Encoding, resize$/;" i
+F mmseg\models\decode_heads\enc_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\enc_head.py /^from ..builder import HEADS, build_loss$/;" i
+__init__ mmseg\models\decode_heads\enc_head.py /^ def __init__(self, in_channels, num_codes, conv_cfg, norm_cfg, act_cfg):$/;" m class:EncModule
+__init__ mmseg\models\decode_heads\enc_head.py /^ def __init__(self,$/;" m class:EncHead
+_convert_to_onehot_labels mmseg\models\decode_heads\enc_head.py /^ def _convert_to_onehot_labels(seg_label, num_classes):$/;" m class:EncHead
+build_loss mmseg\models\decode_heads\enc_head.py /^from ..builder import HEADS, build_loss$/;" i
+build_norm_layer mmseg\models\decode_heads\enc_head.py /^from mmcv.cnn import ConvModule, build_norm_layer$/;" i
+forward mmseg\models\decode_heads\enc_head.py /^ def forward(self, inputs):$/;" m class:EncHead
+forward mmseg\models\decode_heads\enc_head.py /^ def forward(self, x):$/;" m class:EncModule
+forward_test mmseg\models\decode_heads\enc_head.py /^ def forward_test(self, inputs, img_metas, test_cfg):$/;" m class:EncHead
+losses mmseg\models\decode_heads\enc_head.py /^ def losses(self, seg_logit, seg_label):$/;" m class:EncHead
+nn mmseg\models\decode_heads\enc_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\enc_head.py /^import torch.nn.functional as F$/;" i
+resize mmseg\models\decode_heads\enc_head.py /^from mmseg.ops import Encoding, resize$/;" i
+torch mmseg\models\decode_heads\enc_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\enc_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\enc_head.py /^import torch.nn.functional as F$/;" i
+BaseDecodeHead mmseg\models\decode_heads\fcn_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\fcn_head.py /^from mmcv.cnn import ConvModule$/;" i
+FCNHead mmseg\models\decode_heads\fcn_head.py /^class FCNHead(BaseDecodeHead):$/;" c
+HEADS mmseg\models\decode_heads\fcn_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\fcn_head.py /^ def __init__(self,$/;" m class:FCNHead
+forward mmseg\models\decode_heads\fcn_head.py /^ def forward(self, inputs):$/;" m class:FCNHead
+nn mmseg\models\decode_heads\fcn_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\fcn_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\fcn_head.py /^import torch.nn as nn$/;" i
+BaseDecodeHead mmseg\models\decode_heads\fpn_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\fpn_head.py /^from mmcv.cnn import ConvModule$/;" i
+FPNHead mmseg\models\decode_heads\fpn_head.py /^class FPNHead(BaseDecodeHead):$/;" c
+HEADS mmseg\models\decode_heads\fpn_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\fpn_head.py /^ def __init__(self, feature_strides, **kwargs):$/;" m class:FPNHead
+forward mmseg\models\decode_heads\fpn_head.py /^ def forward(self, inputs):$/;" m class:FPNHead
+nn mmseg\models\decode_heads\fpn_head.py /^import torch.nn as nn$/;" i
+np mmseg\models\decode_heads\fpn_head.py /^import numpy as np$/;" i
+resize mmseg\models\decode_heads\fpn_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\fpn_head.py /^import torch.nn as nn$/;" i
+ContextBlock mmseg\models\decode_heads\gc_head.py /^from mmcv.cnn import ContextBlock$/;" i
+FCNHead mmseg\models\decode_heads\gc_head.py /^from .fcn_head import FCNHead$/;" i
+GCHead mmseg\models\decode_heads\gc_head.py /^class GCHead(FCNHead):$/;" c
+HEADS mmseg\models\decode_heads\gc_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\gc_head.py /^ def __init__(self,$/;" m class:GCHead
+forward mmseg\models\decode_heads\gc_head.py /^ def forward(self, inputs):$/;" m class:GCHead
+torch mmseg\models\decode_heads\gc_head.py /^import torch$/;" i
+F mmseg\models\decode_heads\helpers.py /^import torch.nn.functional as F$/;" i
+_logger mmseg\models\decode_heads\helpers.py /^_logger = logging.getLogger(__name__)$/;" v
+load_pretrained mmseg\models\decode_heads\helpers.py /^def load_pretrained(model, cfg=None, num_classes=1000, in_chans=3, filter_fn=None, strict=True, pos_embed_interp=False, num_patches=576, align_corners=False):$/;" f
+logging mmseg\models\decode_heads\helpers.py /^import logging$/;" i
+math mmseg\models\decode_heads\helpers.py /^import math$/;" i
+model_zoo mmseg\models\decode_heads\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+nn mmseg\models\decode_heads\helpers.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\helpers.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\decode_heads\helpers.py /^import torch$/;" i
+torch mmseg\models\decode_heads\helpers.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\helpers.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\decode_heads\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+utils mmseg\models\decode_heads\helpers.py /^import torch.utils.model_zoo as model_zoo$/;" i
+DropBlock2d mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+DropPath mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_block_2d mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+drop_path mmseg\models\decode_heads\layers\__init__.py /^from .drop import DropBlock2d, DropPath, drop_block_2d, drop_path$/;" i
+to_2tuple mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_3tuple mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_4tuple mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+to_ntuple mmseg\models\decode_heads\layers\__init__.py /^from .helpers import to_ntuple, to_2tuple, to_3tuple, to_4tuple$/;" i
+trunc_normal_ mmseg\models\decode_heads\layers\__init__.py /^from .weight_init import trunc_normal_/;" i
+DropBlock2d mmseg\models\decode_heads\layers\drop.py /^class DropBlock2d(nn.Module):$/;" c
+DropPath mmseg\models\decode_heads\layers\drop.py /^class DropPath(nn.Module):$/;" c
+F mmseg\models\decode_heads\layers\drop.py /^import torch.nn.functional as F$/;" i
+__init__ mmseg\models\decode_heads\layers\drop.py /^ def __init__(self, drop_prob=None):$/;" m class:DropPath
+__init__ mmseg\models\decode_heads\layers\drop.py /^ def __init__(self,$/;" m class:DropBlock2d
+drop_block_2d mmseg\models\decode_heads\layers\drop.py /^def drop_block_2d($/;" f
+drop_block_fast_2d mmseg\models\decode_heads\layers\drop.py /^def drop_block_fast_2d($/;" f
+drop_path mmseg\models\decode_heads\layers\drop.py /^def drop_path(x, drop_prob: float = 0., training: bool = False):$/;" f
+forward mmseg\models\decode_heads\layers\drop.py /^ def forward(self, x):$/;" m class:DropBlock2d
+forward mmseg\models\decode_heads\layers\drop.py /^ def forward(self, x):$/;" m class:DropPath
+nn mmseg\models\decode_heads\layers\drop.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\layers\drop.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\decode_heads\layers\drop.py /^import torch$/;" i
+torch mmseg\models\decode_heads\layers\drop.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\layers\drop.py /^import torch.nn.functional as F$/;" i
+_ntuple mmseg\models\decode_heads\layers\helpers.py /^def _ntuple(n):$/;" f
+container_abcs mmseg\models\decode_heads\layers\helpers.py /^from torch._six import container_abcs$/;" i
+parse mmseg\models\decode_heads\layers\helpers.py /^ def parse(x):$/;" f function:_ntuple
+repeat mmseg\models\decode_heads\layers\helpers.py /^from itertools import repeat$/;" i
+to_1tuple mmseg\models\decode_heads\layers\helpers.py /^to_1tuple = _ntuple(1)$/;" v
+to_2tuple mmseg\models\decode_heads\layers\helpers.py /^to_2tuple = _ntuple(2)$/;" v
+to_3tuple mmseg\models\decode_heads\layers\helpers.py /^to_3tuple = _ntuple(3)$/;" v
+to_4tuple mmseg\models\decode_heads\layers\helpers.py /^to_4tuple = _ntuple(4)$/;" v
+to_ntuple mmseg\models\decode_heads\layers\helpers.py /^to_ntuple = _ntuple$/;" v
+_no_grad_trunc_normal_ mmseg\models\decode_heads\layers\weight_init.py /^def _no_grad_trunc_normal_(tensor, mean, std, a, b):$/;" f
+math mmseg\models\decode_heads\layers\weight_init.py /^import math$/;" i
+norm_cdf mmseg\models\decode_heads\layers\weight_init.py /^ def norm_cdf(x):$/;" f function:_no_grad_trunc_normal_
+torch mmseg\models\decode_heads\layers\weight_init.py /^import torch$/;" i
+trunc_normal_ mmseg\models\decode_heads\layers\weight_init.py /^def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):$/;" f
+warnings mmseg\models\decode_heads\layers\weight_init.py /^import warnings$/;" i
+BaseDecodeHead mmseg\models\decode_heads\lraspp_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\lraspp_head.py /^from mmcv.cnn import ConvModule$/;" i
+HEADS mmseg\models\decode_heads\lraspp_head.py /^from ..builder import HEADS$/;" i
+LRASPPHead mmseg\models\decode_heads\lraspp_head.py /^class LRASPPHead(BaseDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\lraspp_head.py /^ def __init__(self, branch_channels=(32, 64), **kwargs):$/;" m class:LRASPPHead
+forward mmseg\models\decode_heads\lraspp_head.py /^ def forward(self, inputs):$/;" m class:LRASPPHead
+is_tuple_of mmseg\models\decode_heads\lraspp_head.py /^from mmcv import is_tuple_of$/;" i
+nn mmseg\models\decode_heads\lraspp_head.py /^import torch.nn as nn$/;" i
+resize mmseg\models\decode_heads\lraspp_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\lraspp_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\lraspp_head.py /^import torch.nn as nn$/;" i
+FCNHead mmseg\models\decode_heads\nl_head.py /^from .fcn_head import FCNHead$/;" i
+HEADS mmseg\models\decode_heads\nl_head.py /^from ..builder import HEADS$/;" i
+NLHead mmseg\models\decode_heads\nl_head.py /^class NLHead(FCNHead):$/;" c
+NonLocal2d mmseg\models\decode_heads\nl_head.py /^from mmcv.cnn import NonLocal2d$/;" i
+__init__ mmseg\models\decode_heads\nl_head.py /^ def __init__(self,$/;" m class:NLHead
+forward mmseg\models\decode_heads\nl_head.py /^ def forward(self, inputs):$/;" m class:NLHead
+torch mmseg\models\decode_heads\nl_head.py /^import torch$/;" i
+BaseCascadeDecodeHead mmseg\models\decode_heads\ocr_head.py /^from .cascade_decode_head import BaseCascadeDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\ocr_head.py /^from mmcv.cnn import ConvModule$/;" i
+F mmseg\models\decode_heads\ocr_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\ocr_head.py /^from ..builder import HEADS$/;" i
+OCRHead mmseg\models\decode_heads\ocr_head.py /^class OCRHead(BaseCascadeDecodeHead):$/;" c
+ObjectAttentionBlock mmseg\models\decode_heads\ocr_head.py /^class ObjectAttentionBlock(_SelfAttentionBlock):$/;" c
+SpatialGatherModule mmseg\models\decode_heads\ocr_head.py /^class SpatialGatherModule(nn.Module):$/;" c
+_SelfAttentionBlock mmseg\models\decode_heads\ocr_head.py /^from ..utils import SelfAttentionBlock as _SelfAttentionBlock$/;" i
+__init__ mmseg\models\decode_heads\ocr_head.py /^ def __init__(self, in_channels, channels, scale, conv_cfg, norm_cfg,$/;" m class:ObjectAttentionBlock
+__init__ mmseg\models\decode_heads\ocr_head.py /^ def __init__(self, ocr_channels, scale=1, **kwargs):$/;" m class:OCRHead
+__init__ mmseg\models\decode_heads\ocr_head.py /^ def __init__(self, scale):$/;" m class:SpatialGatherModule
+forward mmseg\models\decode_heads\ocr_head.py /^ def forward(self, feats, probs):$/;" m class:SpatialGatherModule
+forward mmseg\models\decode_heads\ocr_head.py /^ def forward(self, inputs, prev_output):$/;" m class:OCRHead
+forward mmseg\models\decode_heads\ocr_head.py /^ def forward(self, query_feats, key_feats):$/;" m class:ObjectAttentionBlock
+nn mmseg\models\decode_heads\ocr_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\ocr_head.py /^import torch.nn.functional as F$/;" i
+resize mmseg\models\decode_heads\ocr_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\ocr_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\ocr_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\ocr_head.py /^import torch.nn.functional as F$/;" i
+BaseCascadeDecodeHead mmseg\models\decode_heads\point_head.py /^from .cascade_decode_head import BaseCascadeDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\point_head.py /^from mmcv.cnn import ConvModule, normal_init$/;" i
+HEADS mmseg\models\decode_heads\point_head.py /^from mmseg.models.builder import HEADS$/;" i
+PointHead mmseg\models\decode_heads\point_head.py /^class PointHead(BaseCascadeDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\point_head.py /^ def __init__(self,$/;" m class:PointHead
+_get_coarse_point_feats mmseg\models\decode_heads\point_head.py /^ def _get_coarse_point_feats(self, prev_output, points):$/;" m class:PointHead
+_get_fine_grained_point_feats mmseg\models\decode_heads\point_head.py /^ def _get_fine_grained_point_feats(self, x, points):$/;" m class:PointHead
+accuracy mmseg\models\decode_heads\point_head.py /^from ..losses import accuracy$/;" i
+calculate_uncertainty mmseg\models\decode_heads\point_head.py /^def calculate_uncertainty(seg_logits):$/;" f
+cls_seg mmseg\models\decode_heads\point_head.py /^ def cls_seg(self, feat):$/;" m class:PointHead
+forward mmseg\models\decode_heads\point_head.py /^ def forward(self, fine_grained_point_feats, coarse_point_feats):$/;" m class:PointHead
+forward_test mmseg\models\decode_heads\point_head.py /^ def forward_test(self, inputs, prev_output, img_metas, test_cfg):$/;" m class:PointHead
+forward_train mmseg\models\decode_heads\point_head.py /^ def forward_train(self, inputs, prev_output, img_metas, gt_semantic_seg,$/;" m class:PointHead
+get_points_test mmseg\models\decode_heads\point_head.py /^ def get_points_test(self, seg_logits, uncertainty_func, cfg):$/;" m class:PointHead
+get_points_train mmseg\models\decode_heads\point_head.py /^ def get_points_train(self, seg_logits, uncertainty_func, cfg):$/;" m class:PointHead
+init_weights mmseg\models\decode_heads\point_head.py /^ def init_weights(self):$/;" m class:PointHead
+losses mmseg\models\decode_heads\point_head.py /^ def losses(self, point_logits, point_label):$/;" m class:PointHead
+nn mmseg\models\decode_heads\point_head.py /^import torch.nn as nn$/;" i
+normal_init mmseg\models\decode_heads\point_head.py /^from mmcv.cnn import ConvModule, normal_init$/;" i
+point_sample mmseg\models\decode_heads\point_head.py /^from mmcv.ops import point_sample$/;" i
+resize mmseg\models\decode_heads\point_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\point_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\point_head.py /^import torch.nn as nn$/;" i
+BaseDecodeHead mmseg\models\decode_heads\psa_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\psa_head.py /^from mmcv.cnn import ConvModule$/;" i
+F mmseg\models\decode_heads\psa_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\psa_head.py /^from ..builder import HEADS$/;" i
+PSAHead mmseg\models\decode_heads\psa_head.py /^class PSAHead(BaseDecodeHead):$/;" c
+PSAMask mmseg\models\decode_heads\psa_head.py /^ PSAMask = None$/;" v
+PSAMask mmseg\models\decode_heads\psa_head.py /^ from mmcv.ops import PSAMask$/;" i
+__init__ mmseg\models\decode_heads\psa_head.py /^ def __init__(self,$/;" m class:PSAHead
+forward mmseg\models\decode_heads\psa_head.py /^ def forward(self, inputs):$/;" m class:PSAHead
+nn mmseg\models\decode_heads\psa_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\psa_head.py /^import torch.nn.functional as F$/;" i
+resize mmseg\models\decode_heads\psa_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\psa_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\psa_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\psa_head.py /^import torch.nn.functional as F$/;" i
+BaseDecodeHead mmseg\models\decode_heads\psp_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\psp_head.py /^from mmcv.cnn import ConvModule$/;" i
+HEADS mmseg\models\decode_heads\psp_head.py /^from ..builder import HEADS$/;" i
+PPM mmseg\models\decode_heads\psp_head.py /^class PPM(nn.ModuleList):$/;" c
+PSPHead mmseg\models\decode_heads\psp_head.py /^class PSPHead(BaseDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\psp_head.py /^ def __init__(self, pool_scales, in_channels, channels, conv_cfg, norm_cfg,$/;" m class:PPM
+__init__ mmseg\models\decode_heads\psp_head.py /^ def __init__(self, pool_scales=(1, 2, 3, 6), **kwargs):$/;" m class:PSPHead
+forward mmseg\models\decode_heads\psp_head.py /^ def forward(self, inputs):$/;" m class:PSPHead
+forward mmseg\models\decode_heads\psp_head.py /^ def forward(self, x):$/;" m class:PPM
+nn mmseg\models\decode_heads\psp_head.py /^import torch.nn as nn$/;" i
+resize mmseg\models\decode_heads\psp_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\psp_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\psp_head.py /^import torch.nn as nn$/;" i
+ASPPHead mmseg\models\decode_heads\sep_aspp_head.py /^from .aspp_head import ASPPHead, ASPPModule$/;" i
+ASPPModule mmseg\models\decode_heads\sep_aspp_head.py /^from .aspp_head import ASPPHead, ASPPModule$/;" i
+ConvModule mmseg\models\decode_heads\sep_aspp_head.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+DepthwiseSeparableASPPHead mmseg\models\decode_heads\sep_aspp_head.py /^class DepthwiseSeparableASPPHead(ASPPHead):$/;" c
+DepthwiseSeparableASPPModule mmseg\models\decode_heads\sep_aspp_head.py /^class DepthwiseSeparableASPPModule(ASPPModule):$/;" c
+DepthwiseSeparableConvModule mmseg\models\decode_heads\sep_aspp_head.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+HEADS mmseg\models\decode_heads\sep_aspp_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\sep_aspp_head.py /^ def __init__(self, **kwargs):$/;" m class:DepthwiseSeparableASPPModule
+__init__ mmseg\models\decode_heads\sep_aspp_head.py /^ def __init__(self, c1_in_channels, c1_channels, **kwargs):$/;" m class:DepthwiseSeparableASPPHead
+forward mmseg\models\decode_heads\sep_aspp_head.py /^ def forward(self, inputs):$/;" m class:DepthwiseSeparableASPPHead
+nn mmseg\models\decode_heads\sep_aspp_head.py /^import torch.nn as nn$/;" i
+resize mmseg\models\decode_heads\sep_aspp_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\sep_aspp_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\sep_aspp_head.py /^import torch.nn as nn$/;" i
+DepthwiseSeparableConvModule mmseg\models\decode_heads\sep_fcn_head.py /^from mmcv.cnn import DepthwiseSeparableConvModule$/;" i
+DepthwiseSeparableFCNHead mmseg\models\decode_heads\sep_fcn_head.py /^class DepthwiseSeparableFCNHead(FCNHead):$/;" c
+FCNHead mmseg\models\decode_heads\sep_fcn_head.py /^from .fcn_head import FCNHead$/;" i
+HEADS mmseg\models\decode_heads\sep_fcn_head.py /^from ..builder import HEADS$/;" i
+__init__ mmseg\models\decode_heads\sep_fcn_head.py /^ def __init__(self, **kwargs):$/;" m class:DepthwiseSeparableFCNHead
+BaseDecodeHead mmseg\models\decode_heads\uper_head.py /^from .decode_head import BaseDecodeHead$/;" i
+ConvModule mmseg\models\decode_heads\uper_head.py /^from mmcv.cnn import ConvModule$/;" i
+HEADS mmseg\models\decode_heads\uper_head.py /^from ..builder import HEADS$/;" i
+PPM mmseg\models\decode_heads\uper_head.py /^from .psp_head import PPM$/;" i
+UPerHead mmseg\models\decode_heads\uper_head.py /^class UPerHead(BaseDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\uper_head.py /^ def __init__(self, pool_scales=(1, 2, 3, 6), **kwargs):$/;" m class:UPerHead
+forward mmseg\models\decode_heads\uper_head.py /^ def forward(self, inputs):$/;" m class:UPerHead
+nn mmseg\models\decode_heads\uper_head.py /^import torch.nn as nn$/;" i
+psp_forward mmseg\models\decode_heads\uper_head.py /^ def psp_forward(self, inputs):$/;" m class:UPerHead
+resize mmseg\models\decode_heads\uper_head.py /^from mmseg.ops import resize$/;" i
+torch mmseg\models\decode_heads\uper_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\uper_head.py /^import torch.nn as nn$/;" i
+BaseDecodeHead mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .decode_head import BaseDecodeHead$/;" i
+Block mmseg\models\decode_heads\vit_mla_auxi_head.py /^from ..backbones.vit import Block$/;" i
+DropPath mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\vit_mla_auxi_head.py /^from ..builder import HEADS$/;" i
+VIT_MLA_AUXIHead mmseg\models\decode_heads\vit_mla_auxi_head.py /^class VIT_MLA_AUXIHead(BaseDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\vit_mla_auxi_head.py /^ def __init__(self, img_size=768, **kwargs):$/;" m class:VIT_MLA_AUXIHead
+build_norm_layer mmseg\models\decode_heads\vit_mla_auxi_head.py /^from mmcv.cnn import build_norm_layer$/;" i
+forward mmseg\models\decode_heads\vit_mla_auxi_head.py /^ def forward(self, x):$/;" m class:VIT_MLA_AUXIHead
+load_pretrained mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .helpers import load_pretrained$/;" i
+math mmseg\models\decode_heads\vit_mla_auxi_head.py /^import math$/;" i
+nn mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn.functional as F$/;" i
+partial mmseg\models\decode_heads\vit_mla_auxi_head.py /^from functools import partial$/;" i
+to_2D mmseg\models\decode_heads\vit_mla_auxi_head.py /^ def to_2D(self, x):$/;" m class:VIT_MLA_AUXIHead
+to_2tuple mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\vit_mla_auxi_head.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\decode_heads\vit_mla_auxi_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+BaseDecodeHead mmseg\models\decode_heads\vit_mla_head.py /^from .decode_head import BaseDecodeHead$/;" i
+Block mmseg\models\decode_heads\vit_mla_head.py /^from ..backbones.vit import Block$/;" i
+DropPath mmseg\models\decode_heads\vit_mla_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\vit_mla_head.py /^from ..builder import HEADS$/;" i
+MLAHead mmseg\models\decode_heads\vit_mla_head.py /^class MLAHead(nn.Module):$/;" c
+VIT_MLAHead mmseg\models\decode_heads\vit_mla_head.py /^class VIT_MLAHead(BaseDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\vit_mla_head.py /^ def __init__(self, img_size=768, mla_channels=256, mlahead_channels=128, $/;" m class:VIT_MLAHead
+__init__ mmseg\models\decode_heads\vit_mla_head.py /^ def __init__(self, mla_channels=256, mlahead_channels=128, norm_cfg=None):$/;" m class:MLAHead
+build_norm_layer mmseg\models\decode_heads\vit_mla_head.py /^from mmcv.cnn import build_norm_layer$/;" i
+forward mmseg\models\decode_heads\vit_mla_head.py /^ def forward(self, inputs):$/;" m class:VIT_MLAHead
+forward mmseg\models\decode_heads\vit_mla_head.py /^ def forward(self, mla_p2, mla_p3, mla_p4, mla_p5):$/;" m class:MLAHead
+load_pretrained mmseg\models\decode_heads\vit_mla_head.py /^from .helpers import load_pretrained$/;" i
+math mmseg\models\decode_heads\vit_mla_head.py /^import math$/;" i
+nn mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn.functional as F$/;" i
+partial mmseg\models\decode_heads\vit_mla_head.py /^from functools import partial$/;" i
+to_2tuple mmseg\models\decode_heads\vit_mla_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\decode_heads\vit_mla_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\vit_mla_head.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\decode_heads\vit_mla_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+BaseDecodeHead mmseg\models\decode_heads\vit_up_head.py /^from .decode_head import BaseDecodeHead$/;" i
+Block mmseg\models\decode_heads\vit_up_head.py /^from ..backbones.vit import Block$/;" i
+DropPath mmseg\models\decode_heads\vit_up_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+F mmseg\models\decode_heads\vit_up_head.py /^import torch.nn.functional as F$/;" i
+HEADS mmseg\models\decode_heads\vit_up_head.py /^from ..builder import HEADS$/;" i
+VisionTransformerUpHead mmseg\models\decode_heads\vit_up_head.py /^class VisionTransformerUpHead(BaseDecodeHead):$/;" c
+__init__ mmseg\models\decode_heads\vit_up_head.py /^ def __init__(self, img_size=768, embed_dim=1024, $/;" m class:VisionTransformerUpHead
+build_norm_layer mmseg\models\decode_heads\vit_up_head.py /^from mmcv.cnn import build_norm_layer$/;" i
+forward mmseg\models\decode_heads\vit_up_head.py /^ def forward(self, x):$/;" m class:VisionTransformerUpHead
+init_weights mmseg\models\decode_heads\vit_up_head.py /^ def init_weights(self):$/;" m class:VisionTransformerUpHead
+load_pretrained mmseg\models\decode_heads\vit_up_head.py /^from .helpers import load_pretrained$/;" i
+math mmseg\models\decode_heads\vit_up_head.py /^import math$/;" i
+nn mmseg\models\decode_heads\vit_up_head.py /^import torch.nn as nn$/;" i
+nn mmseg\models\decode_heads\vit_up_head.py /^import torch.nn.functional as F$/;" i
+partial mmseg\models\decode_heads\vit_up_head.py /^from functools import partial$/;" i
+to_2tuple mmseg\models\decode_heads\vit_up_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+torch mmseg\models\decode_heads\vit_up_head.py /^import torch$/;" i
+torch mmseg\models\decode_heads\vit_up_head.py /^import torch.nn as nn$/;" i
+torch mmseg\models\decode_heads\vit_up_head.py /^import torch.nn.functional as F$/;" i
+trunc_normal_ mmseg\models\decode_heads\vit_up_head.py /^from .layers import DropPath, to_2tuple, trunc_normal_$/;" i
+Accuracy mmseg\models\losses\__init__.py /^from .accuracy import Accuracy, accuracy$/;" i
+CrossEntropyLoss mmseg\models\losses\__init__.py /^from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy,$/;" i
+LovaszLoss mmseg\models\losses\__init__.py /^from .lovasz_loss import LovaszLoss$/;" i
+__all__ mmseg\models\losses\__init__.py /^__all__ = [$/;" v
+accuracy mmseg\models\losses\__init__.py /^from .accuracy import Accuracy, accuracy$/;" i
+binary_cross_entropy mmseg\models\losses\__init__.py /^from .cross_entropy_loss import (CrossEntropyLoss, binary_cross_entropy,$/;" i
+reduce_loss mmseg\models\losses\__init__.py /^from .utils import reduce_loss, weight_reduce_loss, weighted_loss$/;" i
+weight_reduce_loss mmseg\models\losses\__init__.py /^from .utils import reduce_loss, weight_reduce_loss, weighted_loss$/;" i
+weighted_loss mmseg\models\losses\__init__.py /^from .utils import reduce_loss, weight_reduce_loss, weighted_loss$/;" i
+Accuracy mmseg\models\losses\accuracy.py /^class Accuracy(nn.Module):$/;" c
+__init__ mmseg\models\losses\accuracy.py /^ def __init__(self, topk=(1, ), thresh=None):$/;" m class:Accuracy
+accuracy mmseg\models\losses\accuracy.py /^def accuracy(pred, target, topk=1, thresh=None):$/;" f
+forward mmseg\models\losses\accuracy.py /^ def forward(self, pred, target):$/;" m class:Accuracy
+nn mmseg\models\losses\accuracy.py /^import torch.nn as nn$/;" i
+torch mmseg\models\losses\accuracy.py /^import torch.nn as nn$/;" i
+CrossEntropyLoss mmseg\models\losses\cross_entropy_loss.py /^class CrossEntropyLoss(nn.Module):$/;" c
+F mmseg\models\losses\cross_entropy_loss.py /^import torch.nn.functional as F$/;" i
+LOSSES mmseg\models\losses\cross_entropy_loss.py /^from ..builder import LOSSES$/;" i
+__init__ mmseg\models\losses\cross_entropy_loss.py /^ def __init__(self,$/;" m class:CrossEntropyLoss
+_expand_onehot_labels mmseg\models\losses\cross_entropy_loss.py /^def _expand_onehot_labels(labels, label_weights, target_shape, ignore_index):$/;" f
+binary_cross_entropy mmseg\models\losses\cross_entropy_loss.py /^def binary_cross_entropy(pred,$/;" f
+cross_entropy mmseg\models\losses\cross_entropy_loss.py /^def cross_entropy(pred,$/;" f
+forward mmseg\models\losses\cross_entropy_loss.py /^ def forward(self,$/;" m class:CrossEntropyLoss
+mask_cross_entropy mmseg\models\losses\cross_entropy_loss.py /^def mask_cross_entropy(pred,$/;" f
+nn mmseg\models\losses\cross_entropy_loss.py /^import torch.nn as nn$/;" i
+nn mmseg\models\losses\cross_entropy_loss.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\losses\cross_entropy_loss.py /^import torch$/;" i
+torch mmseg\models\losses\cross_entropy_loss.py /^import torch.nn as nn$/;" i
+torch mmseg\models\losses\cross_entropy_loss.py /^import torch.nn.functional as F$/;" i
+weight_reduce_loss mmseg\models\losses\cross_entropy_loss.py /^from .utils import weight_reduce_loss$/;" i
+F mmseg\models\losses\lovasz_loss.py /^import torch.nn.functional as F$/;" i
+LOSSES mmseg\models\losses\lovasz_loss.py /^from ..builder import LOSSES$/;" i
+LovaszLoss mmseg\models\losses\lovasz_loss.py /^class LovaszLoss(nn.Module):$/;" c
+__init__ mmseg\models\losses\lovasz_loss.py /^ def __init__(self,$/;" m class:LovaszLoss
+c mmseg\models\losses\lovasz_loss.py /^ fg = (labels == c).float() # foreground for class c$/;" c function:lovasz_softmax_flat
+class_pred mmseg\models\losses\lovasz_loss.py /^ class_pred = probs[:, 0]$/;" v class:lovasz_softmax_flat.c
+class_pred mmseg\models\losses\lovasz_loss.py /^ class_pred = probs[:, c]$/;" v class:lovasz_softmax_flat.c
+flatten_binary_logits mmseg\models\losses\lovasz_loss.py /^def flatten_binary_logits(logits, labels, ignore_index=None):$/;" f
+flatten_probs mmseg\models\losses\lovasz_loss.py /^def flatten_probs(probs, labels, ignore_index=None):$/;" f
+forward mmseg\models\losses\lovasz_loss.py /^ def forward(self,$/;" m class:LovaszLoss
+lovasz_grad mmseg\models\losses\lovasz_loss.py /^def lovasz_grad(gt_sorted):$/;" f
+lovasz_hinge mmseg\models\losses\lovasz_loss.py /^def lovasz_hinge(logits,$/;" f
+lovasz_hinge_flat mmseg\models\losses\lovasz_loss.py /^def lovasz_hinge_flat(logits, labels):$/;" f
+lovasz_softmax mmseg\models\losses\lovasz_loss.py /^def lovasz_softmax(probs,$/;" f
+lovasz_softmax_flat mmseg\models\losses\lovasz_loss.py /^def lovasz_softmax_flat(probs, labels, classes='present', class_weight=None):$/;" f
+mmcv mmseg\models\losses\lovasz_loss.py /^import mmcv$/;" i
+nn mmseg\models\losses\lovasz_loss.py /^import torch.nn as nn$/;" i
+nn mmseg\models\losses\lovasz_loss.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\losses\lovasz_loss.py /^import torch$/;" i
+torch mmseg\models\losses\lovasz_loss.py /^import torch.nn as nn$/;" i
+torch mmseg\models\losses\lovasz_loss.py /^import torch.nn.functional as F$/;" i
+weight_reduce_loss mmseg\models\losses\lovasz_loss.py /^from .utils import weight_reduce_loss$/;" i
+F mmseg\models\losses\utils.py /^import torch.nn.functional as F$/;" i
+functools mmseg\models\losses\utils.py /^import functools$/;" i
+nn mmseg\models\losses\utils.py /^import torch.nn.functional as F$/;" i
+reduce_loss mmseg\models\losses\utils.py /^def reduce_loss(loss, reduction):$/;" f
+torch mmseg\models\losses\utils.py /^import torch.nn.functional as F$/;" i
+weight_reduce_loss mmseg\models\losses\utils.py /^def weight_reduce_loss(loss, weight=None, reduction='mean', avg_factor=None):$/;" f
+weighted_loss mmseg\models\losses\utils.py /^def weighted_loss(loss_func):$/;" f
+wrapper mmseg\models\losses\utils.py /^ def wrapper(pred,$/;" f function:weighted_loss
+FPN mmseg\models\necks\__init__.py /^from .fpn import FPN$/;" i
+__all__ mmseg\models\necks\__init__.py /^__all__ = ['FPN']$/;" v
+ConvModule mmseg\models\necks\fpn.py /^from mmcv.cnn import ConvModule, xavier_init$/;" i
+F mmseg\models\necks\fpn.py /^import torch.nn.functional as F$/;" i
+FPN mmseg\models\necks\fpn.py /^class FPN(nn.Module):$/;" c
+NECKS mmseg\models\necks\fpn.py /^from ..builder import NECKS$/;" i
+__init__ mmseg\models\necks\fpn.py /^ def __init__(self,$/;" m class:FPN
+forward mmseg\models\necks\fpn.py /^ def forward(self, inputs):$/;" m class:FPN
+init_weights mmseg\models\necks\fpn.py /^ def init_weights(self):$/;" m class:FPN
+nn mmseg\models\necks\fpn.py /^import torch.nn as nn$/;" i
+nn mmseg\models\necks\fpn.py /^import torch.nn.functional as F$/;" i
+torch mmseg\models\necks\fpn.py /^import torch.nn as nn$/;" i
+torch mmseg\models\necks\fpn.py /^import torch.nn.functional as F$/;" i
+xavier_init mmseg\models\necks\fpn.py /^from mmcv.cnn import ConvModule, xavier_init$/;" i
+CascadeEncoderDecoder mmseg\models\segmentors\__init__.py /^from .cascade_encoder_decoder import CascadeEncoderDecoder$/;" i
+EncoderDecoder mmseg\models\segmentors\__init__.py /^from .encoder_decoder import EncoderDecoder$/;" i
+__all__ mmseg\models\segmentors\__init__.py /^__all__ = ['EncoderDecoder', 'CascadeEncoderDecoder']$/;" v
+ABCMeta mmseg\models\segmentors\base.py /^from abc import ABCMeta, abstractmethod$/;" i
+BaseSegmentor mmseg\models\segmentors\base.py /^class BaseSegmentor(nn.Module):$/;" c
+OrderedDict mmseg\models\segmentors\base.py /^from collections import OrderedDict$/;" i
+__init__ mmseg\models\segmentors\base.py /^ def __init__(self):$/;" m class:BaseSegmentor
+__metaclass__ mmseg\models\segmentors\base.py /^ __metaclass__ = ABCMeta$/;" v class:BaseSegmentor
+_parse_losses mmseg\models\segmentors\base.py /^ def _parse_losses(losses):$/;" m class:BaseSegmentor
+abstractmethod mmseg\models\segmentors\base.py /^from abc import ABCMeta, abstractmethod$/;" i
+aug_test mmseg\models\segmentors\base.py /^ def aug_test(self, imgs, img_metas, **kwargs):$/;" m class:BaseSegmentor
+auto_fp16 mmseg\models\segmentors\base.py /^from mmcv.runner import auto_fp16$/;" i
+dist mmseg\models\segmentors\base.py /^import torch.distributed as dist$/;" i
+encode_decode mmseg\models\segmentors\base.py /^ def encode_decode(self, img, img_metas):$/;" m class:BaseSegmentor
+extract_feat mmseg\models\segmentors\base.py /^ def extract_feat(self, imgs):$/;" m class:BaseSegmentor
+forward mmseg\models\segmentors\base.py /^ def forward(self, img, img_metas, return_loss=True, **kwargs):$/;" m class:BaseSegmentor
+forward_test mmseg\models\segmentors\base.py /^ def forward_test(self, imgs, img_metas, **kwargs):$/;" m class:BaseSegmentor
+forward_train mmseg\models\segmentors\base.py /^ def forward_train(self, imgs, img_metas, **kwargs):$/;" m class:BaseSegmentor
+init_weights mmseg\models\segmentors\base.py /^ def init_weights(self, pretrained=None):$/;" m class:BaseSegmentor
+logging mmseg\models\segmentors\base.py /^import logging$/;" i
+mmcv mmseg\models\segmentors\base.py /^import mmcv$/;" i
+nn mmseg\models\segmentors\base.py /^import torch.nn as nn$/;" i
+np mmseg\models\segmentors\base.py /^import numpy as np$/;" i
+show_result mmseg\models\segmentors\base.py /^ def show_result(self,$/;" m class:BaseSegmentor
+simple_test mmseg\models\segmentors\base.py /^ def simple_test(self, img, img_meta, **kwargs):$/;" m class:BaseSegmentor
+torch mmseg\models\segmentors\base.py /^import torch$/;" i
+torch mmseg\models\segmentors\base.py /^import torch.distributed as dist$/;" i
+torch mmseg\models\segmentors\base.py /^import torch.nn as nn$/;" i
+train_step mmseg\models\segmentors\base.py /^ def train_step(self, data_batch, optimizer, **kwargs):$/;" m class:BaseSegmentor
+val_step mmseg\models\segmentors\base.py /^ def val_step(self, data_batch, **kwargs):$/;" m class:BaseSegmentor
+warnings mmseg\models\segmentors\base.py /^import warnings$/;" i
+with_auxiliary_head mmseg\models\segmentors\base.py /^ def with_auxiliary_head(self):$/;" m class:BaseSegmentor
+with_decode_head mmseg\models\segmentors\base.py /^ def with_decode_head(self):$/;" m class:BaseSegmentor
+with_neck mmseg\models\segmentors\base.py /^ def with_neck(self):$/;" m class:BaseSegmentor
+CascadeEncoderDecoder mmseg\models\segmentors\cascade_encoder_decoder.py /^class CascadeEncoderDecoder(EncoderDecoder):$/;" c
+EncoderDecoder mmseg\models\segmentors\cascade_encoder_decoder.py /^from .encoder_decoder import EncoderDecoder$/;" i
+SEGMENTORS mmseg\models\segmentors\cascade_encoder_decoder.py /^from ..builder import SEGMENTORS$/;" i
+__init__ mmseg\models\segmentors\cascade_encoder_decoder.py /^ def __init__(self,$/;" m class:CascadeEncoderDecoder
+_decode_head_forward_train mmseg\models\segmentors\cascade_encoder_decoder.py /^ def _decode_head_forward_train(self, x, img_metas, gt_semantic_seg):$/;" m class:CascadeEncoderDecoder
+_init_decode_head mmseg\models\segmentors\cascade_encoder_decoder.py /^ def _init_decode_head(self, decode_head):$/;" m class:CascadeEncoderDecoder
+add_prefix mmseg\models\segmentors\cascade_encoder_decoder.py /^from mmseg.core import add_prefix$/;" i
+builder mmseg\models\segmentors\cascade_encoder_decoder.py /^from .. import builder$/;" i
+encode_decode mmseg\models\segmentors\cascade_encoder_decoder.py /^ def encode_decode(self, img, img_metas):$/;" m class:CascadeEncoderDecoder
+init_weights mmseg\models\segmentors\cascade_encoder_decoder.py /^ def init_weights(self, pretrained=None):$/;" m class:CascadeEncoderDecoder
+nn mmseg\models\segmentors\cascade_encoder_decoder.py /^from torch import nn$/;" i
+resize mmseg\models\segmentors\cascade_encoder_decoder.py /^from mmseg.ops import resize$/;" i
+BaseSegmentor mmseg\models\segmentors\encoder_decoder.py /^from .base import BaseSegmentor$/;" i
+EncoderDecoder mmseg\models\segmentors\encoder_decoder.py /^class EncoderDecoder(BaseSegmentor):$/;" c
+F mmseg\models\segmentors\encoder_decoder.py /^import torch.nn.functional as F$/;" i
+SEGMENTORS mmseg\models\segmentors\encoder_decoder.py /^from ..builder import SEGMENTORS$/;" i
+__init__ mmseg\models\segmentors\encoder_decoder.py /^ def __init__(self,$/;" m class:EncoderDecoder
+_auxiliary_head_forward_train mmseg\models\segmentors\encoder_decoder.py /^ def _auxiliary_head_forward_train(self, x, img_metas, gt_semantic_seg):$/;" m class:EncoderDecoder
+_decode_head_forward_test mmseg\models\segmentors\encoder_decoder.py /^ def _decode_head_forward_test(self, x, img_metas):$/;" m class:EncoderDecoder
+_decode_head_forward_train mmseg\models\segmentors\encoder_decoder.py /^ def _decode_head_forward_train(self, x, img_metas, gt_semantic_seg):$/;" m class:EncoderDecoder
+_init_auxiliary_head mmseg\models\segmentors\encoder_decoder.py /^ def _init_auxiliary_head(self, auxiliary_head):$/;" m class:EncoderDecoder
+_init_decode_head mmseg\models\segmentors\encoder_decoder.py /^ def _init_decode_head(self, decode_head):$/;" m class:EncoderDecoder
+add_prefix mmseg\models\segmentors\encoder_decoder.py /^from mmseg.core import add_prefix$/;" i
+aug_test mmseg\models\segmentors\encoder_decoder.py /^ def aug_test(self, imgs, img_metas, rescale=True):$/;" m class:EncoderDecoder
+builder mmseg\models\segmentors\encoder_decoder.py /^from .. import builder$/;" i
+encode_decode mmseg\models\segmentors\encoder_decoder.py /^ def encode_decode(self, img, img_metas):$/;" m class:EncoderDecoder
+extract_feat mmseg\models\segmentors\encoder_decoder.py /^ def extract_feat(self, img):$/;" m class:EncoderDecoder
+forward_dummy mmseg\models\segmentors\encoder_decoder.py /^ def forward_dummy(self, img):$/;" m class:EncoderDecoder
+forward_train mmseg\models\segmentors\encoder_decoder.py /^ def forward_train(self, img, img_metas, gt_semantic_seg):$/;" m class:EncoderDecoder
+inference mmseg\models\segmentors\encoder_decoder.py /^ def inference(self, img, img_meta, rescale):$/;" m class:EncoderDecoder
+init_weights mmseg\models\segmentors\encoder_decoder.py /^ def init_weights(self, pretrained=None):$/;" m class:EncoderDecoder
+nn mmseg\models\segmentors\encoder_decoder.py /^import torch.nn as nn$/;" i
+nn mmseg\models\segmentors\encoder_decoder.py /^import torch.nn.functional as F$/;" i
+resize mmseg\models\segmentors\encoder_decoder.py /^from mmseg.ops import resize$/;" i
+simple_test mmseg\models\segmentors\encoder_decoder.py /^ def simple_test(self, img, img_meta, rescale=True):$/;" m class:EncoderDecoder
+slide_inference mmseg\models\segmentors\encoder_decoder.py /^ def slide_inference(self, img, img_meta, rescale):$/;" m class:EncoderDecoder
+torch mmseg\models\segmentors\encoder_decoder.py /^import torch$/;" i
+torch mmseg\models\segmentors\encoder_decoder.py /^import torch.nn as nn$/;" i
+torch mmseg\models\segmentors\encoder_decoder.py /^import torch.nn.functional as F$/;" i
+whole_inference mmseg\models\segmentors\encoder_decoder.py /^ def whole_inference(self, img, img_meta, rescale):$/;" m class:EncoderDecoder
+InvertedResidual mmseg\models\utils\__init__.py /^from .inverted_residual import InvertedResidual, InvertedResidualV3$/;" i
+InvertedResidualV3 mmseg\models\utils\__init__.py /^from .inverted_residual import InvertedResidual, InvertedResidualV3$/;" i
+ResLayer mmseg\models\utils\__init__.py /^from .res_layer import ResLayer$/;" i
+SelfAttentionBlock mmseg\models\utils\__init__.py /^from .self_attention_block import SelfAttentionBlock$/;" i
+UpConvBlock mmseg\models\utils\__init__.py /^from .up_conv_block import UpConvBlock$/;" i
+__all__ mmseg\models\utils\__init__.py /^__all__ = [$/;" v
+make_divisible mmseg\models\utils\__init__.py /^from .make_divisible import make_divisible$/;" i
+ConvModule mmseg\models\utils\inverted_residual.py /^from mmcv.cnn import ConvModule$/;" i
+InvertedResidual mmseg\models\utils\inverted_residual.py /^class InvertedResidual(nn.Module):$/;" c
+InvertedResidualV3 mmseg\models\utils\inverted_residual.py /^class InvertedResidualV3(nn.Module):$/;" c
+SELayer mmseg\models\utils\inverted_residual.py /^from .se_layer import SELayer$/;" i
+__init__ mmseg\models\utils\inverted_residual.py /^ def __init__(self,$/;" m class:InvertedResidual
+__init__ mmseg\models\utils\inverted_residual.py /^ def __init__(self,$/;" m class:InvertedResidualV3
+_inner_forward mmseg\models\utils\inverted_residual.py /^ def _inner_forward(x):$/;" f function:InvertedResidual.forward
+_inner_forward mmseg\models\utils\inverted_residual.py /^ def _inner_forward(x):$/;" f function:InvertedResidualV3.forward
+cp mmseg\models\utils\inverted_residual.py /^from torch.utils import checkpoint as cp$/;" i
+forward mmseg\models\utils\inverted_residual.py /^ def forward(self, x):$/;" m class:InvertedResidual
+forward mmseg\models\utils\inverted_residual.py /^ def forward(self, x):$/;" m class:InvertedResidualV3
+nn mmseg\models\utils\inverted_residual.py /^from torch import nn as nn$/;" i
+make_divisible mmseg\models\utils\make_divisible.py /^def make_divisible(value, divisor, min_value=None, min_ratio=0.9):$/;" f
+ResLayer mmseg\models\utils\res_layer.py /^class ResLayer(nn.Sequential):$/;" c
+__init__ mmseg\models\utils\res_layer.py /^ def __init__(self,$/;" m class:ResLayer
+build_conv_layer mmseg\models\utils\res_layer.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+build_norm_layer mmseg\models\utils\res_layer.py /^from mmcv.cnn import build_conv_layer, build_norm_layer$/;" i
+nn mmseg\models\utils\res_layer.py /^from torch import nn as nn$/;" i
+ConvModule mmseg\models\utils\se_layer.py /^from mmcv.cnn import ConvModule$/;" i
+SELayer mmseg\models\utils\se_layer.py /^class SELayer(nn.Module):$/;" c
+__init__ mmseg\models\utils\se_layer.py /^ def __init__(self,$/;" m class:SELayer
+forward mmseg\models\utils\se_layer.py /^ def forward(self, x):$/;" m class:SELayer
+make_divisible mmseg\models\utils\se_layer.py /^from .make_divisible import make_divisible$/;" i
+mmcv mmseg\models\utils\se_layer.py /^import mmcv$/;" i
+nn mmseg\models\utils\se_layer.py /^import torch.nn as nn$/;" i
+torch mmseg\models\utils\se_layer.py /^import torch.nn as nn$/;" i
+ConvModule mmseg\models\utils\self_attention_block.py /^from mmcv.cnn import ConvModule, constant_init$/;" i
+F mmseg\models\utils\self_attention_block.py /^from torch.nn import functional as F$/;" i
+SelfAttentionBlock mmseg\models\utils\self_attention_block.py /^class SelfAttentionBlock(nn.Module):$/;" c
+__init__ mmseg\models\utils\self_attention_block.py /^ def __init__(self, key_in_channels, query_in_channels, channels,$/;" m class:SelfAttentionBlock
+build_project mmseg\models\utils\self_attention_block.py /^ def build_project(self, in_channels, channels, num_convs, use_conv_module,$/;" m class:SelfAttentionBlock
+constant_init mmseg\models\utils\self_attention_block.py /^from mmcv.cnn import ConvModule, constant_init$/;" i
+forward mmseg\models\utils\self_attention_block.py /^ def forward(self, query_feats, key_feats):$/;" m class:SelfAttentionBlock
+init_weights mmseg\models\utils\self_attention_block.py /^ def init_weights(self):$/;" m class:SelfAttentionBlock
+nn mmseg\models\utils\self_attention_block.py /^from torch import nn as nn$/;" i
+torch mmseg\models\utils\self_attention_block.py /^import torch$/;" i
+ConvModule mmseg\models\utils\up_conv_block.py /^from mmcv.cnn import ConvModule, build_upsample_layer$/;" i
+UpConvBlock mmseg\models\utils\up_conv_block.py /^class UpConvBlock(nn.Module):$/;" c
+__init__ mmseg\models\utils\up_conv_block.py /^ def __init__(self,$/;" m class:UpConvBlock
+build_upsample_layer mmseg\models\utils\up_conv_block.py /^from mmcv.cnn import ConvModule, build_upsample_layer$/;" i
+forward mmseg\models\utils\up_conv_block.py /^ def forward(self, skip, x):$/;" m class:UpConvBlock
+nn mmseg\models\utils\up_conv_block.py /^import torch.nn as nn$/;" i
+torch mmseg\models\utils\up_conv_block.py /^import torch$/;" i
+torch mmseg\models\utils\up_conv_block.py /^import torch.nn as nn$/;" i
+Encoding mmseg\ops\__init__.py /^from .encoding import Encoding$/;" i
+Upsample mmseg\ops\__init__.py /^from .wrappers import Upsample, resize$/;" i
+__all__ mmseg\ops\__init__.py /^__all__ = ['Upsample', 'resize', 'Encoding']$/;" v
+resize mmseg\ops\__init__.py /^from .wrappers import Upsample, resize$/;" i
+Encoding mmseg\ops\encoding.py /^class Encoding(nn.Module):$/;" c
+F mmseg\ops\encoding.py /^from torch.nn import functional as F$/;" i
+__init__ mmseg\ops\encoding.py /^ def __init__(self, channels, num_codes):$/;" m class:Encoding
+__repr__ mmseg\ops\encoding.py /^ def __repr__(self):$/;" m class:Encoding file:
+aggregate mmseg\ops\encoding.py /^ def aggregate(assigment_weights, x, codewords):$/;" m class:Encoding
+forward mmseg\ops\encoding.py /^ def forward(self, x):$/;" m class:Encoding
+nn mmseg\ops\encoding.py /^from torch import nn as nn$/;" i
+scaled_l2 mmseg\ops\encoding.py /^ def scaled_l2(x, codewords, scale):$/;" m class:Encoding
+torch mmseg\ops\encoding.py /^import torch$/;" i
+F mmseg\ops\wrappers.py /^import torch.nn.functional as F$/;" i
+Upsample mmseg\ops\wrappers.py /^class Upsample(nn.Module):$/;" c
+__init__ mmseg\ops\wrappers.py /^ def __init__(self,$/;" m class:Upsample
+forward mmseg\ops\wrappers.py /^ def forward(self, x):$/;" m class:Upsample
+nn mmseg\ops\wrappers.py /^import torch.nn as nn$/;" i
+nn mmseg\ops\wrappers.py /^import torch.nn.functional as F$/;" i
+resize mmseg\ops\wrappers.py /^def resize(input,$/;" f
+torch mmseg\ops\wrappers.py /^import torch$/;" i
+torch mmseg\ops\wrappers.py /^import torch.nn as nn$/;" i
+torch mmseg\ops\wrappers.py /^import torch.nn.functional as F$/;" i
+warnings mmseg\ops\wrappers.py /^import warnings$/;" i
+__all__ mmseg\utils\__init__.py /^__all__ = ['get_root_logger', 'collect_env']$/;" v
+collect_env mmseg\utils\__init__.py /^from .collect_env import collect_env$/;" i
+get_root_logger mmseg\utils\__init__.py /^from .logger import get_root_logger$/;" i
+collect_base_env mmseg\utils\collect_env.py /^from mmcv.utils import collect_env as collect_base_env$/;" i
+collect_env mmseg\utils\collect_env.py /^def collect_env():$/;" f
+get_git_hash mmseg\utils\collect_env.py /^from mmcv.utils import get_git_hash$/;" i
+mmseg mmseg\utils\collect_env.py /^import mmseg$/;" i
+get_logger mmseg\utils\logger.py /^from mmcv.utils import get_logger$/;" i
+get_root_logger mmseg\utils\logger.py /^def get_root_logger(log_file=None, log_level=logging.INFO):$/;" f
+logging mmseg\utils\logger.py /^import logging$/;" i
+__version__ mmseg\version.py /^__version__ = '0.11.0'$/;" v
+parse_version_info mmseg\version.py /^def parse_version_info(version_str):$/;" f
+version_info mmseg\version.py /^version_info = parse_version_info(__version__)$/;" v
+exists setup.py /^ from os.path import exists$/;" i
+find_packages setup.py /^from setuptools import find_packages, setup$/;" i
+gen_packages_items setup.py /^ def gen_packages_items():$/;" f function:parse_requirements
+get_version setup.py /^def get_version():$/;" f
+parse_line setup.py /^ def parse_line(line):$/;" f function:parse_requirements
+parse_require_file setup.py /^ def parse_require_file(fpath):$/;" f function:parse_requirements
+parse_requirements setup.py /^def parse_requirements(fname='requirements.txt', with_version=True):$/;" f
+re setup.py /^ import re$/;" i
+readme setup.py /^def readme():$/;" f
+setup setup.py /^from setuptools import find_packages, setup$/;" i
+sys setup.py /^ import sys$/;" i
+version_file setup.py /^version_file = 'mmseg\/version.py'$/;" v
+Compose tests\test_config.py /^ from mmseg.datasets.pipelines import Compose$/;" i
+Config tests\test_config.py /^ from mmcv import Config$/;" i
+Config tests\test_config.py /^from mmcv import Config$/;" i
+_check_decode_head tests\test_config.py /^def _check_decode_head(decode_head_cfg, decode_head):$/;" f
+_get_config_directory tests\test_config.py /^def _get_config_directory():$/;" f
+build_segmentor tests\test_config.py /^from mmseg.models import build_segmentor$/;" i
+dirname tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+exists tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+glob tests\test_config.py /^ import glob$/;" i
+glob tests\test_config.py /^import glob$/;" i
+isdir tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+join tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+mmseg tests\test_config.py /^ import mmseg$/;" i
+nn tests\test_config.py /^from torch import nn$/;" i
+np tests\test_config.py /^ import numpy as np$/;" i
+os tests\test_config.py /^import os$/;" i
+relpath tests\test_config.py /^from os.path import dirname, exists, isdir, join, relpath$/;" i
+test_config_build_segmentor tests\test_config.py /^def test_config_build_segmentor():$/;" f
+test_config_data_pipeline tests\test_config.py /^def test_config_data_pipeline():$/;" f
+ADE20KDataset tests\test_data\test_dataset.py /^from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,$/;" i
+CityscapesDataset tests\test_data\test_dataset.py /^from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,$/;" i
+DATASETS tests\test_data\test_dataset.py /^from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,$/;" i
+MagicMock tests\test_data\test_dataset.py /^from unittest.mock import MagicMock, patch$/;" i
+get_classes tests\test_data\test_dataset.py /^from mmseg.core.evaluation import get_classes, get_palette$/;" i
+get_palette tests\test_data\test_dataset.py /^from mmseg.core.evaluation import get_classes, get_palette$/;" i
+np tests\test_data\test_dataset.py /^import numpy as np$/;" i
+os tests\test_data\test_dataset.py /^import os.path as osp$/;" i
+osp tests\test_data\test_dataset.py /^import os.path as osp$/;" i
+patch tests\test_data\test_dataset.py /^from unittest.mock import MagicMock, patch$/;" i
+pytest tests\test_data\test_dataset.py /^import pytest$/;" i
+test_classes tests\test_data\test_dataset.py /^def test_classes():$/;" f
+test_custom_classes_override_default tests\test_data\test_dataset.py /^def test_custom_classes_override_default(dataset, classes):$/;" f
+test_custom_dataset tests\test_data\test_dataset.py /^def test_custom_dataset():$/;" f
+test_custom_dataset_custom_palette tests\test_data\test_dataset.py /^def test_custom_dataset_custom_palette():$/;" f
+test_custom_dataset_random_palette_is_generated tests\test_data\test_dataset.py /^def test_custom_dataset_random_palette_is_generated():$/;" f
+test_dataset_wrapper tests\test_data\test_dataset.py /^def test_dataset_wrapper():$/;" f
+test_palette tests\test_data\test_dataset.py /^def test_palette():$/;" f
+ConcatDataset tests\test_data\test_dataset_builder.py /^from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,$/;" i
+DATASETS tests\test_data\test_dataset_builder.py /^from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,$/;" i
+DistributedSampler tests\test_data\test_dataset_builder.py /^from torch.utils.data import (DistributedSampler, RandomSampler,$/;" i
+RandomSampler tests\test_data\test_dataset_builder.py /^from torch.utils.data import (DistributedSampler, RandomSampler,$/;" i
+ToyDataset tests\test_data\test_dataset_builder.py /^class ToyDataset(object):$/;" c
+__init__ tests\test_data\test_dataset_builder.py /^ def __init__(self, cnt=0):$/;" m class:ToyDataset
+__item__ tests\test_data\test_dataset_builder.py /^ def __item__(self, idx):$/;" m class:ToyDataset file:
+__len__ tests\test_data\test_dataset_builder.py /^ def __len__(self):$/;" m class:ToyDataset file:
+build_dataloader tests\test_data\test_dataset_builder.py /^from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,$/;" i
+math tests\test_data\test_dataset_builder.py /^import math$/;" i
+os tests\test_data\test_dataset_builder.py /^import os.path as osp$/;" i
+osp tests\test_data\test_dataset_builder.py /^import os.path as osp$/;" i
+pytest tests\test_data\test_dataset_builder.py /^import pytest$/;" i
+test_build_dataloader tests\test_data\test_dataset_builder.py /^def test_build_dataloader():$/;" f
+test_build_dataset tests\test_data\test_dataset_builder.py /^def test_build_dataset():$/;" f
+LoadAnnotations tests\test_data\test_loading.py /^from mmseg.datasets.pipelines import LoadAnnotations, LoadImageFromFile$/;" i
+LoadImageFromFile tests\test_data\test_loading.py /^from mmseg.datasets.pipelines import LoadAnnotations, LoadImageFromFile$/;" i
+TestLoading tests\test_data\test_loading.py /^class TestLoading(object):$/;" c
+copy tests\test_data\test_loading.py /^import copy$/;" i
+mmcv tests\test_data\test_loading.py /^import mmcv$/;" i
+np tests\test_data\test_loading.py /^import numpy as np$/;" i
+os tests\test_data\test_loading.py /^import os.path as osp$/;" i
+osp tests\test_data\test_loading.py /^import os.path as osp$/;" i
+setup_class tests\test_data\test_loading.py /^ def setup_class(cls):$/;" m class:TestLoading
+tempfile tests\test_data\test_loading.py /^import tempfile$/;" i
+test_load_img tests\test_data\test_loading.py /^ def test_load_img(self):$/;" m class:TestLoading
+test_load_seg tests\test_data\test_loading.py /^ def test_load_seg(self):$/;" m class:TestLoading
+test_load_seg_custom_classes tests\test_data\test_loading.py /^ def test_load_seg_custom_classes(self):$/;" m class:TestLoading
+Image tests\test_data\test_transform.py /^from PIL import Image$/;" i
+PIPELINES tests\test_data\test_transform.py /^from mmseg.datasets.builder import PIPELINES$/;" i
+build_from_cfg tests\test_data\test_transform.py /^from mmcv.utils import build_from_cfg$/;" i
+copy tests\test_data\test_transform.py /^import copy$/;" i
+mmcv tests\test_data\test_transform.py /^import mmcv$/;" i
+np tests\test_data\test_transform.py /^import numpy as np$/;" i
+os tests\test_data\test_transform.py /^import os.path as osp$/;" i
+osp tests\test_data\test_transform.py /^import os.path as osp$/;" i
+pytest tests\test_data\test_transform.py /^import pytest$/;" i
+test_CLAHE tests\test_data\test_transform.py /^def test_CLAHE():$/;" f
+test_adjust_gamma tests\test_data\test_transform.py /^def test_adjust_gamma():$/;" f
+test_flip tests\test_data\test_transform.py /^def test_flip():$/;" f
+test_normalize tests\test_data\test_transform.py /^def test_normalize():$/;" f
+test_pad tests\test_data\test_transform.py /^def test_pad():$/;" f
+test_random_crop tests\test_data\test_transform.py /^def test_random_crop():$/;" f
+test_rerange tests\test_data\test_transform.py /^def test_rerange():$/;" f
+test_resize tests\test_data\test_transform.py /^def test_resize():$/;" f
+test_rgb2gray tests\test_data\test_transform.py /^def test_rgb2gray():$/;" f
+test_rotate tests\test_data\test_transform.py /^def test_rotate():$/;" f
+test_seg_rescale tests\test_data\test_transform.py /^def test_seg_rescale():$/;" f
+PIPELINES tests\test_data\test_tta.py /^from mmseg.datasets.builder import PIPELINES$/;" i
+build_from_cfg tests\test_data\test_tta.py /^from mmcv.utils import build_from_cfg$/;" i
+mmcv tests\test_data\test_tta.py /^import mmcv$/;" i
+os tests\test_data\test_tta.py /^import os.path as osp$/;" i
+osp tests\test_data\test_tta.py /^import os.path as osp$/;" i
+pytest tests\test_data\test_tta.py /^import pytest$/;" i
+test_multi_scale_flip_aug tests\test_data\test_tta.py /^def test_multi_scale_flip_aug():$/;" f
+DataLoader tests\test_eval_hook.py /^from torch.utils.data import DataLoader, Dataset$/;" i
+Dataset tests\test_eval_hook.py /^from torch.utils.data import DataLoader, Dataset$/;" i
+DistEvalHook tests\test_eval_hook.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+EvalHook tests\test_eval_hook.py /^from mmseg.core import DistEvalHook, EvalHook$/;" i
+ExampleDataset tests\test_eval_hook.py /^class ExampleDataset(Dataset):$/;" c
+ExampleModel tests\test_eval_hook.py /^class ExampleModel(nn.Module):$/;" c
+MagicMock tests\test_eval_hook.py /^from unittest.mock import MagicMock, patch$/;" i
+__getitem__ tests\test_eval_hook.py /^ def __getitem__(self, idx):$/;" m class:ExampleDataset file:
+__init__ tests\test_eval_hook.py /^ def __init__(self):$/;" m class:ExampleModel
+__len__ tests\test_eval_hook.py /^ def __len__(self):$/;" m class:ExampleDataset file:
+forward tests\test_eval_hook.py /^ def forward(self, img, img_metas, test_mode=False, **kwargs):$/;" m class:ExampleModel
+logging tests\test_eval_hook.py /^import logging$/;" i
+mmcv tests\test_eval_hook.py /^import mmcv.runner$/;" i
+multi_gpu_test tests\test_eval_hook.py /^def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False):$/;" f
+nn tests\test_eval_hook.py /^import torch.nn as nn$/;" i
+obj_from_dict tests\test_eval_hook.py /^from mmcv.runner import obj_from_dict$/;" i
+patch tests\test_eval_hook.py /^from unittest.mock import MagicMock, patch$/;" i
+pytest tests\test_eval_hook.py /^import pytest$/;" i
+runner tests\test_eval_hook.py /^import mmcv.runner$/;" i
+single_gpu_test tests\test_eval_hook.py /^from mmseg.apis import single_gpu_test$/;" i
+tempfile tests\test_eval_hook.py /^import tempfile$/;" i
+test_dist_eval_hook tests\test_eval_hook.py /^def test_dist_eval_hook():$/;" f
+test_dist_eval_hook_epoch tests\test_eval_hook.py /^def test_dist_eval_hook_epoch():$/;" f
+test_epoch_eval_hook tests\test_eval_hook.py /^def test_epoch_eval_hook():$/;" f
+test_iter_eval_hook tests\test_eval_hook.py /^def test_iter_eval_hook():$/;" f
+torch tests\test_eval_hook.py /^import torch$/;" i
+torch tests\test_eval_hook.py /^import torch.nn as nn$/;" i
+train_step tests\test_eval_hook.py /^ def train_step(self, data_batch, optimizer):$/;" m class:ExampleModel
+inference_segmentor tests\test_inference.py /^from mmseg.apis import inference_segmentor, init_segmentor$/;" i
+init_segmentor tests\test_inference.py /^from mmseg.apis import inference_segmentor, init_segmentor$/;" i
+mmcv tests\test_inference.py /^import mmcv$/;" i
+os tests\test_inference.py /^import os.path as osp$/;" i
+osp tests\test_inference.py /^import os.path as osp$/;" i
+test_test_time_augmentation_on_cpu tests\test_inference.py /^def test_test_time_augmentation_on_cpu():$/;" f
+eval_metrics tests\test_metrics.py /^from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou$/;" i
+get_confusion_matrix tests\test_metrics.py /^def get_confusion_matrix(pred_label, label, num_classes, ignore_index):$/;" f
+legacy_mean_dice tests\test_metrics.py /^def legacy_mean_dice(results, gt_seg_maps, num_classes, ignore_index):$/;" f
+legacy_mean_iou tests\test_metrics.py /^def legacy_mean_iou(results, gt_seg_maps, num_classes, ignore_index):$/;" f
+mean_dice tests\test_metrics.py /^from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou$/;" i
+mean_iou tests\test_metrics.py /^from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou$/;" i
+np tests\test_metrics.py /^import numpy as np$/;" i
+test_mean_dice tests\test_metrics.py /^def test_mean_dice():$/;" f
+test_mean_iou tests\test_metrics.py /^def test_mean_iou():$/;" f
+test_metrics tests\test_metrics.py /^def test_metrics():$/;" f
+net tests\test_model.py /^net=torch.load(pthfile)$/;" v
+pthfile tests\test_model.py /^pthfile = r'\/SEG\/mmsegmentation\/pretrained_model\/recipe1MP_R50.pth'$/;" v
+torch tests\test_model.py /^import torch$/;" i
+AvgPool2d tests\test_models\test_backbone.py /^from torch.nn.modules import AvgPool2d, GroupNorm$/;" i
+BasicBlock tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnet import BasicBlock, Bottleneck$/;" i
+Bottleneck tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnet import BasicBlock, Bottleneck$/;" i
+BottleneckS tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnest import Bottleneck as BottleneckS$/;" i
+BottleneckX tests\test_models\test_backbone.py /^from mmseg.models.backbones.resnext import Bottleneck as BottleneckX$/;" i
+CGNet tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+ContextGuidedBlock tests\test_models\test_backbone.py /^from mmseg.models.backbones.cgnet import (ContextGuidedBlock,$/;" i
+DeformConv2dPack tests\test_models\test_backbone.py /^from mmcv.ops import DeformConv2dPack$/;" i
+FastSCNN tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+GroupNorm tests\test_models\test_backbone.py /^from torch.nn.modules import AvgPool2d, GroupNorm$/;" i
+MobileNetV3 tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+ResLayer tests\test_models\test_backbone.py /^from mmseg.models.utils import ResLayer$/;" i
+ResNeSt tests\test_models\test_backbone.py /^from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,$/;" i
+_BatchNorm tests\test_models\test_backbone.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+all_zeros tests\test_models\test_backbone.py /^def all_zeros(modules):$/;" f
+check_norm_state tests\test_models\test_backbone.py /^def check_norm_state(modules, train_state):$/;" f
+is_block tests\test_models\test_backbone.py /^def is_block(modules):$/;" f
+is_norm tests\test_models\test_backbone.py /^def is_norm(modules):$/;" f
+pytest tests\test_models\test_backbone.py /^import pytest$/;" i
+test_cgnet_GlobalContextExtractor tests\test_models\test_backbone.py /^def test_cgnet_GlobalContextExtractor():$/;" f
+test_cgnet_backbone tests\test_models\test_backbone.py /^def test_cgnet_backbone():$/;" f
+test_cgnet_context_guided_block tests\test_models\test_backbone.py /^def test_cgnet_context_guided_block():$/;" f
+test_fastscnn_backbone tests\test_models\test_backbone.py /^def test_fastscnn_backbone():$/;" f
+test_mobilenet_v3 tests\test_models\test_backbone.py /^def test_mobilenet_v3():$/;" f
+test_renext_bottleneck tests\test_models\test_backbone.py /^def test_renext_bottleneck():$/;" f
+test_resnest_backbone tests\test_models\test_backbone.py /^def test_resnest_backbone():$/;" f
+test_resnest_bottleneck tests\test_models\test_backbone.py /^def test_resnest_bottleneck():$/;" f
+test_resnet_backbone tests\test_models\test_backbone.py /^def test_resnet_backbone():$/;" f
+test_resnet_basic_block tests\test_models\test_backbone.py /^def test_resnet_basic_block():$/;" f
+test_resnet_bottleneck tests\test_models\test_backbone.py /^def test_resnet_bottleneck():$/;" f
+test_resnet_res_layer tests\test_models\test_backbone.py /^def test_resnet_res_layer():$/;" f
+test_resnext_backbone tests\test_models\test_backbone.py /^def test_resnext_backbone():$/;" f
+torch tests\test_models\test_backbone.py /^import torch$/;" i
+Config tests\test_models\test_forward.py /^ from mmcv import Config$/;" i
+SyncBatchNorm tests\test_models\test_forward.py /^from mmcv.utils.parrots_wrapper import SyncBatchNorm, _BatchNorm$/;" i
+_BatchNorm tests\test_models\test_forward.py /^from mmcv.utils.parrots_wrapper import SyncBatchNorm, _BatchNorm$/;" i
+_check_input_dim tests\test_models\test_forward.py /^def _check_input_dim(self, inputs):$/;" f
+_convert_batchnorm tests\test_models\test_forward.py /^def _convert_batchnorm(module):$/;" f
+_demo_mm_inputs tests\test_models\test_forward.py /^def _demo_mm_inputs(input_shape=(2, 3, 8, 16), num_classes=10):$/;" f
+_get_config_directory tests\test_models\test_forward.py /^def _get_config_directory():$/;" f
+_get_config_module tests\test_models\test_forward.py /^def _get_config_module(fname):$/;" f
+_get_segmentor_cfg tests\test_models\test_forward.py /^def _get_segmentor_cfg(fname):$/;" f
+_test_encoder_decoder_forward tests\test_models\test_forward.py /^def _test_encoder_decoder_forward(cfg_file):$/;" f
+build_segmentor tests\test_models\test_forward.py /^ from mmseg.models import build_segmentor$/;" i
+copy tests\test_models\test_forward.py /^import copy$/;" i
+dirname tests\test_models\test_forward.py /^from os.path import dirname, exists, join$/;" i
+exists tests\test_models\test_forward.py /^from os.path import dirname, exists, join$/;" i
+get_world_size tests\test_models\test_forward.py /^def get_world_size(process_group):$/;" f
+join tests\test_models\test_forward.py /^from os.path import dirname, exists, join$/;" i
+mmseg tests\test_models\test_forward.py /^ import mmseg$/;" i
+nn tests\test_models\test_forward.py /^import torch.nn as nn$/;" i
+np tests\test_models\test_forward.py /^import numpy as np$/;" i
+patch tests\test_models\test_forward.py /^from unittest.mock import patch$/;" i
+pytest tests\test_models\test_forward.py /^import pytest$/;" i
+test_ann_forward tests\test_models\test_forward.py /^def test_ann_forward():$/;" f
+test_ccnet_forward tests\test_models\test_forward.py /^def test_ccnet_forward():$/;" f
+test_danet_forward tests\test_models\test_forward.py /^def test_danet_forward():$/;" f
+test_deeplabv3_forward tests\test_models\test_forward.py /^def test_deeplabv3_forward():$/;" f
+test_deeplabv3plus_forward tests\test_models\test_forward.py /^def test_deeplabv3plus_forward():$/;" f
+test_dnlnet_forward tests\test_models\test_forward.py /^def test_dnlnet_forward():$/;" f
+test_emanet_forward tests\test_models\test_forward.py /^def test_emanet_forward():$/;" f
+test_encnet_forward tests\test_models\test_forward.py /^def test_encnet_forward():$/;" f
+test_fcn_forward tests\test_models\test_forward.py /^def test_fcn_forward():$/;" f
+test_gcnet_forward tests\test_models\test_forward.py /^def test_gcnet_forward():$/;" f
+test_hrnet_forward tests\test_models\test_forward.py /^def test_hrnet_forward():$/;" f
+test_mobilenet_v2_forward tests\test_models\test_forward.py /^def test_mobilenet_v2_forward():$/;" f
+test_nonlocal_net_forward tests\test_models\test_forward.py /^def test_nonlocal_net_forward():$/;" f
+test_ocrnet_forward tests\test_models\test_forward.py /^def test_ocrnet_forward():$/;" f
+test_point_rend_forward tests\test_models\test_forward.py /^def test_point_rend_forward():$/;" f
+test_psanet_forward tests\test_models\test_forward.py /^def test_psanet_forward():$/;" f
+test_pspnet_forward tests\test_models\test_forward.py /^def test_pspnet_forward():$/;" f
+test_sem_fpn_forward tests\test_models\test_forward.py /^def test_sem_fpn_forward():$/;" f
+test_upernet_forward tests\test_models\test_forward.py /^def test_upernet_forward():$/;" f
+torch tests\test_models\test_forward.py /^import torch$/;" i
+torch tests\test_models\test_forward.py /^import torch.nn as nn$/;" i
+ANNHead tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+APCHead tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+ASPPHead tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+BaseDecodeHead tests\test_models\test_heads.py /^from mmseg.models.decode_heads.decode_head import BaseDecodeHead$/;" i
+CCHead tests\test_models\test_heads.py /^from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,$/;" i
+ConfigDict tests\test_models\test_heads.py /^from mmcv.utils import ConfigDict$/;" i
+ConvModule tests\test_models\test_heads.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+DepthwiseSeparableConvModule tests\test_models\test_heads.py /^from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule$/;" i
+SyncBatchNorm tests\test_models\test_heads.py /^from mmcv.utils.parrots_wrapper import SyncBatchNorm$/;" i
+_conv_has_norm tests\test_models\test_heads.py /^def _conv_has_norm(module, sync_bn):$/;" f
+patch tests\test_models\test_heads.py /^from unittest.mock import patch$/;" i
+pytest tests\test_models\test_heads.py /^import pytest$/;" i
+test_ann_head tests\test_models\test_heads.py /^def test_ann_head():$/;" f
+test_apc_head tests\test_models\test_heads.py /^def test_apc_head():$/;" f
+test_aspp_head tests\test_models\test_heads.py /^def test_aspp_head():$/;" f
+test_cc_head tests\test_models\test_heads.py /^def test_cc_head():$/;" f
+test_da_head tests\test_models\test_heads.py /^def test_da_head():$/;" f
+test_decode_head tests\test_models\test_heads.py /^def test_decode_head():$/;" f
+test_dm_head tests\test_models\test_heads.py /^def test_dm_head():$/;" f
+test_dnl_head tests\test_models\test_heads.py /^def test_dnl_head():$/;" f
+test_dw_aspp_head tests\test_models\test_heads.py /^def test_dw_aspp_head():$/;" f
+test_emanet_head tests\test_models\test_heads.py /^def test_emanet_head():$/;" f
+test_enc_head tests\test_models\test_heads.py /^def test_enc_head():$/;" f
+test_fcn_head tests\test_models\test_heads.py /^def test_fcn_head():$/;" f
+test_gc_head tests\test_models\test_heads.py /^def test_gc_head():$/;" f
+test_lraspp_head tests\test_models\test_heads.py /^def test_lraspp_head():$/;" f
+test_nl_head tests\test_models\test_heads.py /^def test_nl_head():$/;" f
+test_ocr_head tests\test_models\test_heads.py /^def test_ocr_head():$/;" f
+test_point_head tests\test_models\test_heads.py /^def test_point_head():$/;" f
+test_psa_head tests\test_models\test_heads.py /^def test_psa_head():$/;" f
+test_psp_head tests\test_models\test_heads.py /^def test_psp_head():$/;" f
+test_sep_fcn_head tests\test_models\test_heads.py /^def test_sep_fcn_head():$/;" f
+test_uper_head tests\test_models\test_heads.py /^def test_uper_head():$/;" f
+to_cuda tests\test_models\test_heads.py /^def to_cuda(module, data):$/;" f
+torch tests\test_models\test_heads.py /^import torch$/;" i
+Accuracy tests\test_models\test_losses.py /^from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss$/;" i
+build_loss tests\test_models\test_losses.py /^ from mmseg.models import build_loss$/;" i
+np tests\test_models\test_losses.py /^import numpy as np$/;" i
+pytest tests\test_models\test_losses.py /^import pytest$/;" i
+reduce_loss tests\test_models\test_losses.py /^from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss$/;" i
+test_accuracy tests\test_models\test_losses.py /^def test_accuracy():$/;" f
+test_ce_loss tests\test_models\test_losses.py /^def test_ce_loss():$/;" f
+test_lovasz_loss tests\test_models\test_losses.py /^def test_lovasz_loss():$/;" f
+test_utils tests\test_models\test_losses.py /^def test_utils():$/;" f
+torch tests\test_models\test_losses.py /^import torch$/;" i
+weight_reduce_loss tests\test_models\test_losses.py /^from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss$/;" i
+FPN tests\test_models\test_necks.py /^from mmseg.models import FPN$/;" i
+test_fpn tests\test_models\test_necks.py /^def test_fpn():$/;" f
+torch tests\test_models\test_necks.py /^import torch$/;" i
+BACKBONES tests\test_models\test_segmentor.py /^from mmseg.models import BACKBONES, HEADS, build_segmentor$/;" i
+BaseCascadeDecodeHead tests\test_models\test_segmentor.py /^from mmseg.models.decode_heads.cascade_decode_head import BaseCascadeDecodeHead$/;" i
+BaseDecodeHead tests\test_models\test_segmentor.py /^from mmseg.models.decode_heads.decode_head import BaseDecodeHead$/;" i
+ConfigDict tests\test_models\test_segmentor.py /^from mmcv import ConfigDict$/;" i
+ExampleBackbone tests\test_models\test_segmentor.py /^class ExampleBackbone(nn.Module):$/;" c
+ExampleCascadeDecodeHead tests\test_models\test_segmentor.py /^class ExampleCascadeDecodeHead(BaseCascadeDecodeHead):$/;" c
+ExampleDecodeHead tests\test_models\test_segmentor.py /^class ExampleDecodeHead(BaseDecodeHead):$/;" c
+HEADS tests\test_models\test_segmentor.py /^from mmseg.models import BACKBONES, HEADS, build_segmentor$/;" i
+__init__ tests\test_models\test_segmentor.py /^ def __init__(self):$/;" m class:ExampleBackbone
+__init__ tests\test_models\test_segmentor.py /^ def __init__(self):$/;" m class:ExampleCascadeDecodeHead
+__init__ tests\test_models\test_segmentor.py /^ def __init__(self):$/;" m class:ExampleDecodeHead
+_demo_mm_inputs tests\test_models\test_segmentor.py /^def _demo_mm_inputs(input_shape=(1, 3, 8, 16), num_classes=10):$/;" f
+_segmentor_forward_train_test tests\test_models\test_segmentor.py /^def _segmentor_forward_train_test(segmentor):$/;" f
+build_segmentor tests\test_models\test_segmentor.py /^from mmseg.models import BACKBONES, HEADS, build_segmentor$/;" i
+forward tests\test_models\test_segmentor.py /^ def forward(self, inputs):$/;" m class:ExampleDecodeHead
+forward tests\test_models\test_segmentor.py /^ def forward(self, inputs, prev_out):$/;" m class:ExampleCascadeDecodeHead
+forward tests\test_models\test_segmentor.py /^ def forward(self, x):$/;" m class:ExampleBackbone
+init_weights tests\test_models\test_segmentor.py /^ def init_weights(self, pretrained=None):$/;" m class:ExampleBackbone
+nn tests\test_models\test_segmentor.py /^from torch import nn$/;" i
+np tests\test_models\test_segmentor.py /^import numpy as np$/;" i
+test_cascade_encoder_decoder tests\test_models\test_segmentor.py /^def test_cascade_encoder_decoder():$/;" f
+test_encoder_decoder tests\test_models\test_segmentor.py /^def test_encoder_decoder():$/;" f
+torch tests\test_models\test_segmentor.py /^import torch$/;" i
+BasicConvBlock tests\test_models\test_unet.py /^from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule,$/;" i
+ConvModule tests\test_models\test_unet.py /^from mmcv.cnn import ConvModule$/;" i
+DeconvModule tests\test_models\test_unet.py /^from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule,$/;" i
+_BatchNorm tests\test_models\test_unet.py /^from mmcv.utils.parrots_wrapper import _BatchNorm$/;" i
+check_norm_state tests\test_models\test_unet.py /^def check_norm_state(modules, train_state):$/;" f
+nn tests\test_models\test_unet.py /^from torch import nn$/;" i
+pytest tests\test_models\test_unet.py /^import pytest$/;" i
+test_deconv_module tests\test_models\test_unet.py /^def test_deconv_module():$/;" f
+test_interp_conv tests\test_models\test_unet.py /^def test_interp_conv():$/;" f
+test_unet tests\test_models\test_unet.py /^def test_unet():$/;" f
+test_unet_basic_conv_block tests\test_models\test_unet.py /^def test_unet_basic_conv_block():$/;" f
+test_up_conv_block tests\test_models\test_unet.py /^def test_up_conv_block():$/;" f
+torch tests\test_models\test_unet.py /^import torch$/;" i
+FCNHead tests\test_sampler.py /^from mmseg.models.decode_heads import FCNHead$/;" i
+OHEMPixelSampler tests\test_sampler.py /^from mmseg.core import OHEMPixelSampler$/;" i
+_context_for_ohem tests\test_sampler.py /^def _context_for_ohem():$/;" f
+pytest tests\test_sampler.py /^import pytest$/;" i
+test_ohem_sampler tests\test_sampler.py /^def test_ohem_sampler():$/;" f
+torch tests\test_sampler.py /^import torch$/;" i
+InvertedResidual tests\test_utils\test_inverted_residual_module.py /^from mmseg.models.utils import InvertedResidual, InvertedResidualV3$/;" i
+InvertedResidualV3 tests\test_utils\test_inverted_residual_module.py /^from mmseg.models.utils import InvertedResidual, InvertedResidualV3$/;" i
+mmcv tests\test_utils\test_inverted_residual_module.py /^import mmcv$/;" i
+pytest tests\test_utils\test_inverted_residual_module.py /^import pytest$/;" i
+test_inv_residual tests\test_utils\test_inverted_residual_module.py /^def test_inv_residual():$/;" f
+test_inv_residualv3 tests\test_utils\test_inverted_residual_module.py /^def test_inv_residualv3():$/;" f
+torch tests\test_utils\test_inverted_residual_module.py /^import torch$/;" i
+make_divisible tests\test_utils\test_make_divisible.py /^from mmseg.models.utils import make_divisible$/;" i
+test_make_divisible tests\test_utils\test_make_divisible.py /^def test_make_divisible():$/;" f
+SELayer tests\test_utils\test_se_layer.py /^from mmseg.models.utils.se_layer import SELayer$/;" i
+mmcv tests\test_utils\test_se_layer.py /^import mmcv$/;" i
+pytest tests\test_utils\test_se_layer.py /^import pytest$/;" i
+test_se_layer tests\test_utils\test_se_layer.py /^def test_se_layer():$/;" f
+torch tests\test_utils\test_se_layer.py /^import torch$/;" i
+Config tools\benchmark.py /^from mmcv import Config$/;" i
+MMDataParallel tools\benchmark.py /^from mmcv.parallel import MMDataParallel$/;" i
+argparse tools\benchmark.py /^import argparse$/;" i
+build_dataloader tools\benchmark.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset tools\benchmark.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_segmentor tools\benchmark.py /^from mmseg.models import build_segmentor$/;" i
+load_checkpoint tools\benchmark.py /^from mmcv.runner import load_checkpoint$/;" i
+main tools\benchmark.py /^def main():$/;" f
+parse_args tools\benchmark.py /^def parse_args():$/;" f
+time tools\benchmark.py /^import time$/;" i
+torch tools\benchmark.py /^import torch$/;" i
+CHASE_DB1_LEN tools\convert_datasets\chase_db1.py /^CHASE_DB1_LEN = 28 * 3$/;" v
+TRAINING_LEN tools\convert_datasets\chase_db1.py /^TRAINING_LEN = 60$/;" v
+argparse tools\convert_datasets\chase_db1.py /^import argparse$/;" i
+main tools\convert_datasets\chase_db1.py /^def main():$/;" f
+mmcv tools\convert_datasets\chase_db1.py /^import mmcv$/;" i
+os tools\convert_datasets\chase_db1.py /^import os$/;" i
+os tools\convert_datasets\chase_db1.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\chase_db1.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\chase_db1.py /^def parse_args():$/;" f
+tempfile tools\convert_datasets\chase_db1.py /^import tempfile$/;" i
+zipfile tools\convert_datasets\chase_db1.py /^import zipfile$/;" i
+argparse tools\convert_datasets\cityscapes.py /^import argparse$/;" i
+convert_json_to_label tools\convert_datasets\cityscapes.py /^def convert_json_to_label(json_file):$/;" f
+json2labelImg tools\convert_datasets\cityscapes.py /^from cityscapesscripts.preparation.json2labelImg import json2labelImg$/;" i
+main tools\convert_datasets\cityscapes.py /^def main():$/;" f
+mmcv tools\convert_datasets\cityscapes.py /^import mmcv$/;" i
+os tools\convert_datasets\cityscapes.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\cityscapes.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\cityscapes.py /^def parse_args():$/;" f
+argparse tools\convert_datasets\drive.py /^import argparse$/;" i
+cv2 tools\convert_datasets\drive.py /^import cv2$/;" i
+main tools\convert_datasets\drive.py /^def main():$/;" f
+mmcv tools\convert_datasets\drive.py /^import mmcv$/;" i
+os tools\convert_datasets\drive.py /^import os$/;" i
+os tools\convert_datasets\drive.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\drive.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\drive.py /^def parse_args():$/;" f
+tempfile tools\convert_datasets\drive.py /^import tempfile$/;" i
+zipfile tools\convert_datasets\drive.py /^import zipfile$/;" i
+HRF_LEN tools\convert_datasets\hrf.py /^HRF_LEN = 15$/;" v
+TRAINING_LEN tools\convert_datasets\hrf.py /^TRAINING_LEN = 5$/;" v
+argparse tools\convert_datasets\hrf.py /^import argparse$/;" i
+main tools\convert_datasets\hrf.py /^def main():$/;" f
+mmcv tools\convert_datasets\hrf.py /^import mmcv$/;" i
+os tools\convert_datasets\hrf.py /^import os$/;" i
+os tools\convert_datasets\hrf.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\hrf.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\hrf.py /^def parse_args():$/;" f
+tempfile tools\convert_datasets\hrf.py /^import tempfile$/;" i
+zipfile tools\convert_datasets\hrf.py /^import zipfile$/;" i
+Detail tools\convert_datasets\pascal_context.py /^from detail import Detail$/;" i
+Image tools\convert_datasets\pascal_context.py /^from PIL import Image$/;" i
+_class_to_index tools\convert_datasets\pascal_context.py /^ def _class_to_index(mask, _mapping, _key):$/;" f function:generate_labels
+_key tools\convert_datasets\pascal_context.py /^_key = np.array(range(len(_mapping))).astype('uint8')$/;" v
+_mapping tools\convert_datasets\pascal_context.py /^_mapping = np.sort($/;" v
+argparse tools\convert_datasets\pascal_context.py /^import argparse$/;" i
+generate_labels tools\convert_datasets\pascal_context.py /^def generate_labels(img_id, detail, out_dir):$/;" f
+main tools\convert_datasets\pascal_context.py /^def main():$/;" f
+mmcv tools\convert_datasets\pascal_context.py /^import mmcv$/;" i
+np tools\convert_datasets\pascal_context.py /^import numpy as np$/;" i
+os tools\convert_datasets\pascal_context.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\pascal_context.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\pascal_context.py /^def parse_args():$/;" f
+partial tools\convert_datasets\pascal_context.py /^from functools import partial$/;" i
+STARE_LEN tools\convert_datasets\stare.py /^STARE_LEN = 20$/;" v
+TRAINING_LEN tools\convert_datasets\stare.py /^TRAINING_LEN = 10$/;" v
+argparse tools\convert_datasets\stare.py /^import argparse$/;" i
+gzip tools\convert_datasets\stare.py /^import gzip$/;" i
+main tools\convert_datasets\stare.py /^def main():$/;" f
+mmcv tools\convert_datasets\stare.py /^import mmcv$/;" i
+os tools\convert_datasets\stare.py /^import os$/;" i
+os tools\convert_datasets\stare.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\stare.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\stare.py /^def parse_args():$/;" f
+tarfile tools\convert_datasets\stare.py /^import tarfile$/;" i
+tempfile tools\convert_datasets\stare.py /^import tempfile$/;" i
+un_gz tools\convert_datasets\stare.py /^def un_gz(src, dst):$/;" f
+AUG_LEN tools\convert_datasets\voc_aug.py /^AUG_LEN = 10582$/;" v
+Image tools\convert_datasets\voc_aug.py /^from PIL import Image$/;" i
+argparse tools\convert_datasets\voc_aug.py /^import argparse$/;" i
+convert_mat tools\convert_datasets\voc_aug.py /^def convert_mat(mat_file, in_dir, out_dir):$/;" f
+generate_aug_list tools\convert_datasets\voc_aug.py /^def generate_aug_list(merged_list, excluded_list):$/;" f
+loadmat tools\convert_datasets\voc_aug.py /^from scipy.io import loadmat$/;" i
+main tools\convert_datasets\voc_aug.py /^def main():$/;" f
+mmcv tools\convert_datasets\voc_aug.py /^import mmcv$/;" i
+np tools\convert_datasets\voc_aug.py /^import numpy as np$/;" i
+os tools\convert_datasets\voc_aug.py /^import os.path as osp$/;" i
+osp tools\convert_datasets\voc_aug.py /^import os.path as osp$/;" i
+parse_args tools\convert_datasets\voc_aug.py /^def parse_args():$/;" f
+partial tools\convert_datasets\voc_aug.py /^from functools import partial$/;" i
+Config tools\get_flops.py /^from mmcv import Config$/;" i
+argparse tools\get_flops.py /^import argparse$/;" i
+build_segmentor tools\get_flops.py /^from mmseg.models import build_segmentor$/;" i
+get_model_complexity_info tools\get_flops.py /^from mmcv.cnn import get_model_complexity_info$/;" i
+main tools\get_flops.py /^def main():$/;" f
+parse_args tools\get_flops.py /^def parse_args():$/;" f
+Config tools\print_config.py /^from mmcv import Config, DictAction$/;" i
+DictAction tools\print_config.py /^from mmcv import Config, DictAction$/;" i
+argparse tools\print_config.py /^import argparse$/;" i
+main tools\print_config.py /^def main():$/;" f
+parse_args tools\print_config.py /^def parse_args():$/;" f
+argparse tools\publish_model.py /^import argparse$/;" i
+main tools\publish_model.py /^def main():$/;" f
+parse_args tools\publish_model.py /^def parse_args():$/;" f
+process_checkpoint tools\publish_model.py /^def process_checkpoint(in_file, out_file):$/;" f
+subprocess tools\publish_model.py /^import subprocess$/;" i
+torch tools\publish_model.py /^import torch$/;" i
+_C tools\pytorch2onnx.py /^import torch._C$/;" i
+_convert_batchnorm tools\pytorch2onnx.py /^def _convert_batchnorm(module):$/;" f
+_demo_mm_inputs tools\pytorch2onnx.py /^def _demo_mm_inputs(input_shape, num_classes):$/;" f
+argparse tools\pytorch2onnx.py /^import argparse$/;" i
+args tools\pytorch2onnx.py /^ args = parse_args()$/;" v
+build_segmentor tools\pytorch2onnx.py /^from mmseg.models import build_segmentor$/;" i
+cfg tools\pytorch2onnx.py /^ cfg = mmcv.Config.fromfile(args.config)$/;" v
+input_shape tools\pytorch2onnx.py /^ input_shape = ($/;" v
+input_shape tools\pytorch2onnx.py /^ input_shape = (1, 3, args.shape[0], args.shape[0])$/;" v
+load_checkpoint tools\pytorch2onnx.py /^from mmcv.runner import load_checkpoint$/;" i
+mmcv tools\pytorch2onnx.py /^import mmcv$/;" i
+nn tools\pytorch2onnx.py /^from torch import nn$/;" i
+np tools\pytorch2onnx.py /^import numpy as np$/;" i
+onnx tools\pytorch2onnx.py /^ import onnx$/;" i
+opset_version tools\pytorch2onnx.py /^ opset_version=args.opset_version,$/;" v
+output_file tools\pytorch2onnx.py /^ output_file=args.output_file,$/;" v
+parse_args tools\pytorch2onnx.py /^def parse_args():$/;" f
+partial tools\pytorch2onnx.py /^from functools import partial$/;" i
+pytorch2onnx tools\pytorch2onnx.py /^def pytorch2onnx(model,$/;" f
+register_extra_symbolics tools\pytorch2onnx.py /^from mmcv.onnx import register_extra_symbolics$/;" i
+rt tools\pytorch2onnx.py /^import onnxruntime as rt$/;" i
+segmentor tools\pytorch2onnx.py /^ segmentor = _convert_batchnorm(segmentor)$/;" v
+segmentor tools\pytorch2onnx.py /^ segmentor = build_segmentor($/;" v
+serialization tools\pytorch2onnx.py /^import torch.serialization$/;" i
+show tools\pytorch2onnx.py /^ show=args.show,$/;" v
+torch tools\pytorch2onnx.py /^import torch$/;" i
+torch tools\pytorch2onnx.py /^import torch._C$/;" i
+torch tools\pytorch2onnx.py /^import torch.serialization$/;" i
+verify tools\pytorch2onnx.py /^ verify=args.verify)$/;" v
+DictAction tools\test.py /^from mmcv.utils import DictAction$/;" i
+MMDataParallel tools\test.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+MMDistributedDataParallel tools\test.py /^from mmcv.parallel import MMDataParallel, MMDistributedDataParallel$/;" i
+argparse tools\test.py /^import argparse$/;" i
+build_dataloader tools\test.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_dataset tools\test.py /^from mmseg.datasets import build_dataloader, build_dataset$/;" i
+build_segmentor tools\test.py /^from mmseg.models import build_segmentor$/;" i
+get_dist_info tools\test.py /^from mmcv.runner import get_dist_info, init_dist, load_checkpoint$/;" i
+init_dist tools\test.py /^from mmcv.runner import get_dist_info, init_dist, load_checkpoint$/;" i
+load_checkpoint tools\test.py /^from mmcv.runner import get_dist_info, init_dist, load_checkpoint$/;" i
+main tools\test.py /^def main():$/;" f
+mmcv tools\test.py /^import mmcv$/;" i
+multi_gpu_test tools\test.py /^from mmseg.apis import multi_gpu_test, single_gpu_test$/;" i
+os tools\test.py /^import os$/;" i
+parse_args tools\test.py /^def parse_args():$/;" f
+single_gpu_test tools\test.py /^from mmseg.apis import multi_gpu_test, single_gpu_test$/;" i
+torch tools\test.py /^import torch$/;" i
+Config tools\train.py /^from mmcv.utils import Config, DictAction, get_git_hash$/;" i
+DictAction tools\train.py /^from mmcv.utils import Config, DictAction, get_git_hash$/;" i
+__version__ tools\train.py /^from mmseg import __version__$/;" i
+argparse tools\train.py /^import argparse$/;" i
+build_dataset tools\train.py /^from mmseg.datasets import build_dataset$/;" i
+build_segmentor tools\train.py /^from mmseg.models import build_segmentor$/;" i
+collect_env tools\train.py /^from mmseg.utils import collect_env, get_root_logger$/;" i
+copy tools\train.py /^import copy$/;" i
+get_git_hash tools\train.py /^from mmcv.utils import Config, DictAction, get_git_hash$/;" i
+get_root_logger tools\train.py /^from mmseg.utils import collect_env, get_root_logger$/;" i
+init_dist tools\train.py /^from mmcv.runner import init_dist$/;" i
+main tools\train.py /^def main():$/;" f
+mmcv tools\train.py /^import mmcv$/;" i
+os tools\train.py /^import os$/;" i
+os tools\train.py /^import os.path as osp$/;" i
+osp tools\train.py /^import os.path as osp$/;" i
+parse_args tools\train.py /^def parse_args():$/;" f
+set_random_seed tools\train.py /^from mmseg.apis import set_random_seed, train_segmentor$/;" i
+time tools\train.py /^import time$/;" i
+torch tools\train.py /^import torch$/;" i
+train_segmentor tools\train.py /^from mmseg.apis import set_random_seed, train_segmentor$/;" i
+!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
+!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
+!_TAG_PROGRAM_VERSION 5.8 //
+!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
+!_TAG_PROGRAM_NAME Exuberant Ctags //
+!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
diff --git a/FoodSeg103/LICENSE b/FoodSeg103/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..38e625bf59f9ba58f16f758bebaad865030c1e3e
--- /dev/null
+++ b/FoodSeg103/LICENSE
@@ -0,0 +1,203 @@
+Copyright 2020 The MMSegmentation Authors. All rights reserved.
+
+ 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 2020 The MMSegmentation Authors.
+
+ 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.
diff --git a/FoodSeg103/README.md b/FoodSeg103/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8971386332f73c4d90428b2fa8daf4949f56347d
--- /dev/null
+++ b/FoodSeg103/README.md
@@ -0,0 +1,119 @@
+# A Large-Scale Benchmark for Food Image Segmentation
+
+By [Xiongwei Wu](http://xiongweiwu.github.io/), [Xin Fu](https://xinfu607.github.io/), Ying Liu, [Ee-Peng Lim](http://www.mysmu.edu/faculty/eplim/), [Steven C.H. Hoi](https://sites.google.com/view/stevenhoi/home/), [Qianru Sun](https://qianrusun.com/).
+
+
+
+
+
+
+
+## Introduction
+
+We build a new food image dataset FoodSeg103 containing 7,118 images. We annotate these images with 104 ingredient classes and each image has an average of 6 ingredient labels and pixel-wise masks.
+In addition, we propose a multi-modality pre-training approach called ReLeM that explicitly equips a segmentation model with rich and semantic food knowledge.
+
+In this software, we use three popular semantic segmentation methods (i.e., Dilated Convolution based, Feature Pyramid based, and Vision Transformer based) as baselines, and evaluate them as well as ReLeM on our new datasets. We believe that the FoodSeg103 and the pre-trained models using ReLeM can serve as a benchmark to facilitate future works on fine-grained food image understanding.
+
+Please refer our [paper](https://arxiv.org/abs/2105.05409) and our [homepage](https://xiongweiwu.github.io/foodseg103.html) for more details.
+
+## License
+
+This project is released under the [Apache 2.0 license](LICENSE).
+
+
+## Installation
+
+Please refer to [get_started.md](docs/get_started.md#installation) for installation.
+
+## Dataset
+
+Please download the file from [url](https://research.larc.smu.edu.sg/downloads/datarepo/FoodSeg103.zip) and unzip the data in ./data folder (./data/FoodSeg103/), with passwd: LARCdataset9947
+
+## Leaderboard
+
+Please refer to [leaderboard](https://paperswithcode.com/dataset/foodseg103) in paperwithcode website.
+
+## Benchmark and model zoo
+
+:exclamation::exclamation::exclamation: **We have finished the course so the models are available again. Please download the trained models from THIS [link](https://smu-my.sharepoint.com/:u:/g/personal/xwwu_smu_edu_sg/EWBcCC3QrO9LthKX66QCzyoBhFU7PHXKcHhh1lgIC98uKw?e=bHT7vM):eyes: .**
+
+Encoder | Decoder | Crop Size | Batch Size |mIoU | mAcc | Link
+--- |:---:|:---:|:---:|:---:|:---:|:---:
+R-50 | [FPN](https://arxiv.org/abs/1901.02446) | 512x1024 | 8 | 27.8 | 38.2 | [Model+Config](https://drive.google.com/drive/folders/1CQ5CXxASAoobj7bKqyuvazkeusqMAM4F?usp=sharing)
+ReLeM-R-50 | FPN | 512x1024 | 8 | 29.1 | 39.8 | [Model+Config](https://drive.google.com/drive/folders/1m7N2EE8jkX67a0lD6GZ4NQgr4gEcWpDU?usp=sharing)
+R-50 | [CCNet](https://arxiv.org/abs/1811.11721) | 512x1024 | 8 | 35.5 | 45.3 | [Model+Config](https://drive.google.com/drive/folders/1pNPbtrGqCq_Zlina2PCs6X8bIvY9ZZxG?usp=sharing)
+ReLeM-R-50 | CCNet | 512x1024 | 8 | 36.8 | 47.4 | [Model+Config](https://drive.google.com/drive/folders/1FWwxAsZzDnBbDBEbohqOA8htyWgMLM4U?usp=sharing)
+[PVT-S](https://arxiv.org/abs/2102.12122) | FPN | 512x1024 | 8 | 31.3 | 43.0 | Model+Config
+ReLeM-PVT-S | FPN | 512x1024 | 8 | 32.0 | 44.1 | Model+Config
+[ViT-16/B](https://openreview.net/forum?id=YicbFdNTTy) | [Naive](https://arxiv.org/abs/2012.15840) | 768x768 | 4 | 41.3 | 52.7 | [Model+Config](https://drive.google.com/drive/folders/19b3VG906CA-5kQFaJVk5U6kDxnw9HcWL?usp=sharing)
+ReLeM-ViT-16/B | Naive | 768x768 | 4 | 43.9 | 57.0 | [Model+Config](https://drive.google.com/drive/folders/10yKiu8aMeTGphU2CKT2ybeAC3ezgDnXP?usp=sharing)
+ViT-16/B | PUP | 768x768 | 4 | 38.5 | 49.1 | Model+Config
+ReLeM-ViT-16/B | PUP | 768x768 | 4 | 42.5 | 53.9 | Model+Config
+ViT-16/B | [MLA](https://arxiv.org/abs/2012.15840) | 768x768 | 4 | 45.1 | 57.4 | [Model+Config](https://drive.google.com/drive/folders/17Ht1HQDaBJmS0FXaXGjHk0VQNhAJxrlF?usp=sharing)
+ReLeM-ViT-16/B | MLA | 768x768 | 4 | 43.3 | 55.9 | [Model+Config](https://drive.google.com/drive/folders/12OlkStefNmELNLo-xJqc-lE-kPZ7DvPV?usp=sharing)
+[ViT-16/L](https://openreview.net/forum?id=YicbFdNTTy) | MLA | 768x768 | 4 | 44.5 | 56.6 | [Model+Config](https://drive.google.com/drive/folders/1PS4uh2zktNc0hh-mSLZkRTqgNnkfh7xu?usp=sharing)
+[Swin-S](https://arxiv.org/abs/2103.14030) | [UperNet](https://arxiv.org/abs/1807.10221) | 512x1024 | 8 | 41.6 | 53.6 | [Model+Config](https://drive.google.com/drive/folders/1E5fZga8h65dNZCX1m8zywvB8MwrleFNg?usp=sharing)
+[Swin-B](https://arxiv.org/abs/2103.14030) | UperNet | 512x1024 | 8 | 41.2 | 53.9 | [Model+Config](https://drive.google.com/drive/folders/1kqOsH51h1pa-88tbFVUV3mmzTNCGzqd0?usp=sharing)
+
+
+[1] *We do not include the implementation of [swin](https://arxiv.org/abs/2103.14030) in this software. You can use the official [implementation](https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation) based on our provided models.* \
+[2] *We use Step-wise learning policy to train PVT model since we found this policy can yield higher performance, and for other baselines we adopt the default settings.* \
+[3] *We use Recipe1M to train ReLeM-PVT-S while other ReLeM models are trained with Recipe1M+ due to time limitation.*
+
+
+
+## Train & Test
+
+Train script:
+
+```
+ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 --master_port=${PORT:-300} tools/train.py --config [config] --work-dir [work-dir] --launcher pytorch
+```
+
+Exmaple:
+
+```
+ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 --master_port=${PORT:-300} tools/train.py --config configs/foodnet/SETR_Naive_768x768_80k_base_RM.py --work-dir checkpoints/SETR_Naive_ReLeM --launcher pytorch
+```
+
+Test script:
+
+```
+ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 --master_port=${PORT:-999} tools/test.py [config] [weights] --launcher pytorch --eval mIoU
+```
+
+Example:
+
+```
+ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nproc_per_node=4 --master_port=${PORT:-999} tools/test.py checkpoints/SETR_Naive_ReLeM/SETR_Naive_768x768_80k_base_RM.py checkpoints/SETR_Naive_ReLeM/iter_80000.pth --launcher pytorch --eval mIoU
+```
+
+## ReLeM
+We train recipe information based on the implementation of [im2recipe](https://github.com/torralba-lab/im2recipe-Pytorch) with small modifications, which is trained on [Recipe1M+](http://pic2recipe.csail.mit.edu/) dataset (test images of FoodSeg103 are removed). I may upload the lmdb file later due to the huge datasize (>35G).
+
+It takes about 2~3 weeks to train a ReLeM ViT-Base model with 8 Tesla-V100 cards, so I strongly recommend you use my pre-trained models([link](https://drive.google.com/drive/folders/1LRCHxeMuCXMb68I1XFI8q-aQ2cCyUx_r?usp=sharing)).
+
+
+## Citation
+
+If you find this project useful in your research, please consider cite:
+
+```latex
+@inproceedings{wu2021foodseg,
+ title={A Large-Scale Benchmark for Food Image Segmentation},
+ author={Wu, Xiongwei and Fu, Xin and Liu, Ying and Lim, Ee-Peng and Hoi, Steven CH and Sun, Qianru},
+ booktitle={Proceedings of ACM international conference on Multimedia},
+ year={2021}
+}
+```
+
+## Other Issues
+
+If you meet other issues in using the software, you can check the original mmsegmentation (see [doc](https://mmsegmentation.readthedocs.io/) for more details).
+
+
+## Acknowledgement
+
+The segmentation software in this project was developed mainly by extending the [segmentation](https://github.com/open-mmlab/mmsegmentation/).
+
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.DS_Store b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..7de4b33ec59a44768f4065a4beb7f3a5228a64e4
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.DS_Store differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.dev/gather_models.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.dev/gather_models.py
new file mode 100644
index 0000000000000000000000000000000000000000..1899195d7dc90088e89a424c8c749f075e4e18d6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.dev/gather_models.py
@@ -0,0 +1,197 @@
+import argparse
+import glob
+import json
+import os
+import os.path as osp
+import shutil
+import subprocess
+
+import mmcv
+import torch
+
+# build schedule look-up table to automatically find the final model
+RESULTS_LUT = ['mIoU', 'mAcc', 'aAcc']
+
+
+def process_checkpoint(in_file, out_file):
+ checkpoint = torch.load(in_file, map_location='cpu')
+ # remove optimizer for smaller file size
+ if 'optimizer' in checkpoint:
+ del checkpoint['optimizer']
+ # if it is necessary to remove some sensitive data in checkpoint['meta'],
+ # add the code here.
+ torch.save(checkpoint, out_file)
+ sha = subprocess.check_output(['sha256sum', out_file]).decode()
+ final_file = out_file.rstrip('.pth') + '-{}.pth'.format(sha[:8])
+ subprocess.Popen(['mv', out_file, final_file])
+ return final_file
+
+
+def get_final_iter(config):
+ iter_num = config.split('_')[-2]
+ assert iter_num.endswith('k')
+ return int(iter_num[:-1]) * 1000
+
+
+def get_final_results(log_json_path, iter_num):
+ result_dict = dict()
+ with open(log_json_path, 'r') as f:
+ for line in f.readlines():
+ log_line = json.loads(line)
+ if 'mode' not in log_line.keys():
+ continue
+
+ if log_line['mode'] == 'train' and log_line['iter'] == iter_num:
+ result_dict['memory'] = log_line['memory']
+
+ if log_line['iter'] == iter_num:
+ result_dict.update({
+ key: log_line[key]
+ for key in RESULTS_LUT if key in log_line
+ })
+ return result_dict
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Gather benchmarked models')
+ parser.add_argument(
+ 'root',
+ type=str,
+ help='root path of benchmarked models to be gathered')
+ parser.add_argument(
+ 'config',
+ type=str,
+ help='root path of benchmarked configs to be gathered')
+ parser.add_argument(
+ 'out_dir',
+ type=str,
+ help='output path of gathered models to be stored')
+ parser.add_argument('out_file', type=str, help='the output json file name')
+ parser.add_argument(
+ '--filter', type=str, nargs='+', default=[], help='config filter')
+ parser.add_argument(
+ '--all', action='store_true', help='whether include .py and .log')
+
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ models_root = args.root
+ models_out = args.out_dir
+ config_name = args.config
+ mmcv.mkdir_or_exist(models_out)
+
+ # find all models in the root directory to be gathered
+ raw_configs = list(mmcv.scandir(config_name, '.py', recursive=True))
+
+ # filter configs that is not trained in the experiments dir
+ used_configs = []
+ for raw_config in raw_configs:
+ work_dir = osp.splitext(osp.basename(raw_config))[0]
+ if osp.exists(osp.join(models_root, work_dir)):
+ used_configs.append((work_dir, raw_config))
+ print(f'Find {len(used_configs)} models to be gathered')
+
+ # find final_ckpt and log file for trained each config
+ # and parse the best performance
+ model_infos = []
+ for used_config, raw_config in used_configs:
+ bypass = True
+ for p in args.filter:
+ if p in used_config:
+ bypass = False
+ break
+ if bypass:
+ continue
+ exp_dir = osp.join(models_root, used_config)
+ # check whether the exps is finished
+ final_iter = get_final_iter(used_config)
+ final_model = 'iter_{}.pth'.format(final_iter)
+ model_path = osp.join(exp_dir, final_model)
+
+ # skip if the model is still training
+ if not osp.exists(model_path):
+ print(f'{used_config} train not finished yet')
+ continue
+
+ # get logs
+ log_json_paths = glob.glob(osp.join(exp_dir, '*.log.json'))
+ log_json_path = log_json_paths[0]
+ model_performance = None
+ for idx, _log_json_path in enumerate(log_json_paths):
+ model_performance = get_final_results(_log_json_path, final_iter)
+ if model_performance is not None:
+ log_json_path = _log_json_path
+ break
+
+ if model_performance is None:
+ print(f'{used_config} model_performance is None')
+ continue
+
+ model_time = osp.split(log_json_path)[-1].split('.')[0]
+ model_infos.append(
+ dict(
+ config=used_config,
+ raw_config=raw_config,
+ results=model_performance,
+ iters=final_iter,
+ model_time=model_time,
+ log_json_path=osp.split(log_json_path)[-1]))
+
+ # publish model for each checkpoint
+ publish_model_infos = []
+ for model in model_infos:
+ model_publish_dir = osp.join(models_out,
+ model['raw_config'].rstrip('.py'))
+ model_name = osp.split(model['config'])[-1].split('.')[0]
+
+ publish_model_path = osp.join(model_publish_dir,
+ model_name + '_' + model['model_time'])
+ trained_model_path = osp.join(models_root, model['config'],
+ 'iter_{}.pth'.format(model['iters']))
+ if osp.exists(model_publish_dir):
+ for file in os.listdir(model_publish_dir):
+ if file.endswith('.pth'):
+ print(f'model {file} found')
+ model['model_path'] = osp.abspath(
+ osp.join(model_publish_dir, file))
+ break
+ if 'model_path' not in model:
+ print(f'dir {model_publish_dir} exists, no model found')
+
+ else:
+ mmcv.mkdir_or_exist(model_publish_dir)
+
+ # convert model
+ final_model_path = process_checkpoint(trained_model_path,
+ publish_model_path)
+ model['model_path'] = final_model_path
+
+ new_json_path = f'{model_name}-{model["log_json_path"]}'
+ # copy log
+ shutil.copy(
+ osp.join(models_root, model['config'], model['log_json_path']),
+ osp.join(model_publish_dir, new_json_path))
+ if args.all:
+ new_txt_path = new_json_path.rstrip('.json')
+ shutil.copy(
+ osp.join(models_root, model['config'],
+ model['log_json_path'].rstrip('.json')),
+ osp.join(model_publish_dir, new_txt_path))
+
+ if args.all:
+ # copy config to guarantee reproducibility
+ raw_config = osp.join(config_name, model['raw_config'])
+ mmcv.Config.fromfile(raw_config).dump(
+ osp.join(model_publish_dir, osp.basename(raw_config)))
+
+ publish_model_infos.append(model)
+
+ models = dict(models=publish_model_infos)
+ mmcv.dump(models, osp.join(models_out, args.out_file))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.dev/upload_modelzoo.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.dev/upload_modelzoo.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd78bc41e69c3b603e7bbb4ee8a6c420ad87e26b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.dev/upload_modelzoo.py
@@ -0,0 +1,44 @@
+import argparse
+import os
+import os.path as osp
+
+import oss2
+
+ACCESS_KEY_ID = os.getenv('OSS_ACCESS_KEY_ID', None)
+ACCESS_KEY_SECRET = os.getenv('OSS_ACCESS_KEY_SECRET', None)
+BUCKET_NAME = 'openmmlab'
+ENDPOINT = 'https://oss-accelerate.aliyuncs.com'
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Upload models to OSS')
+ parser.add_argument('model_zoo', type=str, help='model_zoo input')
+ parser.add_argument(
+ '--dst-folder',
+ type=str,
+ default='mmsegmentation/v0.5',
+ help='destination folder')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ model_zoo = args.model_zoo
+ dst_folder = args.dst_folder
+ bucket = oss2.Bucket(
+ oss2.Auth(ACCESS_KEY_ID, ACCESS_KEY_SECRET), ENDPOINT, BUCKET_NAME)
+
+ for root, dirs, files in os.walk(model_zoo):
+ for file in files:
+ file_path = osp.relpath(osp.join(root, file), model_zoo)
+ print(f'Uploading {file_path}')
+
+ oss2.resumable_upload(bucket, osp.join(dst_folder, file_path),
+ osp.join(model_zoo, file_path))
+ bucket.put_object_acl(
+ osp.join(dst_folder, file_path), oss2.OBJECT_ACL_PUBLIC_READ)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/CODE_OF_CONDUCT.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000000000000000000000000000000000..efd4305798630a5cd7b17d7cf893b9a811d5501f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/CODE_OF_CONDUCT.md
@@ -0,0 +1,76 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, sex characteristics, gender identity and expression,
+level of experience, education, socio-economic status, nationality, personal
+appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at chenkaidev@gmail.com. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see
+https://www.contributor-covenant.org/faq
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/CONTRIBUTING.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..112527ec88c78915c2cffdeb70e9d7cb1d829129
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/CONTRIBUTING.md
@@ -0,0 +1,57 @@
+# Contributing to mmsegmentation
+
+All kinds of contributions are welcome, including but not limited to the following.
+
+- Fixes (typo, bugs)
+- New features and components
+
+## Workflow
+
+1. fork and pull the latest mmsegmentation
+2. checkout a new branch (do not use master branch for PRs)
+3. commit your changes
+4. create a PR
+
+Note
+
+- If you plan to add some new features that involve large changes, it is encouraged to open an issue for discussion first.
+- If you are the author of some papers and would like to include your method to mmsegmentation,
+ please contact Kai Chen (chenkaidev[at]gmail[dot]com). We will much appreciate your contribution.
+
+## Code style
+
+### Python
+
+We adopt [PEP8](https://www.python.org/dev/peps/pep-0008/) as the preferred code style.
+
+We use the following tools for linting and formatting:
+
+- [flake8](http://flake8.pycqa.org/en/latest/): linter
+- [yapf](https://github.com/google/yapf): formatter
+- [isort](https://github.com/timothycrosley/isort): sort imports
+
+Style configurations of yapf and isort can be found in [setup.cfg](../setup.cfg) and [.isort.cfg](../.isort.cfg).
+
+We use [pre-commit hook](https://pre-commit.com/) that checks and formats for `flake8`, `yapf`, `isort`, `trailing whitespaces`,
+ fixes `end-of-files`, sorts `requirments.txt` automatically on every commit.
+The config for a pre-commit hook is stored in [.pre-commit-config](../.pre-commit-config.yaml).
+
+After you clone the repository, you will need to install initialize pre-commit hook.
+
+```shell
+pip install -U pre-commit
+```
+
+From the repository folder
+
+```shell
+pre-commit install
+```
+
+After this on every commit check code linters and formatter will be enforced.
+
+>Before you create a PR, make sure that your code lints and is formatted by yapf.
+
+### C++ and CUDA
+
+We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/config.yml b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6eaae3e0d5777c75291a35e996a352e3a442a0ad
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,6 @@
+blank_issues_enabled: false
+
+contact_links:
+ - name: MMSegmentation Documentation
+ url: https://mmsegmentation.readthedocs.io
+ about: Check the docs and FAQ to see if you question is already anwsered.
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/error-report.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/error-report.md
new file mode 100644
index 0000000000000000000000000000000000000000..73a63b7d10d7f33476a0dd141adcd1c9c1163e34
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/error-report.md
@@ -0,0 +1,48 @@
+---
+name: Error report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+Thanks for your error report and we appreciate it a lot.
+
+**Checklist**
+
+1. I have searched related issues but cannot get the expected help.
+2. The bug has not been fixed in the latest version.
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**Reproduction**
+
+1. What command or script did you run?
+
+ ```none
+ A placeholder for the command.
+ ```
+
+2. Did you make any modifications on the code or config? Did you understand what you have modified?
+3. What dataset did you use?
+
+**Environment**
+
+1. Please run `python mmseg/utils/collect_env.py` to collect necessary environment infomation and paste it here.
+2. You may add addition that may be helpful for locating the problem, such as
+ - How you installed PyTorch [e.g., pip, conda, source]
+ - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.)
+
+**Error traceback**
+
+If applicable, paste the error trackback here.
+
+```none
+A placeholder for trackback.
+```
+
+**Bug fix**
+
+If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated!
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/feature_request.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000000000000000000000000000000000000..ec59b783d900f36228e1100217bc318f01f6fa7d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,22 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+# Describe the feature
+
+**Motivation**
+A clear and concise description of the motivation of the feature.
+Ex1. It is inconvenient when [....].
+Ex2. There is a recent paper [....], which is very helpful for [....].
+
+**Related resources**
+If there is an official code release or third-party implementations, please also provide the information here, which would be very helpful.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
+If you would like to implement the feature and create a PR, please leave a comment here and that would be much appreciated.
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/general_questions.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/general_questions.md
new file mode 100644
index 0000000000000000000000000000000000000000..b5a6451a6cbf81ad1c4d0cae8541621b7991b99b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/ISSUE_TEMPLATE/general_questions.md
@@ -0,0 +1,8 @@
+---
+name: General questions
+about: Ask general questions to get help
+title: ''
+labels: ''
+assignees: ''
+
+---
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/workflows/build.yml b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/workflows/build.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9a30054bfefe964c59f018bd894c64c6a29367b6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/workflows/build.yml
@@ -0,0 +1,98 @@
+name: build
+
+on: [push, pull_request]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.7
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7
+ - name: Install pre-commit hook
+ run: |
+ pip install pre-commit
+ pre-commit install
+ - name: Linting
+ run: pre-commit run --all-files
+ - name: Check docstring
+ run: |
+ pip install interrogate
+ interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --exclude mmseg/ops --ignore-regex "__repr__" --fail-under 80 mmseg
+
+ build:
+ env:
+ CUDA: 10.1.105-1
+ CUDA_SHORT: 10.1
+ UBUNTU_VERSION: ubuntu1804
+ FORCE_CUDA: 1
+ MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [3.6, 3.7]
+ torch: [1.3.0+cpu, 1.5.0+cpu]
+ include:
+ - torch: 1.3.0+cpu
+ torchvision: 0.4.1+cpu
+ - torch: 1.5.0+cpu
+ torchvision: 0.6.0+cpu
+ - torch: 1.5.0+cpu
+ torchvision: 0.6.0+cpu
+ python-version: 3.8
+ - torch: 1.5.0+cu101
+ torchvision: 0.6.0+cu101
+ python-version: 3.7
+ - torch: 1.6.0+cu101
+ torchvision: 0.7.0+cu101
+ python-version: 3.7
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install CUDA
+ if: ${{matrix.torch == '1.5.0+cu101'}}
+ run: |
+ export INSTALLER=cuda-repo-${UBUNTU_VERSION}_${CUDA}_amd64.deb
+ wget http://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/${INSTALLER}
+ sudo dpkg -i ${INSTALLER}
+ wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_VERSION}/x86_64/7fa2af80.pub
+ sudo apt-key add 7fa2af80.pub
+ sudo apt update -qq
+ sudo apt install -y cuda-${CUDA_SHORT/./-} cuda-cufft-dev-${CUDA_SHORT/./-}
+ sudo apt clean
+ export CUDA_HOME=/usr/local/cuda-${CUDA_SHORT}
+ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${CUDA_HOME}/include:${LD_LIBRARY_PATH}
+ export PATH=${CUDA_HOME}/bin:${PATH}
+ sudo apt-get install -y ninja-build
+ - name: Install Pillow
+ if: ${{matrix.torchvision == '0.4.1+cpu'}}
+ run: pip install Pillow==6.2.2
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install mmseg dependencies
+ run: |
+ pip install mmcv-full==latest+torch${{matrix.torch}} -f https://download.openmmlab.com/mmcv/dist/index.html --use-deprecated=legacy-resolver
+ pip install -r requirements.txt
+ - name: Build and install
+ run: rm -rf .eggs && pip install -e .
+ - name: Run unittests and generate coverage report
+ run: |
+ coverage run --branch --source mmseg -m pytest tests/
+ coverage xml
+ coverage report -m
+ # Only upload coverage report for python3.7 && pytorch1.5
+ - name: Upload coverage to Codecov
+ if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}}
+ uses: codecov/codecov-action@v1.0.10
+ with:
+ file: ./coverage.xml
+ flags: unittests
+ env_vars: OS,PYTHON
+ name: codecov-umbrella
+ fail_ci_if_error: false
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/workflows/deploy.yml b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/workflows/deploy.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b972731162e15a6bc4ed89ed342222f75ec8cbab
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.github/workflows/deploy.yml
@@ -0,0 +1,22 @@
+name: deploy
+
+on: push
+
+jobs:
+ build-n-publish:
+ runs-on: ubuntu-latest
+ if: startsWith(github.event.ref, 'refs/tags')
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.7
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.7
+ - name: Build MMSegmentation
+ run: |
+ pip install wheel
+ python setup.py sdist bdist_wheel
+ - name: Publish distribution to PyPI
+ run: |
+ pip install twine
+ twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.gitignore b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..9b7cffbc88b17eb033ca403bed5c6254a539e73c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.gitignore
@@ -0,0 +1,117 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+
+data
+.vscode
+.idea
+
+# custom
+*.pkl
+*.pkl.json
+*.log.json
+work_dirs/
+
+# Pytorch
+*.pth
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.pre-commit-config.yaml b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d3395dc284edbae1fea7006ee7c8967ea62a3b45
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.pre-commit-config.yaml
@@ -0,0 +1,40 @@
+repos:
+ - repo: https://gitlab.com/pycqa/flake8.git
+ rev: 3.8.3
+ hooks:
+ - id: flake8
+ - repo: https://github.com/asottile/seed-isort-config
+ rev: v2.2.0
+ hooks:
+ - id: seed-isort-config
+ - repo: https://github.com/timothycrosley/isort
+ rev: 4.3.21
+ hooks:
+ - id: isort
+ - repo: https://github.com/pre-commit/mirrors-yapf
+ rev: v0.30.0
+ hooks:
+ - id: yapf
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v3.1.0
+ hooks:
+ - id: trailing-whitespace
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: requirements-txt-fixer
+ - id: double-quote-string-fixer
+ - id: check-merge-conflict
+ - id: fix-encoding-pragma
+ args: ["--remove"]
+ - id: mixed-line-ending
+ args: ["--fix=lf"]
+ - repo: https://github.com/jumanjihouse/pre-commit-hooks
+ rev: 2.1.4
+ hooks:
+ - id: markdownlint
+ args: ["-r", "~MD002,~MD013,~MD029,~MD033,~MD034,~MD036"]
+ - repo: https://github.com/myint/docformatter
+ rev: v1.3.1
+ hooks:
+ - id: docformatter
+ args: ["--in-place", "--wrap-descriptions", "79"]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.readthedocs.yml b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.readthedocs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..73ea4cb7e95530cd18ed94895ca38edd531f0d94
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/.readthedocs.yml
@@ -0,0 +1,7 @@
+version: 2
+
+python:
+ version: 3.7
+ install:
+ - requirements: requirements/docs.txt
+ - requirements: requirements/readthedocs.txt
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/LICENSE b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..55528a8fd10bf805118c7ee9edf47a57ec54d178
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/LICENSE
@@ -0,0 +1,220 @@
+Copyright 2020 The MMSegmentation Authors. All rights reserved.
+
+ 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 2020 The MMSegmentation Authors.
+
+ 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.
+
+
+ ======================================================================================
+ Swin-Transformer-Semantic-Segmentation Subcomponents:
+
+ The Swin-Transformer-Semantic-Segmentation project contains subcomponents with separate
+ copyright notices and license terms. Your use of the source code for the these
+ subcomponents is subject to the terms and conditions of the following licenses.
+
+ =======================================================================================
+ MIT license
+ =======================================================================================
+
+ The following components are provided under an MIT license.
+
+ 1. swin_transformer.py - For details, mmseg/models/backbones/swin_transformer.py
+ Copyright (c) 2021 Microsoft
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a94d8212b33f8fa1aaa4e4969ed9851976d9155e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/README.md
@@ -0,0 +1,95 @@
+# Swin Transformer for Semantic Segmentaion
+
+This repo contains the supported code and configuration files to reproduce semantic segmentaion results of [Swin Transformer](https://arxiv.org/pdf/2103.14030.pdf). It is based on [mmsegmentaion](https://github.com/open-mmlab/mmsegmentation/tree/v0.11.0).
+
+## Updates
+
+***05/11/2021*** Models for [MoBY](https://github.com/SwinTransformer/Transformer-SSL) are released
+
+***04/12/2021*** Initial commits
+
+## Results and Models
+
+### ADE20K
+
+| Backbone | Method | Crop Size | Lr Schd | mIoU | mIoU (ms+flip) | #params | FLOPs | config | log | model |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| Swin-T | UPerNet | 512x512 | 160K | 44.51 | 45.81 | 60M | 945G | [config](configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.1/upernet_swin_tiny_patch4_window7_512x512.log.json)/[baidu](https://pan.baidu.com/s/1dq0DdS17dFcmAzHlM_1rgw) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.1/upernet_swin_tiny_patch4_window7_512x512.pth)/[baidu](https://pan.baidu.com/s/17VmmppX-PUKuek9T5H3Iqw) |
+| Swin-S | UperNet | 512x512 | 160K | 47.64 | 49.47 | 81M | 1038G | [config](configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k.py) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.1/upernet_swin_small_patch4_window7_512x512.log.json)/[baidu](https://pan.baidu.com/s/1ko3SVKPzH9x5B7SWCFxlig) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.1/upernet_swin_small_patch4_window7_512x512.pth)/[baidu](https://pan.baidu.com/s/184em63etTMsf0cR_NX9zNg) |
+| Swin-B | UperNet | 512x512 | 160K | 48.13 | 49.72 | 121M | 1188G | [config](configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.1/upernet_swin_base_patch4_window7_512x512.log.json)/[baidu](https://pan.baidu.com/s/1YlXXiB3GwUKhHobUajlIaQ) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.1/upernet_swin_base_patch4_window7_512x512.pth)/[baidu](https://pan.baidu.com/s/12B2dY_niMirwtu64_9AMbg) |
+
+**Notes**:
+
+- **Pre-trained models can be downloaded from [Swin Transformer for ImageNet Classification](https://github.com/microsoft/Swin-Transformer)**.
+- Access code for `baidu` is `swin`.
+
+## Results of MoBY with Swin Transformer
+
+### ADE20K
+
+| Backbone | Method | Crop Size | Lr Schd | mIoU | mIoU (ms+flip) | #params | FLOPs | config | log | model |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| Swin-T | UPerNet | 512x512 | 160K | 44.06 | 45.58 | 60M | 945G | [config](configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.3/moby_upernet_swin_tiny_patch4_window7_512x512.log.json)/[baidu](https://pan.baidu.com/s/1i0EMiapoQ-otkDmx-_cJHg) | [github](https://github.com/SwinTransformer/storage/releases/download/v1.0.3/moby_upernet_swin_tiny_patch4_window7_512x512.pth)/[baidu](https://pan.baidu.com/s/1BYgtgkHQV89bGC7LQLS7Jw) |
+
+**Notes**:
+
+- The learning rate needs to be tuned for best practice.
+- MoBY pre-trained models can be downloaded from [MoBY with Swin Transformer](https://github.com/SwinTransformer/Transformer-SSL).
+
+## Usage
+
+### Installation
+
+Please refer to [get_started.md](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/get_started.md#installation) for installation and dataset preparation.
+
+### Inference
+```
+# single-gpu testing
+python tools/test.py --eval mIoU
+
+# multi-gpu testing
+tools/dist_test.sh --eval mIoU
+
+# multi-gpu, multi-scale testing
+tools/dist_test.sh --aug-test --eval mIoU
+```
+
+### Training
+
+To train with pre-trained models, run:
+```
+# single-gpu training
+python tools/train.py --options model.pretrained= [model.backbone.use_checkpoint=True] [other optional arguments]
+
+# multi-gpu training
+tools/dist_train.sh --options model.pretrained= [model.backbone.use_checkpoint=True] [other optional arguments]
+```
+For example, to train an UPerNet model with a `Swin-T` backbone and 8 gpus, run:
+```
+tools/dist_train.sh configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py 8 --options model.pretrained=
+```
+
+**Notes:**
+- `use_checkpoint` is used to save GPU memory. Please refer to [this page](https://pytorch.org/docs/stable/checkpoint.html) for more details.
+- The default learning rate and training schedule is for 8 GPUs and 2 imgs/gpu.
+
+
+## Citing Swin Transformer
+```
+@article{liu2021Swin,
+ title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
+ author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining},
+ journal={arXiv preprint arXiv:2103.14030},
+ year={2021}
+}
+```
+
+## Other Links
+
+> **Image Classification**: See [Swin Transformer for Image Classification](https://github.com/microsoft/Swin-Transformer).
+
+> **Object Detection**: See [Swin Transformer for Object Detection](https://github.com/SwinTransformer/Swin-Transformer-Object-Detection).
+
+> **Self-Supervised Learning**: See [MoBY with Swin Transformer](https://github.com/SwinTransformer/Transformer-SSL).
+
+> **Video Recognition**, See [Video Swin Transformer](https://github.com/SwinTransformer/Video-Swin-Transformer).
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..efc8b4bb20c981f3db6df7eb52b3dc0744c94cc0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/ade20k.py
@@ -0,0 +1,54 @@
+# dataset settings
+dataset_type = 'ADE20KDataset'
+data_root = 'data/ade/ADEChallengeData2016'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 512)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations', reduce_zero_label=True),
+ dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 512),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/chase_db1.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..298594ea925f87f22b37094a2ec50e370aec96a0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/chase_db1.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'ChaseDB1Dataset'
+data_root = 'data/CHASE_DB1'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (960, 999)
+crop_size = (128, 128)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f21867c63e1835f6fceb61f066e802fd8fd2a735
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/cityscapes.py
@@ -0,0 +1,54 @@
+# dataset settings
+dataset_type = 'CityscapesDataset'
+data_root = 'data/cityscapes/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/train',
+ ann_dir='gtFine/train',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/cityscapes_769x769.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/cityscapes_769x769.py
new file mode 100644
index 0000000000000000000000000000000000000000..336c7b254fe392b4703039fec86a83acdbd2e1a5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/cityscapes_769x769.py
@@ -0,0 +1,35 @@
+_base_ = './cityscapes.py'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (769, 769)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ train=dict(pipeline=train_pipeline),
+ val=dict(pipeline=test_pipeline),
+ test=dict(pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/drive.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..06e8ff606e0d2a4514ec8b7d2c6c436a32efcbf4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/drive.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'DRIVEDataset'
+data_root = 'data/DRIVE'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (584, 565)
+crop_size = (64, 64)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/hrf.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..242d790eb1b83e75cf6b7eaa7a35c674099311ad
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/hrf.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'HRFDataset'
+data_root = 'data/HRF'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (2336, 3504)
+crop_size = (256, 256)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff65bad1b86d7e3a5980bb5b9fc55798dc8df5f4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_context.py
@@ -0,0 +1,60 @@
+# dataset settings
+dataset_type = 'PascalContextDataset'
+data_root = 'data/VOCdevkit/VOC2010/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+
+img_scale = (520, 520)
+crop_size = (480, 480)
+
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClassContext',
+ split='ImageSets/SegmentationContext/train.txt',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClassContext',
+ split='ImageSets/SegmentationContext/val.txt',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClassContext',
+ split='ImageSets/SegmentationContext/val.txt',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_voc12.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_voc12.py
new file mode 100644
index 0000000000000000000000000000000000000000..ba1d42d0c5781f56dc177d860d856bb34adce555
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_voc12.py
@@ -0,0 +1,57 @@
+# dataset settings
+dataset_type = 'PascalVOCDataset'
+data_root = 'data/VOCdevkit/VOC2012'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 512)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 512),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClass',
+ split='ImageSets/Segmentation/train.txt',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClass',
+ split='ImageSets/Segmentation/val.txt',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClass',
+ split='ImageSets/Segmentation/val.txt',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_voc12_aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_voc12_aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f23b6717d53ad29f02dd15046802a2631a5076b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/pascal_voc12_aug.py
@@ -0,0 +1,9 @@
+_base_ = './pascal_voc12.py'
+# dataset settings
+data = dict(
+ train=dict(
+ ann_dir=['SegmentationClass', 'SegmentationClassAug'],
+ split=[
+ 'ImageSets/Segmentation/train.txt',
+ 'ImageSets/Segmentation/aug.txt'
+ ]))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/stare.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f71b25488cc11a6b4d582ac52b5a24e1ad1cf8e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/datasets/stare.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'STAREDataset'
+data_root = 'data/STARE'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (605, 700)
+crop_size = (128, 128)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/default_runtime.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/default_runtime.py
new file mode 100644
index 0000000000000000000000000000000000000000..b564cc4e7e7d9a67dacaaddecb100e4d8f5c005b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/default_runtime.py
@@ -0,0 +1,14 @@
+# yapf:disable
+log_config = dict(
+ interval=50,
+ hooks=[
+ dict(type='TextLoggerHook', by_epoch=False),
+ # dict(type='TensorboardLoggerHook')
+ ])
+# yapf:enable
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ann_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ann_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2cb653827e44e6015b3b83bc578003e614a6aa1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ann_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='ANNHead',
+ in_channels=[1024, 2048],
+ in_index=[2, 3],
+ channels=512,
+ project_channels=256,
+ query_scales=(1, ),
+ key_pool_scales=(1, 3, 6, 8),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/apcnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/apcnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..c8f5316cbcf3896ba9de7ca2c801eba512f01d5e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/apcnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='APCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ccnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ccnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..794148f576b9e215c3c6963e73dffe98204b7717
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ccnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='CCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ recurrence=2,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/cgnet.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/cgnet.py
new file mode 100644
index 0000000000000000000000000000000000000000..eff8d9458c877c5db894957e0b1b4597e40da6ab
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/cgnet.py
@@ -0,0 +1,35 @@
+# model settings
+norm_cfg = dict(type='SyncBN', eps=1e-03, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='CGNet',
+ norm_cfg=norm_cfg,
+ in_channels=3,
+ num_channels=(32, 64, 128),
+ num_blocks=(3, 21),
+ dilations=(2, 4),
+ reductions=(8, 16)),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=256,
+ in_index=2,
+ channels=256,
+ num_convs=0,
+ concat_input=False,
+ dropout_ratio=0,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ loss_decode=dict(
+ type='CrossEntropyLoss',
+ use_sigmoid=False,
+ loss_weight=1.0,
+ class_weight=[
+ 2.5959933, 6.7415504, 3.5354059, 9.8663225, 9.690899, 9.369352,
+ 10.289121, 9.953208, 4.3097677, 9.490387, 7.674431, 9.396905,
+ 10.347791, 6.3927646, 10.226669, 10.241062, 10.280587,
+ 10.396974, 10.055647
+ ])),
+ # model training and testing settings
+ train_cfg=dict(sampler=None),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/danet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/danet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c934939fac48525f22ad86f489a041dd7db7d09
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/danet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DAHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pam_channels=64,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7a43bee01422ad4795dd27874e0cd4bb6cbfecf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='ASPPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dilations=(1, 12, 24, 36),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3_unet_s5-d16.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3_unet_s5-d16.py
new file mode 100644
index 0000000000000000000000000000000000000000..0cd262999d8b2cb8e14a5c32190ae73f479d8e81
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3_unet_s5-d16.py
@@ -0,0 +1,50 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='UNet',
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ with_cp=False,
+ conv_cfg=None,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ upsample_cfg=dict(type='InterpConv'),
+ norm_eval=False),
+ decode_head=dict(
+ type='ASPPHead',
+ in_channels=64,
+ in_index=4,
+ channels=16,
+ dilations=(1, 12, 24, 36),
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=128,
+ in_index=3,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='slide', crop_size=256, stride=170))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3plus_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3plus_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..050e39e091d816df9028d23aa3ecf9db74e441e1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/deeplabv3plus_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DepthwiseSeparableASPPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dilations=(1, 12, 24, 36),
+ c1_in_channels=256,
+ c1_channels=48,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/dmnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/dmnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..d22ba52640bebd805b3b8d07025e276dfb023759
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/dmnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DMHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ filter_sizes=(1, 3, 5, 7),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/dnl_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/dnl_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..edb4c174c51e34c103737ba39bfc48bf831e561d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/dnl_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DNLHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dropout_ratio=0.1,
+ reduction=2,
+ use_scale=True,
+ mode='embedded_gaussian',
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/emanet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/emanet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..26adcd430926de0862204a71d345f2543167f27b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/emanet_r50-d8.py
@@ -0,0 +1,47 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='EMAHead',
+ in_channels=2048,
+ in_index=3,
+ channels=256,
+ ema_channels=512,
+ num_bases=64,
+ num_stages=3,
+ momentum=0.1,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/encnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/encnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..be777123a886503172a95fe0719e956a147bbd68
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/encnet_r50-d8.py
@@ -0,0 +1,48 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='EncHead',
+ in_channels=[512, 1024, 2048],
+ in_index=(1, 2, 3),
+ channels=512,
+ num_codes=32,
+ use_se_loss=True,
+ add_lateral=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
+ loss_se_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.2)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fast_scnn.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fast_scnn.py
new file mode 100644
index 0000000000000000000000000000000000000000..32fdeb659355a5ce5ef2cc7c2f30742703811cdf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fast_scnn.py
@@ -0,0 +1,57 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='FastSCNN',
+ downsample_dw_channels=(32, 48),
+ global_in_channels=64,
+ global_block_channels=(64, 96, 128),
+ global_block_strides=(2, 2, 1),
+ global_out_channels=128,
+ higher_in_channels=64,
+ lower_in_channels=128,
+ fusion_out_channels=128,
+ out_indices=(0, 1, 2),
+ norm_cfg=norm_cfg,
+ align_corners=False),
+ decode_head=dict(
+ type='DepthwiseSeparableFCNHead',
+ in_channels=128,
+ channels=128,
+ concat_input=False,
+ num_classes=19,
+ in_index=-1,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
+ auxiliary_head=[
+ dict(
+ type='FCNHead',
+ in_channels=128,
+ channels=32,
+ num_convs=1,
+ num_classes=19,
+ in_index=-2,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
+ dict(
+ type='FCNHead',
+ in_channels=64,
+ channels=32,
+ num_convs=1,
+ num_classes=19,
+ in_index=-3,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
+ ],
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_hr18.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_hr18.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3e299bc89ada56ca14bbffcbdb08a586b8ed9e9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_hr18.py
@@ -0,0 +1,52 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://msra/hrnetv2_w18',
+ backbone=dict(
+ type='HRNet',
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(18, 36)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(18, 36, 72)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(18, 36, 72, 144)))),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ channels=sum([18, 36, 72, 144]),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e98f6cc918b6146fc6d613c6918e825ef1355c3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_r50-d8.py
@@ -0,0 +1,45 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ num_convs=2,
+ concat_input=True,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_unet_s5-d16.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_unet_s5-d16.py
new file mode 100644
index 0000000000000000000000000000000000000000..a33e7972877f902d0e7d18401ca675e3e4e60a18
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fcn_unet_s5-d16.py
@@ -0,0 +1,51 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='UNet',
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ with_cp=False,
+ conv_cfg=None,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ upsample_cfg=dict(type='InterpConv'),
+ norm_eval=False),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=64,
+ in_index=4,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=128,
+ in_index=3,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='slide', crop_size=256, stride=170))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fpn_r50.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fpn_r50.py
new file mode 100644
index 0000000000000000000000000000000000000000..86ab327db92e44c14822d65f1c9277cb007f17c1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/fpn_r50.py
@@ -0,0 +1,36 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ neck=dict(
+ type='FPN',
+ in_channels=[256, 512, 1024, 2048],
+ out_channels=256,
+ num_outs=4),
+ decode_head=dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/gcnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/gcnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d2ad69f5c22adfe79d5fdabf920217628987166
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/gcnet_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='GCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ ratio=1 / 4.,
+ pooling_type='att',
+ fusion_types=('channel_add', ),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/lraspp_m-v3-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/lraspp_m-v3-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..93258242a90695cc94a7c6bd41562d6a75988771
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/lraspp_m-v3-d8.py
@@ -0,0 +1,25 @@
+# model settings
+norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='MobileNetV3',
+ arch='large',
+ out_indices=(1, 3, 16),
+ norm_cfg=norm_cfg),
+ decode_head=dict(
+ type='LRASPPHead',
+ in_channels=(16, 24, 960),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/nonlocal_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/nonlocal_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..5674a39854cafd1f2e363bac99c58ccae62f24da
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/nonlocal_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='NLHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dropout_ratio=0.1,
+ reduction=2,
+ use_scale=True,
+ mode='embedded_gaussian',
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ocrnet_hr18.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ocrnet_hr18.py
new file mode 100644
index 0000000000000000000000000000000000000000..c60f62a7cdf3f5c5096a7a7e725e8268fddcb057
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ocrnet_hr18.py
@@ -0,0 +1,68 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ pretrained='open-mmlab://msra/hrnetv2_w18',
+ backbone=dict(
+ type='HRNet',
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(18, 36)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(18, 36, 72)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(18, 36, 72, 144)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ ],
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ocrnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ocrnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..615aa3ff703942b6c22b2d6e9642504dd3e41ebd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/ocrnet_r50-d8.py
@@ -0,0 +1,47 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ],
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pointrend_r50.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pointrend_r50.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d323dbf9466d41e0800aa57ef84045f3d874bdf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pointrend_r50.py
@@ -0,0 +1,56 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ neck=dict(
+ type='FPN',
+ in_channels=[256, 512, 1024, 2048],
+ out_channels=256,
+ num_outs=4),
+ decode_head=[
+ dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ dict(
+ type='PointHead',
+ in_channels=[256],
+ in_index=[0],
+ channels=256,
+ num_fcs=3,
+ coarse_pred_each_layer=True,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ],
+ # model training and testing settings
+ train_cfg=dict(
+ num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75),
+ test_cfg=dict(
+ mode='whole',
+ subdivision_steps=2,
+ subdivision_num_points=8196,
+ scale_factor=2))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/psanet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/psanet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..689513fa9d2a40f14bf0ae4ae61f38f0dcc1b3da
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/psanet_r50-d8.py
@@ -0,0 +1,49 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='PSAHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ mask_size=(97, 97),
+ psa_type='bi-direction',
+ compact=False,
+ shrink_factor=2,
+ normalization_factor=1.0,
+ psa_softmax=True,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pspnet_r50-d8.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pspnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..f451e08ad2eb0732dcb806b1851eb978d4acf136
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pspnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='PSPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pspnet_unet_s5-d16.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pspnet_unet_s5-d16.py
new file mode 100644
index 0000000000000000000000000000000000000000..fcff9ec4f41fad158344ecd77313dc14564f3682
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/pspnet_unet_s5-d16.py
@@ -0,0 +1,50 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='UNet',
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ with_cp=False,
+ conv_cfg=None,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ upsample_cfg=dict(type='InterpConv'),
+ norm_eval=False),
+ decode_head=dict(
+ type='PSPHead',
+ in_channels=64,
+ in_index=4,
+ channels=16,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=128,
+ in_index=3,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='slide', crop_size=256, stride=170))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/upernet_r50.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/upernet_r50.py
new file mode 100644
index 0000000000000000000000000000000000000000..10974962fdd7136031fd06de1700f497d355ceaa
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/upernet_r50.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[256, 512, 1024, 2048],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/upernet_swin.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/upernet_swin.py
new file mode 100644
index 0000000000000000000000000000000000000000..0a0def41f6faf51ef67e8d94a59ddf42dcdfc387
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/models/upernet_swin.py
@@ -0,0 +1,49 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='SwinTransformer',
+ embed_dim=96,
+ depths=[2, 2, 6, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ mlp_ratio=4.,
+ qkv_bias=True,
+ qk_scale=None,
+ drop_rate=0.,
+ attn_drop_rate=0.,
+ drop_path_rate=0.3,
+ ape=False,
+ patch_norm=True,
+ out_indices=(0, 1, 2, 3),
+ use_checkpoint=False),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[96, 192, 384, 768],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=384,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_160k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_160k.py
new file mode 100644
index 0000000000000000000000000000000000000000..52603890b10f25faf8eec9f9e5a4468fae09b811
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_160k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=160000)
+checkpoint_config = dict(by_epoch=False, interval=16000)
+evaluation = dict(interval=16000, metric='mIoU')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf780a1b6f6521833c6a5859675147824efa599d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_20k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=20000)
+checkpoint_config = dict(by_epoch=False, interval=2000)
+evaluation = dict(interval=2000, metric='mIoU')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_40k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_40k.py
new file mode 100644
index 0000000000000000000000000000000000000000..cdbf841abcb26eed87bf76ab816aff4bae0630ee
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_40k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=40000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_80k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c190cee6bdc7922b688ea75dc8f152fa15c24617
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/_base_/schedules/schedule_80k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=8000)
+evaluation = dict(interval=8000, metric='mIoU')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7fc1648311d8f6789fd2ed99789973afbb940531
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/README.md
@@ -0,0 +1,52 @@
+# Asymmetric Non-local Neural Networks for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{annn,
+ author = {Zhen Zhu and
+ Mengde Xu and
+ Song Bai and
+ Tengteng Huang and
+ Xiang Bai},
+ title = {Asymmetric Non-local Neural Networks for Semantic Segmentation},
+ booktitle={International Conference on Computer Vision},
+ year = {2019},
+ url = {http://arxiv.org/abs/1908.07678},
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) |
+| ANN | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.55 | 76.55 | 78.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json) |
+| ANN | R-50-D8 | 769x769 | 40000 | 6.8 | 1.70 | 78.89 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json) |
+| ANN | R-101-D8 | 769x769 | 40000 | 10.7 | 1.15 | 79.32 | 80.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json) |
+| ANN | R-50-D8 | 512x1024 | 80000 | - | - | 77.34 | 78.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json) |
+| ANN | R-101-D8 | 512x1024 | 80000 | - | - | 77.14 | 78.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json) |
+| ANN | R-50-D8 | 769x769 | 80000 | - | - | 78.88 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json) |
+| ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) |
+| ANN | R-101-D8 | 512x512 | 80000 | 12.5 | 14.12 | 42.94 | 44.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json) |
+| ANN | R-50-D8 | 512x512 | 160000 | - | - | 41.74 | 42.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json) |
+| ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) |
+| ANN | R-101-D8 | 512x512 | 20000 | 9.5 | 13.94 | 77.47 | 78.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json) |
+| ANN | R-50-D8 | 512x512 | 40000 | - | - | 76.56 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json) |
+| ANN | R-101-D8 | 512x512 | 40000 | - | - | 76.70 | 78.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d494e07333217e0c6830d36d1bb58fa78b03cfb0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1eeff0b030cf1db8c6ec9740fa65db44b2026d58
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e43af541f6e3df3f36479e736bb0c03fc916970
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d854f2e4223731f443369febc500dbccdc524d9d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..893c53b1ca4bf9788e4d94f0f53cfe92a93f48ce
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a64dac670ed4d4632e7b9791ec5f8a334dcea78e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..59508248490b3edbac1c46b4fcc7891f99655b9b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9c712d1ccfd62ddf6f12ff01ea347ca1995013b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..00b2594ba8a1c9edc90cca7a6d7c3334fa209edc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef7b369dd9e12b2282a30da14f99dd4547c53a7b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ca6bb248ac867d463c274f975c884aa80a57730f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..071f190261c4e8f4a80a5da12a88e0cfcdfef0d8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..82a1c9386c51fb0ada436e51702beb961a534b26
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e04aa7c6ac050d119e07b715e2082f692e1a1de
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4912bdb9fb298518ae084eb7df0ad22d3e4ff84f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d1cc072b152986102286f503e3d7b92999bf414c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c2ab106a29c1a135fc7a726df9f6f22536357ced
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/README.md
@@ -0,0 +1,39 @@
+# Adaptive Pyramid Context Network for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@InProceedings{He_2019_CVPR,
+author = {He, Junjun and Deng, Zhongying and Zhou, Lei and Wang, Yali and Qiao, Yu},
+title = {Adaptive Pyramid Context Network for Semantic Segmentation},
+booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
+month = {June},
+year = {2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| APCNet | R-50-D8 | 512x1024 | 40000 | 7.7 | 3.57 | 78.02 | 79.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) |
+| APCNet | R-101-D8 | 512x1024 | 40000 | 11.2 | 2.15 | 79.08 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) |
+| APCNet | R-50-D8 | 769x769 | 40000 | 8.7 | 1.52 | 77.89 | 79.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) |
+| APCNet | R-101-D8 | 769x769 | 40000 | 12.7 | 1.03 | 77.96 | 79.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) |
+| APCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.96 | 79.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) |
+| APCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) |
+| APCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.79 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) |
+| APCNet | R-101-D8 | 769x769 | 80000 | - | - | 78.45 | 79.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| APCNet | R-50-D8 | 512x512 | 80000 | 10.1 | 19.61 | 42.20 | 43.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) |
+| APCNet | R-101-D8 | 512x512 | 80000 | 13.6 | 13.10 | 45.54 | 46.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) |
+| APCNet | R-50-D8 | 512x512 | 160000 | - | - | 43.40 | 43.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) |
+| APCNet | R-101-D8 | 512x512 | 160000 | - | - | 45.41 | 46.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e1cec67355abae33d518417eb96eae111f16d2b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..04cb006ba146268e1d3278151bc6ea00a4fb1bfe
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ce2279a0fbfd6fcc7cd20e3f552b1a39f47d943
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f10b98406c88256c66d3bbe241c149791d68feb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c44ebcaf36075e67208c5f033d1e5f9a78dda4e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..616984575dda73a13fc5870f60ae6ffa30d6b01b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..99c61a942e4868315ce4a9404d113f73fed4a4ea
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..62a0627ae2e9bb17974068e56ee660093e944e0d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7821c559d2f92d23b28e07e040a54cfc425eefc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..daafa5fbc12c3ed6c10b5234d520166f774e0f94
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3db6140cb97da1d202fd464d01f793276effa629
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9cac4254f37bc3755bff869a10eb3cb75db4d943
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..044d5896781de5824fc5a009d8c0eadf47a44e4e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/README.md
@@ -0,0 +1,47 @@
+# CCNet: Criss-Cross Attention for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{huang2018ccnet,
+ title={CCNet: Criss-Cross Attention for Semantic Segmentation},
+ author={Huang, Zilong and Wang, Xinggang and Huang, Lichao and Huang, Chang and Wei, Yunchao and Liu, Wenyu},
+ booktitle={ICCV},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) |
+| CCNet | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.31 | 76.35 | 78.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json) |
+| CCNet | R-50-D8 | 769x769 | 40000 | 6.8 | 1.43 | 78.46 | 79.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json) |
+| CCNet | R-101-D8 | 769x769 | 40000 | 10.7 | 1.01 | 76.94 | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json) |
+| CCNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.03 | 80.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json) |
+| CCNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.87 | 79.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json) |
+| CCNet | R-50-D8 | 769x769 | 80000 | - | - | 79.29 | 81.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json) |
+| CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) |
+| CCNet | R-101-D8 | 512x512 | 80000 | 12.2 | 14.11 | 43.97 | 45.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json) |
+| CCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.08 | 43.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json) |
+| CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) |
+| CCNet | R-101-D8 | 512x512 | 20000 | 9.5 | 13.64 | 77.27 | 79.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json) |
+| CCNet | R-50-D8 | 512x512 | 40000 | - | - | 75.96 | 77.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json) |
+| CCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.87 | 78.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2bac38ca6760af6441ede5a04409ed495ef87f3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..989928ab7f98da86e291451040ff85669a9fbddb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c32bf48751f0a18983bff0d99310870b71801663
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..53eb77c0cd6690668ee7c2a666bd85b9a5f7e73b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7eb668f39bbd22a1f42628428bc19d1645e9865
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..029c1d525b809b61dc8e548ebe4fb26e5c68a8be
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..43f05fab05ee4e20c3509a923118fe9818543cbd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..654f377b6f6152c9bd98d33824a39a41d7510c3f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a4316dde57206fe369e72fa0d32a529fe1a1932
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..16e34356e9f8566ec73e3c25c771e281d3eeb975
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ad94d8988bb822c1571816255464126d9d5b95d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..bbcd29ccea8dcf9f67f1cd198dacd5dab380b265
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..947b8ac8ce1ddf7906ad39788c6992df3b506d29
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a1f49cf6b112afdadf1841571f51b98c010ddf8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..580d59ca6995ea95a9345ef3ea574ea5b57e9cfb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c6dac64377bb3f73fdf5c836fa9c38757f75ff76
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..00ba387203a257dbb485d68134c88cb43780722d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/README.md
@@ -0,0 +1,23 @@
+# CGNet: A Light-weight Context Guided Network for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latext
+@article{wu2018cgnet,
+ title={CGNet: A Light-weight Context Guided Network for Semantic Segmentation},
+ author={Wu, Tianyi and Tang, Sheng and Zhang, Rui and Zhang, Yongdong},
+ journal={arXiv preprint arXiv:1811.08201},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CGNet | M3N21 | 680x680 | 60000 | 7.5 | 30.51 | 65.63 | 68.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes-20201101_110253.log.json) |
+| CGNet | M3N21 | 512x1024 | 60000 | 8.3 | 31.14 | 68.27 | 70.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes-20201101_110254.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/cgnet_512x1024_60k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/cgnet_512x1024_60k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..11421ef9d375d01b01c333c3705d6eb6e3348ee8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/cgnet_512x1024_60k_cityscapes.py
@@ -0,0 +1,66 @@
+_base_ = ['../_base_/models/cgnet.py', '../_base_/default_runtime.py']
+
+# optimizer
+optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+total_iters = 60000
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+
+# dataset settings
+dataset_type = 'CityscapesDataset'
+data_root = 'data/cityscapes/'
+img_norm_cfg = dict(
+ mean=[72.39239876, 82.90891754, 73.15835921], std=[1, 1, 1], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=8,
+ workers_per_gpu=8,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/train',
+ ann_dir='gtFine/train',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/cgnet_680x680_60k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/cgnet_680x680_60k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..2b2f8eefb7dbecf81fcd2db54644493480825246
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/cgnet/cgnet_680x680_60k_cityscapes.py
@@ -0,0 +1,50 @@
+_base_ = [
+ '../_base_/models/cgnet.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py'
+]
+
+# optimizer
+optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+total_iters = 60000
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+
+img_norm_cfg = dict(
+ mean=[72.39239876, 82.90891754, 73.15835921], std=[1, 1, 1], to_rgb=True)
+crop_size = (680, 680)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=8,
+ workers_per_gpu=8,
+ train=dict(pipeline=train_pipeline),
+ val=dict(pipeline=test_pipeline),
+ test=dict(pipeline=test_pipeline))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..f49ccf96194f820f509aa9448493ba12ead91953
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/README.md
@@ -0,0 +1,47 @@
+# Dual Attention Network for Scene Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{fu2018dual,
+ title={Dual Attention Network for Scene Segmentation},
+ author={Jun Fu, Jing Liu, Haijie Tian, Yong Li, Yongjun Bao, Zhiwei Fang,and Hanqing Lu},
+ booktitle={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) |
+| DANet | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.99 | 80.52 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json) |
+| DANet | R-50-D8 | 769x769 | 40000 | 8.8 | 1.56 | 78.88 | 80.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json) |
+| DANet | R-101-D8 | 769x769 | 40000 | 12.8 | 1.07 | 79.88 | 81.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json) |
+| DANet | R-50-D8 | 512x1024 | 80000 | - | - | 79.34 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json) |
+| DANet | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json) |
+| DANet | R-50-D8 | 769x769 | 80000 | - | - | 79.27 | 80.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json) |
+| DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) |
+| DANet | R-101-D8 | 512x512 | 80000 | 15 | 14.18 | 43.64 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json) |
+| DANet | R-50-D8 | 512x512 | 160000 | - | - | 42.45 | 43.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json) |
+| DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) |
+| DANet | R-101-D8 | 512x512 | 20000 | 9.9 | 13.76 | 76.02 | 77.23 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json) |
+| DANet | R-50-D8 | 512x512 | 40000 | - | - | 76.37 | 77.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json) |
+| DANet | R-101-D8 | 512x512 | 40000 | - | - | 76.51 | 77.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bfb9bdb3064275c2ac3bf2a057ef8eb79c308df
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d80b2ec160ae1c41499d45242713a99122d8adf8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f22d0fb6362252ac02f3f152a42997c68b90343
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..709f93cba3e3bca6ce0635457ab1823b04123bf8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c623eb56836760694b50f3e4e66aa0f1fc069df
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd31bc8f283fe8c322ee4876deadb89569dc1743
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..597d76de79610780b03cd91dba5f3a4f10147bcd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..70f9b31966128e8d9ec37859f57a7edfd8e6d1b2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b70c5b8d49f04661e23604ca4da56a82b1b99c9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..03734310d7338c75d48c914cb325500961c04a79
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..22aaf857c3212d0b36b0b04e7990616025a3ef9b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..010f86f1aac1b5c827dec29f692d137dc1c399bf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..0cef0f09bfa2290d14fc3a783ea500d6c3da2931
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..154e84890ed73fe4813dddc8c321de6cd2854fc1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c5b94e5a27d7f902d4bdea7ef6c4ef0b816bb99
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7237ae03c601204dc7c03018ca17ed363090569
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c4994f6469051efd4881546acfcefef76616332e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/README.md
@@ -0,0 +1,66 @@
+# Rethinking atrous convolution for semantic image segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latext
+@article{chen2017rethinking,
+ title={Rethinking atrous convolution for semantic image segmentation},
+ author={Chen, Liang-Chieh and Papandreou, George and Schroff, Florian and Adam, Hartwig},
+ journal={arXiv preprint arXiv:1706.05587},
+ year={2017}
+}
+```
+
+## Results and models
+
+Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series.
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) |
+| DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) |
+| DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) |
+| DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) |
+| DeepLabV3 | R-18-D8 | 512x1024 | 80000 | 1.7 | 13.78 | 76.70 | 78.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes-20201225_021506.log.json) |
+| DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) |
+| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) |
+| DeepLabV3 | R-18-D8 | 769x769 | 80000 | 1.9 | 5.55 | 76.60 | 78.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes-20201225_021506.log.json) |
+| DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) |
+| DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) |
+| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 40000 | 4.7 | - 6.96 | 76.71 | 78.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3 | R-18b-D8 | 512x1024 | 80000 | 1.6 | 13.93 | 76.26 | 77.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes-20201225_094144.log.json) |
+| DeepLabV3 | R-50b-D8 | 512x1024 | 80000 | 6.0 | 2.74 | 79.63 | 80.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes-20201225_155148.log.json) |
+| DeepLabV3 | R-101b-D8| 512x1024 | 80000 | 9.5 | 1.81 | 80.01 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes-20201226_171821.log.json) |
+| DeepLabV3 | R-18b-D8 | 769x769 | 80000 | 1.8 | 5.79 | 76.63 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes-20201225_094144.log.json) |
+| DeepLabV3 | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.16 | 78.80 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes-20201225_155404.log.json) |
+| DeepLabV3 | R-101b-D8| 769x769 | 80000 | 10.7 | 0.82 | 79.41 | 80.73 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes-20201226_190843.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 12.4 | 10.14 | 44.08 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json) |
+| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 42.66 | 44.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) |
+| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) |
+| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f20f260e23a95dfee9dfdceef9badab992246f53
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..de4a8a5e9f030f1e8a8802596885186163f23eed
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b5256f7b7b053cbe8d9e4ca2ec6139bb02387f6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..001b7a69c15299fc1fe5b269a5accf92c5ece032
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c707c79d659bc544d242352bcb29686eb40b004
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6804a5781369d1031f179d421a3b5a160fd575d3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..df6f36ef7c3b71ba7979aa7a1b226b3e3ebd9bb4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..40f5f62373e59d1c6c01ca3f57777698461127c9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb2be22f8bc2e10cdfba4f58b2ad1ced913b4ea4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..796ba3fb142394c4d93a29ba57548dca59d8d02b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e6d58a67b3b4dddf3da42efca30fa599e623f183
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..13094a98ee9be3cf8c88370e1e111cb4dde03ec4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5186bf614bc9ebffe47323ea61afbc9604be265b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d185db95adc61734f11f0dcd7b6c45aa652680b0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e084e95c70b0b7b0c9dcc3388d6b7d3d51d54b6d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a990c076536ad9455a9203f5b6a60157f2f2f99f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b25e725ed98324e6ea648567740dc67e0413b4f9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd920f0ca7c690d3d1c44f5f7be1cbea18fa14d4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d493ef527bb161be98d0e4ea433104b3bb9ff48
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..71a0fda48aa2538e4d913e73e94a71564377ea50
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..8e7420d24a20b662286266cac58cab4721dc8df3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..132787db98d3fc9df5ed62e31738c82da8c279bf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..b4a9d4e1b9123b3c965cd430237ce9fcc7018a11
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f62da1a8090da389a77d77a9887926af2a7ded49
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..492bd3dfdce331070cb9645dbe55142e9b662da1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..78f4d0d9de3d6b8dd2b097531317956d8e3b19f1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e35d1988f0bb7ad47a73ef1a64b73d9b40e0ba40
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd7c16580d0620bc854f2c6eb7c881bdcd23020a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e742d9a5ec2b6addf829cb802de27ea1afd53301
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..332d9cfb79fb698c7867f0f80053c1fd29bf2c1d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..dc02660428fe534605ae3bf9659382c282379a4e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/README.md
@@ -0,0 +1,68 @@
+# Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{deeplabv3plus2018,
+ title={Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation},
+ author={Liang-Chieh Chen and Yukun Zhu and George Papandreou and Florian Schroff and Hartwig Adam},
+ booktitle={ECCV},
+ year={2018}
+}
+```
+
+## Results and models
+
+Note:
+`D-8`/`D-16` here corresponding to the output stride 8/16 setting for DeepLab series.
+`MG-124` stands for multi-grid dilation in the last stage of ResNet.
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) |
+| DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) |
+| DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) |
+| DeepLabV3+ | R-18-D8 | 512x1024 | 80000 | 2.2 | 14.27 | 76.89 | 78.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes-20201226_080942.log.json) |
+| DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) |
+| DeepLabV3+ | R-18-D8 | 769x769 | 80000 | 2.5 | 5.74 | 76.26 | 77.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes-20201226_083346.log.json) |
+| DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) |
+| DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) |
+| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 40000 | 5.8 | 7.48 | 79.09 | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3+ | R-18b-D8 | 512x1024 | 80000 | 2.1 | 14.95 | 75.87 | 77.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes-20201226_090828.log.json) |
+| DeepLabV3+ | R-50b-D8 | 512x1024 | 80000 | 7.4 | 3.94 | 80.28 | 81.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes-20201225_213645.log.json) |
+| DeepLabV3+ | R-101b-D8| 512x1024 | 80000 | 10.9 | 2.60 | 80.16 | 81.41 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes-20201226_190843.log.json) |
+| DeepLabV3+ | R-18b-D8 | 769x769 | 80000 | 2.4 | 5.96 | 76.36 | 78.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes-20201226_151312.log.json) |
+| DeepLabV3+ | R-50b-D8 | 769x769 | 80000 | 8.4 | 1.72 | 79.41 | 80.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes-20201225_224655.log.json) |
+| DeepLabV3+ | R-101b-D8| 769x769 | 80000 | 12.3 | 1.10 | 79.88 | 81.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes-20201226_205041.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 14.1 | 14.16 | 44.60 | 46.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json) |
+| DeepLabV3+ | R-50-D8 | 512x512 | 160000 | - | - | 43.95 | 44.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) |
+
+#### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) |
+| DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) |
+
+#### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) |
+| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf39d2f12b719b1c91e38bef71f0f5232543b0dc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c53ec41baf9043029549b4893b2380372ea5ecd9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..68e2b072e4b8d076e8c3e929dfdc73bcd24ce859
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..3a46c28608add5325ec1decf33624c3c00bff1d7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d6ce85aea5a960e76f8154a5319c7c52e98c4c45
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ebbd3c70ee5e33c6ef4ae76b6c6a6ce828d07b4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a75c9d3019b13d01c0dd13dae53bce3d15791d52
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebb1a8eaee16de7443ab3e79e02a37340de511d7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..3caa6cf8ae61d467628378d99a919c9db1253b91
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..53fd3a909585367ca59eb827c2fbbab4cdf234ea
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3c92eb26f8fead94f5ad7ac7d7fb60d92c57114
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ea9cdb5b639e5284cd46e02ce1b67b4729950f7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..398d9759cafc1d01e78c138abd249808531a97b9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..136449083f7a9efbad6df94f1acd04170147aaba
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..aff70c93e6142ddda3a874d9dfd57ec6c4cd89b3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0172d9a87d6dc1c75bf75a9c48363eb985d389a8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b90b292b03a80aa37b8ca236746cf7cddc4ac27e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b49da3581d9697e726e114b1564fc58a55ef1099
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..318845de1e2124a4dff3348749ec5a13d78d686f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..1736c2397a9b2a4b4fb12eee8175e5ee98eaf805
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7243d0390f6394fdd528c881bb128b2c13d08037
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3304d3677f5357f1a3e343b39fcd97b238abdb5e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1491e3b8247c9d163d6016caf2fcd8043a053b7e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1056ad4d1e2a4f956d12f6daf506620fab27dd17
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..e36c83ba601884b81c06ee69445a94e76224c828
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..352d870bc8eab11974640c4b2d9c80dc6fbbaaf2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4bda3eded693bfd44a8c86ced7ae6ee9963c583
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1420b97a4bd0dc0f5451623697666012a2de635c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd8e1da9c7b1d86bc8a0c834bbede9d0fd40acf5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c0ba019136c2e4f33b015be3d82505bee2066655
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..9b12c8d862fb7b7633c5b2f4a1c357803abdcd32
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/README.md
@@ -0,0 +1,39 @@
+# Dynamic Multi-scale Filters for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@InProceedings{He_2019_ICCV,
+author = {He, Junjun and Deng, Zhongying and Qiao, Yu},
+title = {Dynamic Multi-Scale Filters for Semantic Segmentation},
+booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
+month = {October},
+year = {2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) |
+| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) |
+| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) |
+| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) |
+| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) |
+| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) |
+| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) |
+| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) |
+| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) |
+| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) |
+| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd6897691d3f8f200783fae7bfe231735f25a11b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..116cbdcede32bf24ad95f04291e98754011172c9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..d78d46c040f75d16225307d4b4151b87e6e3db29
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9713b731a47df9c5e23d26a08ad17d03a0d5e9fe
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b222e730073dd42df618db5660ee9d4117f3956
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f36d490e9c9b31de7eedf735d2712e55f35db998
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f9a917fa4223bd2428f2b2d10eac446f7ecc71a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b38f90dc4318f23d32971e7afbf90a327768f2d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8fbd9beb11f3d1308ce2cd12da2a177c2d39478
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..74f6d6a85a06e96580a3c8d5843f660c85bca5ad
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..19841547a42315164de547a4121cfd64739cf24b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..31d95f96eb10025c2ad054cde4c81f47db21f0f2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..172dfe1a0f07646c5f8cc47ddd62f5cb6da85a55
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/README.md
@@ -0,0 +1,42 @@
+# Disentangled Non-Local Neural Networks
+
+## Introduction
+
+[ALGORITHM]
+
+This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress.
+
+## Citation
+
+```latex
+@misc{yin2020disentangled,
+ title={Disentangled Non-Local Neural Networks},
+ author={Minghao Yin and Zhuliang Yao and Yue Cao and Xiu Li and Zheng Zhang and Stephen Lin and Han Hu},
+ year={2020},
+ booktitle={ECCV}
+}
+```
+
+## Results and models (in progress)
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) |
+| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) |
+| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) |
+| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) |
+| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) |
+| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) |
+| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) |
+| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) |
+| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) |
+| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) |
+| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a36e3c80a13f91e37e4d90b7ae47c7e0d204144
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f2e1b6da7e63841f4429b1caed5fbe9d537c4f8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..aca44e478b67d5a226681c099e64fe67d93cf39b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebd27a1d1c6bf0e983fafed2e5659701dadb8f24
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..575e9d01343a4563e0d3ba89b361ea8e358d2dee
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4f1b9e19411eb963d16fd2a8174529e69ecd5a1a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7aa7444d4c8022563db642478beec4dc5ab0dab
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fdff93f543af6bac93949e68532daea45e437167
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5305689d09b944f6e37aa85567ce3f29fc6974a7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..09604c39729abfc9015eb971069b987c8d8a82cb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0666199b63e604b09fe8187c378589c25d0d311b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7b07c4f47629c07faa013b9d1eae3462d898c6f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
+optimizer = dict(
+ paramwise_cfg=dict(
+ custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..40df946ed446cf862847dad084324412e5aa52ee
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/README.md
@@ -0,0 +1,26 @@
+# Expectation-Maximization Attention Networks for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{li2019expectation,
+ title={Expectation-maximization attention networks for semantic segmentation},
+ author={Li, Xia and Zhong, Zhisheng and Wu, Jianlong and Yang, Yibo and Lin, Zhouchen and Liu, Hong},
+ booktitle={Proceedings of the IEEE International Conference on Computer Vision},
+ pages={9167--9176},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) |
+| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) |
+| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) |
+| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..58f28b43f55f54c7a604960735963e6b7c13b6f1
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './emanet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c5dbf20b0fcc7bc1dd077bd8b7077772251d4c1a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './emanet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..73b7788bf924be2e1588596a88f0155ddc37358e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/emanet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..699aa212c3518901b2f84db3f062c16b023c7538
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/emanet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..6ba42f69fae5e52254b34195b6cd0ed689c5bf6c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/README.md
@@ -0,0 +1,39 @@
+# Context Encoding for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@InProceedings{Zhang_2018_CVPR,
+author = {Zhang, Hang and Dana, Kristin and Shi, Jianping and Zhang, Zhongyue and Wang, Xiaogang and Tyagi, Ambrish and Agrawal, Amit},
+title = {Context Encoding for Semantic Segmentation},
+booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
+month = {June},
+year = {2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) |
+| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) |
+| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) |
+| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) |
+| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) |
+| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) |
+| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) |
+| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) |
+| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) |
+| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) |
+| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f34373d9ebab5ef6f4c01e3eab8a97c288495be0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b0207b3144460d25229e3ac4c4d0d9fc1d34292
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fec6ba255f33d48a66a831de4571346a7a2bd2e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..c264af998b5ef6a9e521db204205fb998cce68a9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..8a6968ea583758191fa8e94497c7186e653c7afb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..94151004ea88394373cf8f135b065d5056b11179
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d6ade67b76ce04e1ede3ff99aab4863705cff446
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..55648c08b2c4eb78d7d5ae65482e5e5b291c058a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ea6ed0e84f3aa7d2c7acd8dd5c459a8cd3ce45c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2feeef7e982550481365f8187cb1a50f0fafcc9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a5dc203cc793860aae7743d16c4fb9a564ad1d8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..9cb7952cede58165d2ed0f35d2208ad1ffb65232
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..81f3cbfbf516e833821c49deecd8f167170021f0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..835375cb0447378fc76431158eb0b8fc011d36bc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d311e33f56ba431a882b0e7079001b0e9932a011
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b535f3c80818ce6b692b66f18ceee8e7b181fdc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..600b701a7194ead496cc924bee897b6096e1c7ca
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ backbone=dict(stem_channels=128),
+ decode_head=dict(num_classes=150),
+ auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fastscnn/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fastscnn/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..bb87a9f7aeb8d3630aeccc04b585a4dfec9f2b7e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fastscnn/README.md
@@ -0,0 +1,22 @@
+# Fast-SCNN for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{poudel2019fast,
+ title={Fast-scnn: Fast semantic segmentation network},
+ author={Poudel, Rudra PK and Liwicki, Stephan and Cipolla, Roberto},
+ journal={arXiv preprint arXiv:1902.04502},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|-----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d9c9999370c8b1c28af3063a3aded0d88c91caf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/fast_scnn.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+
+# Re-config the data sampler.
+data = dict(samples_per_gpu=2, workers_per_gpu=4)
+
+# Re-config the optimizer.
+optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..95ca2ac0439c3a33ef13f2e22d7fa7a83754142b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/README.md
@@ -0,0 +1,66 @@
+# Fully Convolutional Networks for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{shelhamer2017fully,
+ title={Fully convolutional networks for semantic segmentation},
+ author={Shelhamer, Evan and Long, Jonathan and Darrell, Trevor},
+ journal={IEEE transactions on pattern analysis and machine intelligence},
+ volume={39},
+ number={4},
+ pages={640--651},
+ year={2017},
+ publisher={IEEE Trans Pattern Anal Mach Intell}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) |
+| FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) |
+| FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) |
+| FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) |
+| FCN | R-18-D8 | 512x1024 | 80000 | 1.7 | 14.65 | 71.11 | 72.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes-20201225_021327.log.json) |
+| FCN | R-50-D8 | 512x1024 | 80000 | - | | 73.61 | 74.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) |
+| FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) |
+| FCN | R-18-D8 | 769x769 | 80000 | 1.9 | 6.40 | 70.80 | 73.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes-20201225_021451.log.json) |
+| FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) |
+| FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) |
+| FCN | R-18b-D8 | 512x1024 | 80000 | 1.6 | 16.74 | 70.24 | 72.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes-20201225_230143.log.json) |
+| FCN | R-50b-D8 | 512x1024 | 80000 | 5.6 | 4.20 | 75.65 | 77.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes-20201225_094221.log.json) |
+| FCN | R-101b-D8| 512x1024 | 80000 | 9.1 | 2.73 | 77.37 | 78.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes-20201226_160213.log.json) |
+| FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) |
+| FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) |
+| FCN | R-101b-D8| 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) |
+| FCN | R-101-D8 | 512x512 | 80000 | 12 | 14.78 | 39.61 | 40.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json) |
+| FCN | R-50-D8 | 512x512 | 160000 | - | - | 36.10 | 38.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json) |
+| FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) |
+| FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) |
+| FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) |
+| FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) |
+| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..f3a15b41054318d508e98685632921f262029de0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..bdccfd99ba0c25646f02850483c2cdf679fdbf3d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7918dd10d05cd98dbc02f02ef1b93e3134f52357
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..528110dc73c15008869a9ad9851ef487f0c952c7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1bf6780f2c821052692ddcb904bd10e6256c1e71
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..09a5fe5468f0155f8fd0bf2cd1574a33624d8492
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..eafefaa67565513c277c5eb42e3661a88133cb27
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d0294530f4c817b352cb020d111e3248690ae1f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b4cc571294fa45b4442c2bfeb9fda13a14fc5c2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3503c76935e294c881130b309999d32f13df8839
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b9bf60fc13364ca1b7b3842664950f653426e67
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f36eb02e68707d502cbe315ff8f6f25b232dee92
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a1d29e480cb46a763cb17d2105b3f040153d417
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6644a58dea86fd38e208abbedffe4f836e677078
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..92accfc703fc398d2845d7dc2f1d5336f24738e8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5dd34dd2134c745275c66adc5488b4b9f68d6809
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..fdc6314f704e61d064f5fb7bdd30bc38a9e87ee5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0870f928b82b24b8179305f6c9fc7f6013fb481e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..401c6ea7330d45d8f7604a1da63fc6e15faea424
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..990a085eda2f2dc47f1a1289bfbf2726ad8c9c4f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ca7fd23cedc0567a015bd5f8641a509ead6110a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..17206a5171dcc357c589a1711afa52d87faeece0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..8cec429c3e27ad2543b7e38fa206e6606fda4d5a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef194cb594eb76316324066e23e48184d8cede27
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fca98c1d9ace73a61ae395914e5960832216bf67
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7d75cd9f49343355b14c7d60bb0df0936ffe0278
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..28ef13f8d17e977f710ba9a863f182b1f80dc8cf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..106f7b6a1ece974c9f732ee813724bd8bda3bef3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8d12e4d78025313fb9689bb320b07520bd7648ef
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/README.md
@@ -0,0 +1,25 @@
+# Mixed Precision Training
+
+## Introduction
+
+[OTHERS]
+
+```latex
+@article{micikevicius2017mixed,
+ title={Mixed precision training},
+ author={Micikevicius, Paulius and Narang, Sharan and Alben, Jonah and Diamos, Gregory and Elsen, Erich and Garcia, David and Ginsburg, Boris and Houston, Michael and Kuchaiev, Oleksii and Venkatesh, Ganesh and others},
+ journal={arXiv preprint arXiv:1710.03740},
+ year={2017}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) |
+| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) |
+| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..60d8350e98605c2445ce8359ca9a7a1951fe0085
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c263d6907ec9ddfdad32b380a7d926d1391e393c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..8100a8e64d780c1b9c272b57e4e171c5e1a4120b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..aefac2953abf65c10023599ec42c709a794935c8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b840d5bf9f844e7af89803b48a43b76b887ced36
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/README.md
@@ -0,0 +1,48 @@
+# GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{cao2019gcnet,
+ title={Gcnet: Non-local networks meet squeeze-excitation networks and beyond},
+ author={Cao, Yue and Xu, Jiarui and Lin, Stephen and Wei, Fangyun and Hu, Han},
+ booktitle={Proceedings of the IEEE International Conference on Computer Vision Workshops},
+ pages={0--0},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) |
+| GCNet | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.61 | 78.28 | 79.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json) |
+| GCNet | R-50-D8 | 769x769 | 40000 | 6.5 | 1.67 | 78.12 | 80.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json) |
+| GCNet | R-101-D8 | 769x769 | 40000 | 10.5 | 1.13 | 78.95 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json) |
+| GCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.48 | 80.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json) |
+| GCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.03 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json) |
+| GCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.68 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json) |
+| GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) |
+| GCNet | R-101-D8 | 512x512 | 80000 | 12 | 15.20 | 42.82 | 44.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json) |
+| GCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.37 | 43.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json) |
+| GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) |
+| GCNet | R-101-D8 | 512x512 | 20000 | 9.2 | 14.80 | 77.41 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json) |
+| GCNet | R-50-D8 | 512x512 | 40000 | - | - | 76.24 | 77.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json) |
+| GCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.84 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..27bd9422dad49bc5a06f577ee45cd834bdbe3912
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f0f83fe39da31fe9a5b497e0481e1c79a33e764
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9888120f65b045df1c7d4d05fb010373abf82ccf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b70ca8e46a0409379f5ae9809ce03de203426ad
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..b17c7a12b547ee4e1cd60d667c575eab06eb071c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2183fc2db1ff188b0ad5418e55f71005da926cc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..08a6031f20234b1cc1d792ea5d4891613503a185
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5efb61339cdbdde585f7814e9650be2e2df654ac
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..610467c07204140bf604f8dda2aa57978c565ed3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..155e28f42194112703bb21473e5e3dd0fca40d49
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549a4d5bf10cd3fd6e3bd57bf7a48e7e5e1ede8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..a496204bdb061d975c40cb7ef2aaada40e020a13
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d85cf6550fea5da7cf1fa078eb4fa30e017166b4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..89d5e1ae0f3ef44626f3b5534c504cbce7389a32
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..332495d3d7f7d7c7c0e0aca4e379cd54e2ed07de
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d6d9cb1c64bcf8c3e952b6f8adc11bec0403d106
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d77cefe3e51091bc2264df8b201968addd81e8d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/README.md
@@ -0,0 +1,59 @@
+# Deep High-Resolution Representation Learning for Human Pose Estimation
+
+## Introduction
+
+[ALGORITHM]
+
+```latext
+@inproceedings{SunXLW19,
+ title={Deep High-Resolution Representation Learning for Human Pose Estimation},
+ author={Ke Sun and Bin Xiao and Dong Liu and Jingdong Wang},
+ booktitle={CVPR},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) |
+| FCN | HRNetV2p-W18 | 512x1024 | 40000 | 2.9 | 12.97 | 77.19 | 78.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json) |
+| FCN | HRNetV2p-W48 | 512x1024 | 40000 | 6.2 | 6.42 | 78.48 | 79.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 75.31 | 77.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json) |
+| FCN | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.65 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json) |
+| FCN | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 79.93 | 80.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 76.31 | 78.31 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json) |
+| FCN | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 78.80 | 80.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json) |
+| FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) |
+| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ff05aa595399d77ee51552c243e489f395a820e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..cf315a4f0e6f397768572c590a634cc1b9d298a9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9f04e935c39b08de66629f913b30675ffff2a8fe
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..99760c36d8399204ca8e35f32690bcd369676852
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a653dda19255214a1a412b645abddd3fc5c0d853
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..45ed99b6813324a58575f9bb74ce0534626e10c4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(decode_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f06448b168af4d2dcc5a1f96e4430a7948b7e170
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
+]
+model = dict(decode_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d74e95943afca04ba4073e411e0b713985384129
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(decode_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..52bc9f5e91f2fdf9ce8f9e3a873902dd8db56522
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(decode_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..d09931048f762cd2ac224d62c2fe2ed8e0e148c8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_480x480_40k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..584b7135fd95464f3d2c965440a0b92161cde09a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_480x480_80k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ddbe3801f99dc21120548af85c55c7cdcfadaea2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x1024_160k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e31d26e093b6cb2d59b24bb3060c92bd7dccdea
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee2831d99d859c419b158b5f828d8a84063564ea
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..22a3ce0b38f36efc96595fe1c3ef428fc1575eb0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d0de5df75242e58ba572277d6fc5cf93675a097e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_20k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..409db3c628edf63cd40e002f436884ce1fb75970
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_40k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8400979b1e94dd42343de656ffbc5fbb7a07944
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_80k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0e2d96cb6ce7249852cb1d9b36a2f24bdce00199
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_480x480_40k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..e28164e3dc9d321bf0a97b37f14f3184f95a27a5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_480x480_80k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..394a61c99f038c94fce58ac9c422b7c3ee4b5f50
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x1024_160k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d37ab1d09ef51b1321ed8b3634fd99445efee543
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9bab32b52ca41155062c7655986ed84677a8280
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..dff4fea85ced568c38d39408d459697e88ca0faa
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8d1deb98659d05755c6316c2aff2295afb0bb9c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_20k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1084a57e978195df6d45a9a00415953ddbaeeb51
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_40k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7eca7fa4b8102c6225af3b484ffff5bdc7c0f201
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_80k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e0e75e028db703129551402ae9d63c6a2861dc4b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/README.md
@@ -0,0 +1,35 @@
+# MobileNetV2: Inverted Residuals and Linear Bottlenecks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{sandler2018mobilenetv2,
+ title={Mobilenetv2: Inverted residuals and linear bottlenecks},
+ author={Sandler, Mark and Howard, Andrew and Zhu, Menglong and Zhmoginov, Andrey and Chen, Liang-Chieh},
+ booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
+ pages={4510--4520},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) |
+| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) |
+| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) |
+| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) |
+
+### ADE20k
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) |
+| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) |
+| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) |
+| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..267483d88ff25d75dc18c5c2d37375cd77c9639c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..e15b8cc82b09ac3e64875936cdfd0f663aaba936
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4533d79a25771905d7f1900bf7b34037885a77a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320, c1_in_channels=24),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7615a7c19a3f19635b71801a55e4544be4d215b5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320, c1_in_channels=24),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a535bd0ed8a4883134acdc52cf3f77c8d897ce82
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c5f6ab0d62e269e44dac016eb5ac58f49c1fa292
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7403bee864d833bcc31160665e4b54fdd738cc13
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5b72ac830be29b865ed52adaf41f2fe800f252cc
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2bad2a731c63ba51ee05518af893618cf7ed94a0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/README.md
@@ -0,0 +1,28 @@
+# Searching for MobileNetV3
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{Howard_2019_ICCV,
+ title={Searching for MobileNetV3},
+ author={Howard, Andrew and Sandler, Mark and Chu, Grace and Chen, Liang-Chieh and Chen, Bo and Tan, Mingxing and Wang, Weijun and Zhu, Yukun and Pang, Ruoming and Vasudevan, Vijay and Le, Quoc V. and Adam, Hartwig},
+ booktitle={The IEEE International Conference on Computer Vision (ICCV)},
+ pages={1314-1324},
+ month={October},
+ year={2019},
+ doi={10.1109/ICCV.2019.00140}}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| LRASPP | M-V3-D8 | 512x1024 | 320000 | 8.9 | 15.22 | 69.54 | 70.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes-20201224_220337.log.json)|
+| LRASPP | M-V3-D8 (scratch) | 512x1024 | 320000 | 8.9 | 14.77 | 67.87 | 69.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes-20201224_220337.log.json)|
+| LRASPP | M-V3s-D8 | 512x1024 | 320000 | 5.3 | 23.64 | 64.11 | 66.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes-20201224_223935.log.json)|
+| LRASPP | M-V3s-D8 (scratch) | 512x1024 | 320000 | 5.3 | 24.50 | 62.74 | 65.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes-20201224_223935.log.json)|
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e59a78b48be3a0997a31524fd78e7fad5636bc82
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = [
+ '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+
+model = dict(pretrained='open-mmlab://contrib/mobilenet_v3_large')
+
+# Re-config the data sampler.
+data = dict(samples_per_gpu=4, workers_per_gpu=4)
+
+runner = dict(type='IterBasedRunner', max_iters=320000)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3c5435142db6b1f81421f5fd96d07ece32b5f38
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+
+# Re-config the data sampler.
+data = dict(samples_per_gpu=4, workers_per_gpu=4)
+
+runner = dict(type='IterBasedRunner', max_iters=320000)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4e368b2a11ed6433d8f2594a2cc3184fe5ddfff
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py
@@ -0,0 +1,23 @@
+_base_ = './lraspp_m-v3-d8_512x1024_320k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://contrib/mobilenet_v3_small',
+ backbone=dict(
+ type='MobileNetV3',
+ arch='small',
+ out_indices=(0, 1, 12),
+ norm_cfg=norm_cfg),
+ decode_head=dict(
+ type='LRASPPHead',
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c5f707200c5d8b6d39493762baf59023dcaad11
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py
@@ -0,0 +1,22 @@
+_base_ = './lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='MobileNetV3',
+ arch='small',
+ out_indices=(0, 1, 12),
+ norm_cfg=norm_cfg),
+ decode_head=dict(
+ type='LRASPPHead',
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..76352e265a9db69640c650e192f66ab75b1f19b3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/README.md
@@ -0,0 +1,48 @@
+# Non-local Neural Networks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{wang2018non,
+ title={Non-local neural networks},
+ author={Wang, Xiaolong and Girshick, Ross and Gupta, Abhinav and He, Kaiming},
+ booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
+ pages={7794--7803},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|----------|----------|-----------|--------:|----------|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) |
+| NonLocal | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.95 | 78.66 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json) |
+| NonLocal | R-50-D8 | 769x769 | 40000 | 8.9 | 1.52 | 78.33 | 79.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json) |
+| NonLocal | R-101-D8 | 769x769 | 40000 | 12.8 | 1.05 | 78.57 | 80.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json) |
+| NonLocal | R-50-D8 | 512x1024 | 80000 | - | - | 78.01 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json) |
+| NonLocal | R-101-D8 | 512x1024 | 80000 | - | - | 78.93 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json) |
+| NonLocal | R-50-D8 | 769x769 | 80000 | - | - | 79.05 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json) |
+| NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) |
+| NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 20000 | 9.8 | 14.01 | 78.15 | 78.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json) |
+| NonLocal | R-50-D8 | 512x512 | 40000 | - | - | 76.65 | 77.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 40000 | - | - | 78.27 | 79.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef7b06dd3806c1d93be41943ab4d7d49f68ac830
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a1e66cf1c239eac3c6a4876a35d82e7b6ccec2e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..df9c2aca9c7c1999d74a08a58aca5d220f7df54a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..490f9873a29f2626ad764825eec97f16ee7f9f96
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..40d9190fba223251b794c105b036e4794865f785
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c6f60dac7b457d3b936a5f7f43eb84713c77e05
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..23e6da7f23180c2350253ea400f444c0c3064fd6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0627e2b5a76dead859212d4cab116c160df21404
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d4dc7390370d0ffe21e7dcb686eeff7261952c4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b0672b687ade8d554b71fdf0bc54de9f024fa30c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1adfbab882d9825a3f348ed99e401d1f164cd11
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e808d8072f34d09a7b0859f90261dd66c8815dd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..66b443abec3282242c0f794a2f91e066596e7ee9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..8a7a2f509ba6627ad5ab972ac090362bbcd2ecb7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..75adef324877d56c157b457eecbf8446aa6b192f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0726c293d6026898110f7fa55d5e7d2d55d7a02
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0a4c75c708330be9163dae675b0c1f84d7722728
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/README.md
@@ -0,0 +1,69 @@
+# Object-Contextual Representations for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{YuanW18,
+ title={Ocnet: Object context network for scene parsing},
+ author={Yuhui Yuan and Jingdong Wang},
+ booktitle={arXiv preprint arXiv:1809.00916},
+ year={2018}
+}
+
+@article{YuanCW20,
+ title={Object-Contextual Representations for Semantic Segmentation},
+ author={Yuhui Yuan and Xilin Chen and Jingdong Wang},
+ booktitle={ECCV},
+ year={2020}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+#### HRNet backbone
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x1024 | 40000 | 4.7 | 7.50 | 77.72 | 79.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x1024 | 40000 | 8 | 4.22 | 80.58 | 81.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 77.16 | 78.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.57 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 80.70 | 81.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 78.45 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) |
+
+#### ResNet backbone
+
+| Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------|----------|-----------|----------------|------|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) |
+| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) |
+| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 80000 | 7.9 | 18.93 | 37.79 | 39.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 80000 | 11.2 | 16.99 | 43.00 | 44.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 37.19 | 38.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 160000 | - | - | 39.32 | 40.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 20000 | 4.7 | 19.91 | 74.75 | 77.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 20000 | 8.1 | 17.83 | 77.72 | 79.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 72.76 | 74.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 40000 | - | - | 74.98 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 40000 | - | - | 77.14 | 79.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1c86eba17c46a863091d999b1a090e1237202ec5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c73b3839c8c1bc859eb3b8864256a00cfd022fe
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..506ad9319a9418f50650c477698c9b5cb9bf6663
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3c86e18ea65c6aaa36a4fb6e2708f08c7ae1698
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py
@@ -0,0 +1,35 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab9d6446c9089bfae533b9dcd66e1352d81f74d0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py
@@ -0,0 +1,36 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..df79a9cf13963d26384b00ced0cf5efa9f68a420
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py
@@ -0,0 +1,36 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ad67722a50c2b2ece5fcb7f0dd1819061ff6b3e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py
@@ -0,0 +1,35 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc7909785f743071cad2cd1032000405435f81d4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x1024_160k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..923731f74f80c11e196f6099b1c84875686cd441
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..be6bf16a2fd234f3526bf8fb8c30179f1ef9df78
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..81f3d5cb91607134bb1d844d78df7a3c411c134d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..ceb944815b5a979ddb72015295375f6fe0c31a89
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_20k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..70babc91c99eb99ee4f941b34ea886236531832e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_40k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..36e77219ac2d7ee6795db7c40ad7341749a3b1c7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_80k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c094391b1dfcef2fa6278f0c181fb50c303f7a4c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x1024_160k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0aada9d8dcd792fd4fc7da8908cc11d44a9ff521
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x1024_40k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b2e0094393151fa8975a0d53c48b6048b7e1929
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x1024_80k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b3e8af9538e6ce3c929a902e3d1ee5be53469a5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_160k_ade20k.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..c2dd6d1158bd31ecdd7874827fd37bffb5d26db6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_20k_voc12aug.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..89e6309f55f6b939f7d79271513da4934bbacbb6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_40k_voc12aug.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..04971226eb0fd6461b715358ac955dfb78102992
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_80k_ade20k.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3dd70b74a0bf912d8a6fd39f1f26be7f7571ccd6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
+optimizer = dict(lr=0.02)
+lr_config = dict(min_lr=2e-4)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e34f3432e581ff506c9d2951c98b5aad7b1be6a5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..33d96c76f68b92217ed38afe9538144dfedc4fd2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
+optimizer = dict(lr=0.02)
+lr_config = dict(min_lr=2e-4)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0dea3e31f8c1eb3da33251fa1e10227ae98561e3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/README.md
@@ -0,0 +1,32 @@
+# PointRend: Image Segmentation as Rendering
+
+## Introduction
+
+[ALGORITHM]
+
+```
+@misc{alex2019pointrend,
+ title={PointRend: Image Segmentation as Rendering},
+ author={Alexander Kirillov and Yuxin Wu and Kaiming He and Ross Girshick},
+ year={2019},
+ eprint={1912.08193},
+ archivePrefix={arXiv},
+ primaryClass={cs.CV}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) |
+| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) |
+| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8c14c8cf91d7cbcc05065a6dc387101dff8cdf6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pointrend_r50_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d1f8c8154431b056fb8371772f03dfa49ac1ad3
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './pointrend_r50_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..96cbaa48d61ee208117d074e9f06bf4218407d78
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/pointrend_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+lr_config = dict(warmup='linear', warmup_iters=200)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..db8c634c0f889c69ce80f86c445c493dcfdbd3c8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py
@@ -0,0 +1,32 @@
+_base_ = [
+ '../_base_/models/pointrend_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ dict(
+ type='PointHead',
+ in_channels=[256],
+ in_index=[0],
+ channels=256,
+ num_fcs=3,
+ coarse_pred_each_layer=True,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+])
+lr_config = dict(warmup='linear', warmup_iters=200)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..fcb24103b8e2dd649c0ad8938319f201e3254d19
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/README.md
@@ -0,0 +1,48 @@
+# PSANet: Point-wise Spatial Attention Network for Scene Parsing
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{zhao2018psanet,
+ title={Psanet: Point-wise spatial attention network for scene parsing},
+ author={Zhao, Hengshuang and Zhang, Yi and Liu, Shu and Shi, Jianping and Change Loy, Chen and Lin, Dahua and Jia, Jiaya},
+ booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
+ pages={267--283},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) |
+| PSANet | R-101-D8 | 512x1024 | 40000 | 10.5 | 2.20 | 79.14 | 80.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json) |
+| PSANet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.40 | 77.99 | 79.64 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json) |
+| PSANet | R-101-D8 | 769x769 | 40000 | 11.9 | 0.98 | 78.43 | 80.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json) |
+| PSANet | R-50-D8 | 512x1024 | 80000 | - | - | 77.24 | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json) |
+| PSANet | R-101-D8 | 512x1024 | 80000 | - | - | 79.31 | 80.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json) |
+| PSANet | R-50-D8 | 769x769 | 80000 | - | - | 79.31 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json) |
+| PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) |
+| PSANet | R-101-D8 | 512x512 | 80000 | 12.5 | 13.13 | 43.80 | 44.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json) |
+| PSANet | R-50-D8 | 512x512 | 160000 | - | - | 41.67 | 42.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json) |
+| PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) |
+| PSANet | R-101-D8 | 512x512 | 20000 | 10.4 | 12.63 | 77.91 | 79.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json) |
+| PSANet | R-50-D8 | 512x512 | 40000 | - | - | 76.30 | 77.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json) |
+| PSANet | R-101-D8 | 512x512 | 40000 | - | - | 77.73 | 79.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..69d212f158552cf5a24f62174b24a9d4976477bb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc25d6aaf67ccb7e9fcb44ba2d803bebfa31b160
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f6795e5ef0e4bf1d10ee7ed4f608bf93ac24216
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a3c43495bbf9d302216d7ddf62df75446907a36
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f62eef9773ddf41d996104de571bcda00c488e14
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8865a7c4d795d9de3f5bc6b762b305b3cabc22f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ffc99f010903267fc7c1893f4a6b0dcd2cbe42e6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a9efc55ad2062facf3a568f8cdbba76c8c55950
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6671fcb4bf8430bc0128cd93a4b8cedea1856b03
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a441013a4c1adc39fc064dbac23caaac9efdc4a6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9c6364eb43e2abc95011205b569627ff9367d0e5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(mask_size=(66, 66), num_classes=150),
+ auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..af06cb66cc808c206d6946a4b2420a6942d3dc7e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..803c42da35eda861bf32ce0e7866cdc9fad96d0d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..0141a6d0925c2a2aa37517670a9f12ac7d3a02d4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(mask_size=(66, 66), num_classes=150),
+ auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..690f8b5ef359be8a8be3a2d768aede24216a8706
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0966b4770cc649e95525c366b09801408b99567a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..931cad900680281d6970626b511124704e954c43
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/README.md
@@ -0,0 +1,62 @@
+# Pyramid Scene Parsing Network
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{zhao2017pspnet,
+ title={Pyramid Scene Parsing Network},
+ author={Zhao, Hengshuang and Shi, Jianping and Qi, Xiaojuan and Wang, Xiaogang and Jia, Jiaya},
+ booktitle={CVPR},
+ year={2017}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) |
+| PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) |
+| PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) |
+| PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) |
+| PSPNet | R-18-D8 | 512x1024 | 80000 | 1.7 | 15.71 | 74.87 | 76.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes-20201225_021458.log.json) |
+| PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) |
+| PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) |
+| PSPNet | R-18-D8 | 769x769 | 80000 | 1.9 | 6.20 | 75.90 | 77.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes-20201225_021458.log.json) |
+| PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) |
+| PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) |
+| PSPNet | R-18b-D8 | 512x1024 | 80000 | 1.5 | 16.28 | 74.23 | 75.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes-20201226_063116.log.json) |
+| PSPNet | R-50b-D8 | 512x1024 | 80000 | 6.0 | 4.30 | 78.22 | 79.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes-20201225_094315.log.json) |
+| PSPNet | R-101b-D8| 512x1024 | 80000 | 9.5 | 2.76 | 79.69 | 80.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) |
+| PSPNet | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.41 | 74.92 | 76.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes-20201226_080942.log.json) |
+| PSPNet | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.88 | 78.50 | 79.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes-20201225_094316.log.json) |
+| PSPNet | R-101b-D8| 769x769 | 80000 | 10.8 | 1.17 | 78.87 | 80.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes-20201226_171823.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 80000 | 12 | 15.30 | 43.57 | 44.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json) |
+| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 42.48 | 43.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) |
+| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) |
+| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b5a990604a77238375cb6d2b8298a382a457dd6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..fda9110603d71e14cab6e537949be191f2adf6db
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..38fee11bc23d8c92c529acd0c02a68204e34ab91
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9931a07bc2d137eb49b3fa4dad8f8681d4f5e943
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6107b41544378ad371cee95ee5ebc2e98ccbd9ad
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..2221b202d6c53c4b04f2431d3344379cbfe06dd7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..15f578b6002c481ada06befc3ea66accbbdd1f66
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb7c3d55d57b09296ea24889b218f9a0fb997463
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c6e7e58508f31627766b8ab748bd81cd51c77eca
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..59b8c6dd5ef234334bcdfa3d5e3594b7a9989b17
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab8a3d3e3fcc12dd41223af190e2ae04f14d1cb8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a7cb708e551e90a12ad4267e2af6938c353f0ba
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d914f93c023a6384e0e856b8608280cef589d5c6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5893e66a41cad73e8fb24aa58dc78ef002aecca5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..abeeedf84387d7846a8a2c10480b94c9d8405559
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..284be6d09af1806b99bee5b85286b55ce02e8cbd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..86da94de5b32576f04240a2d02dfeccc0d6ddd45
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
+test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbb02714b9e252bab38b3f9d9095dabe570b9005
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
+test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5deb5872b00a30d5c18a980c4d6c1b0d915908b9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e9972849d6899fe43f435284d0e0b1bc3b0e7a9
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..86584573a3d1afac73041b85516112ac21f1f17c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..cd88154d5e0be1a519e973331e0a14ae8a7de13e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f0c20c12f6bcf04b732dccaa4bfdba10bd10b5e6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..52efdf51d7d66c3205c1448c45ae281649a0901e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..145cadb24016eeea87fccff8171c5b0dfb78f7ab
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..23a81eb7ef56a4cd8e7c9da65b86f3d0e562001a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..946bf4fc84236942a4462c2daa7637cace4e90cf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6087dcf9f7cc04e12a2b9bcbde7abc4a56e972e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..31bac01ec9f659d6c30f220a104c385326d3f04b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/README.md
@@ -0,0 +1,34 @@
+# ResNeSt: Split-Attention Networks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{zhang2020resnest,
+title={ResNeSt: Split-Attention Networks},
+author={Zhang, Hang and Wu, Chongruo and Zhang, Zhongyue and Zhu, Yi and Zhang, Zhi and Lin, Haibin and Sun, Yue and He, Tong and Muller, Jonas and Manmatha, R. and Li, Mu and Smola, Alexander},
+journal={arXiv preprint arXiv:2004.08955},
+year={2020}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) |
+| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) |
+| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) |
+| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) |
+
+### ADE20k
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) |
+| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) |
+| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) |
+| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f98398690eb3e1e77975d7fb94ea865424aa331b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..e3924ad679cb3d7ba731322f9cdb67410baae59a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..69bef7238345cf6aabb126012af992602f910287
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..d51bccb965dafc40d7859219d132dc9467740a1b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..33fa0252d8b4cc786f1297605c169ee6068195a4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..dcee8c280e833825f84b944c6db21e9a43125e06
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9737849cbd7470b03ef3fcb3b1225283370eb503
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a622eae963401e143004a62ff53071ddbf61c01
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c73ade624817b61be2f226c6fae03d0b023c570a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/README.md
@@ -0,0 +1,35 @@
+# Panoptic Feature Pyramid Networks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{Kirillov_2019,
+ title={Panoptic Feature Pyramid Networks},
+ ISBN={9781728132938},
+ url={http://dx.doi.org/10.1109/CVPR.2019.00656},
+ DOI={10.1109/cvpr.2019.00656},
+ journal={2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
+ publisher={IEEE},
+ author={Kirillov, Alexander and Girshick, Ross and He, Kaiming and Dollar, Piotr},
+ year={2019},
+ month={Jun}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) |
+| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) |
+| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f8710d4be4ee0664f644b9037fd4653e4655907
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fpn_r50_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2654096dfd78ecdd4065ac2d26cab3e2f11a9c65
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './fpn_r50_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4bf3edd825296fbbed883effc3622793e9adf071
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fpn_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5cdfc8ca264c6045dcb7ad890d89f15537bef233
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fpn_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(decode_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..49551718811d7c489738351b6d344a01547a575e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_base_patch4_window7_512x512_160k_ade20k.py
@@ -0,0 +1,38 @@
+_base_ = [
+ '../_base_/models/upernet_swin.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ backbone=dict(
+ embed_dim=128,
+ depths=[2, 2, 18, 2],
+ num_heads=[4, 8, 16, 32],
+ window_size=7,
+ ape=False,
+ drop_path_rate=0.3,
+ patch_norm=True,
+ use_checkpoint=False
+ ),
+ decode_head=dict(
+ in_channels=[128, 256, 512, 1024],
+ num_classes=150
+ ),
+ auxiliary_head=dict(
+ in_channels=512,
+ num_classes=150
+ ))
+
+# AdamW optimizer, no weight decay for position embedding & layer norm in backbone
+optimizer = dict(_delete_=True, type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01,
+ paramwise_cfg=dict(custom_keys={'absolute_pos_embed': dict(decay_mult=0.),
+ 'relative_position_bias_table': dict(decay_mult=0.),
+ 'norm': dict(decay_mult=0.)}))
+
+lr_config = dict(_delete_=True, policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-6,
+ power=1.0, min_lr=0.0, by_epoch=False)
+
+# By default, models are trained on 8 GPUs with 2 images per GPU
+data=dict(samples_per_gpu=2)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b31832cf4e406b0e78f4e431787a13b7cb7af09
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_small_patch4_window7_512x512_160k_ade20k.py
@@ -0,0 +1,38 @@
+_base_ = [
+ '../_base_/models/upernet_swin.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ backbone=dict(
+ embed_dim=96,
+ depths=[2, 2, 18, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ ape=False,
+ drop_path_rate=0.3,
+ patch_norm=True,
+ use_checkpoint=False
+ ),
+ decode_head=dict(
+ in_channels=[96, 192, 384, 768],
+ num_classes=150
+ ),
+ auxiliary_head=dict(
+ in_channels=384,
+ num_classes=150
+ ))
+
+# AdamW optimizer, no weight decay for position embedding & layer norm in backbone
+optimizer = dict(_delete_=True, type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01,
+ paramwise_cfg=dict(custom_keys={'absolute_pos_embed': dict(decay_mult=0.),
+ 'relative_position_bias_table': dict(decay_mult=0.),
+ 'norm': dict(decay_mult=0.)}))
+
+lr_config = dict(_delete_=True, policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-6,
+ power=1.0, min_lr=0.0, by_epoch=False)
+
+# By default, models are trained on 8 GPUs with 2 images per GPU
+data=dict(samples_per_gpu=2)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..aae70e2aff0114989954574f0c59478489d94154
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/swin/upernet_swin_tiny_patch4_window7_512x512_160k_ade20k.py
@@ -0,0 +1,38 @@
+_base_ = [
+ '../_base_/models/upernet_swin.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ backbone=dict(
+ embed_dim=96,
+ depths=[2, 2, 6, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ ape=False,
+ drop_path_rate=0.3,
+ patch_norm=True,
+ use_checkpoint=False
+ ),
+ decode_head=dict(
+ in_channels=[96, 192, 384, 768],
+ num_classes=150
+ ),
+ auxiliary_head=dict(
+ in_channels=384,
+ num_classes=150
+ ))
+
+# AdamW optimizer, no weight decay for position embedding & layer norm in backbone
+optimizer = dict(_delete_=True, type='AdamW', lr=0.00006, betas=(0.9, 0.999), weight_decay=0.01,
+ paramwise_cfg=dict(custom_keys={'absolute_pos_embed': dict(decay_mult=0.),
+ 'relative_position_bias_table': dict(decay_mult=0.),
+ 'norm': dict(decay_mult=0.)}))
+
+lr_config = dict(_delete_=True, policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-6,
+ power=1.0, min_lr=0.0, by_epoch=False)
+
+# By default, models are trained on 8 GPUs with 2 images per GPU
+data=dict(samples_per_gpu=2)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d815510a19ade68c4962f04b8dee2c317f1788ce
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/README.md
@@ -0,0 +1,50 @@
+# U-Net: Convolutional Networks for Biomedical Image Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{ronneberger2015u,
+ title={U-net: Convolutional networks for biomedical image segmentation},
+ author={Ronneberger, Olaf and Fischer, Philipp and Brox, Thomas},
+ booktitle={International Conference on Medical image computing and computer-assisted intervention},
+ pages={234--241},
+ year={2015},
+ organization={Springer}
+}
+```
+
+## Results and models
+
+### DRIVE
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) |
+| UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) |
+
+### STARE
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) |
+| UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) |
+
+### CHASE_DB1
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) |
+| UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) |
+
+### HRF
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) |
+| UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..c706cf3548e311a7930e5b58299e05af30c43d98
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py',
+ '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ef02dcc491871f148b1ad038d281d250eb6e2f4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/stare.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..118428bc44d3078517e231399b131db492f2bc7e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/hrf.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f8862a0e89243d67634f37c3aca94ca98feff5c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/drive.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..2bc52d96293f214adf1e3e1878746ed8bd2434f6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d836c61dfd568dd4d29d876980001067dcaa200
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/stare.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..be8eec77792f4eb16475dc5ab8607fb5682f0acf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/hrf.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..80483ade4a4bc3dc5cb8805e8b74c100e872da0c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/drive.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..b085a17d6bab5f4d33668bfcf232e30f2a9830fe
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py',
+ '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d729cea699e1c845549c74b52703c9ee3273662
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/stare.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..f57c9166b67a18fd74f474754b3baec6584b17cf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/hrf.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b5421ad6877e4b35b0a6ae6e516e577404547ce
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/drive.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/README.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d53a92f9bdb67ca9e4c3974ee368ca49d84619c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/README.md
@@ -0,0 +1,48 @@
+# Unified Perceptual Parsing for Scene Understanding
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{xiao2018unified,
+ title={Unified perceptual parsing for scene understanding},
+ author={Xiao, Tete and Liu, Yingcheng and Zhou, Bolei and Jiang, Yuning and Sun, Jian},
+ booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
+ pages={418--434},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) |
+| UPerNet | R-101 | 512x1024 | 40000 | 7.4 | 3.79 | 78.69 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json) |
+| UPerNet | R-50 | 769x769 | 40000 | 7.2 | 1.76 | 77.98 | 79.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json) |
+| UPerNet | R-101 | 769x769 | 40000 | 8.4 | 1.56 | 79.03 | 80.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json) |
+| UPerNet | R-50 | 512x1024 | 80000 | - | - | 78.19 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json) |
+| UPerNet | R-101 | 512x1024 | 80000 | - | - | 79.40 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json) |
+| UPerNet | R-50 | 769x769 | 80000 | - | - | 79.39 | 80.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json) |
+| UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) |
+| UPerNet | R-101 | 512x512 | 80000 | 9.1 | 20.34 | 42.91 | 43.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json) |
+| UPerNet | R-50 | 512x512 | 160000 | - | - | 42.05 | 42.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json) |
+| UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) |
+| UPerNet | R-101 | 512x512 | 20000 | 7.5 | 19.98 | 77.10 | 78.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json) |
+| UPerNet | R-50 | 512x512 | 40000 | - | - | 75.92 | 77.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json) |
+| UPerNet | R-101 | 512x512 | 40000 | - | - | 77.43 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json) |
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b90b597d831a664761d6051397d2b1862feb59c6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..420ca2e42836099213c1f91cb925088cfe7c1269
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..146f13eb79053cc69d4934d294aad9ba723b2577
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..56345d1806482ac822d709893fe6942f44be6f74
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..0669b741b9b3e3e1a309147b920d3d2a1952ab75
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..abfb9c5d9f35407d590cdc3325006b396ec52820
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e5f3a3fae18cb769fd04b0c669785c5728cf479f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a709165657d257df4fc76148d225261c63f88d8a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r101_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d621e89ce62c06424db7c2e5f5fd00a0a2e85a61
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..95fffcc76c2ff4f61f8dd80a00d35b7875262a50
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_160k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f5dd9aa4ed59d4939bcb49ffe129a9935e303201
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_20k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..95f5c09567144db47e07fc802b114bedd6a00725
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_40k_voc12aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..9621fd1f5c24e582b4a1eda18fcc0a13d2bcb953
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_80k_ade20k.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f561e309e3bddb439c90af930c4de5a0c7e209a7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_769x769_40k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..89b18aa2840d12e67339ce0b7a0561fa2ba0c6fa
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_769x769_80k_cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..29af98f2ebe341998fcf93f8a5c018cabcc0c0ba
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/configs/upernet/upernet_r50_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/MMSegmentation_Tutorial.ipynb b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/MMSegmentation_Tutorial.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..127ad4e6a7d14d83ddca96ca519a26e5ba52eb64
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/MMSegmentation_Tutorial.ipynb
@@ -0,0 +1,1416 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "MMSegmentation Tutorial.ipynb",
+ "provenance": [],
+ "collapsed_sections": [],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "accelerator": "GPU",
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "40a3c0b2c7a44085b69b9c741df20b3e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_ec96fb4251ea4b8ea268a2bc62b9c75b",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_dae4b284c5a944639991d29f4e79fac5",
+ "IPY_MODEL_c78567afd0a6418781118ac9f4ecdea9"
+ ]
+ }
+ },
+ "ec96fb4251ea4b8ea268a2bc62b9c75b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "dae4b284c5a944639991d29f4e79fac5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_32b7d27a143c41b5bb90f1d8e66a1c67",
+ "_dom_classes": [],
+ "description": "100%",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 102567401,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 102567401,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_55d75951f51c4ab89e32045c3d6db8a4"
+ }
+ },
+ "c78567afd0a6418781118ac9f4ecdea9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_9d29e2d02731416d9852e9c7c08d1665",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 97.8M/97.8M [00:10<00:00, 9.75MB/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_1bb2b93526cd421aa5d5b86d678932ab"
+ }
+ },
+ "32b7d27a143c41b5bb90f1d8e66a1c67": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "initial",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "55d75951f51c4ab89e32045c3d6db8a4": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "9d29e2d02731416d9852e9c7c08d1665": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "1bb2b93526cd421aa5d5b86d678932ab": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ }
+ }
+ },
+ "pycharm": {
+ "stem_cell": {
+ "cell_type": "raw",
+ "source": [],
+ "metadata": {
+ "collapsed": false
+ }
+ }
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "FVmnaxFJvsb8",
+ "colab_type": "text"
+ },
+ "source": [
+ "# MMSegmentation Tutorial\n",
+ "Welcome to MMSegmentation! \n",
+ "\n",
+ "In this tutorial, we demo\n",
+ "* How to do inference with MMSeg trained weight\n",
+ "* How to train on your own dataset and visualize the results. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "QS8YHrEhbpas",
+ "colab_type": "text"
+ },
+ "source": [
+ "## Install MMSegmentation\n",
+ "This step may take several minutes. \n",
+ "\n",
+ "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "UWyLrLYaNEaL",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 170
+ },
+ "outputId": "35b19c63-d6f3-49e1-dcaa-aed3ecd85ed7"
+ },
+ "source": [
+ "# Check nvcc version\n",
+ "!nvcc -V\n",
+ "# Check GCC version\n",
+ "!gcc --version"
+ ],
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "nvcc: NVIDIA (R) Cuda compiler driver\n",
+ "Copyright (c) 2005-2019 NVIDIA Corporation\n",
+ "Built on Sun_Jul_28_19:07:16_PDT_2019\n",
+ "Cuda compilation tools, release 10.1, V10.1.243\n",
+ "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n",
+ "Copyright (C) 2017 Free Software Foundation, Inc.\n",
+ "This is free software; see the source for copying conditions. There is NO\n",
+ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Ki3WUBjKbutg",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 340
+ },
+ "outputId": "69f42fab-3f44-44d0-bd62-b73836f90a3d"
+ },
+ "source": [
+ "# Install PyTorch\n",
+ "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n",
+ "# Install MMCV\n",
+ "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n",
+ "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.6/dist-packages (1.5.0+cu101)\n",
+ "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.6/dist-packages (0.6.0+cu101)\n",
+ "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n",
+ "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (1.18.5)\n",
+ "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.6.0+cu101) (7.0.0)\n",
+ "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n",
+ "Collecting mmcv-full==latest+torch1.5.0+cu101\n",
+ " Using cached https://download.openmmlab.com/mmcv/dist/latest/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp36-cp36m-manylinux1_x86_64.whl\n",
+ "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.18.5)\n",
+ "Requirement already satisfied: addict in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.2.1)\n",
+ "Requirement already satisfied: yapf in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.30.0)\n",
+ "Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n",
+ "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n",
+ "Installing collected packages: mmcv-full\n",
+ " Found existing installation: mmcv-full 1.0.0\n",
+ " Uninstalling mmcv-full-1.0.0:\n",
+ " Successfully uninstalled mmcv-full-1.0.0\n",
+ "Successfully installed mmcv-full-1.0.0\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "nR-hHRvbNJJZ",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 374
+ },
+ "outputId": "ca6d9c48-0034-47cf-97b5-f31f529cc31c"
+ },
+ "source": [
+ "!rm -rf mmsegmentation\n",
+ "!git clone https://github.com/open-mmlab/mmsegmentation.git \n",
+ "%cd mmsegmentation\n",
+ "!pip install -e ."
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Cloning into 'mmsegmentation'...\n",
+ "remote: Enumerating objects: 485, done.\u001b[K\n",
+ "remote: Counting objects: 100% (485/485), done.\u001b[K\n",
+ "remote: Compressing objects: 100% (303/303), done.\u001b[K\n",
+ "remote: Total 649 (delta 280), reused 317 (delta 171), pack-reused 164\u001b[K\n",
+ "Receiving objects: 100% (649/649), 1.96 MiB | 3.99 MiB/s, done.\n",
+ "Resolving deltas: 100% (364/364), done.\n",
+ "/content/mmsegmentation\n",
+ "Obtaining file:///content/mmsegmentation\n",
+ "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (3.2.2)\n",
+ "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (1.18.5)\n",
+ "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.4.7)\n",
+ "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.8.1)\n",
+ "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (1.2.0)\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (0.10.0)\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.1->matplotlib->mmseg==0.5.0+b2724da) (1.12.0)\n",
+ "Installing collected packages: mmseg\n",
+ " Found existing installation: mmseg 0.5.0+b2724da\n",
+ " Can't uninstall 'mmseg'. No files were found to uninstall.\n",
+ " Running setup.py develop for mmseg\n",
+ "Successfully installed mmseg\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "mAE_h7XhPT7d",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 51
+ },
+ "outputId": "912ec9be-4103-40b8-91cc-4d31e9415f60"
+ },
+ "source": [
+ "# Check Pytorch installation\n",
+ "import torch, torchvision\n",
+ "print(torch.__version__, torch.cuda.is_available())\n",
+ "\n",
+ "# Check MMSegmentation installation\n",
+ "import mmseg\n",
+ "print(mmseg.__version__)"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "1.5.0+cu101 True\n",
+ "0.5.0+b2724da\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "eUcuC3dUv32I",
+ "colab_type": "text"
+ },
+ "source": [
+ "## Run Inference with MMSeg trained weight"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "2hd41IGaiNet",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 204
+ },
+ "outputId": "2834674e-deef-49d7-cd4c-db8dd1ae9733"
+ },
+ "source": [
+ "!mkdir checkpoints\n",
+ "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints"
+ ],
+ "execution_count": 5,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "--2020-07-09 19:13:21-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n",
+ "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.56.140\n",
+ "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.56.140|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n",
+ "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n",
+ "\n",
+ "pspnet_r50-d8_512x1 100%[===================>] 187.12M 11.8MB/s in 18s \n",
+ "\n",
+ "2020-07-09 19:13:40 (10.4 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "H8Fxg8i-wHJE",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n",
+ "from mmseg.core.evaluation import get_palette"
+ ],
+ "execution_count": 6,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "umk8sJ0Xuace",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n",
+ "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'"
+ ],
+ "execution_count": 7,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "nWlQFuTgudxu",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "# build the model from a config file and a checkpoint file\n",
+ "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')"
+ ],
+ "execution_count": 8,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "izFv6pSRujk9",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "# test a single image\n",
+ "img = 'demo/demo.png'\n",
+ "result = inference_segmentor(model, img)"
+ ],
+ "execution_count": 9,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "bDcs9udgunQK",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 504
+ },
+ "outputId": "8221fdb1-92af-4d7c-e65b-c7adf0f5a8af"
+ },
+ "source": [
+ "# show the results\n",
+ "show_result_pyplot(model, img, result, get_palette('cityscapes'))"
+ ],
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n",
+ " warnings.warn('show==False and out_file is not specified, only '\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Ta51clKX4cwM",
+ "colab_type": "text"
+ },
+ "source": [
+ "## Train a semantic segmentation model on a new dataset\n",
+ "\n",
+ "To train on a customized dataset, the following steps are neccessary. \n",
+ "1. Add a new dataset class. \n",
+ "2. Create a config file accordingly. \n",
+ "3. Perform training and evaluation. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "AcZg6x_K5Zs3",
+ "colab_type": "text"
+ },
+ "source": [
+ "### Add a new dataset\n",
+ "\n",
+ "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n",
+ "\n",
+ "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n",
+ "\n",
+ "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n",
+ "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "TFIt7MHq5Wls",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 204
+ },
+ "outputId": "5e56d5dc-4f1c-4d7c-f833-51cfdbf8d481"
+ },
+ "source": [
+ "# download and unzip\n",
+ "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n",
+ "!tar xf standford_background.tar.gz"
+ ],
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "--2020-07-09 19:13:50-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n",
+ "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n",
+ "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 14727974 (14M) [application/x-gzip]\n",
+ "Saving to: ‘standford_background.tar.gz’\n",
+ "\n",
+ "standford_backgroun 100%[===================>] 14.04M 3.22MB/s in 4.4s \n",
+ "\n",
+ "2020-07-09 19:13:55 (3.22 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "78LIci7F9WWI",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 377
+ },
+ "outputId": "a7f339c7-a071-40db-f30d-44028dd2ce1c"
+ },
+ "source": [
+ "# Let's take a look at the dataset\n",
+ "import mmcv\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n",
+ "plt.figure(figsize=(8, 6))\n",
+ "plt.imshow(mmcv.bgr2rgb(img))\n",
+ "plt.show()"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdsAAAFoCAYAAAAfJFHvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9yY4023bf99tdNJlZ9XWnuSIPKV4YMic0bMC2PDPggQDPPLX9ABr5AfwsGnjsJxDgZ9BUMm2KtsXbUTzna6oqM6PZrQdr78iouudSguEDXgq1gcT3VVVkNDsi1n+t//qvtVUphdfxOl7H63gdr+N1/HRD/12fwOt4Ha/jdbyO1/Ef+ngF29fxOl7H63gdr+MnHq9g+zpex+t4Ha/jdfzE4xVsX8freB2v43W8jp94vILt63gdr+N1vI7X8ROPV7B9Ha/jdbyO1/E6fuLxk4GtUuq/VUr9n0qpv1RK/c8/1XFex+t4Ha/jdbyO3/ehfoo6W6WUAf4C+CfAr4B/AfwPpZT//f/3g72O1/E6XsfreB2/5+Onimz/MfCXpZT/u5Tigf8V+O9+omO9jtfxOl7H63gdv9fD/kT7/UPgl7uffwX8V/sNlFL/FPinAMaY//zudGy/37YppVBKQSn17PPy7xQoSISuUHDbhJeR+35/KEXJuZ1Q2+B2jlqhlJbtgULdtVLbftvPlELOmVIKuZTbKSiFrvtu39daP7uO7VraRkApebs+Ywxa6+04pRTZh1bbtWul0NpgjCbnTM6ZlDMlZ7TWaCXbb3O2HbjOXYFcMlrpbf5ijOScUUphrcVoQ0yRnGUOjTHbdZW6Xdv/do51rl/ex5TSNj+q3odcCqVkYoz0fY+1DucsKcn1oMAaizGGGJP8DlBKyzVqjbEWs82vopRMSpEYIyH47fa2a1JKEVMCCn3X0/X9s/Nf1xUKaKNx1pFS2ua3FLbjWme3G6yVxlq77SeXQkoRCqSUiCkxjsP2DJRSsNaitaYU8N7LfdcGbWT/3q+kes3WGnkm6jMMZbtXpR6r1HMxWrMsC0qpep6Okm/PQN93WOvqPcq3ua4XE2Mk5UTJBWMNnXOoOr8lF7wPAFhrAcU8z6SUMEZzPB6fvYPGGAp1TrLcF4VCaYXRhpTS9tx3zm3Xo5R8V95Deb8Vt/c1pSTnxN5+KGR66rtZyvact3NIORNDIMb47N3UWt4la4ycn9rtrx5Xteva3qWye/bbNd/es70VKvU5b+9Re2ba/9sLuLcxarvX207aVXKbCjkfpfR2xFKef21/Lu2ay8u/ltvvtFKbbZUv3Cyhqued27k0G7Ub8lw3GyC/k/chi73RYttUtSXyngbmZX12vimneky13dN2jts1VLvbTtE5S+ccfd/X77X7l5/ZvXbc9m577+s7Ls9WjKnaZ7nucRyr/a02p9pnrTV//ud//rGU8jU/Mn4qsP13jlLKPwP+GcD7d2/LP/lv/uvtRZELvF28c277dF33bD/NyLTPtn9kMmOMzwx+ruDjnNuMaYxxA7X9xLVjtt814BHj57ftrbWEEDifz6zruv2tAcwwDAAbQJ1OJ5xz1TCmul9NyXK+MUaWZSFUQ3B3d8d4GLFWDJJzthpJS0oJrTXH44H7+zvGceTx8ZGnpyceHx9RKTMMA33f45yAhRi1ss1Jm+8QAs45AHLOfPz4kRACwzDwzTffMI4jHz9/YpoXOjdy//YNXddtwJJSYl1X5nlmmqbt2u/v7+t5i1HPOfP4+CjG31rGcSRGj4+B1a88Pj7w3Xd/xLff/oxvv/2Wh4czT09PoBR3d3e8f/+ej5++ME+L3KNuoO8GxvHA2w8feP/u/Wb81/lKDiufP37PX/3Vv+HL45lCYTwc+NnPfsZwGHl4fCTlzHfffcfP/uAPxPHImfvTHX/xr/81KUSGruN4OvH0+MS6eEIIfDlf+O677/jw1Ve8efMGv3qGYWAcR46nI8s8b8/lXO/n4+Mjnz9/5k//9E9l3nIhxMDXX33F8XRHzolf/NWvSClxPJ04HU8cDyO//vWv+PTxI49fPvP27T3fffcdw9BTSsaHhY/ff8/T+YlpnvDLQi6JQsFozb/5xS/o+577N294+/adPO+5oJXmj//4j/j6629wzuH9ysPDI/P1SowRbQyfPn/i6ekJv3revnvLH//Df8g4jiitOT9d+PWv/hpjLB8+fIVRmn/5r/4lDw+PHMaR//If/xfyzqWEMvDVh69Y14XrfMXPC2tcscbSdx3owtPjEyVnhs7x7v6OdZ7JOdJ1Pe/fv8Mai0Zt7zBATpnr+Ym+6zHWYLUh54LWans3VYEQIzFFQopk5H5crhf++jd/zZeHL+ScMdpwd3ei73rGceT+eCLHiEFjjWHse3rXoYo4lyUmyIWSI6UkCpkYEjFFYvSkWFCmOROWogo5F2JKrGHBrxGUOHWu63HOoLQBLWCZYxZA0wprOwEtgKJAZRQahUJrUGhSjJQUMdqhVHNqQBswqjrGCpYUwGi00RilydTraQCWC7mi0Nj3xOp8afHeIGWU1riu4zAM+JhIBXTXoa0j5UQuGaM179++pR8GrHOEEMilsIbAZV6YlpXhcGQ4HBiOJ7JS/M0PH/nNX/8N/8df/CWpFDIQS+bpcsFYAc+u6zeHRiuFqbaZnNGl4KzBlMK3X3/gD372DT//kz/BWoVTcr2FADGKY5czoPn+h+85P525nq/84he/YJoWlmXl6enM9z98xIdIKgWU4c/+0/+Eu7s3uH7g7v6O+7dvGY8HxvHAf/Znf/ZXvwvzfiqw/TXwR7ufv6u/+51jb4i9F2PWgGQf0YrX/BwQ99FGA5KcMz6GZxGVRA7lGfA2kAgh0Pf9tu/mSW/RSd22gXsDj/35vYy+W/QWQtiAxRizfW/vUPSd3R7wdj7ee2KMAt7WkLMhxoi1+pmTsXdAvPfM88w8zyzLwmAlQmgORfsesDkQ+/NYlmU75jzPm8PR973Mi745GKUUnHMcDgecczw9PYmRrtfaHI8QgkSQ9djzPHM+n7HW0vc9Xddt97NFqRKVyrznlFiXRSL1esywevFerWOojoR1hq5zjIcBayWCi35h7I6sy4lhGEifH0g5Yevz1Zys5qWu83xzulAYFD5GriFwuVyYr5MYc2OZlyvH04F3798AipgDxh1wvWX1C5fpXCMLxeplXmMKFDIherSRqCFEz3W+oq0YT2MkCkgx4P3KoXeMg8NZRUqB6/UKJaMo8pwsK+syM18vfHn4jFVaHM0UuZzPXB4fSYcDRmvIGescRkuUuswTl/NjBVvPl88fma+T3EdrOD89cr1cCCEwDh0lJwGWlJguZ+Iyo5yjhIWMQuWAKQGdLclPFQ4K1hgskTWt5HWixMBoNa4zdE6c3k6B6zvevrkjrgslrKhScF1HrxRaASUT/ELlReQZCZ5IIQdFKBC8p0BlezSUgm8sjTEUYFoWzpcz58cn1mmRZ7Y3GGUFmFJhnhfm6xWVwRlLPB4JfU+OqX4ixugbIDpDVpqEnEcCnNZoY9HOgSqQBNStVmQCmSSRm9LozXYIy1C07LtotTFkihoF13elhmuEINemjCaVGr2hwSiyKihlQclvC+CGHts5nLGgVQVbsJ1DNfZHC5zHnATU6twJW2YYxoGh64kps6yeh/MZTSSlLOdvIRXIBQoKbSy5ZAG6nClyqZstMkrTWUffdfR9L8fSqtrFgjEW5zphn6p9UPU+l1IIywI5M/QOA/Q1EKgPijAa7eLkCmmZVFWUeCLo+tmd3I4qzUocgCx7I5VMzJmYMqGxdb9j/FRg+y+Af6SU+jkCsv898D/+ro33ANXAr4Fi13XPgLht00DRWourlNM+uk0pEa/pGdi27zZwUUptlEEzsA1gG9i137fjtWhz86xz3sCk3di23z1da62lqw9Ri0hfRuMt8t2fSwNeFyyNqrper1uU3yLoZVnIWSLUeZ6JMQq4xEjKGV3ndFmWbX7311BKoe975nlmXVfWdcU5x/F45Hg8bud0urunH4+YSj12Xcc4jvR9z+Vy2a6j7/ttrs7n8wbsLfpNKW3z5b2X+5UjIQoILsvM5XKp+71uQD4vYhiXxVNynTPb0XV99Xq7zcC2iJ0sNGLXdXRdx7JKlPnw8MD5emH1HmPtRoEeDgcOhwPeey6XC5fLhVQj/xTF2ev6npQi03Lh85dPsk2KxLiyrEe89yzLut3fFjnOy4VlnXg6f+G9+4C1Fus0MXlCWLDaMHQWnxNxmTmvMyp5rFL0zmI0/PD9v6WzisNhxGiNprDOE2FdWKcJuk4iXr/y9PCFQ99xOhw4jSNGKUyGkgLTuvJXlyufT9/TVdr+er2wzAuxOqrLspJjwADkgl9mrFJopSlhpdOF3ig6EikkelU4dobj6OiURDcAisTl8w9cp4lpuhL8Qq6OkzhyhuIXSrGE1TI/PbEuk5jDnJgHC0WRYmKarpWSlPdhnVe6ThwIrTQpB1TRGKNxVr6XU6wGsRBS4jpNXC4XlssMRdF1PcfxxHE8CvWpNLoonO1RBazWlKKIMVcWUoEyFAWpZErMZGvIShGVIqDJKqOUIWtNLIUUE6ECjTYGPRhKkvczAzkBWUx5SFEiQmtqaGrIzUZos6UdVI2CT2/6DVy89+SSa9Srt6i9FImq+5Lp+wFtbk77uq6kkrHGEWIUajhKBOt9RCuFdUqi51KwtlBc5uqvrD4wzQsfP3+Rd7pkFIgjPYwUY1DVhmtlKEoTc2XYctlshut6hmHgcBi5Px7AWkJKrDHQhYDWYkMlxSBpgC21V22LzF+H0cIoyKjUvi6V5TYUMpTmeiBAW/bg2lJ/kprSLT1DpcFLIeaEj5HVe5Q1ZH0D5R8bPwnYllKiUup/Av43wAD/SynlX/17fG8z/C1ibHm1BsJ7QGtR7j4CBTYQadHXHmz3ANeirT3ItePtt2vn1cY+smv0a/tdA/65Uoj7fOUterudb7vGLUeiNV3X4b3fzkNAy6GNrudzi0wbza2UJqW0RcONaltCQivJdxgDMRdSzdnZmgszWubQdj2sHqUN2liGYeB4OtENAymLi9r3A/2gKDWfZ63drrvNb6Oq13Xd5hl45mAcj0eGYdjodDEQiZwTZAhrYJ0Xpst1i7ZDjCjv8avkL0ERggcyzlnGceA4DpjmqVePfF0W/HrL11KpyHVdScuMDwFbI/NhGLBWrj1GTwgrIXhSjKzLQkmZZDSlJIKf+fL5IzFIBD+OI+s6oXQmhljnxNTnJ+D9zDRdeHr8zK91JufAOB4oORO8I8cVZxzJZ1QplCTOykRhGHsoCa0K8/XMD9/DYRwZxoH74xGjFJ2zDJ2rzEdCUeis4f27d3z46ivevntPTgkfqjNzPfP4cGadrgzjyN3pDmcUxTk04MNK3zl6Z1Fa4bQmzDNLlnxyiRGnwKmMLhHvF4lsSTiVyUHufy41P4dini5M1yspeIqSY6nkSaWwTDPWGkr09NZiq/FSpZBCQIKiSIoeSnuHMsGvaCV8adGGnCOgKVmjciJn8EEAxLiBNQaij0SfUEXTO8vQDQzdgDGSfogxsoQozoxSxFyYlhWtPKbmjjWKnLLk1Z2hGFPpa401kss0RuYOpShKnC5rDcMwYqwhJgHglOKWay2Vau26ftMotHdf9ABmcyqVUuRSuFwuFGvptWbOGUpBG43VmlQKqeZeQ8nYfkANAwWFjwL0XmmK1tjjCUJlv5Ti/u5OHFylcM6xetEwWGc5jAeu05WgFgiJkAs5CTWrKCibCdXepJqfbplspXS9h2yUcNMLyLtboP4/V7uhVcuRK7S+5ao1ilKj/qaXubGMLfett5+RswMUlKYRVruPfraNuD/Nwaq5WmPQzmG6Tj7OYasN/F3jJ8vZllL+OfDP//22vkWdDaD2AAhsBtwYswEy8AxsW7TaxAQipInPoto91dzAbBPX7CLYtt1+7HO21toN1Lz3W9TUzqUdb5+X3Ue6e8B3zhFjenY9+/OINd9kkqm0ldrOt4GdFo5tJ94plYpMJJPRuqC0zLWIvsBYt1Ha7VyU0ihtMNZxOJ44HE9Ya+V8U+ZwEICMuTDP8zMnpjkejS1oDkPXdZvTAOIEnU5C6xpjmKapzpF8FIoYAuuyMF2vrD5WLziTYiKGuAGneJsFYzVd3zH0PZoabVSwDSEQQti+0zQcDeR9CKScuV6vmwNGkVxqyiLaUSAvfYzkpMg5EdaZxy+fiGHBGMvxMJCixy9yH06nEaMNuWSuFwEYv0xcrxK19Z3l7u5OjCaK5drhrMPiGFxH8qucd/RodSRHjyITw8r5KQmdmk7cjQPWaAbnGPs61zlTUsQZw5v7E1+9e8f79+8JMTBNC6ok5quqEfFMDB6rDW/enHDWCF0bCp21WCsgQpHtS4xY7Ujeo3JEFU2JnrBMED26JExJZL9KFJAlj6lKYb5eWKYrJSVs5ySPqTLLunK9XOQdpHB4/wFXWRuthFLPWaLDUjIqK6j3OMVAMorKlNY8nOw3oYkh4X2koHDuQAqJ6CUS19rQdwNDP9C5HqUMpWRSLoSUca7bosIQAiVnrDaYSnvGnCWC1oZsNMZYtC04a0kV8DZJkWoMV8/x7kTX9YQY8EG0CiL8EecE7zHGYYzFWHGIQahdYyx26KtoEkiZ+eERDVhjCABay/x1HTlGlNYiCMsZ1w3QDfL8zytZQVByj93hDtUod624//A1ZrqilKbrHGqaoBSsdQzHA3PKEAvFeoo2pA2kIBZFqp9bqAKl3ICtIPiZcxbHKKUNsCX4zJWHvgnCJHfdMtbyu6JqJJtqcKVvlHx7539LFFs2mR3PwXb3UZUyrlQ4KAlGrMVYh+06bCdAu1HWv2P8nQmk9qN5H43224MJsBnLlBJd122gugewPdg2ANkDFjyPuvaCqH302QCsbf8yZ7sfe/Bu+WVXJ/14PHK5XMSYe1+v8+YA7I83DAPXyyTUT732vQPR6NgWxXad245zA92bErkdM8b5WQRtjBFxSz3GOI5bvjfGyPfff79R4sMw8PbtWw6HAwDzPG9U83g4EJMcZ11vVOnnz5+FmluWjd5u9Hmbg3bc9+/fbyC8rmudl7ABcgiBaZpkzrWt52w2MDTWbT+rUuTl282ZCM0CKMmttOvPOWNqJH48HlFG8l65FNZ15c2bN7iqaA4hYLXhMI5YrclhZU4SheQcWdeZ8+MDmsy3337L/XGsOcRVRGu9UOwA18cHASEyOiceHx+4vr3H1Hv+9PREjhL9HfoDX717/+wZzHFm9Z6SI4MTZbguhRIjnTNko6A4Dn3P+XxmOj8xTVes0lgg+ZXlehHHkoLThsHJ9ssys04TF6UZeiN0rQ+EecaOB6wScJmmhSe/0FmHs47gF2JYybHDlMz56ZHoV8jinMR1BTIpp/oOr1zOZ+Z5pus63tzfbUrRp8cHpssF5zrujiesNijbbc/WugjQUQpWWTAgrGFjS5qyVKH1zazlLfefSFkxzyvn85XrdWb1Ees6DuNJ9BquIxdFKYquH7l/857T6YjWhhQj0/WKn1fJZdboluiJWhFLJqbC4GoaqNdCPRZR2Sul6PqBZVnwPmArgzmHxDSvTNP0rEphDR6tE9pYUdgrtdHI1lr6dGPNfAyUrme4f8vd27fkToC47/sqPpS0V0qJeV6gKGw/kHOiTLMASSpgNP39PX3K4qwCuI5kvVQp2I61TJSUsSqjc+E8r1znhclHtOvFLqYqPgKK0hRtYHdPitJkdAWxsgNUub+qlJZJlffONntXRbJWIsh6u0W4lTNWa9AKa/WNRtZqR7ffAoPty8/ysrcc7t4ZoOh6Le1rCtXwpbIOqn7+tvF7AbYtwmiRUYu0mje5L0FpwAbPS2haZNV+NlYm4iUdvKeaGxWzjz4bELft22h/a5Fz+7nle1WNoBrANAVuo5qbOtcYw+FweCamasC0j4D3QqbmDTdFMRU89nOXswDufk5TSnSu34B5T/m2XNlejNVypH0vuZPT6cQ4jts2TfCEUvgQeXp6ehb9n8/nLVftnOPu7m4D231uu93f5kS13Hib1zYfbftxPDJ0Xc2X3GT6SmmiMzw+PlBKZlkmrtOVvh/q9UfJ51VhWsv3oBWu5ppjTrUEINNZzdv7OzpnKpA+EfxK5xzHceTxc6GkJKIdZyAESlgooYPoefz0fXVsRB3+9PkH4nig6zuOvWOwd/RG4VTm1zny9jhydxwpJXP+4lkuV6JPLOZMXJYagYtC9HoZSSWx+oWcAkYL1RaDIoSZZZ5Z5oV1mXj68plP3/8N03Tl7d09T58/M1+vWCtiNiEpJCK8Px1RRQRx58cvaCOq0xQT83wVQ1aEIZgvE8YosuuIxnI5P0LO5HHEGbM5Ss2JlXt5KxH7/Pkz6+oBTdcNlKIIob0jkt/U2qK1ZQ23UqaYMimvkEV9OowDupahLT5S0Gjj0K7HVR2DM1ZEWc6SU2YNkct14Te/+YGHpzNrCBQUd4cD/fEopVtGgzZYKw7YHCPxegVUTdEsrKuXSDonciykEjHOYvuOboikVumwEwju3wd3kJzwcHcnrEeMBGCuzrStc+eM5XA8yfU4h6lCpVLn11UnOaVEWVc+PXzhmAtHbVgBoyTKTl1HQCLeqBRBa8bhxFBBWJ0n/DLzMM2kmDh8fsCvnpSFRewPJ0JRovK2HUvM+NVjTCYZxzVE1gJBaUKNNHNWlKyITpPQFAwoU3GtiCDrR9KbrezKGC3KbGvkOUiBHLy8+1rhg6LkBpqlHvNmn39s3FJ4sq3m5XYVjDdEvY0tIq7+XEbU2olbCVlKiZDijx67jd8bsG2g2iLETYlaP1t+4sWk7tXFz0Cy3Pa9/9temdwixS162AHCrcbvubiqRct7kVEDjxbRNSDrum67pgYs+6h2f/37vPAeyFuk3hR6zjnWdd6uBdjqEyXiutXFKqUwyj5zXvasQXMQpmkShSswjuMmEGpirnasBsh6mpiWlYeHh21Omlir5WDb8V/WFDenqFHN67qyLMszCqZ9t33PWiPqYiCmvaBMclgppS0K1lpzd38vjEbKLMuMHkZRpxqDqflxpZTQm02wUj3gvu8opTBPM58/fWK+XtCHA2Xoq0PoMVrjjGN0lsEYOqVQMXCdpy3fOxhDXleS1hQFnXCIJGsZjKX4lexXCF5UsymhUkTlhHEdfpluLAyZsM6kkvHBM10nrNV0zpLGkel64XK+sC4LMQSWaWKZJvy8oO7vibE6sAX8uuJ92J4Z2/VVxFQkNx2CRB71WdRiycTIxIDVTgCWyDLPOGtFTFMNkm71sFoTU5KCESW5NK0N4+GIswI87fpSSljXMwxUsJRyLuFfxdkI/gbkh9NJ3kM7k7WhL4VxHDdnMudMQpFzIQZx4Jc1MC0rIWdiKZSqEh7GA90woIxEWiiF6hxbXj+nzZborsMpDUHy1ZiE1k5KdaoISHc9tusw1rCmRKzOqTOW/ngg58r2jKPUOytNyBmfMsqWmpMVcMVYEUdpswlzWm2obu9SSiwhEFImAVmLGhqlyFrysLFGaaGATwV8kCg+FRFuFYipOjVFkZUCbVDGkpWu/5eyJDnfQiaTipy/th3WFZSxojXQtzKiUqPDXM+5kcE3uyDnKvR/qaVUWXLhWt1yuDW5KyyW5G2bfWhSJomSbyVPueSqb6nCKCWuaylNVvW7BE3Pf192OMROBKWUqNCNljIq/fclsm2gtAfHFp3BjYJ9SR3v/322T27U755K3edDGzg02nEfUb4E0+adN+o2xridV/t5XdctR9nqT7uu26jWZlj20RuwHQtuYLSv/W3R5kuwbecmFHvecpF7OjvH2xy14vP2oKeUmaaJ8/nMdZpu6uPTiUOlmJsAQwBNSopyKVzr/9s1djtnoJ33S0elXWeLktucLcsilO4LR6AVvLf7JPmSRIy3CNkaQ6nUeYsg+r7DWEepUXCbywLiANVnKlZBWSkJaLlyTU6Jebry+fNncgw4a4jBi5I7ipiqs4ZD33PsOgatIUTmx0cOxyOm/i74QK70n1VVtFcKNmfiPLNernhjcc6iY8LW523sOrxf8asXACyJGCX/GWKsueXW+CHy9PTI+fGMX1dKzizzJEY+FxE3VSNlgBwj6zJv75XruioC0pSSt5rYll+0Rm9grGrdrjVVNBQjwzjiegEY1/Xomi6g1m+qqogJMeP6gcPhwOkojMnnL5/xcWYNEet6lBawVMZinNTNqkrXarNCPafD/RvJYVpHMVby3E1ISSEuKzGKcrw1NFnWgA8R03V044gFrHMc7u9x4yhGOCcyYPpeaMfqJDc70HUdPbCuQgXnELGdk8gmZ0zX4YYR13eS1okZ1pVCQXcd3XiowYTBdB0pZrJSpAIhZUwpuAZ09blJBXQFwEQi50IpiWyaEx+5ehGYJSAWoc5F/10/kqcj5kLIBT/NaGOrLiGTiwiA8uYwVUfdWkKSv6faAyDlQoiJpOXfojTGaWwpksssoHTeaOSbwKgFQDcbtJVN0oJe+V4r9yuaW/1vyltOXpX6/Z3dL+VW8tmaqpRcboCrCqhMeQYV5cXPPw6+udyEW6hWPipAq42wqNYa7N8HsM1V/r0X67yMRtvvlFIcDodtu1Y20l6IUspG2dpOuP2t01H1gPcg0IxO3/ebUd5Hq3sgN5UqaznGl/to4GSMYZ7nZ2VCTQwkeZN5y1WVUnh4eKBzHcb0z5TEDWgPhwP90G+irCbQaoroRgeLejZspVJS5iOeq0WhLYzV0GmteXh44MvjU6WGNR++/loUyUqTUfiYuF4vPD2d+fTp00Ybt+u5v7/fKOc2f+2alZLyn1JzoQ1Yc85bvXFzerz3MudKo1Fcns6cTrd9S5ciifCHznHx61Y6AKB1pOt7tHF0vSVGTwwiqGkOiPeex8czHz58YJpnqR00+pljtSwLP3z/PV3n6rWsfHj3js455nliOp8Zh4HOWVTJHJ3FtrrB1eMUHKyjQ/P9b37N0B9YteJsFG/ffiCEhek6EZeFu6FneXriMQSOpwPFB079IGUGRrFcF3pnOIxH5lXKnbpBaNKPH6kNVBYxaiUJTeg9Xz5/4fLwyPFw4M3dPdIuImgAACAASURBVD/7ShpWLKvnfD4DcDqdUH0nBjpFDscR4wy5JB4vT1I3bSVdgSrcv7njMI70zpFj4nR3x+l4JJfCH/3JzxkOBwqa07uZy1/+XyzLwsn1fPUPviNncej+5le/4sOHD3zzzTe8ffOGh4cH+tNbplA4P14xRldqWBOnwJf/55fc399zOh45HI8k3VVHVJGeZskJp0TOBudGPtfSsKZZmOaJaZbysZ///OfoseP+vuOrr77F9QM+BkKMuL7ncr2ScsIhZUHvvvkaYw0+RsZx5Hq9bnX1xhi+fPmCP58p2mPGkRwCJXiWnDnWxhM+RGzXCVCljA+JLw+Pkq+1ln4YcNXBUNoAmpRgWQOrFxvxB9/9IcPxyLG+s5frhetVWCidQRuHQVOWhcPdPSFmHh6fMLYjFqHO1bzSj4M4fihs35HXxOqDgBpSoaCtg1z4mx8+Pgskfvj4adO9tMY9LVgYvzyIHSuQ6nekrDGSIput2GxVTBvelpTlU24Mot5q+M1mD5yBZCzrsnA8HKAk5ulC54SNaLZ8WZZqu9VmExuebCxpEhCXagVqpHsbrZbYWisMzRbFSobZUEQwlYKknYwm+HVTn1P+bups/z+PPRC2n/f/7ptWAM8i3R/bx55i3m/XwGwfUe4jzOcR1q2bVAMU+G2Kel/7+5IKbTRyzvkZKDeP2daSg00gUQGqNZfQWm3fH8dhA9p9iVC7hvaAldIenluOtgmMGghuEU5tTtHObVkWHh4euFwu27k0sY8xZqu9vamhbwzAvta53YNGqzfxVhPJNIFYm7dUu3E1cBaB1I0Wb+d5nWekU5AIroZhYBiHbZ8AOheUMrhKCx6PiX7sWIMnrHFruBGj3+5VjFFenCyRnNUaqw0FxfEwUAp4v1Ki52DFkze5YEthsA6nNaZkUVCXpdYYGuI0AQWLYjAWnSGtnmIdvXG8u7uj5WcTqpb+JGKtly1FxEAlJbRWHI8HGj02zzMpBKKXBhfH45H3b97y5u6eoe8JPtB3HeN4IFM4HI/iaJRC0ULKmWVm9iuRwvF0pO8HovccT6cN9FSBFCJv7u958+YN3TCA7aritPB4kfRCygXbDZwnaayyzAvadkyL5/F8JRX48vAoHXuuF9aQ6LThNBwFhLqeh6cHotJkY3GHI+9Ox40tUkpVlmXC+8DbDx+YU+L8+TOffvjID58+ijq1vmNvvvqat2/f0vW9MD1ao1rIbQ1JwZojawXgYZlBK6Zl5q0Cn2MFm8x6Wfn0+RPn8xMlZU45bu1YeyfiQaX19v48XSe6zvHh7sTX337LdZLa4fF4kooJ59Cuw/Y9h+OBoe/pXIePgT/4B3/I6XRH17kN8HKWd97WVp4oRWcsT5ez0OWL1C9779E1veOGDu8D0XvC6ikhc6xd7FKMpBjxy8K8iCp9Xep7p9ia2BSEmVrmWWxW32O1omv1vtWe2FHKa0zNv0r02Gx0qTn8XSOgolBVjWxLkQC0KKwRxS+5YAu3vgLV7g39uImT2jleL2dyijhncJ3d2prKR9eyWsn7v8zL7seWhpQpYOyltWqIEapYzWqFs5au7+itNClJfx/Adp9jfNkxaj9+jD5+mavdl7G03+3p5Pa3/f/3QLunm/cA0oRFezr0JXi/LB/aX1Nrv7hvjdhym7YW3rf9bN5VBU3vPdaaSokU7u5ONLFYExft52N/vUpLUbZtdWBKSQlATPgQai7T0vU9b968JSYBues0cb5cJKpUimEcNyBtRgxutHf7/9552Y+XzUdaBN7yvTcn6qYsbnNorMFZt5U/lFLqy4w88LXxiTWiGhW6pxpb3Z4LhetE0aiUyP8bxdycJ0kpREpxNR/c2nwmUoxYK8xGTpkQC7FYTJEaxlRb0aUQiCjC6tHVSGSl8OsqxqEgBgr5TgoBVWCo9HYupdZROlo3Vmet9KQuWUrAjMa5oc6jOC/LdSKGgMqFu8OBcRAHRNf8a+eE5o9F2p8qLfWXGAFbm5J0lqr1r7kUYo18Wu5townq/T8dT5zXgI+RkDPn65VpXVE1V3hdVqZJGJ5+HKWWNkaYFy7TwuPlyrp6IgqLxvYj/Xig63u64NHOUbQmFVDWYbpeejuXQmLGp8wcAp8eH3m8TjxerzxcLjxOM8fjUXpdDz1uHBnv7oQlWQKpZEKRSEV3Dowi+sIaA6v3rEmaYqwxklRB1UirFKl/nf3CvK5oFCEJq2Dq+9+ES8DGbjV26ng6bc//zSm9GX55XmuHOWuwFcRykucvrCthXYnB1xS5FfmR1rXvt1DhIUo+HaWEYu8cPgTpA+0Dukj9ra4Ml60KdVIi5oxfbpqQYgxFixo350yO0sZTZakFNwqph9YKU5XAGnFgjC5oXTW9RWRFSpnt3aqP0s7As6mEldJoZbC24ErGWYOzFmsdKGEitbmBacoZvy6EUlt5bpU7t6BLaRFutWOVUtnSZ4cv+xORUqwaEeeUZB8pSmtI5F12tZ5ZvbB5L8fvBdhqLaUme/B6mevbBBs/QjP/9v52D8dO/NT22wC9AWQDjJd53X1u96UTsD/+HmTbtsAGpH3fM03Ts/NpANXOSVqcPRcw7btI+eBprbdNzQ206E868LzMjbLlKUUY5LCuAyX1diFGfIhQm+YP44H3X33Fx48fWdYzj09nltU/UydDpe0rSL2sid5H2O1zEzndVMn7iLqxBs0J8asXz9a5TRHdIhqqktB7ESlZa6XpQs2RlVKYrlcBV6OrZ99jtEOrCtjGApqUnyvgoXUDi+Q+b/tXqhBjYFlmMXClbA0zfEpoJy+dN17Kh7QmB7kvhhs15ZcVVyOUvutw1rLOM8F7ckoMzpFTqo7NwKGWERWlsL3jOk/1ORaw7YeeECPrurAsi9Qqh0hXlevbnNH0DiK8yTECAqa5FDRaIj0rkYS2Du8D3gvwjIcD87pijGVeVuKy0rmOeTigrCOkhTkE5hD4cjlzWRecEwXsOs9MsxjuN199xTxN+JxJ3nNZPA+XqToXlqgMdhjojxLBnqrRzEoze0+3rCSlsDWP+uXpSbQG1yuX6xVfhX7nZQFrePP+PcfTUWh51wlYu46D61hDICJRfTf26IslL9LScQmeWAVzaIk8nb5VLJSnUucuS95Tq63JQWNemtPfdAStFHAYBpZpErFXLpVKFbYix0jygWgcyUTQStpkeo8ympIzT+cz0zQxTRPD8QCthaqCUjvFhZzwq2e6XiSKM0b6EvsgDltK9K6nxCOmDHTGoKxlNqJiLimhqgDVVsA3zZ4iwjJrDJ3WOKXoapSnrWLoDePgKMmQUxRmyKjajCIhhbNacq6bLb05cWKvaklVURil0UaBAmeMVBU4K9F8121ga60l5cTlSRNaAFZzrDehK1CdeEqp7RahwesmPqupE5qDUATE12UhpogrHWH11UmW97avtegp/i3hMr8nYKvUjdJ9Car7CKkJYNrvX+Z0n40iYpL2vbbdvjb1xyLofRS7L8nZ17s2YG7nuUVgO8BpIqEm7hnH8Znaeb/PrhNl4D6yborrW2crt+ViG3XcnBBbb7ZStxVjbgKz2yo9+yi+gV0DQWstnz9/5pe//CUPDw/M88yHDx+4v7/HGMO6rpviV3oV37zfPdj+LvHa3vFo97blnxuAxhApKdMPA3enE3eVrpRuTpFlXblcL0zTtNX/NuoMhLa+VrDth55DzXctk6dzPeN4xKnuGbXfhtaacehQRcCzt5bjOKBKZp6uPD48bBGoNYbOaK5PTxzvTtwdTxyPJ2L0WOPQxjAej7sclOXNm7eUcmsL+rOf/YxPn75s9wRt0a7UQgnFcRjR1kpJijV8rAsCnK9XYk70QebrermIQXdS6tJbh9Gi0I6rx/Y9x+MdRSlmvzIvC9O6kJAGB91hZBhHMgXTOXoGLtcrwUttpTKilp39yrTMxGXd6pJNP7CiWILnfL2y+HX7/PW//Q1SyqOro6ZR2hKiUOzTsjIt0hJ07MQJtF0v6ui6uIT3C+s88XS+8vnLFxEJJdERPD6epT7Yr4SY+Pbbbzje3fH23Xvu39zxH/2j/5jxMHK9Xuj7QRTGznDoR2ylWEOKDIeaC52lWQNK4QZxMLu+5+7ubmNxUkr4ZcF7LxFjAwBttkiNLJFm7zqOxyOnw5F3b99ydziyTjPTZSJ4LwsaKEX0Em0ulyvrddroUqU1n+z39f2SdMjqF2KQ3sP38R51qAuapIBJBVMKVougqa+rd1nthPasyuJiEk5rOjI6BfB1ta11Bi/vUa/keWoVEFt5ZM742izCGoUrieIXUjKUnLCq4HQVRBUBzc4ZOquxRhETqJKhSH9to5R8KsCWojY1chN0quqU5JSIPgoDqBTRBIoSW2qsYV4m5mViXWeMheCNiAzDgo8rfRLHWeB8AwkB1qIqwLYS0VsbR0XGGsXQWwqW0/0dd2PPsXcc+473b9/w7s0dtrJ2f9v4vQBb6ePqnwHYPsKDG7i2vsLNYO6bVvyu8WPRagOGBpwtCtir5OTcflzV/JLKfnms/ff217MH0n0eWui+stHLLxtv7M99qf2Bn+eTpXfy3kEQD09yJnsl9P7/7ed1XfnlL3+5iWiOxyOn0wmQkqbz+bytAGSdIwb/Ww7LPp/e5qnNUSv12Xv9cFukoQlQ3ElyuM5KQ/Sw+k3tHUMgpyRR4bKwVMBv+eNcCpdr7UJkNSWnLZekMByPN9HZ4AdWv9D3vXjhlZq6MQm35hqtT3DXOXrnJF+GCPts3zOcjvSHA6xSq6eMYRwHcq4qSa0Z7+44nx+lk1LOYC3FaEKMPFwuRDRdJ53Ani4XfPC4UlBaYZ0883PNA/oYMNYgob50KzJKIganpVm7ViK60cpwPByYvaipfZBOTk0h6lBStoIWNa1ShMcz8xo4jCOuG2oD+apILbD6wPk6YWJkePMGW+TZG4YepeB6vfKrX/+Su9M9d/f39KXj6elhY0Ni7W8cY8C5tqjI7Z1JKTFdL4To63NaWNbKxvjA5XLmOs0ylwq+/vprfvazb+kHUREPQ8/xdGAYBnKOdP3AYTwwdN1G0+aSMckw9PI8NwfQKEVvLWPXERs9LHdVHDLXc384bivI+NXLghW1BI264pAzluN4wCjFcTzSdx3Bh1q6UtvdK8lNWm1QBWIIEu1WB7q30gtbUitZFjWwhlQblegsPc9tSpiUMYDNskCBshbVyoiMItVyHEWhM4aDtTgKJQSUgo7CYDTWWFJN20japdpLxBeJtSOW1iJkckpoYp8T6+XMVRXI0u3NGkNJAUWPUZKu0FXVXlpnNiWd7bRSv2VzRQEsndxEX7EKFa01MZi6Co9CB1nIIqdUz01aWja2ASR+VVWdJfZaADarLOzORh3XUqEijq9GWp4aDUpr7o5HXKXRk/eQYq0BbpHx7x6/J2D727TqPsJ9KXh6KaBqnlfbl/zhFh3vt9sD6b5mt+UTfwxk99/fEvv1HPfb789vL0TaC4WaMd83mLDWompd4Eva/Mei7xDilvxv1yTXWnbOR+uKVScDnoFri9IbuDd6t0XKzaPdN7PY57LbvdkzEC/nbD/aHDTnZH+s1sXKaCnE73up/SxZ1htVtWF6WwhAK42PKz74KghTW9QvZUHVO21zWWtzm8PS970sg5YDIXhi8JRaxN86SQUv5SOxgoNWassbKWobTERsU7Q0ml+jtJG0wLGurFNKFqPad/jH6lRmMU6Rgk+JOM9gLPf2Dqs18yJ9tZtVVs5uEfw0TfgKMsYYOtcx2AE06CIlRqayLPK8ys+EQIyJlCVypi7LJivFGBS1TjJLxOtjpC9CGyYK5La6iTSPz7ngKByMxiL5877vhF0JK9N03dIbxmqWZd6ej6b0lohN2u9pLQIwsQO15jdJ84iUam66NkDx6wwlS47QWe7uTtzfn3B9V+t55Xy0Bm1kNR7n6vq0pQKn0mhdHeEqTJTpVrKkXl3UQJfbGjCg6ayV6BhRzj/52jq0thRsXa6MUvSuQyvJuWtV1fbqRmVSiuxfSa1m4lbaYpRm6BxaK6RvsqEYRc6GnAq9MVgFuhR0LjjAKllGrhiwrqug49Aakq7HU9BZQ28NRiliiWhtGKyBrsN1ktKxlU1ra/tugbuVRT5A7pspAogqRVJYSd4JkOaMdpaSI5RcQVZo5PZustnMxk7+dtCybVeqcqCW3Ii4qq7kU/enayvLruskX+/crnys3cS6Pq8qsgKQ1BzV0qDbMVDiFChZT1EocaXojIEUiX7FLzPJr7Kkpf3bG1rA7wnYwnOw2iuN299eRkp7o76Xd9/GDRT2ILHfR6OEWyOCfSvHPdjBTeBzo2fTMzp5fy6Ngm4q3uZINHBqUdzxeNyWp5PeyOsW8e2HnFckRrXRxW1/+/lpYCvnXZ2VXUTcaOy9IljEV7cyomPNmTnnmKZpy6/uG1c8K/Ku42XDjsZItHnfi8raykRNIb3PLb7M/3rvSZRNzd3Krpo4zHu/OQbWuVpCUh2AkmvDjOHZKknH4xHnLK6zQM3JrNJi0a8rcy0doiRKkB44ztUIBIghcrlcyMCaEpdl4ek6c74+QVGMw8Dp3Rvuq7rbdZaiDZdl4XK5ENaAj6usQJOzeOzKcDgdscqyLB6QnsIhRmKRPtTzsrD4FbTaHAicAE6JBWre3xoRkrR7mpMsCp+yFOXbzqGsAaPoBqFtyUkCZairmQTW4FljwHhTFyaQPC65sOqVu87S+gJbpxlwaCOLLizLgnOG0+nI6XTc+k4rQGlxhrrO0XUWY+S+h7CyrooY5XeFVuPtmefrJjC01nA8HjDO4jrH0FtcZ7BGtA8xB6JfiBpSClAiqiRUSZvzlWpdfwqB0iLSKqcpKaGy9IXewFYJEPfGooaRaB0axTrJKlkxS749x0TRhlLp5H1OtrcWZ6wszxcSqURSiHIsY9Cu2+rEh77jzelIq0JQtU6bkslR+jFbbTZKf+zcJhYERU5Wok8jnZtSlOYcRit5ll11sGKh7yzmMHBwoq5dV3GsdVXlt6UfFTVvmxrNmyBE0XbGgNNgVSHViFG1lXVq7rPkTGKXR6U5MZXBr/StVhpj2vMri1h01jFUwZuxjqHWLBdE16CrSCznxPF45O50YhwHxrqwiDJqY4xba+Ythmmgq9QG/A1woeDXRc7ZOVSO0vZUFYxWzJf3qJQr0/T3ILIFnhnnZpD3gqK9Ed9Tkv+u5s97mncfje5BsnnbL6PJfWQMz/PHWkvv0Tb2INE+zdg1Q97AugH84XDg/v5+i9j257kvSxKq9bbPu7vTdt3X65XL5UJrFr8XeeWcOdYa2H1JTwPaJtpq19P22aLI9vd27o3ObRFp27YBX7uPLU+5H61FZUppo6Rbnrs1/pASlriBYnOODIo1JsK6siyS1+qHHussDw8PO8er6glLIqWAXxemuPDhqwPGOQpqW53neDzw7sNbxrFnnYWeBZjmmWW6EoPn3dt71rhglPTbvU4Tp8O4qcK78UAymilKW8hcVwRJxsgqK9bSHY+Mh4HLeSIAvhTWnDF9z/14JKfEtEzkkMH14KRTlqr3fQ2BUGSx85ikofx4OEgdp7OMxyNv3rwTcY0PhNVjTCvHMqRUF66PUYyJttiul3VdtfxckGbxsUjZ0fH+Dcq2MrdEdEUcDSNNDsiyms0333yDdZoUE0Nv8ctMjgENvLm/4+uv3vPmXoRBpa3EU6Qb1JN+ZBgPsiycqctT1oUFjNM4Kw50LJF1uTJdnyStYi3HozRdUVV1ukwXLucHuq6vtLtDVpNNGJUpKbAssjpNSZnoI8uy1hWETuTgsQpGZyFFSggU79GAK7IWb6NSlywlKlZLyd7FOfwysc5TFTU9EStTo1VhXhfOOfG9kRK16+WJdVnx03WruV/mGY1i6Dqcs3TWYdGEeaEUEUcaZbGu5oaLopC35ekIgZPrcZ0TBzIrkqpaGG3kfVAapYU9WpcraRXbF7xH5yjCuZzBKPArRUmTCwWk0BS8pdYNR3LK4mDkTFEKjObtm3uOd6ctEGmrTmlKVfBKQw/dhErcGkbkLAyjVtJMo+/7KhLMuGA5Hkfu7k4M4wHXdwzjcVuMvlStivdS8SHv95Fh6BmGrtrl2pil2ectQK/lRqqgmnpaSUTbANUZTa6qa404cDF4sveYkoVGjoqU/560a2x07q1G9PkH2KjZPc3aZPT7XGnd629FXy/p6H1OuHV/2oua9urafbMGuAl+9lRq2+/LfKj3ftvfPsprozUnf6nw/THltdaa4/GE1re5aB1TBLykOUD7nqzx6jZhWbuml87Fy5KlFsm3aKLljw9jXckmV5BdPd7f1MV7cdmeWm5F5k1B3ejj5gjM80ys15LqC5hyItdoPaW0LR5vjKHv+pqzUzdFsYIQ0m3eqPR1yeQc8X4FlRmGnq4bGIaeGAKHg7Q8bIurtx6893f3PPhqhIpimRdOBylNAcXD5cK6Ss/WohR3d/dQhE2YF8+6fs/T5cJ4GEkxc6ltLoMPDHagd45iLSZGrtcnLvOVmBw+BYxShBiIORHIrN7XdUZvKQKjDIfxwLu370he6iOn8wVnhLbcl5VopdBWozM1VBMKLpVUO/GU7d6Poyihnx4eZVF3a1HWkpOon1UudFr6P+dqINu9FUc4cTodt1Iq7xdSimht6/lkUg5oPaK05Mn6ztJZTecMQ+94/PKREOXZil5WKeqspesdd2OPUoXgF0IMdH1PmK7E2hlLac2p7xgPIyEGTqcTwTiMsjjlCKtnncUBcVajUqRTMDhLDhqbE6rWtOMcpoA1Qn+meSLXfL7SyLYxUrwnA8vlQun7KqIzzEnqdx8+FWbnWGt3K4+SvsghkGPEqabcBXIkJI8qkt7wfsUaR4m2ViJUp65GuzkGWfw8A7Euc9fK8SrY5lTrS63GZIkgU87iWKT/l7r36o4kSe/3nrCZWQamzc5wSe6KMtQdv//nkI7uRNEvZ6Yb3QDKpAmnizciKwHO7v/oSsM8B6dngKqsrDTxup9p1X1GF6ETtXZta982zmlR0p7PiElAQVfBf5El7Yx4+iYl9DqjqjuPapx/vwI220Pa7PQwdS3SGudtFeuJxCS4DlMrdWcs1oqFYvO01bCCq3SpIymtb7PgyuelztdL/UJFg8rUyl1K3tbFWP/fGBkRFGEDxClgFMzesYwCGhSGxw1w+WvbbybYxhowVPWpbB6Y7aQoYWvJApRkuA4KU2QsrZQMsMtmNrgNatvAuQUXNS3V96jnFvTeA4rWQPguMG1nret8EsQYugVLJTQBVYPHspEtLOv8odyUtOqsos3vtJLjdtaur00xiWi4NtKKUa5WwTL/9M7VhZd1hilSdqKYap20n0yV5WtEbe9vM1sxQhc7vb4Tk+pcZJ5qjTjkxBhXJ4x2Trat9m0AXilVm4SFeq5iTkJ1oCoExYhRVbd2/V6Vi1j/FWBZXOlepQioJMVbUpFiYF5GnLO1lVb9b+eBvuuwVrNME2GRFq63nt4PWGOJRdSockGE6utnL9+/i7B+9Ri9O97VGWNimWemeeJ0ueA7aQ+eanAuFLoCGIFmGGcJOXIer4RomZO0HBNF3GTmmWlZSDmv3987x3634+PjBx7v7wnzwmiupGkRykStShpoRNX5paqBFtWyfGqLTzJ8ow1D31NS5lSexVIwRjKFME/EecIoDWScMyyrYEFL/uQY+35Yn60Qwjony0UCrbSRhU9srWU3yDjBW40zinE8r3PzHBY6K4nesBs4DIMEqbAQU8JSSNO4ylkCvD71LNeBVCqIyDmc9hTTkZZAquORZdSUGDBFAELFGEyKME8iY6gVxXcUrcklUa5ncojSmiWj44KJEZ2SMCCuV0zOIs/Y96jKkZ2TVJc5Cl8zxESONaBTMEpjtaozQqmSYlGUlEjLDDqgsvCOlTKVyywjJfGPVZSYSUXmpSWKpSA16FFK5U8Lp7aUIhSfIpX/OnMuEV3vDaPKGmTaPBskcSsGStESrLQkdjlnXBLwnUGRtMa0tXkNtpYQbiyRpocsQbeawdc5v3O2VpialXvf5t7UxKTmk0qcCQR8mMs6gtXU125AUEqJEUeNHBJcW1JQZ/EtSCtE87gUWXtDDGIAYrX4WF8vKNS6rv6l7TcTbFNOMsw2WsjXNXBt52/bVitUJDJCrG7Is6hurc3WqtzScuAG5tm2R1v11MBA7x1M2vvWgBkCXd8LPaO52qQkPy3zrZ/X18WhFOG9PX74wBIC375/53y58PnjR7quYxonSkrc399jjOF8PvP09JWcIlbLAptC5PR6JoTAOI7MU5U6tECW7LYkcLajexgYhkEENc7y+ZfTK6cXqViOxyOPj49rZeis4bDfredEyPgfSSnx/PzM09MTISwCRFAaV+coedjRLADbtt/va5CeVsTx95eXVVatCSeElLhWjeWC2IUdjkdK022+nNGPH/CdR1tT20YaYx3eGD58+MTLy8vKDfXeo4sizpE4X4g5E8LENGlinPnjH//I4dCzG7zQEpws9Br4f/7xH9EoPnz4wOH+jvE6iaRhXQwePn4C40hUcfgkgdAqhdU9Hx4fmKaJy+Ui1YjWjNczz99n+r7n29evaGM43B2xThOTUBe63uM7x3UauY5Zqjg/yHwqJb5+e+IyjqRcGIYdh8OBu8ORH3/8kb//X/5XOVcvJ15i4ZQF6dmQlJdp5HB3QPBzBWsVKHnWfNfRDUOttpcV+b3zHWaA72gGa3GlkKaJ569fyEtg2O/Y9ZZlHEnaEObI9TQRIzjXs99b7h8+MuwEzY4S5ybrNKfTiXEe6XvPp08f2fUD1hju7+4I0ywgqXkkLRPXxjNF8fvf/56PD48cdnu0UoIl2B9qp2QkLhLQfW3vLq/PzKdnmWmOFw77I8V1hChVuNMGa2B8+bb61PpSGHqLuZ6l+iqZ6fRMqLP6UhKEgEqJmBMvz0FtkwAAIABJREFU36VN0Ge5jhhLqqMXqzVxvApSuBR8LQwUhZgi59dX0jKvvqs5J0Lnsb3DdQ6rlPjEZlE4ziGR0kxWCqMtSasVCOecq7zdQkpyr5pWl5Vcq9IilW9C7t0iiFtntYAK6xoYYpBKtRRyFD3tTX62bpmydqAa0KtTFl7OUghoRDAkQ6PrgCLEJNrkSlXaY/Xx1rqCEUXRSlXgUitoGqaKIoE0x7iKamitGVPE1vBZQiBMM04blOvwusNrL8VGFg2COV3IbU6vNFpbrLKC5scSlMXqautnxWdaacV1mui9VNa9s0wvL3RWVKSO7v8n8/j/L5sxZuVNtsrwPQCq/butQn+tJdqqqS246tcQstu5aAvG7TPa79trtgAsU0nirZptldsK5klvjenbZ8FNFL99v+awc7y/Z7/bMY+i+dp13Rukc9tHSwrO5/P6nRpZvrVjgRqEp1XwogGLzufzah7Q9z3DMKyo4Nae3SYaW4uwBkyS2Vrh+ft3SWQamb+iN1G379uUimytXt7D+9sMetjt1uMyxqxOPCjRm/a9UHJUPf9NG7slTA0w1ZKlnBPG3BKs5+/fmaaJ3W5HmAVFqIFlnvj29QvP377x+vzCeLlijOHLly+8vLxwtxeQhTEWpRWX68S8iPKVd5ZliQy9dBqGfoBc1hZlykkk7azFxbQ6JqEUmbIivluXY1zmurCKaMmSE6a2+lIR5aJSCtY5/vCHP/C//29/z36/p6TM5fIqzk3jlXGZsdrQOY/rHMN+h3YyNzNKEXIkh1phlsQ0zYQUiTGjMpQU0dbjlWHXeVSWuVVnPHf7A7MZGTpP5yxpmSmur61hjS56NQU4Hg4cj8eV1mOs3LdaKXZ9x9B57o57et9hjeXx/o7n9J3n5xO//PIzv/znf64UmOPhwLHv2XvPzjuM0vjapUlGs6jbc0jtOsUUCCmyxMB5moiXkd51DH4g+070iLUix4UcxX9VVI4Upc6lVc5EpGUq1Y8ELVMaNkA4rSYlbJbAa4yi07IQAyw5S3We5fxaJXPgg/diHBCDtEpJ9NbjndjLZQppjuQsbf6iGj0GKGLvV1IiaylOIK/Pl1FiXGBUNXFQAoxStQqMtdW6ri0NqrRBK6kiHFdqp6iUsgbbRLlZ5OlcJRcVKmU0qbonAVoEXnINoLlo0LmOi2rHrkgtqZWIZFgjQhZKymFpz24c4db1PzccD286gDnnCrAS/rOiyTRKEVIihLxgjEMbwQiQFSmKoM08z8xzYJ4jy5JYlshlnNCaCk6tz2RMpEWqXKcVnTX4jcXpr22/iWCrKx2jBcptaxF4E3Tatp0Htv/fzku3QKEtGGobwLeUoW0wa4FnC9Jp+9/OeVu7uC30LdgCawAAVlecLfVn25puny9KNLrBfOT+1zITUVrVhURX5HJtS6tmYVVW2kOpSNalLtDtGK/XKzFGcV6p2qjX6/X2+ermybtFa5fylv+ba5s0p0TUNzpUm6E2INVKbXL2TWBs538LJMs5r/eBUjInafKSWxS4q8pS7fja+7ctfEmgynodp2mqD2jm5eW58jslCz2dTlwvcg52u9163Vr7fL/fr7KbYtcWqwVYoyLVOTus821pt/d0Q1/vJxl/uAp+anrQfd9DrdIoQndpAcbc36GVJqTE6Xzicr3Qdz39buB4f4fvxbQgZpEfzAqUEUT2kiIhRRzSytTOYAGnPdMUa5VW1u8gRH+Nt4KKb/KArYLsnMV4kf2L8YZeDyGgjFDmSk51NCEUDF8TMWNqAoZUaTkJX1orRVoWIlBUZLpeGa8XTi+vfPvylWWcBCykNbvK/1Wltkdr4qVrVdVbJzPC9ixrSVbkvFdlsgTKJ0S6XwKyoLrrvJLaepR+pvzkuoC3NYMiI45GFylJQNxZwDS5CLVFN3oK0KgjJVMXfjFG77yrVJ8siPdS918kiJZS5RBrK7iNrtp6llKqpuuC8pXghLSNa4KDkmNRCgmG9SU6S6tXt/iqbsGtLpSNbirLTG0xs66V68IsZ1OpGz2qjsMqsqDtov317Xb74w1Ls/ljLvW6tO9f12dt6ppY9Hocqo7RJN+qdoAInTIlOf/1BNWvUYFmGVIUP+UQxUVJqu9MyoWSYV6iIOa1oetlPTPWour9/V7Q589tv41gWxdUYF2U239vZ6Xtd9uqdVtJtt/BLXhut/ez2P/Skt4EVLi1kBsI5z1waXtsrRW7Df5bx5/Gp93OQbfz4BXslDMqp/Uhb0H2FoDXJ2Rtozcpx0KphP2yvn77cLbqtDn2NBeh9v1bsH0vdtHOXat8VbkJWLRz2HUdS1jW4AdS2RorMotNiGMLFNte73YcrYW9pQG1YLpV4xrHcT33qz7q5jy2TSlFWJZVvu3p6YmXl5f1vMQYuY4yj76rPrjjOK4mCMZU+kRN1lNMLDGyLPLeJQRClX0cx3E9zt1utwbbnIUaMFSlpqaV21cgkoCdNDHEVUBD16Qkpsi379+5XK90fc/+cKDf7ZjCQi4S5JeUKEZhvMP3HePlyhQXfO4Y9lWJSmm8LuiJdZ5LRozAK3/Ye0/Jc70/5ftfx6uIbRhV0b8KZURcIYSAsbHqxkZSXGprT+OqEEAD2aQoAiMxBJZpwhpLmGdIElR0Kby+vPD68szr8zMlJnzn6J0ITFiAGInMgn4VlQ107UzlhuWpnRWVxP4tFGld5ryQiqL4RNZRXqwVuYjIyDoTvMFiQFVP1CRBPVPQmBVcJpaEbYFXNAUiqGINEuWoA0mU0eKZBzISQtrHOQt3WYrWRK4zRatMvVZmxUOs922WNm7J9fyZqsNUEwbhDpfNcnFbOyQ5kDWkEXDafFKCXJ3V5rIaBcjDVJ/XCggs6vbeBkmskhWsK2tNAJRW6PK280V5G5xusVcCbU7CYW5JugTaKlahze0NShKLUtm8Sgm/vBSp4lPKrLpRRqFyNYLPAibLsRBjIsYsOI8WaGtQDlGuvEdhnHCRrZOxljYy+kQrQWf/he03EWy37dj3gv/X6/WNKMT79wFvguQWcdzeswVE/Vol+16s4v3f31e925nsWtXFmyF6mzU3xG1r8zapxm17tlFswrKw1FbvVpaxnZsmSdhcb1q11d7fgtzWF7YJdbTPM8bw8PDA4+Mjj4+Pa+Bq3+H79+9vqEDte92qxRqcC2u7t/FwlVJcrpeVypNSEis3RdXwnd+04Ft12ua6r6+vFXAlQVPUf/KaxLSg2irb6/X6xswBbsnRtlvQgl+jWfz8889rBZpzdWBClHyOx+OKlC71GkpL+5bVSwdjZpyuGKuZ54mXIoIPwHq9h0Fmri1J6/ue4/FITEnanDFWYXO9XofL5VRpVYbL5cLlcuHp6YmffvppFbJ/+PiBGCP/9M//hAL6rifMM946MBrbd5y/PZEVYDR3jw9oK/xAVcRA3morur5KocqEM5a+8/S7nhhi1d+91PvuCiUTlh05BKZlYdgNaGOJJZOqXGIJgRQWnNb0Xc9+t2NobjWlMKfIvh+4nE6kGOmNZeh6oXWNEz/96d8ZrxPz5UpnDHfHA4f9jv0wcPA9OkbidQITwBqcdnXhBpUTpgY8XelX1iu8tnhtBXSnRPCgcxZjda3O5JoaLSHWaIVVIqTf2qjFKlIQqosExbRSvwoV4FM0rbZrwE6yzC0lac4oJOlyWuO1obcOrOAGQvSEGAhZTC5ikfvSIqIaqn43q2/BVhvhslI7l1u8BHlVGG5xXlq7FRBE2cReU8FDtUrMyN9yax1zq4zXyhkZw+Z2CkshFzFRSDUPyvW9qJakVX2A1h3UDUOTyUWKjLaWtwIkxIgSeSkBR9agltHV8P4m3LMkBEuhnNgFaiMj6pQINQhqU2MAjsv1JO39lFF50xFVCq0dxopYiHKOYbeXStpawBCLIlTbxFgy1OP6H5j+/DaCbdO0bQGjVZ5t1igqQW/F/t+3iLdBEm5V7/sWxPtg+2stari1qVvV3D4/Jhnwt2C6nfE2kFWr0toctZSyVktTnaW279SCKQ0csKkYtzZ7rUJqpgAtmDZRiG2Q3CKrv337xuUiC+d+v+eHH37gcDisFePDwwPAWpm189ZuvhUpvfmpSTG5RFKOFXTQKDbCwwOxhjPZCII8Lvi+wzoxDXDeVsRuYp475mViuo6iDrUsYvJej6nNnpswxTRN68/22rQ56FbDWtrZkum2ORtUkn2KhLm1yDPX60UCS63uO2vwTipS50SgX4zDPf3QsUwj0zQyTldypbMMvXD8ut5x4EgzDiglYa2AouZx5ukpM447vJfvtRuaJ7DMgf7ln/+Z0+uJ63jl7u6Ov/u7v+Ov//qv+fHz7+h2w5oIxRhl0dMK7SzDYU+/3zPsdhwe7vn0Vz+gtSQF4zSijVDHTHU/2vU7fKVCdX2PQXO9iFWZdGEilzp+iHEhzDPd0DGFgOvFhi+GSImBkiLeGvZ9x8PhwHG3w3lpnY/e8ctPP0OM9M7y4f6OXefJMTGnyOv3byzTwjKLBN7d/ZFd19E7J0pJgNOi4NN3HZ0VtSpKYR6nGkZkgdQaoYgoeX0p0v5V2ojhQv1dq1pb9WSVuLeYhlLVBbQogUn7u0oq5nYfiWKXAiJFeJhKKDG6agS3zskyzaRxxqKwKFybDSu5HzOF83gBDa7z/P6v/orc5o0tEJlIU7wqpVbjuiah1aITClnVjlNpVfXara1t7dZQlT+3gA4KXatmmVmX9qraO27/TW01FxK1KldahB1a06H9PTfMjMy329ragGGlBmtBbplapCpJAqzwxJdYnaWioLgxcs9LxSnXLhUoRZFRpFIpSUaMC4wxcoYLQl9bJqErRmlLWGXXOa+1Huu8ePzmjDaew+GBOU7EHDmPEz5qkXgthSkEGWsYxyo88me230SwLbydubbKo/0LrJXNr4Gl3gdceAuM2gbMP9dX37ZE29Yq1O3+lWr9Kt4s9HBDQbf3tu+wRTqvqGR9E+O/Xq8MVcFqCxDbtqXbZzUQUQsuWy3kXwOFXa/XtYU7DAPH43Fty7Yg1j5ryy9ux7Y9h+24tVZYpYhRr4pW2sh/y7UUxavL5SyWaNza903hyTkrHMoYCTFI1cDb8wqtklzeXNuc84pybgnae4OJ9l5JfhJa30TGWzYsnyFmDe3amXoPNpWsrorR73Y7LhcxOe86kYj89vUr0zwKEjunNSkytTLtqnrNfr9jWuZ1JjzPszjzWFdlN4VypRG/2Ndx5PJ6IoVA5zyfPn/mD3/4Az/88AOfPn5CO8uszQ11Py8rR7iUQl/NBfrdwG6/v1VhRfRqD4c78QVF9I6t86K+VcX1Fcg8sD6d8zITwiK0hxS5jCOX8YrvuwouqXPeJQj9oraFS75xllXOLOMIOdNZEW5YquvReL1wPZ1XKzONGD44I96hupQqpl/1eI3B6Ir2QZSaWg9ZIcGjwOoao+RiS1XUBpVF0MYqC1pXK1V1i0tbEOR+V6q2wvXGTLzU98h8uLWAnRWhEOfEZ1WUu8QD9uX5hZev30RtKBdMLqQQ5bCMYDHO4wnjLPvjgU8fPoC2qIyoha3Pnl4FIbSucptVKKIe9jqTlyO9zWIV1BZ8uv2ulNtslrLGZ1UapbKCst4BqIqqp2Gdk7JybaufwLqPdlZLey//dYLbZsZvW8biznUbsarbD7eWtLzHCSArQUiZVJMhpZvudl0LwlwVoWL70hit0NVnVz7bIBw5TSnyeTGLK5R3tTvnPcZ7lLHSwlass/0/t/0mgi3cAmVbSLfSia0d29qiW3TwNuBuf7a/+7XPadv29e+3tm+1ubl1uQGR3hsEtMWvJQKtgm3Aqba/7ewlhMDpdBKCeLnJQKZ884ltFV3f9xyOx5WzuhXgaAF9e05yziIWESN937Pf7xmG4U37t1XPzX2otaO21e32vJq64PnNjLv9vuvE9q3tP8a4oonfX4et7eD6Pa3DV8m6LQp8W9lvNZ3f8J4312Pb1cgVDboNwCCLK+amWrbeR/omOhJjpOs67u/veXx85OvXr4Cghff7HePlwuvpZb1G2zHD5XLh/v6eYRjo+g5eX2vlKgChfhAeKrXNbpRUOtPlytPXLxLkq3H73/7xD/zdH/7Ih48fubs7EnPmXNt5zjmmqwStuCxQYDcM9EMvvrCdCHc4Y8F59v2O3f4gYu45sR8GUZNSSmavUVqmcr3kmRArwsC8zDKP9Re61xec7+mMJedCDpEwzcS4VJPymfFypSRByc5VmUtlkd5TwPO3J+ZpYrxcuZ4vkjwqhbeG3rnVXEGVanloJNBq5Fhbe99ae+OJAqS8tjyNaiOiCjws5QYqaqhjkLlt1iiVWgyX6lFpKmFT7nV1m+cayTKFy1uK8EJd4w7r9Rm+Xke+fv3Kv/zjP1HmBWJGR5EJNaaakPeOy3xh2O/4+Okjf/zDH8D1go+IkRzT2omz+uY0RimrjngrBHLO6+yz1CCmapBSVO51adzZWoyUFmjreayPa0swSsttYA2gUkHX86MkGcmq6sIg3YhSzxm33KjW33X/bEZ2K0d/a2+aBZxkJIGR5MLWBEM+01qL6zIYQ1qEPriESOcEPawM5BwIy8w8X5mnSfZvVB0hgbVaOk/V0q8g1XnMmXEJXGe5t/vuyOHugeOuZ993+L4HI97Q/y1ELbRSa7v1/ULa2qatvdxml9tKdwvo2QbY94jitr2vVNsi/mugqvb69loxM/+vDkHv29PGmBXE09q+rRodhmENwsuy8Pr6ulaUcxUvALlRfd9jvV9ndvcPD+t3abze9lpqwJ8qfSfUinC/31c9YLcGuMbT3SK327G11nTjzrZjbYmOrx6ObR7aznnf9+jNtWt6vm6Sdrfomko1fnd39yYZiTEydAN3x7u1w9ESrUazamOFcRzXe6Idewuw26SjXaOwhHUxWrp5vZarMYETG7I2J2/f6Xq98vz8zPFw5MPDI533LM7jvePxXmbfr6cXtK7c3IrwlrbtzDTPdHVef9wf3iQcnz9/JsbI6XziP3/6ie9P3/j+9I3nb995/fbMP/zDP/A3f/u3fP78iW4Y0AXCODFqQ8qJ0/OLyNrd33PY7RiVYkyZnEeRAKwCHXeHo1QRKaMK2IMoKIUYuI4jr5ezXIMYmcaJp+/fGacRqjiHtba2ym9G6Ndp4uu373jf8/Fwh0ZRYmQ8nZgq6Onp51+4nF8Fze0c4zRWVyLxX52uZ16evwugyohq1K7r2Q0Dd4cjzhpSlPa+2EQmcg7EWEhxqcWZqA3tdrsVOVwaergCe4pG/lbSRhe3lWQZi1RlRivqOlsBNVX8gFvCmTXy7OtGDZKgpEoV+HcGaofldv9Jy3ccR37+6Rd0ylg0nTUs4yiJhNH0oSPmQOf9iokoGkoSTFXKSSpSIFDv3ZxwOZJVkSBU27IZaWtLRSgBt7LyBACmtVT19Ty8pyi2TkiiyjOWvLIdUrl1EkX8QarAVGC6XElKAHuRglVwlyKpVP1iVQ0n4m24abRoPFstWt1KyWw8hJkyVqYFAk4LOWNTpIQFEMSwUgbnYJoXqUKLkudWZ3IcKGVH7zNRQ04LOS1Yk/GdlmSpgEGsCbUSInLJUQB/KRJz4ny9cJ1GULA73vH7v/4bjvuBzmi8UWQlbeUl/deCbbv9JoItvJ01btu+731lW1t2+9O299XTdq66vZHatgVEtcDSFmHgzfFs96krCKct8r8W6Leo3Aba2VKFtoCf9hml9mPeA7eEnnFDOLcg085To8u0Y26c33Ec8XWOKTPHW2Dfgola1dxQtG2fbWsgLGmjSpulXYv2fZdlYV9b1K1CHsdRVJROAvwZ9ju6WtkfDgeh3VSg0zzPWC0B/vX1daVKtePbtpUbiG7r1LTtFGwTCOcc12VeAU9ri2pzT7TvArc5u9aa86uYk4/VuP3D4wd8DbYPD/c8PN7z5euA1orD4cCnT5/oOqnif/nlF16reMj5fObh4WEdI7TvNM8z35+f+fd/+zeevj5xfn1F5cJf/fADD4cje9/hlCEvgW/nL3xTX2Uuveurelbmcjrz8dNHrDJ449AFvli51mERS8JdP6CdWiUoc861MpSgEWNkmWaulwvzNFZFIqAUnL85p2hrRRWpYhfWEU9t38pcN4goTVyIi6EMpc4xDfM0rvQmo0XZaD/sOOx2nJ9fastZM+wGyImcQlUVk6mmVJCNEy5Id1eVtiqTo/7UI1ICrBHUbFnHGcZUhSBjRCBF3Z63oiDr+lYjCW2uLcKsREiCet5URa5ShDVgaoWTUoQQSbmgjcX5Dt/1AtzJorTW73bYukg3n2NlqIL2YvrgfC+z5jZcbWjXIudD1flkU0NqgSkCsQj9phQoWtXkQ9DWTgmuqq6ItX2cG6RqbfnmUpjmSVTMiqi7pZxkX0phlMEbWxPczOl8omhFKIWsoCuJcZ7xYcHHDmNEh3utmpV68yNjDZE9nKZJZDCVYg6R8+XC6XxiiQltHCUVQsxQbQSncbwBUJeJ0+sEaUTlkZ1PDJ0oYjld6AcHKkkmU1S1OwwoFlSJQAQEg1LI65onioaIKAiKmBJzynjtq8Sk5y9tv41g+ytV53bbVpbvkcPbn/cBuLU3t7/7NR5u27YL9699vszj7Iom/bXj3FaJbV8Nnbudxba/t8App+GtmUELnK2N3ILkNthu6S9bsFb7jq1K3dJrfu18tZ/2+S2gtde3mW47fmrmdzt3IleW69DIGkvfd/JwjldSktay8+Jq4r2rQuE957ME4xBDnWf6N9e6nat2jtus+teSra2BBVCpO5ZE1VFOEaddndnWeWNu1VPmsN+Lj6tzpCWsCPGXlxceHu7ffE6hrLMlXfmk7Xa21vL88sI4TYzXK0rBNAk3GQUvz8+czmeevn7lP//0Jy6XCzllDrsdP376zKeHD9ztD+y7oUolLmIzN8/kktkNO0FcprTOJrGO0HU4Ywi5iMoOUv2ZavFWchZno2livI6EeSGmGiCDmBmkkmvQSDT1A6U1rtLGSl3Ip2li7pcVhBRCqJ9XO05J7gkbZQ48Xi8rpWo/9FUmU4KLsw5vnciLaiXAmpKr9q0ojekkzFShwSgwmqLbDK9IUKklXGkXot4nKcniKdZ6dbYLtR1809BNlSQiAUdT9IYrWjJoXcVbMiWKKL20MuVaFK1XBO96DKp+mtbkSrdRyuD7XgTtUzWJUIZcbq5LPieUksAZUpTqWwvYL8eAamAoLUITIP+ep0k4vMagrBXQXUvura0VfCP6qIosLuv8tlDbvyjmHFlSAquxQ0dnnbSCVXUdiokYBMR5mUYwwg2PQKBIpy4180DWobJS6taiRqpZVLtnZK0gR1CaJURCXBiniYxC60QMSUBQShNTrmYvoq6lCIzjGcOENwspevDVlackwowI1VSKkLUGykxOEzkFclpQZLQqpM06X4B5mblcruiS6azMenMRulsr0v7c9psIttsKo1ElWsBo8zrv/X8JTG3bBsMmFqCUWikxW8nFJnCw1ey9zfZuJ3YbsNu+vffCf1Q3r9ptwHxfbba2a1PHGsdxddtpbdBGodm2mRuAqVVbwzBwd3cn3My+X5WiUkpi2bYBCrVz1z73w8ePK9inBaotSrt9/uVy4fPnz2u12pSktrPaBu4ZU4QkICFdHxhjtFBXNhWl7xxK7yjIw3A6vRCiyD1aKwbrj4/3jOMFrcWI+1zOHA6HN4F0m0S0BKJdm/c6zM2Kr73POYc5HohhYQkz5/OrXI+uo9eekIJUDDmTQsAazdALD5aUeHl54euXX8gp8unTJ0AC6bdvnq9PX5mDBL8lLHz5+gVrpNrquo55Glc3pNPpFRBq0G6345dffuann37il19+4V//9V8xxvDj59/x+9/9wN//T/8zj/cP7A97uqEHrTkeDoyTtOWbv6xBMVgvFVYV2OiMxRvLWArEJP6mKdfqLPP1yxOvp1eu1wuX5upUA4UqhRiDfEZKEsy4iYfs6jgi1ln/9+cXOjT7fsBqGZscj0eOxwP7/Z7r9cp4uZKCzL6fn59XU47PHz9wdzyyzDNPT0947/nw8Ij3rs7lF+bVr9gwh0WSDiu0sGINsYLbht1OeLxQW6RVI10pVHOrWmZyllavKpXWgYQAU+WQSi4VtVpIBTIJnBFwVcqUEsm5euUqTSiZeV7o9j2d77iME3Yn8pOd84QcSKmwhMh1ks9PpRBSYZwjd7u+riWaWCR5W2KURCgs5PGKqh2/y+XMcb9n5x2u6ziflprsKXCGgASrUDJ/evqCMuIItTsceZlGihL51buhI5ExqtKDSuWcVtP6tXIzBpRhmScuKXI83vPj3/4Nv/vhd5Qk/FurNN+/fOWXn3/mNE3MKaOB6zQzhQWzTPwwz6Qi+t8K5L3U9rGxFES3fFlmTOdIKRCCuHvpIkpfMYnCxrLMKGWwTjFNgWF/wFXf3pICzmph4RTDL89/QidFb/d4cy/YgjQxjye+f3vi7nhP1w1433P8NJDiiWV6IYRMDBeMdlgDy3QlRqFgllz4/vzMf/zHf/B4d+Dx7sDwcE9VxPwfbr+JYEu5AYO2Qawttm3R37Yt4a0K0bYdPNUB+PsKtQk6tPellKrfqV1nk23bzmG3W86SbV8ul7WlvbWfa4GmKWJtK7IW3FrL+df+bQjslWtWv7MxIiLw8vLCx48f1+qq+bk2HunXr19X0Yb9fr8ip9vWjqntc1sFNz5nOzdtfrl9fc4JRZVodJZm/RdjJM4ZNvPSlgD0fS/nQLHOQtv3bUjjw2GHVobO9Stqt33H7TVuQb8Jg8QY10SqJU/tvfWKSRKCzO3azDeEQHR+Pc72PmDlN59OJ56fn1flLaXUqr7VDR7Urcpu3PA2K9/6+2qtuVwua1LQZvVPT0+cTie893z+8JHf//gjP3z6zP3xDlJmPF1YrhO299K6TJm0BL49fxfecuVVi9WdXbWqjdKYSi2jWqBIAAAgAElEQVR5fXmR0YM2GGW4zmJAPy+zCFfICaDUZNMby9Tm30X4sbEKx7dEL44jyxIgJl5O4s/ra/dkf9hz9/DA/f3jm47O09MTCsPhcORw2LPbHbhcrpxPr5xeXhk62bcPth7LwrRMFRcgqlgNQLM/7PnoPb4bMN4RFGJN2DpCqYjAQCnoen+kej8IQeadl2pdg0qdDUYyU4xcloVs1A2VHxO9cgzO0WlbxXiEpx2rvrIoQTW1J6GrTHNkXgJKG6zrsbWFHYoi5EJIGW0Uznd0+x2H+3sePn7k+PhIRnG+XHm9nBnjTFkKxSiiEopT1oVU270oRcyZrOH+4yOPnz/z4fPv+BQiGEs/9Bz2O/75//o/5FkBfFsjW1egSIcga0gKcHLM3f2B4fGO/uGBXD14rdb4ywXbd2hvKVpmxaEklhyxxcjct1b5iltXaKoASurIxjlJIrq+Z+hFxtb23dpG7urfBOR5IByh6wa0UsQUoATIgRgmpvM3lumFx+OBjw+GDweYr79wPX/nen5mGU98vf6Mc56+33PsoDMX9kOsallXcnH1njeUlygjjZLJ0TJXh63ZWZahJ1aRF/OXmT+/jWDbKqmG2t22RbdV7xaJvK3gWlBu7cOtjub2Ndv2ZJunvn/PtnLezmDXyrBKCG4DQQtE7f1bKs0WwAW3OXJ73YoaniZpGUWRagsxVnnAILJ8KWKKOOykasqwLAsxRTyemBMxBM7Xi5hJ9x0PDw8c7+7eVLbt3G2/+3bO285X+w4tCLX3yPmTJlSDyrd9qc31XFv1m/OeagupoaRbFbqKVmjzJnC25KttWxpW239bCP/cdU0VDUvlIkYdxEAgB+ZcOxtaYVXlKpcGnuEt0jsEXl9eqlpUoJCq4YBU6qlKH4ZZ7mGp0KpJhFZ4J4F2vM7M88zLy8s6C94PPb/73Wc+ffrIw/29gLqmSTpuWtEr+bdRScISmKcZ1EyKUazHasI49D3TOFJyEVSnUhSlWZZACDJDn6apIt6TKPsooXcYq8VucLoyh4XCrWJWWovesnPoeaEUATaGEJiKCMNrbWim9VprjPOkMjNPE9+en0ErhmHH8XCHsY5x+s44zcSU6Ycd+/0B710FOUX80t/46EiFOC4L6VwwrqOLERs8MYgWttaitJTTrf2nteg1UxJWKzpt0Okm3kCr7Kg6/aUQC0wh8nK5UJyIchQpS6G6Y2k0DkE551TIRLHs63IF3Yh7TIpCPctFMeyO9M7TVRONzllCmElxwVhwnWW373n4cM/dwyMff/yRWAr6+YWnpy+AzI2bYEkxgggOJZGQGeYcAmMM3FuD7XvcfscyLyQ0UWuWIsmEQjojWTUHHfk3K/mMokTDe46RYCCUzJIzl2kiLgu6IPStJEClXAqqdZhKIeQkalgNflzb67k2vKtOBY3sW6qXcSkZVFm7X0VpAZer6oQUQx1XaWJVzovLTJgnrI6UPJPTFc2IxWLKRFqemc8/E67PpPkVU2ZKMaTFMqcL4/kO4oJVGW8VVgdSFIlHTcLojDEFsgifaFmgKhqeav1nseZtcfd++00E21yDbVs4f40z+b7KfA9Gek8HAv5LkAPegJa2QfvXZP62n9H20eTCtsfRFvst57dVva2C28pKthnSNriP43WdXbfWboiBJSwy96xVYgPvRGSxbJV2oxo1paauE0nG3TC8SShapbwiLDfBtgW+bbBt538b6KiL87ajoNbZ1NtrtJ1Dp3ITcmvJ1bYCLLylbjVQWTtf7ffvz31Lwt53OW5UK5nRWSOox5AEpBRqG/rte292Xt57hmGoVIjCpbrQxBjIJC7nC8syVZ3gRRDI40SKkRg9YoggSYkGsfmbRl5fX/n+7Rsg1eLxcODx4Z6745G+72riU1HdWqGdQxm9Xp+10qIwzwun00lASNYyVXWtkrNUm0qjtVhYXiehCK2GGRSRBLS1Q6Fra94YtJJaJKVU6Tsa73y1VDTrdV3n1ymv90AppXrvFpmnLYHT+YwxGu87uq6nFBjHmXmRudxuv+dwvBM0bhUdCVFm3EUJSj9fr2IlOC+Y6xWfE3ZxhCXhXFefTb3iiHQ9xqwNVsk1zfXeFQBQo75sgm2W6nZJkcs8oXDVQk5ubwEfQcyiW1xQNTnIpFAT9txAYxoR3AeFYX+85/5wZNf3eG1wVldkdcA6hXYK3zsOd3v8MLC/uxcTihgx3lFSJFexp5uaksx4C4olRcZlZlxmUXKqloFJa+ZUR2ezoIxNqQCqep2VqkFE3WQYMxUUZTSRwlIy12UmzrMg0AurUUYuorBUiuw/VhODJh2rKi+61POvtVqNHcqqIlWlK0uulpCCdDZG1owYArORVnLGiJhKzoRlpqQZ7QoqBzQBo2ZUNuTFMp4y8+UX0nLC5BGtIkVZUlak5cL1/AtxAZJG43EmEmJG5YIqEVVSneEKmroF2hIlAVNFKGbmv4OoRa6ttVZVNaTpe4HnFqhatbOdJ7Zt+/ptm7QtUK1S2fJUt/PRto/3QKmtM1BLCNrscPv7FsRa0FJKrc46W5rQ1skCYA7LG+rNtnUOIpL/8eNH7u/v1zlg20dDubZ2Z9/37PY79oc97fJvq9dtoN8ec5sjb1+/1U6WboGgWLXiTeDbVpfbBCmnZm5vcM6ui/F7NHcIIp1GZq2o27Vo+9qCzNp13B7/9trJsUurWVkj1Uitsrcz+zUBUrIvX+UkrbUcDgehQNXWcHNNmuaJOcycTq9kMt4LpWpZxPGnnbM2g3fWVkpJWuUplVIc9gfu7+744YcfblrVKRGWhWkRcwKtNUwjIcuY4Hy9EnNanZAAlnCbrxtjuJ7PdL7DVkP3VGAJkWmuetyl0WMk2djveqyzIuC/LBVEo1df0rzxEG7ULd9a1qlAEhGTomBeFl7PF748PaG0UKku1yvnaeLT4we0c8SSeX0983I6UXIRus/DA/cPj+z6QcBPJZJiEOlDrbiOM99fX1CnVy7Xkcs0cl0W4V9qS1cEKayTBiWSkd57uk74zN5ojMrkOIv0YJuyNd5nXUAbbWbJmWsIDLuerhckrSoamwEMOStizAhVV4JFjpG4BGKI5FRqUFAUDK7b8Wl3z4+ff8fd4YA3Gm/F2B2VcN4wL1fBEGiYKn2GFlhrEtFkF3VFVFPvK21k1n0Zr5yvF8ZlYQoL47JwmibGRe4PpwRsZkpGJqwakYjYVLewGgsoo9GmynsaQ1JCwTGIWpPSBqUMqqovhZLJShHJb4Nt5SZvsSm3jmRN2LSSjl6V19S2BttKqZnmiSUkrheZA4vMZCGnwK5TeGVwJrJzhWwCYXzi+es3fNB4daH3Gd8BJWC6gTkkTueZ12+KZdGk7IEjvY3EqJhVJueJMF9JMZOVIUcvPHJjWYxhmWfCvOBAjvcvbL+JYNtqx62WcAu0LUi9RxlvF1h4y7sF1oV1K/Swreq2yOOtrnELFttAv0UGN75ZO95tArB936/xhrd0m/e+uZlbe3cbsBrY6lAFDu7v7/n69eubdurlclmr2nb+lFJcrle8fkubauejzSnbPloC0Y6vvWfbJpcAJcuHADu2JO6yEsPbcYNUc9M84ZzHFEFyS+UtiGBjqvh5zusiuKXotLnv9n5ox9PO/fa6bvWpBQewYJVvnSwgk3MkJWknW63QdGgrpvJKF3KJxCiiBUZBrmLyq7g8N7qXqmIH78cE24Qx58zXL1+qb2rh/njHX/3wI8f9gaHv6YeBpbbnrLZ0ruMa59soZLpU3u5UAX4FX83WjRG6VDMIJ0XGeRY/aAr/9qc/iQyn0uiKEk4lV95mrqDCAe8Fs3A6vQiwa57QRtN5S9d5nO+w2lCiVLoF0NpWkRcl+zOWMUTU5UJ5EtGAZpGmjeX+8RFlNC/nC19/+cLpMtJ5jzaOlAvXeaFQ7eniLG1uwHg5J/thR0FhXS9zxVpZhlLAWrKSzzPG4IaBftjR9wMKhTMaXRIhLrdFpwba5l+eUSQQgwCl0c5j+h499BJsYhFf2axIWuGMxToga3IW0XwylOo0FCXeyLm3jvv7R+4/fOTucMSUQufFHF3pgvea18szL6dnzuOFn78+cXh8xFgBni2LaE+XqFi0wWpQ1uC0LPChJmnzNBOWhFYaaz3dMHB0Hi96hpi08PTLn0TYg0JJjYO7GScg4omqKHIsTGlGn8/4799ldDLOWAyhD+SzyKmmGGu72KzCE6AEapCkw2F104+WKrWNbTTVorPZYnJTEixFMc9BKt2iK74nUoqCarRgDVVkAgyJ67yg4xmlF3Qs6Kzpu4W9h8EXpumMURPoQrCCPQiTIgRHyueKqLdYXTDMWJPJRYGWe7O3rv54BufpncdbL7zdv7D9JoKt4jYfazzHbRt3S1PZzhzhbTv5PVK5tSC3beYtH/Z9sH7TEt3sb9vaVJv9bbdty3r79xbUWrBtFeL7CtDYW6W9bZdu54aliF5yk2BsFe121n04HATAU9HQzSh6+/Nr8802H30v/7itQN9cMyVk/e05N9pszLBv83JX6RzCc6z2gLC2k1TjEbZ2Vg2276vWdj7eJyPbz9smUUIFMGuALGUjdF5n4mumXc9zq3izSaJ0pFqFenMfijEyXi6SoLxLAm4Mh1tAbmCoFoR7f7vHY4xM4yizV2sxNpEKXOapzuQlaK5jAGSmtaRY24G13V9PYc6ZKQayAh0Dl+nKdRyx1uO7TlBqSGsZrVYLREkYA6HSnZZpxjjDsDtivMN56eKERShCKSQWvWDRUGQxUkYkIKV1vNTjroYPnWd3OLAsM0sIzCHgvGfY7Rj2O5Q2IppQxyIGqjavIFiRo8Zqi7OZYoRGk4tocWtt6mdHMolcq9RUtbpL1pjKTtUgloRqHc8DSlqqRbi2TUc5oZhTQqVMDgkbMhmDVg60xTkNWVOyrhrVElCapVsp1eYt5zU5yKUm8TFJsK3zwJALSy4sKTFHAYT5rmMIPUPfs2SZtZZSanC8uSqVIvSZXKtAySWkMDDW4q3Qvgi5PgulgsLEFlApsQmk0oJWEQyluF4ujDEIQrpAGBc67fh098BOiUhKqe1kVU3trXNoK444BWk3C/q5PhttLWoVtZG1I2dB9p/PZ1hmQKg9MUa0qY5hSqG1xRmLrqjqvrPsBoXOgUUlnEnsesVxrzkO0JmINwmnElFd0RSc1gy+nruoUCUyzSOqGKgWjVolrIYsLvXYSr8yWrx3vXU447BaPKP/0vabCLbUgLT9+bUK9P0CC29nprfdqTUwdV33plrdtj7b1gLP+1bo+yBVSllvjBb8toFpfc2mut7OOreI2q2EY0pp/d7b/cKtFQk3HeWmENSq49Yi11qvwfaNCwi8/Q76Jve2/awG6nrfOdie/1JhhSt3kbf0KG1ugTDnjDYar/36gG1nrNsgmqsnKNwSq9vf8tqKbsFxe6237ei14qwPpWkzuk3CVOqi3roOKUZKpZatSUZKknHX87g1QYghMI1XtLNYb9/eK9XUOlR06hIC18ulKlEdVg6q3J8TCzfKmus8JieWmDiNV0mmovjNNgN7bOW0ZnEc0TmyLEEcYZBgM8WAMhqXM3MMLCmKY4lStYMivFxjFb7rNmOQloQEQlhI2XB/7+iGAev9ytENtVU6lUkMAWoQaU5CuYjM3RIkWVAK9vsd/W5HSILQLcD+cODucORwPIoxgr5xla0yJFVF7qXMErs3bqpFq2xiAWOdcHJLvLV3swT+ZVnIRuMU6KJW6cENGkPQUjJcbItCRQxn0jyTUiZOCz4Btsc6Da6X2aPWlKzwFJIWuYhShItaisyBlyUyh8Q4B6ydBcCmxIhA6YJPlsu0MIdYtX0L1nv6foCc2Q97EXlIUebwLejAmtSULLNuVbOI9VlwBqstWSVSUDXo1e9bjTnWZ1y3ebMkI1ZbpuvIeD7x9PLMNAfiuDC4juXj7/jx7kPtqoiEprLiqdz1tVtk5b6VZ+MGQLzhP1ifVZRUtPM88/r6SlBC5SpFxhFdb9HVtrHvOrx3EuDyQuctvVfopLnqTO8Vh8Fyt9fs/IJKE6YEDAmnxvrZFm9FtYps0QpSCBiVUWKVhFFCkzKqUFTjIkvapGsiLoC5ek7/wvabCLbvW4Xtd38uOG4X2Pdgn/Z3YK1SVoDOpoW65d62imMbMOGmD7yVDlw9PTfBfrvv9jNN09oOb6CmFkBijCu9xTmZtTR+avtdoyJt9z9N05u2dlNe2raFmwZyk1uMFR3bZrvNQq5t2/1sK9923FsBiZWWRfkz1+etJnWr4L2vVn9BFI22ydH22hUKSd/mne0ztg4+bTywvU7b5GG7X6lgAynMFTmYJYAaS7GZHG9ewi0B2AbjbcLTrl0KUom+vL7Q73cYq0nOrqOCeVkkGE8TlML1cuF8PhOXsGb2OUSeL9/W1v1ut8NZS6aQponTNLFQDSkkvWaomrstEW1Vb4qRkAJeyZxtCYG5OiwpZ9De0Rsj4CYrlbuxhr7zHPYD98c7FIUQKrjOKpw3GCuOP6ZyRo11XK4j1/HKNN46KvQKZ6vjiTLiVKNkljctgWmaMUbz8OEDGFNBOXD/4ZEff/iBw7Bn6Dp6L9zmzlo8iqEUmZHlTNGGpSRUWcihEJdAUboicxXDbqDf7USxSVtizDK2MFYSgUwFgUGJ4mtLucVXQYZRp5UiElGUJqHqvFlapWEK3OsO9hnba2bVo5A5qFHgjWfRRpIBwBqHUoYYM6/nC6lYQkj0XY8GjC4UIihRNVrSREiCAv9sDVaLkEiu3ZDsO0iG3kr7XudCSgvjPJOomseUVWc9LpF5XKRS85YcM2FeUNKBRacsJT61BayQGbgq8ncN98cj5osmToF5HLnOC2kK4CPTcEUdPtA5j9bw9ZLofMfOHHC7Huscu8Me3/cyz8wSwNX2WS2soEkqUCrGwDSNXKPQpZQ2gJVOWE30h75nv5PzH2fQSlDJpszsB8OdPbL3Ezpd+PrTv1LCFx6OFvfQ4U2W2XMoTNcITDj3yK7fAR1LVCwh43TGWQjLmXlRZOQcqlxQIeByYTwcmbQlG3NT+Poz228j2HIDwLRWZlvgtvq3cFuct9u2QmyVW5MefA+SasF320Z9Tx1qC3lr025pR9oYAWJsQFbNGL7Zwq0L7zyviURbJKnfdQsUEI7sVZCnWrOvTi3AqmW8nQl++PBhDX7NtKEFzfP5fBO+yJId65RQNbHQ1tJvTA1yVV+5jiOn11ec76qLCiwx4KpUX2v7iDtPfUaVqdl7C66ZnLfGDqKwyhJk1pJb+4qbBKDR9K4n+EhYpCqhzrzb921UlS3QrX3vlmQ0ha2tdCWwArQoWTJ1a8WhaKNhDNLmyqWw2+0qEjxynSbmsKxzZt959scDGEUsmXGepM1brchKEeWjpbrglJw5Xa6cz1fRf3UdznuMc5AinXf0Xc/d/RGjFK+XC+dx5HWe8PuhHquRIJzE2rEhY1NLJmp3wTkn6kIFlkpnyogoe1gCWhu8Uywx0juH947D4cCw67iezxXoMWONY7c7MIfI6+lUEa+Kkgrny8i4iD6xxtT2ra6jFdHvTamgoiFlWObIOElyp5VlngIxJJTSHA47Hh8eZaFeB6iiGhVT5jKNqErbsp3C1PavVDLlZu2jIC7C5VmNznMRIY+UUUX4tiI4pUgkdEk0rm1BU5QgnluxpyonJafMOF+5nC9M08QyL/jhnrlLTDlxjjNTDHRG0dcxUNK1k2w0xsncupTEvEykAqfzq3RctKHvrNBdSHS9JasIuoj95PKZn376T4bek2Pg9fmJuEwYBb3u61yzPvOvZ3CCys5JYa3H2Y7OeQbv6Q573NCTU2IymUtpYhaStCcUSefaoYC1EV0KaY6YWBi0Zdfv+N1jB0vEa8Pj/oArgTwHUlywKTIYw+AsRfdY3/Gw23PoOnpryUGq+FxnurmIm05ImZgKThk633HY7bk/3DEUQX7nIslb13VrNb/rNHeDQZOYS6YzV6bTf6DyCx/vYVCF68sL//n0J/7l//4/2fvIH/7mnq7/xP7uwOnq+PY68cuXkRDO/O6z4XAw7HYdMWcRJCmBOSbu+oBFE7PoejtUtWO0eCcjIWcN5b9DsG3b+/nrFn26nc1tK76GCG6zsUZXaa/dIoVbddraxK2yaJXje64t3Cgv22ot1fdtt+2sse1ri6jezj63SUGrQJXS5FykMqkAl0JLBBR65VJ64UJerxJwgwCzvPNYZ7E1m7dGnESsE1qKCSL35lF03tN5j/MehRbt1n4gxYzzrlYDglVUWmTVNKwtx1xEuF61rLQBO2ur6M2stb7GWrGQkwKzoNEr+jEWhUETiphvT9WMwRiZ/ahlQWyvbrP3LR831wpWK0hri19aaiAUgpKlTapVQVuL05qck7RpVTVWUwrrHUVBzLmS5UEpg7FirZVSwkaP73vO48g0B7SesVZMFlCGVGCcFlJMzCFRlMb6vnIXhf7Q970oTXmH1jcPYMjElGBeyLlgbRMTkYouVQnGXO+PRjdQdZVU9ZzmJPQhZxZJgkqmaOiHjl3X4Tvxg42hgt5qSyzkUqkcYF1HSBkVAkplYhYai+jsSuiT6yLnq9T70FjLvASmecYYyzCIb28MkRhEj7bznQS7LBQh33n5byoIMS2YLLNTmfsiLc92j8nDUednGqOkIpM5nqiADX0noDAFfefxOrPMGUOE0oQtpCIvt7q2mfzglMEVhU4FFQs6Q0iR6yxdi5fXF47Ocb8bwPVYFOiCdRrlDZFMUSJY4b0V4YnNaCZnL/QXlUlZADvWG6zVXM5nvn79hd5bVImkNKJIqKKIYaqazDJ+MdYSa/pQakoSQpTZ+3hFW01cRlFqupxFHCUlUcVK8s1zSVht8HhBHyswpaBj5tD14hplDb3vUSbjlGJQCh1moGBTYgBcDCKbaTRd8biUMDGhYhLfXCWUqIKiGEPRhlI7IikVnHYc93f88fd/YCkQiqwPznmsQSQcc+ThuOP+0KFLZLKOeXwlqy8o/R1voXeZ6XRhmi/8+39c+OHjwMfFM9Pj9B3fx46fns78y3+c+X+pe7MlR5IsTe/T1RbA3WPJyqrunp6hcHn/l6HwYi5IjpDdVZkVGYs7YIuuvDiqBouo6uZtFkRcIiPSARjMDHr0/OdfwvZG1QvYiek6M18ST3Ej50BMhffXiMWwBU2l4NA4ZXHGY4xv3bc+deh///G7KbY/Ep/OUpUzI7mTSnpHc7lcDqhxWRbgUSC75vQMMXdIt3dJvYPqjOQu2+jyjz7L7R1VbJ1rP+YfTTjO7987zP4Zzh3o8Xm0wmTpiiuwLGsba9Q287RHN+39cEDEWksBiSFKItDlwvV6FRce55nGiZeXZ5SuLOvCvgeM1fhhwrXc0qoUVjsmK8SWGNOjY0pJbHHb8MYYfWSjhhj49u0L9ZTe0edIctyiQSvNx6yCBIXnTCaTiiSfaBrhLYvFmqpJ4uPud67XJ6ZRFnOlDcZpLGCNPljXfTaamrl9ivHQVgJthlWxzpJSJaUAteLbpqSWgXXbHhCabvP4NmsuUeLLTHO3Mc5C1MICHQcqimXZSKmgzcjTy0hVjlINt2U/7iU3jAzTTEayNm2tPF0veCOFIKVIyQnrFGP12G0n7BLK3mFmVJHrkzOUeqAi1gmJq0TpkGqR2WYKqc2cGgO+FjCV55cnLn7EKGGTlxgEejTSOWwps+6BdRcj/DUm9rqhlKUJgY7NlVKia60ICqKMFrKT0iKT2nY+fPjAh/cfGMeZGBI5Shc6GE/YNnIj+VzngZIDuYhJgKK0EAGZn8cDoWhdqz5Jq5zDGSFIVSfn5t3zM9M8oZRiXQ2XweFqYrsDZCFR1QrKHj7AFY7PZpViNIaL8ezKChlqMFQK97Bw2+58/u03/uXnn6nDR7wdMDVjjWNwGjM41jVRKVinuT7N3O9/RVuDVs3sooJvLPiYdgwag8Vrw+3bNz7pzOA1VmVGY3BOoXI55CZGW4z1zNcLtz2DzlSVKRXut4XhyzcZAyxv7HEnx0Ded0iJHAW9MRWKVoQCzpjWQWqxs0ySS/zh+kyIkZQyrhqcFTKQzgmdZF0xqlKMpgTxZUZpnLaobaduG8W6h4SonWZlLco6lHFUbYgxY43nw9N73v2vz4SqCFWTMIzThKobJa6UuHDx8DRpdNlYRsef/99PuPETSn3CmQ3nZoy9U0rir3+F55d3BP2B4N5x5x2/fLvyf//F89//r1fC9gt2WnDTxE8/j0yXQM4rmoAG3t4nHIXbm2ILiQHNoB3eeLR24lGuOVzK/qPH76LY9mL2o1tRZ7L+CBv/KPvoHWmfEfZil1JiXWUY3jvJ81xXKXVAvf3fzizi/rzzbLD/25m8BXxHcOqkmnMYwd97vfN7aiPRabFkdJvD9v+fs7hDidm2wMe3240QwwGX98zVeZ4ZnMNaYe6N40BI4WCBWueZLy+8vLzjer1ye1t5e7txv90w1h+m8jkntm0ll9S6npP0SoFWlmrNQXigVlJ6dLQahTUPVrm3A9V0A4SVkirGieHD5fKE1q3gLwvfvr7hnOfl5Znn52eu12tDA5p2r8HIfeQwtA1Tn2V+Z06iK3vIh8NTtlIwrbUoaxjagly1Ej/XXeDp2Ni+kkYtzFrT9Ky5ljZ38qzr2vSRAonlktlDpKAwzmOtzFrn+YLR4oyTqziGJaOxRmGtZnDiKqRtZlgDe9PtHnaW8+VhyrEH4razl/Xo8sdhwOhTIMBp42qsYbrMPD8/U0vmdn9DV7BK8zKLrlvcqSClV9HkhkhE4bVBxYpSWZCMQusWLV41GZwW96NSZMPWvx/vXl74+OEngYut4/b2RthO93Zt8HGphCAOalWJvnIcLFZ103+LzgpbHLYUdHLiz2QtyogVY+hublTGeeLl3QvX6xWlFL/99glqIqW+sbASi1YrKVeJo1OI3KcqLJqaNqlVc1IAACAASURBVPZXkc59vLzw8ekdfp7Q1lCVeKzHGNHOYYYBP19QOVHRh9yJKoHyg7eMzjY/4oLWBjPYxmQ1WKNxVoh80zByGWf++PED08ViTUWTGLQcl66VYm1DwjQZw5oKa6pELNUKnH67b+zxV/76+TcgoZCkJWc0L+OLQO7aULUMZ52R85lGx1Yjy7qxrDtFWVLb9E9uZBo8TlV0KZACXlVhZCsYvG3ZroqCxo8jF+eYjGVQmtjW5JRzS3KSEUVREi5hMWhr8NqjvXS1xXiqcRStsNWiq0VVy1BfIf5G2r5Qb39h4hfm6Stav6LUgikZVQIPRuczsU687nB/feN//++R//E/Vv7t30Xq9Oe/vDEMiafrnX/62TNPMNiKtxAWy+wNX0fLt29gbMCqgCJhjKRDoap4af8nj99Fse3F5+yQ1P/9DOOeu9NewM5Snj4fPT+3L7xnFmsvyN1jt79u//NcTH+U9JxlRP05P+osz6LtM6P3PBv+bmOhRB6wp3iEr59f6wyFdxnJ7SY5pNM0HeesQ+linbejNk3KU9PAyfsvywp8Yd9D67j1gRz0mafWii7R2fa1wXiiM+2MW2vtI4qtnTMRplSZlQlluXXknuvTE/Aw6eiIgMxtjaS39NcJojmtRWBBcWhqrOF2/YFjkxX2rc3WxVVL6xY0bi1WW/b8MHw431vwcOvaNtGwdvSk3zcdiTgzqGt73jAMooHcAyHmY35ZajlGBN47nBX2udWVokWjmWPAG401ujFbPdoKBC0ewZFwOs4zAexwLApyP3RUROnOI/2efQ6wbxtfv36Vz5EloGBwnusgJh+dKZ5zZvBeeAPt81RkE1FToebOVhVD/loqxmiscex7YN9WkfDkzLunZ949XXm+zmgghkCtBWtEOmGMFgZ6k60opShaimDImdwWYaVgz4lQM5EqMgyEUV21MMNqkzIpbSlGi4/wJhu9r/dXdM6YHHEZlHIoo5AM3IxoNhtPBIMqMLmJ58sLymj2piF1bkBZuQesqVyUY0JjBbIQFKdkSsjUmNHFMPuRp+nKy/WFb/MbIUlcprcO086kUgpvR3KJYi6B5jJdpcM0FU3BUYVZXypaJVI2YnJRtRDJrMKYkWlWWD8xXS/SgRqIcaWU2DJs4TUGREuqGI0wcnEW7R1xHlm3wJcU+bzcCbFQ27jAGcuUEqYkVEmoHLk4w6UODN7iRnHxylV0ys77h19BR71O67g6QwnqZIhTK4Zmt2Ed1Tj2GLHVYrXD6ogKK8v6F7bbX1jv/w71C6OrWDMSY0KXAV1AVxmLWafQulJS4PNvn/ntN8e3bzvr+spgNpZ75fVr4vOnxPvrey7zwOANcSx8/GnAWIX1GnRhjyva3kBNaLNjtG/Eo3+EYsuDfXz2DT7P5s5F80dZyHnhPBdmrfWRGtSf+yPj9jynPRf0s4zkx872XDSPz3Ba3HphPRO3zuxpOHW0nUnrnPiyZtHK9c7kbK7RoezX19cDip7n+WBS9932kc9pNbnEg3rfCUFvb29s295CDObGhTin+2jAoPX3bk/970rJ3Leczs1x/toMVXqWKsYI44AfPSAG7D5E9rCL+N1oiZbkLMXgKJidDd2L9HlDpdQD/pcgemF2eu8RSs3jRc8GGWfW8pntvO87Ly8vx310vrZn7kCtVRZf31ysaiW2gAPTNKt942ibFeK+bSirUDx0wn1zUdt1V1WySPvxfsf2Vo/viLEWU8T3+YCTG6Tcr+F33IdSWNb1QEJGYzDWNQciIdp09KTL0MZxFLYvipSl+xTrxirlQPVBvVCXlJK4uZQalK004zAwjgPeOdJJC+6cxVpBNVQn4mSxtuxwruTKNkRIQTUie9K14hibNEc624JCWdMgSvEOXvadkOW6vi0rloKrldq0ulppiaarYpCgjUVbC0pTU2UY4PlJCrhrsYYSHN824zoxaINXRrhauUnqlGrORhqtDN4NTOPMPF+YphkdxM9Xco8lON45wzQOzfpTslOdH7BOow1o4XjLmSmVWg0SSttITsqivZXOV2nsMDM8PYqt2iz7fhdHrpKonYBqLQyOaqE6S/GOMo1sqXADvqXIEtJxz1qdGVJExYDKEV0S6TKhnHSb5libZTOmxI+R8xfxsf49vuvq+P/q+HfZQ8nzi6romh9sZgopvrGvn9i3X4nxV7S64XTBKEUuFlWdaL+KjNtkNi5hJNt+hzpiVMTqhHcaq8W7OcVCThVVNcYanIXLkyMj7PctQr0HtN6AO4odpeY2i/4HgJGp37sGdWgYHotkX/T7wgIP+LkXknPyyo+d57kT7q/b4/XgIRM6/5xTiECg4nNROMPP/b0OjWcr9D8GKHTyVJ8FA22Bs7KjT1Hiwk6EK6UkqLjPfntSzDzNXC+X75jIOWdGP8iC5h23O4zTdEghcs4tsSjx+fNnXp7fM00zzvnWwSWMac5SjYYvcK1uxvYa4zT+B63w+XznnA9ZDbQ5edPboRVuGkiUw/qPlMiqHqblgx+Ypumwj+zXoeTcOqIH6ayU1EINxO5zGL2wA42ksqRGKLLOHqzlx20nx9w7123bjgi4vnDKL0KtRczrT6uEd0IysyEQk+gDXRWyT7fdBMitkFszYoxlHGTXbLV4rcoiKsSomAsxPvKWH5stvrtva5Wg9aF9pmmajntqXx9M7ZwzxMiyLpSSeXl54frywjRNEiqvHglKa4PmnfPM2hwzZmKiVCFSyT0r3Y4ck6MiRhR72Ii7SJwG7/He4K3FGk0oCWrGOyPewB3ZQaLdcs5IJHDTUrdroMQkVz68K+hcxDKx4XdVa27Lih2nQ9OZc+b1dqOUzB52YhDmdzGGqizaeSF2oYhKDDG09eiWAsUe8Xbgw+WJkjPLsrTNnizWlUqx6QgU0IhTkvdClrF+xFgPaOww4KeJ+XJlvl7xWcI5xslLUIWRzcfL9cKy3IGCGRzaeyliRoqE0lByku9V0URvKEqBtmgzMNiRUCqxVJKyRC+voY1BPLRXlhDZ1pWf/vRHhnHED55xFja4NlrsGKeRLSZuVvONwoKYO6jUiGUhkLcVlWWOiVG4acTWis0F0zafRVXJvG4oTO1wrhJNrdV/a4nbORbiUifyq0Kk1gQlU5ISlnBZ2O6/st7/TNz+Qi2fcG5BV4XKoKIG5SEWSjTN6EPMYIRPmHj/fiQFRw6Byzjz8f0T75+9aHWrbsx2hdEwX4TEhVZsqZJqoOQFpT3UBcUFAcH/VqZ6fvw+ii2nzqgVjr5Q/zj37Is5PPJve0Hui0s3bP+xq+yC6d51nnWVPz56IT9rMDtM2Ldf5/cFjvftC2U/ht5RnRnWB6TdOqv5cgWlJcMzfE/AWpvDkFLq8JA2xuC8SI56R9u7+L4gO+95ffvK3grINF2a5eO7Y75ZC+z7RkrxkCH1me39fj/i8MZxYJ4l8Ns5h9OGr1++cr/f2fZNkk1Kolb5MxVx8knFUWrm9fba4OlCzJGkMtY6jLfYyTHtsxjMh8jQ3qMfYw/KNi07d9u2ZikoRBHvPcMo89F5GI+i8whWEN/S0TWTgNOGyhuLrkL9qSmTQ0RVCS3Qzh0WbLU2GdFp1JCKQGXTJHPf3AzUrbU8PT3hnGsdtxS5d89PXC8z18vMPI1Yo5rsJVOihHSveyB/fQXjpEus0gW9vLzn0oLtS3lEPOac0Q1pEH/nzDrIpiGXQgiJvG8YaxjaJuDp+sx1npm9ZOHu6866bNxvNzFNCZGQ86mzLYczkezgu4uPnJscIyFuvH39IjGJfmDwjmkYGhlNCDTOVKbR8/Q0471t3sAChaYcAXER0tYwTE9SAJSiKoOqAjtaYEBTGju9AmqYmC6zFFulxDy/E6oGz6TFx1wb2QDfvRcTAmQTI1aBjmKchJf7IOELFQZjMNcrtWac1gITp8jt7ZVf/voXqtZkbcjWoS5XnBuw4wjTyLZG7qWyVNiNoV4mnq9PzPOFcRzZdpH7OWd4ebkyLRJsUUsmek+QM9I2uUUcpihsJROoqLZB0NOI9heWPbHsgfu24e+ZMXou3mO1Il1mtDO4aWT3FgZDHgzFGlIKYgUZCoQ7v3z+wp8/f+KXr5+pWKqEIQuLedlIyxs6RQYaAmEUmYKaRrSqjVMvA40QAi4m3JBBi1ZWqT6S60KjvoGD2hyypI/PjaEO1liIkEJgvX9hefs3cvwVpX5jGr4yuoDKipIsuo4oBklpyrLpoSk0pmnkj3/6iWn8mXFYSeHOy/zC//zf/pl//uOF9y+VadhxTqENGAvaFqrSKAN7htA21tQ7Kb2R0gWrR/iH6GxP5KEf56N9ZtkL2pkAc5bR9Of0rvhsBn+eeZ7f51wYu2SnP85z3fOstofHn7uOM7v5vBn40VTjfDzzPDNNk0B2zXtVbRtu30gmHIW863V7ZFjfLMQYWZeFkh6ex10KNQzDqXPQ7ZjkJvbe4/1wvEatovmTYjw9Xnu908HdbgUHEts2DJ7Bet6+vR5IQpdd9T9LKeIMqBTamYMp3iHTGKMwM4vBWd86T4uxAp2u63qcN9+CBPp1685ZfdMyTaNwIBQHItE3OAJBh2OWeS60f2+jdcDV8J3DVt/EHTpsoGIOVMU4C1k0pH9zD2ndPJDn1lE0SYqWHb41HjMqUq24bedti8QiG5jzhnIYBi7XK6md5/7e8l7Cci2lHEWolkKqhZgTQ9sohhB4u90oMZGGEdfuqX3f2cPOvu1sIRBKpmox9U+FA2oWtrOmqmZ/mQ255QSHPTAOA9Zq5mnkMo1Mo8M7zaYV3ljmYeA6T4yDzLJrNRSrYa+4hhSYYUBdZqrWTS4lUHamkWqUbl2P3KHucqVYmfsrJTNcXWsLiZfOLCgoShG8A2M60AmAUyIdMghpCCXF2GsJjq+bpqRIqkWY0FWRNERVoWaZYeYo2mlnJfUGuOXMW0ksFPLg8O/eYeYJxhGGEeWkuGSrCM6QBkvAEEPi1/sbkpcs3zfrFCHu7DFw31dCLjI3rRmt4fXzN7YkMXi5VMk2DpbJOSan0SWL5tjAcr/j0o7bHePoBf4vrQtVir++feOv9zc+LXf2vTSpF1AKatspyx0dIwOF62jwFkzNXOx7BqOgGY7oqttMXNAApUCV/h38gQfTfkppM/jmfdyLr3dCkoo5E/bAvt3R7FgdsCahCShlwVg0jpyFPY+yODehtUMZi3ED7z9YUjBYHSjphq6KebY8PU08XRTiji1cAiUfByVBxRhTsa6Sk3BTagnUnKhkVDlh43/n8fsotnxPSoLHTPNHNu85TQf4bt7aF9qzDvesq+2L03kG2h/6tJj3v/cifS784uEpC9yPPr39c/T37o8zOar/v2mauFxkh+vDIMSonL9LF+qLfAiB3J4fYzzMMzZEJ3nuvK2V2UknGsji/0i2MScClzUWY1wrwJ55nluhXQhhPWDUWiXMO8SdlD0lO4ouDxQhtMD0tsnp0DJGfGa1McSe1NTOSe6waclYBdro5g8tqMO+yfxKSE4tmOI4ltTmgqq5erXElrbhUUrJvLdBrMvyt45V52J7nqX3wvbjNTi7dR33hJXFUrhg3bdbnhPbqECIS7pBnKLnzLkQigSTV2swusHRWliczjqMaVmdOcNpA9Pfu6epHOz5Hg563rhWmYfK55TmZNs23gokvxOGnbmRz/Z9Fx1sY22nksXhHSMm/bm9Tpaeo89Wc07kmg8CG95jjehc52lk9E44AFXYsN5ZxsHjrMVZIwtqkY2udRbjHMo58jiQjUCluUJM+Si2tZ/HWikohmki1HJopY19EMVKLeSU2LLQ95IfhHjViq1CYSroKp2sVxrnLYMRZKhQiTWSSJB64chsqhC6s6OqTQObmo1mJlK4U1hVITgNl4l5HCTBx1rKMICDUiOZwqIKwcCqYSOz3F+BgneWqUwM1RFSYIs797SxZ9Hw0kw7Pt/uwt7VBmMsDsWeC5tK7FXjFWI7qCvbtmGqwebAXgIgm7JcC7kqbmHnngJLCrwu+2EWomvFhAhhR8dIRmxFX++O2Wn255nomuOTNqhaaEF+clsqBV3NXPtATvTOuknvVJV1S2a9jf5ey+HbDIK6pRhxJqN0QalCJaOVaTCxJgZhmuesMHagYshFk4timEasKVB3YrhRi8NZGLxh8IogEwNxsjy8rTMpS6hC/zzdj6AWgV2ODf1/8Ph9FNtW+DoMei6uZ2OLviicu93zjPY8Q+0kkR/NJ8ZxBB7M3h872P44F+renXa7xk5s+fFY++NMfIKHZvcsF+pztsvlwpBHvr2+PqBq9b2xfv8c+vT5ehGgPLp6kGKx1Y0QtMx5SmEYhGU8DkOL/1rQzZHl+UkkEvM8Y60Va8EYpNu1Dms0KWbWZeXzp8q2rIzjyGAHPv/2m8DI23ac01IkUaa0L+dBRGtdqLEW5x2p5GNGbbPktfYwhrBt7JvGO0s55fFSq+hRtRLmYye85UhIQaKvYrs/9IgzmnkcKCUdhapLafp1OhPVOrrRf7f/PTb7xXVdj8/T5/21FiSFpB5kqS0EytevxOv12JCt2yaw2r5ya2xkpzXTMPD8fEW9e8Y630DlCk0HHXPivi7YX389jkMpxe12Q8EBYet+/5a/DdrQjSEtJgeVnYXBOibvuTbHrfNGRc7P324g5Ro3zgMC8aaUKDUL07UtQsYY+VxPV+ZxpJZMChslR4yuuDb7t8aijaKz1K31KOtIxrKNnt2JWUPMmWg1ucocD2upKNLxfRKpVkEITTprSbU5kRzvMUh3ayEgHslaKZzS1JioSebBz37i/fXKu2linK7sZeN1v7FukbDfIQQ0hUBk942YNTnUYMkGLJmRzKQKq1Pss6c4wzhMvIwTt/tNeBmDR1VP2jdC3HiNO6kGdgIrgfXtlZoig3Ncw4VrvVAoxJJYSSyqEFMm5Z0QV4bnZ7QbxT3Ke5xSqCqchi1nUsmYKtF62kskQy6VlDXWC3LUN7N6cJhxwEwDadmF/EXF1oLWCm1FI0+RYhpTYAsbt/udwRrhh6hGdtJKSJCmIz7dP1z8hzXiiS7FqykekM1hJVNqpKhCqpJ7jC4oo1DGU7GUYkmlrcO6W5NkXu+vvL7t3NedgmfdNa+3yOfXhWczEWMmhTtx/0aMI6VsUAO5KEpKZCXdbEoCG9/umddb4utX2FZHSQMaSy1axsFaY9R/Xk5/F8W21sqyLN/NM/tC2G35OpwGjy7iTDrqi6RkWAoxZVmW78zllVLfFdu+ePZYuvNCe+6s4SGgz6cv8Pn4+6J8hqW7JKfPkjtcl1sHG0JgXVdSyYQQ2fftu9/pxfYww29d79PT08F0deZhuiFd6creaP3aCAzX55m9eHSyQj+uXjBlEX9lXRe5HiVSq8TU3W6vvL19e/glV81y347rME0TzugDJu4FKMbIrb3+5enKOI08PT1R9cOcxHpHLUKYUjw2Mp3RK+Qlsa10RnJme1FPKZJjn4sbtH4ETxxQs/s+OrBvfjoBaxzHQ0L16dOn7673Gbretu3YgOl2fZdlIWWxmXTDINchCOM7xsT1emUcR5blTopRFiEKYVuxRh8zWO8dfhTN44cPH3hBsawrt9uNT58+kdp10lofqU69MJ6JX+dN54Nd3hjM1mGokvvZNhgxin65Jzh571ljhOP+rgjBtHWB2qMRhEQbTakBEBcjayUH1yDJKKN3OKMJWYg597c31stMeN6pRRJvHKIZjSlhUqJqzWYC/+enX1i9I2hJfQkpNZmPwTpPqYpYxNVKN9MOQRActRa2dl0UFT8MFAWByv1tI1QJOrDK4LUmrTvEhM6FP768wzzPWKNwyFx6d4rgNSlbjFUYo/CDYfjwjHWO68t75pd3FKXJRaPGETXPKB9w6RlTYb4+8fz+PePbGyEGnPegC8ty53Z75fOX39BFrCmdV7xtN5bbQogGYxVD9hhvsM4y+omcoziDpSZFUTO1bOR9o6yysHutGIzm2TuMVzg0tioGr0WGlTM17WBdkyAJmW9b76z3N9b7ncFaUknN/jKTY4C0o5NA2KRAzY4YNt7evjF5w0jBa7D4JseShKIWhARKivePTUrnipSmqU81U3VBmUolorTDest0uZDCB3L81kZcFTWM7PEu7lqx8OdPhX//FPjlt523JfHb1xX1y05w8NM+YesLg1fMA0xjxduE0uJRX1VpZieaVBX3e+Xb18znr4nfvlRKHDBG/KoVAwpht4vP3n/8+F0U217wfNNljeN4wLyvr6/AQ2c4tAWt77b7gtp33tu2PbrQtvPuv9uLzaFHLeUICzii1U4wcu9Gz7/fIeQzU/n8c54z9+PoaTHCmn0wpXPOrNvK2+2G1obQkmJ6V37eYEi39r3s6ayp/H7+KC5OpRaGacI719jI5phpK9WL4WP+Xat8+UPYW8j5wu3+xt6MHrTRUkRLIVd9IjpAyhGlNVorsSAsvUPPotWtzZQCMXa4XObjXA3TSNgCYQ3c3Nuhq+2WlOMg3SlVvFL3fTt24Tm1cIPcUk+KMGOrKpS+GWvaW+lIH+EKHQZSgNG6EXsGFEpMRDZxgRI0oIjN5TAehVuC5MU/W2nLHnZAit/16Yo9ZtEONc1Mo3TbRivSOFJrxmrdCunKFhLGOcw4cr0+MYwTwzCitRGItkqKzdb8hm3rIoSJ7FrnX3F+YN321rlEhiNovnWntYgBSZLM1cdsvpJUPSB6lLDgq2qxcbWSU8LbttHzYvqfimTaphSpdWgkMTnmfr/IzL0cCJYfTkEb7buWmsXkK4VfMdxUJlgjebm6Nq5nRpUo5hFA0dIJifd3oWa5dwsJjGiAvZGRRkaxZoi1NCmQatC03JdGQXYanGv5uBolHFyyklxd3fYg1WiM9xI/OI2M80zVhj3KsaSSCTGKbMU4/DgyzZMU/RRlXFIEFUglMq6e230nlUTKUch+44ClQo7UuKOMhaqoOaFqwikNVoN2WI1IgZTYNZpa8QoGoxmdYqBiSkGXgumbKwqmZMqeJAlJKQxgS8Hmgs25MaAyJSdqjJACOicsmcHA7C3XaeAyDVhvyPURGJ+rhIv06UYpqTUxci/K2MG1+0Iki6rByXFPJFLb1AmjWumK8YZhmknxD6yv30ghsqZdTFV0IauFJa785fNnfv2c+HJTGDfx7W1HfynYK/zpn15E5paScDMMKJWBKGsHYgdaEixr4dOnxOsN7nfLejfM00cUE2F3pGipWVPN/x+I/Dsqtt3aUGuJG+ud2tvb22Eg0PV/nWzzo/UhwP1+/07S0zvQM7Tci1gnFMGDeHQunP11zkXbOokC653quTif4ci+oDvnmOf56KzP7GQQu8W3tzf8MBxM17O06TyH7l3/4ZalBPr5m7CELlVphbtLbM7FtpuY13o/zrVS9SispRRi2lnX1iEohffNzat58Dr/6PxSikf0oB88pjZCDQJf1lqEydmIVmPz53XeM4wDm9u5fX09Qh32fed+v8tifb0eHaXAlumIlMspNaJC981ts3/1mGOnIPNTM5oHcUypVqSbPAyFd47BiwQq7EG0mK3ACGQ7M88zlcq6bawtDSal3MzjA96PjOPIh58+EmNiaNm1g3USM+e9yFBSJIaNnCKUwv2+gNbYwXP1A8MoRVYpkb90FGRdFtZ1awYkMAwj1nlxjyoFpaS7Q0lHGGPEj0MbfbTZbmlM/izBAY8NXCHULEHw7TuTc27yE5n9pxSFqd2kYChLTeWY9VZKs8zU37H5nX24W4UQgKtsJFXrfIwlpsxWEjcyX53jW1GECkoZ8dFFJnxdIla1mCUI16GHkidZfF3zszaGDUEgUUqC4YXO0kg58jqiCRVYWJlHhJ9uJLgKorNtZMHcTDi6d7jqcGkqh3Vo3MUfW2bfspm1Rv67NM2sakXeakVNkRwCJSdGb7FPF3RK6JKxJWGzBF3UsKNUYXAD3lq81tSGZCnrMNqia8EBg4LZKkzOaAq1JHSuuLYxVbWIP3Y7D9Y6JqWYtGLUMi83qh7SPFMrloJXldFoLoPlOg5cphHnnZjatJ9cv5cF5pwwRhjJFRkJ9U1+ShH0w3Qm5SzfYZr8SymZzzqNVxPUn0n7t7Z5i8R8BxUpNhFZ+bZ848s98rpYlH3hvu74JbMHwzxf+fp1IefY1u4CSmhttR9/rsRUebsVfv3ryroN7GFk20aerx8p2RFCJe6anDTFqCOd8T96/G6KrT51jOu6HsWsf2G7jGOe5wNaTCnx/v37oxN6fX095lkdcuuayb5Yd9OCUorMJ9tr55zx3h9d7LIsRzbs5XJhnmdhgAKlPjJhz+SpDk8Ow8A4jg/CUiu6vXvvN2B/3jzP7CHKF/g0Rzzn29pWLPvzO+u3Myr7e1hrKbElD6UGPRrp4KxxB3QaguhyX19vbNtKSnJuZeam8YNjnCzjaI+iqTWU1HIetUSHfcfAPs0/tTbfFbU+Zy7t/Mq5a5sgrWW3rmqD6b4nnj02QKKVy5m2C+4mG8LaVG1mcjYT6df2xxn7dwzz0znvG5J+/539d19eXsTsoRT8sJK/vQrkXwohiWRpnmfmy7WNJqbDxjOFyDyLf/XTZUZRWG83tnVhvd9YbndCTmANQeg2QiJr9/2yCLS/3O+oymFv+vT0xMvLC1PruPv92++PnDNiQiHXY/ADXhlUKZBl4TW6uUTlSA4bNUYxukeur1EPqev5mvx4H3s/fMel6Nc7Jymw9/td/JfXjdvtjrYPBIis0FbMLrRTxAKhKEIR2LZRQn/4UaCEtNJNFOxguHiJ06PKZ9pCgCr3zGQHHMI8NgV0qZAKKldcBbbIdnsTWddlENhdJovonInLTgor23Jne7vhd8/XPfP62zeKEt+j6XLh+vyCr4p0u7PEb6zfXvny66/Hecu1EMLGvq/s28qyvpJDYNBw8SOXy5UhJ0yMqBSZLyOZwhp2agg4o3Feo60lVNl0AKjaWdhFjkY44wAAIABJREFUoGRgVojFIoCCEHdK36RScTRykjFYA3UYUddnhgz7nsmTFOaaC3VbKfc3VNxxJWFKRJVATY5kFNFoTAqoqCkK9iAz6Zimk/Y7EsJ2oF19Lc+kA4GpFMZxkOCH+8rT85WCbKqsv+Dn/wnnPOvbH3j98pHPr/8HblxwQ+H9n678l/9F87b9wl9/e+W3z5/5+PNH/vDTzH/71ysf338gvSLNA7Qwkop2Fj853t7ubGvmdk/8+inw518SIQzU6onxiX1/phbZxG+7IiaNd+Ko9p89fhfFFvWQafTFou+GuuF872J759oL4s8//3x0jOciDRxC/zOJqXfHfRFd1/VYnPrrnmegPVC9v8ZZKtIlP2di1vm9zv/dC2Xv2nvBVOqsx9V4b9nTAz7upg799cZx5Pn5GYBaqrCAj26hRci1Q7TWinvPHnlLb2yLGPiXHs11v7FvO6XKgjs63/SYjnme8IMlhE3mKA0CkgzVTI6VlAQq69rjw5hEtbiyIiHY8gVLhG2XAPIQKFUKpLGyCUkhsNwWasqksJPCTtEaTSW2e0BrRc/SldxNg6IeWcDddSobLYt8MzgoJ5Sj5/b283keX/T5bUc+tm07OADTNPH8/HzkDBcq5duX1hVpSsr89NNPvLy8Y5zmds9Kwdm2DUptBL8NoxWqioQhp4K1UshrC4e3TYJV2zU0jc3tYsQNAzVnbsuddduOGMjr9co4iFFBL/B9UynIjGxArtPMPE5YpTFUJuMZJ7HozDnxbbnx//z539nf3gSyrCfkxja5C627y5LS1D9nl5p1clVHhPZtY1mWx3y5pUeN4ywuRlqxhshgnbj2oPh5EMOItShyFPZ2z+mpWtyilNagFRMGlR+GAurEZC0FSrEYwCiFzaKXbcA4OhVqqpii8MrwHCvudaFG2GNGhcD+22/s9xtl33j77RP312/cX7/x6de/ioHKOGGHEeU8T9dnxp/+wDw9UbB8WyPhdmfLr+y2d8n1OEZTEnPNTIje3Fojxh9Go7cVqhzpbAZC2vExs993/GXmYjzWT6yxcLm+R7sBjD2CHEyt2FJwJExNkDNZR369LYeGW2uFtxJ2oozFuZGZyvxkeNaedU8Hb5taydud/dtIWm8QFq6DZ3QWaxUx7kIrNuLOZWph2xe27cI07aQCxtjDxCTGwL63IPfax2dyb+37TioXtHVYPzD4mdu339hzxKjK6C2lXtEWxuvA19tXtrCTqLhZ8c//+l/Z9hmlXhms40///E/8638d+Zc/OryBGDfJni4ixy0oStXEZLgtcLtV3m7w9ub59HkjZ4c1E969p/LcYPKdba/EWEi+nkhgf//x+yi2p0eHeXuh6sSPDp2u63qQiJZlOfJHu2XfGbY4F8YH3PkIIT+Cu1tHeH7fM2zZyUMHPP0DCeVHuc+5wHYY+2xw0Qts77i2bUMbKyzCwZNDPPSeP3bP/Xg7EuCdO0wtHpCdOy3SoZlXVGpdjs1HPxe9G5dzIPCghA6cWdYNwNMKXZRY5dmm7dQP/+bzee+ZsFprrHcY7bFGzAlSiGJGbjTGJHLXRof4HYO03wtyTQu1qoNAJePH+re6WS3wIKduVelHwTi/dj+n3ZlMa32kNPWfMzO5/84Z2dDNkq7WwjzPXJ+eGMeJ+/1OKfnYtFlt2ELLzk2JkqKYl9SKNZrrPEn2sHdUa2WWWOuxEe2bToEyK3sIhEak6zwFkNCBTlbqG7Xz5y0tYN0ag1WKaRjbfFmi7KrVDJ9/w66LaCWNOWwzUfL6/XP31xOiWga6BSWAauMWcc9a1/WYz/aNhLEe4yxVK8ougfC1iv/vmBSXIgtUypVYaOQafdpoCcRonD18sxUcUqNKoTQPZaOEHU/JeC1mJapWqsooI53JaBzPfpTs1gI+RvK24WNG5UrJsMaC2gLlvlGXjRwScdmpxnJ5ekL7CZ8LYxGhwFAg5IpK+bC8pErsnrMNNbGueWi3uXrNqBjIe6DuO7WNaEwK2JAYUuZZe57diHcjtxLJ9w1lMtp6rJMZrq4FXTKmiL1iyZHSzChMWz+cNYy+6b6NQVuHqxXtKyaBr5KF3C05i1GsKRB1JZvCNDgGbzFGEZN4Jpuc0EkkYzEGITHmhDgeP2a4/d6o7bss93g+mqpcKuN0QWtLClkc8uKG0VCmCykUahkw7gPD8CfW+Crs/WXFjxf+8LOC/IzH8fHje/7wEa5jI3WViDGFaZYMW208KRuWtXC7Ve6LZl0NMRk5RgaUnrH+GeOuYvKiJbs6FpFO6foPIv35sTACx/y275A7nNY7lM4OnRqjs3e0PxphnAvttm3HIt6LbWf83m63owj3rrjLjZRSvLy8iGHAD6SoXlD7Qt7hy34cfRNwJnP1TjTnzH25c7k+YYyWmWHrsM/QZ4eJn56e6Ixa5xxGSYFY1/Xo7F0LJR/HkV//+ssBKcbw0JD20IF5niVb1TliEmZpn6FUkrhLZbFMk/CBPvtrVnzO4dtn6xGFffPTNcGDnY+wdinEMqcEofdnOKzaFA9rzn5OO5mjO8Eo9f0m57HBqpTygIf7nzHldtAPFOH71//bTrd3wOdC1e8lyX/taExbhEpmGEdJXRpG7sv9IVfbdvADW9Oyrosi7Ts1F6w1XOYJP4zM1ytu8ESleFsXSjvWPpo4Cq42pJS53yRFpxdcaCEG1smC29jU/V7qxZHagwRkVDE1uLvUzJbDwY8oSvY0znuc82Ag7qHps+Xe3pJoYEMUJmep7Uq1jVgImXXfDicyVOPcFI7FvUsri7B00KUwR+n+IrWlyEjguNYGox1KN8QKjbcjexZegKAbWpi2NVO1bdadoGompZ3RNQepKjpX6wyjdcx+4MmNmApOKXyu7HtkroqiHThF8SNJWwKaGU3NhfuysafMk5+YlGZWhrGK89ZUFUVbBiumIqkG+exKMVnHPA1M88Dz9YpRhX1fuS83bveF8PpG2jdIEV/EmU3FwFjg/TDyfpzxw4zLK//2y2+gDNYNME5oq0XDXDMlbtS4kXMklsR4uZDb92N0lnGYj2xptMObijYVZSvaapQStEppJaSqeSaqTFKJcdBiRmO0uEgVkWGpJPncMfWAkHJ0frpNBfp9Gw+vAJnV7vvG6+uraFqr6NAXtfDty1dy2nFO7BRLLBjlGP0Tl+d/Jd3eWPbA5y93Pn6Y+PBx5mkyvIyeabRcrguTe6WGFaMS06z58HHk3Yd3GDsRoiGFxNtNsa6ObR+I2RNLQOkLylzw0wt2vFJSQMdASOLBHUtBl3+AzrbrVo+/nxa/vqid50C94Cql+PLly3dwXwjhyHVdluXY9fuWZNJlNL0Y9MLz/Px8dIu9QPbC0TvADqOeF+zDFo5HV36GgHtx65uFTszqC2eP41rXVeKlxlFIQ6f3rFXkC/M88/T0RIxRiqX3DH44iiXA6+srt9udbZWNyJcvX46Fsc+7+0z5fD5KKa2oittUSjK32/eVnJNI3HRPMVKAxjiDbx2V0pWYdkpNxLSTYhA2qhaD+stleshvijjtWGMPSZLWlt0GFh4EOUETxNbPmUd4AFRC3CE0mVCbM/furj96MbH2EdOoENtF+uwsJXJKJN3yeE/s5P77IhdUB+MZBFEYhgGzrrIIqb7Je5iSSMIJNCstuWc4IQbqYb6QszDDi04ko3i93bnfboQ9HBuicRyZp4nr5YpW5pBsffv2jW1dCeFGCInL5cK27cQsTOFl21vGsT9teBIlFm4nUl4uiU9fvxw5upmKRYhxznvIEL3HGns4lS37RkyF+7YLw7k+OBimMa2749fT8wvGOHKupAohJSmE1uGHET9NjNZzMZb/7ac/EUslFsmQDkkC5EsV2C9VsZAsqVJTYFnu1NLJWYoYevGV0UtFGOrWG7xt5MIqnsajtcx25DpMXIcJlSvr7cbnv/7K69dvGCpWKQZjuVTDLYDdEjpktn2j5sRgLf/84R3/+vPPvH/3wmwMr8udi1FMl5lhmvHDIMzeksgpUktmGh3zNPL+5Uqtha8pEradt19/EUvOsEuR3DcGK3F87y9P/PHdO54vTxg7wFZYB0lpMs7LufQOoxHOdnLoMknhVZWgJQ6SKlaVpiqh+RexJySBj4ohKnJSiP9TBS2/Y1ULfvfi3VwVB2ktlQwpUVEYU0k1y/MVzeJTNqdCDusZ38IJ11YdI7FUhOMw2gkdNG9vb4RbYJgsH16e+cO//JESCqp4lLrw7uN77F806RfNr798ZvKa6+R4ujrMTzDajLUbmjuFjX/+4wvXy8xPP31kHp8Yp3fE6Hh7jYR9IqaBEC33tVD1C8peUH5ieLriL44cCjZZtuVNPmPNPDLQ/v7jd1FsFY/Z1MN+7vs/4WE00aHlPnPtBhHzPHO73Q4S0LZt38GA1+uV9+/fHzDusixiEG/toYfsx9CLbT+GWiu3203iw8rDeejcRfXiClIEnp6ejs58XdfGrn1ogvuMUWbFO+ou6T9Wfe9gJDt4ju5dKXV09iXlIx5uXVdhapd6hKh3TaZvspazJMk5d9oERKyzDeoW9qmxmmEQiUo3TJcNRSXFv6+TO3eK/bzt+44IElpnGFsIeEU6LV2opqAVDIM7YP3e6X7/kNcXfajMCYdxOJ7TGbT9+kiIgv1uI/VIDfreb/tsOdmDD6p5xDIecL6W67QsC1tDE+Z55nqduT5dpEu931jX0MIFMh7p3vpexVqHNYZx8Dxdr7w8v0i2rrMsKTIOA/u2yVw3P4IpdLt+HXl5fn5GKcXnlFiW5UiE6p+pIzXjOHK9XBgH6WINoEqGZud5dCCNpSyElUrKBZPErL9m6VS6JaVzTrS2SHfbrjogzGAJVUgyl3aO69MTpunLi9KkUjB+wLpBrBRZ8UNlvjjeO8+yrtyXhfuXb3x9fSPEJLpaaySowMj5mOaZ9cs3tm0hBPlexLDhnOXD+3e8/Jd/ke+mFQKV9aKLpELVBm8cozPMxjA2noB1ljxO4FemYWDynmkYuA2eeL+x39/YbgMpBjAef5n4+PEDP318z+V6xVqHulVxQDOWl3fPTNPENI5o4L688fb2FWqGEsm7MIx1zThVmze3ASw1FtYYqMox24Fhno6krxwDJWc+vn9PacQxZcQ0X9Uixb2PgLQQ0AoKlYW5rwukPUIq6KrxeFSx4uyWFaMeiLWQkUABUYrJt7miiVRiLRgBTMTAJEcpzx2xVDIblq/gI8rRWosqtX0v6nfEPq01P338iOdCWiu/ff7E/e1OSYbtYoEd1eRTcduZhgslP1PSO0gf0DVBLlQiVgUug0arlcpCKoHr5YK2A+gBxURVIyV7lL4y+ImUDZXCFpYWhmCIRdKeYt0pOoLNlBqoulB0Jat/gCCCg6laHsEBfXE5zznPc9xD1pHSd91aDxTvr3uQdk6SnLMEpxe+88yuk0vOndIRRK+aREB9D1f2DvnsANUdovpr9a73KLTdkUqBiklMKGr/Yjw6EHh0zff7HXiEMMS2GJ89dCVfVD7r+3cv+GGQuZDzB9u5P/qMtBRJkTmUurVAbTNJDMZqXDP1gEJO5bAGPF9HrfUhSaLWQ/tqjW0zW4VRqoHCbW5WClWpY56nmg6vAbeP1z/9rZ7es5/7PlN/SKH6pqa9m1LfFdtejM7333n2fSwW8N05oxXc3rHVUhkvo0QJDo97sS8ilT7Lfhx3l7NN08T1+iRozDRStGJbRP/dZ/H9foCOQOTv2OrzPHMfhuN41nU9DrX/Xu9Ojzm7EqmIM05mchpqld81nSl+6sLl/DQ9s5EN2XH/VvFO7iFjuZHBtn1n32XD4bxnHEVmt+0Bh2bZA9ru2GHE+ZEaE2PKogmvGZUCZVuJ9zf212+EnMSecRgkFs0YnNM4Cjrt5OXOcnvl69evxH1jnifeTZ6nQSwijTVopzC2ER4rVCP3vdNKHJJS+o7Na4HLMHC9XLhMI6okpnE4DGYqQoyxTgwXrBd/b2Vklq+MOC5Zb/CDY75MGK2oKrNtN+IeCSFxrxVjKjFs1JoxzmCQHNVsFdu6ULPCVEu1hpAzcdsoBSGXXUa0MhTVLC1rg5CLaJ2tku7ctLA+pXWLsauUmqBqDJrBeIoyRFWwJAmjqIL7KlVEroNIglKpqFKwzXJVSEMip5PvjfAbFI+lonsd93uzu0UpIWO0dUwQNmssKkFYA19+/cLr8o11g6pWhmsGHCl49mXiDx/+xL5Z4j6R9pm034k1gtow7ALjs5LTCipRTMY6I9GfeUIzU/SIMQPGzG1U1VOLVigQixTaUFZUzVQdyTVQyFRVmsb5P378Lopt5WESsW3bMTM6YEcQqQJyEcdpOmBA1xi+/TnzPH8H5R6OR03ScaT+nBbTAw5u/6a1biHq+thtdUMK0+aUvYD2xfrMau1FvENtvQvp79VnxAcL1lmerOzUxfbrsbAehbR1sx02P+DrUo+uzrUO/TLNjO19L/N0LJii23x0cn3G7dpzjdFtJiuMY4VpQegcPrK95HSSi3AbWsShdSIPSJlYKynEw1VoGh5xebHNQ8+d5WFFWYXt2m0HZRf96EKl76ho+yCh6VOn3s9/CPtRbFPKaP1wjqr1QV6T4v7Ilz17O58dxVAPC03TjqfvwlWD6Pt91o1Zemk1+gcpUzvusY0GusTMjp5YCiwL8+VCTOkI2+4bvz7rT10LW6tc56voVnvB7Rsf5/zx3egFu6MwzmgmL6EVYu2ZqUbz5faVJWySSKQypm1Ec03yO0ixlcIspJecM7ZB5X0s8vr6Jk5OKTUZlCfkTNgjk9Lctl0i6cad61Nl2XfGUQw61u3Gtt/Zw0JMG1UFnBOP6afnKy/v3zFOE8bZ5hRXqHVn39748vkXYtgo5RnqH3h5lu+BNQaqQMh951ZzpSTRgOd9Za87FEFjwraQwo61hmkamK8z+7airaWoSqYSW/h8VpWtiMGCKQPOitFBVqLhDCXiSYSasFVTtOS0bmlnX1duJeOsIqdASAE9igylZkltetvv7DlQkmYuhc/3GyEVUpKM3ov2oCXkrWqD0lJEcw6kuGCVaHxdcSgz4IxcO6sVKsgoxmvH0+WFnBTp/6PuXXol27Y7r998rrUiYj8y89xzfB+2XDIuoAEICdGiAUKiS6+6NJDqK1BtWvUVqB6dkqBTghYCIdHnC5RcAsp22b73nJO5HxGxHvNJY8y5IvLadQ0YS9dxlTqZeXfGjh2x1hxj/Mf/EWAlkmrFNs/hrAq5JHJVxFxZovg6a6sFuaF5eddCVi2GsUirKQ2tNGXl7t5vF3HzRtcoJS5S67qyXGfydeX1l+/8q//rT1niZ6pb+YtfZr5/8Rg3keLIdn3g3/7Df591zqzzwPVseX8pJL8wugtPPjFaTU1XtnzBOc0cr+RcQI1YN2L1E9UcqXFiVa7FAkaULlTOpFIgr2zpwpYkY7iwEdkQJ+xMqX8Him3JmdfXV0opzPO870+1EX/Y2qjZucK8bjwNYzO8uMihWSupFNYgNmhz22EppTgcDnJQ5MyvfvUrXl9fpQttxU6irjZ++f33XC6XvQD1iLS3tzfe3t72aRTYDz/RkupWnEeGoRdbTYyBt7c3LpcLnz592vNke+qONAgi1cil8Ivf/V20MczXq/yaZ6iVpe0QZddYWK5i6DH6gWkc+fj8gdPptL+2rr/0TeJklaT4lFow2nA6HkGLhrMzRIfB470jxsDleibGbe8uJVhb9nbjODQzjMQ1rgIYtptmcB41sSfPhLc33q/y+aAVWwiNGCM7nE7Q0VpR0VjrWrOTvup878lc1hh+PaBZirZAmaVWDBLRZqujVnHrSSVjED9cayzOiwFEv+nbM8k0r8yu4Sy1WU+2Bin0nbvWOO94fvpAyEU0qVXz5fMruSim6UBOIuU6HA7SoSMh4c5YvLVMg6QsOS+f/+e3d+qb+Cr/6uULD0/PhC2Rohw+wURC6ISppmUtYkgwjiPjNJFyZtk2Lu/vN8TGOKiKlArLuqG1wWpxR8I6UruOO9MUVzk9fQI/kcisa8A6sVSczYzdEm6cGA4HxtMBjAQCxJJBG7acmUPky2XGDBfCtlESTNMj4/NPUFuAEHn+5ifY+YqxlnE68uHTR3788oL3nqdn+X1KiVwrx4cTw/Eo8LUSJOjtcubL+xu1Vo7HIzGVNoFZCrClwrIlLmvk5W3m/bKiVcUKK6p93pBSYV2DJMlsgRgTqkiiS4qRsK6YYcR4jx0GQs1sORE6sqMNawisb6/82S9/iRsmPsTM6fFJDDq2hbpCrLCkzPdfXmS3jGKdL1wvYo0YlitGF7HcqIU5rfinR5RyZKvYflnI20YqhWleOC8by7yRcmEYRn74P/5YEBfnGE9HmaCbM1JKG0YVrNF463k4PvFweMQOA4dhBDvglGWwIx+fPrLMkTUkOF9Yrheqc2Ca13pbtyzryvWyEh2oqqijsKlzztQiAjCjSzPzl3QnKoKIVRmCzuczMWxAxUwjx8OBGAKXnPnx+8/80R/9C+pSuXye+fGHXzI+CGx8Wc68LSt2mChlJKwnfvazfxODJRbPn//yypcvf8Hjceb5FPm935l4fLRQPKEcOI4fCeuBkA9o+8DTw+8x2G9JcSTlzPz9O9cls4aKtaNccyWLZ3Js/uuqUmuSOMdmh6Hr12fTrz9+K4otgGAPYvO2bRvaGHIpuHEkhcS8ipuRsZ41tBxP6zieThyODzhnySVznWcqCucHVKn41tkbawmbGGaLobmkhRQglkKOYtXV8Y6YMjkLXKqQQ1pMLVoAsRY/V5TDOrGaUzFJ0HapHA4jpsjOMcSINq4ZYsAWIs8fnlFasy4bMUfeX9/wXjSctu1yjWqqxVLw1nE6HXl+ehYYtE2Tz0+PPD4+QW06zkYIU7US5pWsNdsqxgvWWr795ltcs8oL6yZ2cq2xGcxISDI5dW1szQ1uK4q4CTksxYTKlePDxLZKNJtv09PlcuHl7ZV53VhDZJwMfjpQrSE1YoWbJiiKkhOxFrS1ZCWFcQ0B2yL/+vS72ytqScyppQUzGJm3pbAIEzbnKszYUgTuyhWlDUo7tHagDKWkBqWptvuquwwBpfEtWLsq1dx1FCEmxumA80aMFCrCiNVGTO2txVqPwkCR2LwPzx/FValUtBJyi1bCpi6IEUFRNDZjbmxV0GZgC5VaLc6OUBXrlugexqPyDIMXEb6XpkI3KHOcprazbNIx67B+bI2rJlXNWoCiUEVRYkaFFohexUwgGY87WAaj0V4Ow1IrAxa3CGrxel3xp5VYxBjeDY4cC0UZqnWo4UBUjo1KIpOy5ctcQDkwnkvUFHMApdgSvL7N1GrIGd7eJQxDdV1tL+ZIBJ7zHj+eGK1Ats55rL9S9cqWDVUf2XLEJsuWHXM0jGbAGU2mkotI60KMYmuZC69vV768vMg1V5oTWc5CjPrxhSVX3q4z59cv/Pjljct14TKvaCVM55Thy4/vnI6vWDcxnR7R1pJqJYRErFeuW8RoSw/3C0tgvUbWJbHNEa0iEihYyCrhW0b09v5OXsWNKpB4v8wMfiDkSkyFJc6EnCT+sxZqFZ+sfYWGpRQ5M9e0YoolXgMX6zgdTjyfHvDjiPGOrWSucWEtG8UUxqNny1lQjVxRNeNQWIRYVWIlR0i6Qi446yErFIbRHRj9CacHVBH5kDMi49mWlXWeUZqmnhigFincGebrwr/4o3/OZCdGPfDxuxPGa6qeKPoJPYCyHpSHeqRSiTmylUhUis/fL4RPlvH0zPTpF/wwf8GoEWs/YtUn/PETg33G+o8chk9sqyaGTChXiu5wfCaXADVJ0EbR1FhQWRr7GDIoR0iVgmV6eP6NJe5vVGyVUv8SOAMZSLXW/0Ap9RH474DfB/4l8A9qrS+/8XnaL60ltDs2OExpjR1HUilsIbJsgXE8ELN4dlrvmY5HDscTRivWbWVOM1opsVXMhcEP4sYyDGwhkN/6oQI0dnHu+9v+97WK8XlMjSyTUSjRVlXQRqDbksE5zziNSGPfbBxDYDpMaG2BSggRrSM9n3TbRKCf2u9zSZzPZwYvgQFaqRubplEwnTUcxomPHz8wemFd55QaI9k1ZmbaGbUpiWmCt45tlSDxDvsNzpNN3t/32r6Xtrrt9G42gVJpKzW3HNpNfg4qeOsIbJSUUaPAlqlroWMQYlAFZQxFt6UOCuMHVIEtFHJs6Ua5tIi+uJO7+l793uVJeI+1mWiY/XsKcU00ijG1n03LJGStx1qHtq79vCJgN1phrEdXabKUCRIW3YpirnC9XtqEnMRO0Ri50VKUpq3KdlkpjTZW7OUwWOM4HU+ys0wRoxpMX29ZnnUnEglcbIyVIq4sMVV5HjtQqzjxSCaxaFqNzTgl4Qvdt9o6K1aZxpJMbteqGIco1WPpNLEqdAFdIEYxmC/N01bcmizayfM5JLGJnDFO7ADDtrEtK9M8C7ymxboxxSoaWOfRfiJUw4YlK40yI2uR16K15rKVNgkUlErMS8A7S7aWlM+EEBuxTZqbkBIgn/lUNXawODNIUpJSZBwxa7YIWXlSsaRiyQzE4vBqlKxTo0h1JYTKHAKXNcukvEZ+eBc+xB6bVgqT99iXN5YQeL+cmd9e+fLyxnVeWdYgzXmV9cuyRJY1EGKitj1nBkIuxBJZtox1A0YZOWPmyLZlwlYIMaNVwbRfyihqSpSwkeYFUhYdZ5XGT2tPqhBLZVm3PV1HN+9tOUt1I0RlQiOqlZjZ8kKsG9E6DJrH40n2rQrWHFjTRqyRogvKihfznpxVs+y0K5LfqhBv4KypJPwonwdVY82A1R6tXON/ODQy4YZtI2wr3jtUlYalJPHRpkBOmc/nVz48PDE+feDp01HMabQkCBk/ULUB5TB2AhSxRRxmbTivilM+UOw3DE9/j9fPFs2GVxWVnhhPv8swfcM0fYO1B0K8kuuVWMRMpxqoulJbtq1Jt27xAAAgAElEQVRYT2t01RgMuUBOCqUdKSsqBj8cfmO9/P9jsv1Paq0/3v35HwH/a631Hyul/lH783/1G59BgbHNhxZ2SDDnSkpNipILKYupN6oJ+I1iGA8cjkeRfjgn3r5JLoie0frh+ZnT6SQG5N6J605uO+KwyQ5NS7epGhJQSiFcRbu6rSvbvIhnbK2obHl++rizPA8HeZNrraJ1TV9Y5nUnY12vC8vSyStiyHF+v9D1w2Jht5BjxLeEmrCuhG0j3lnNeec4jJOwprVmW1ZyTCzXed+V5XgzETifLzwdT6QkjgB5yKzLjNY3wgtaXIJSTlDa7ryxUvtUQRVBP7WSUyGnjNGaHBOqgtUGcmmeurUR14QFGXNiXhdJddHCctZaY7xB5USJidC0zyVFKH85axZu3tP98es7c5lOi+zSskzxxlrG0TAejhhjAXm/m60QNKmEtfIcx4cH3t7eGkFKDuFcxcNVxyBwtLNt95RZt8C2xebJe5+m1Ml4XmB4LcYQRjcHoZqasF+TmylELomqEqUoQhTGrTVmjx0EiHEjxMw8zyzrjLNC/OmJRSCsd7rPb2taUGY3jMhoMpJmsmUpKPepWFYZ2dG3CSMVted4xpQJubBGyRN9a3C1cAblsLfjiBsPaDtw2RIxVYz1PH76CafnjwJDrhtv5wvrLN7XlMLgFNM04L0gRTEXKcx3HIhShdizhETISoLmrSXnwpfXd86XlWVNxFhFtGQGjJ9QZqJqie87HA9UfSavgTVVQtUCg2Mo2u+kNKp4Fse0EELk84tkwub5Ijab85UYZFuXkCZkGA4M4wHrRmoVfXfP31XKkkuzO0V2xduWCWsiblIIB2cwzjI4hTOQYyJtG8TurmWxbmAYDtKsp0IIiS1EHh5Pkge8G5oYnDU4q4nVQhDlQtw2TNIcpyPTOHI6nSRpKUZiqTg3kGheyKpwXc+7P0Dnm2zrRtwCJcnQ4cyAt0bUBG6gaEXJStCwWGQQUd0hsJDiLQwmFzlvAAY/ErcApeCthcOR42ni+CicnFw0pWhKNWBGMcnQor/GaFLIxJIo2uEOH/HHZ9zxZ4wPv89H/8z1+sLl8sbbm+Knh58w6G9BfwQcRWmKqhRmSs/jNQbrzM4LGYaBaTjg3UTSiRhL2/uahkf85sffBoz8nwP/cfv9fwv8b/w1xVYhxuUVhauKrUG4ndC0rqERP246Va1vLFTfJkKQQziGQI6Zqu80r84xeJG6LKuktYQY5RCNiS0HerJOZwFfLhfmeSaGgK4I1GEMfpz49ttvd9LJvYEGsJOhOut1biSRey1xj/cDydhdlpVgNLnpKQVm1GK/hsI6L4bz1klWrLG45r8cOomq6X1zFXlSzuK6opRqBgJKdsHqxq6VfN5KaqbgKQUpwv3n0d2NRzr+PVycW3jDOI0yRVbNNApZ58vrq4SFW8vgPKfD8VZEcxHSRZbDZL1eqYh2dTduuJts75nfwFckr/vQh91HupGl5Lpo6VAxNv1wam5DlVwUapVUIXHvGvDDILvlKOk5wyjsyBjF9Wpo33uNnQVedqZ4SoktBiGq1LpbKdYqh1Jt77vGgiptF9xY0zVTyChlOU5HIW04I5MmhXG0hLCxBce6zOLMEyPX5mk9jhPjKGS4eRYJWMkNzTBKCmVo5gJVbD5tY9Pmdm0qrXDWMR1GvBN4uuRIyUm8dFOi5kxOibBtvL4makmEGETC1a7l0+nI6eFIeH1nGB2Pjx/4+3/4h8SQeH8/c01XPn/+zNvLZ3KKaA1PpyO1PFDKgK8eZWxTc8vrEjOOdthvq+iaWzO7LBtv5zOX63mX/0DBGsVgDbUk4ioG+u7xCDmxXC+8v72CMqQqfsKjd0KAappR02DZEAKxZNYWCqC0kZWCNizbRk2ZgmbwI+NwkCZLaTFlwGAMOOsJsWKNQ6FJJbDkFq25BuK2kgxEr4hOYW3B6EpsK7Puay2hE5plCyL524Sk93u/+3uyekuRFDbiJqEGWkEpgW1diEEyn13TW1vn8eMgdqOIKsBQ2cLG5Xrl9e2Ny+W6S+loMYwxtXQcpaRZV7KW085ivYeqpdhWvZucYDTayTWcShEExxrcIEEkwzRijEOHJPth0x3bHFo5rJFgjlRq2zgqQZQkQaGhkorxcOIP/o2/z/Hf+bf49PHAp49HhumJUgqX6wt/9udvTMORn/1iwvojynhKgRALyxa5XBde3945n2fmZWVdAvOyCHpS4bqsKGfb2mmFxkY3zmGc/42F8W9abCvwPyulKvDf1Fr/CfBdrfUv2v//S+C7v+ofKqX+IfAPAQbvZOJRBqxG6bBPaqwrIaR92pCQabtrJzvLrcssuoFAZ0iu68p1nmXPU8Z9YjPGYJokpeSbhV+fqO7ZyUopnJf9sLaOoUl6ukTkXo/bDS46m7lLme41uX3i7Q8x+hdoVDUbPGHnSZeq2o+VShbLv1J30wDTXK66a1PNZYdVlZbgbdMYtykl5vkq2Z9GYHdTLSrrRnW/uVz1n6d9WH+Zud2gftmHm93C0Lme8yhetKbJZKxuwey5kEMQDea6kbaNHEW+JZOc3SVM95/FfQRi1xm36+j+mvpK1tUZ00XOzpuOu+m0Uc3Pd9fQ6l0fCOD90GwI6x47OLR0pu4Sdi/N6u+ZMQY/eJFi3Om8u15aHHQqNRfosYOmgVXKYMzUproOnWcqHm2QoAatCMESY2h2eF1O9rX/drebLI0PobVuK4b2mpumeg8UqIqsMqlNdtKkbOR8CwPpzUrOiXneoMlL4KY7l3tZQRH/66EZyixqxdkZDeTWwNQSZYepES1m/9wa3F5aBKAgLiJRQwW2sLVGEWkulo3r5cJ8vbKuQvzTSgnsnxOxJIySSMYYNrZlZr5esH6Q541RLB0Rn3C5cKQx0VpjG7PbUak5U2JgKxWdssQaaAuIDKp1s3Q9cr8+RKMtu8tqbhmotRGHQmfPx4rRmYfjhHyF3D99GFBVtaQr4YQ4Kw2atoYQN7ZaiUnWDrnmJgGq+/koxV601VuI0thZizEyPZfanJyC7LXv5W/aSP70IBc7zomkyVj5DHMp8jMpjTHiQha7LSPCpl+2jes8s6yrhNjXrrqonN+vvL298/L6iirgjWMaJqwZqVoLfJubw1xDcEyR1VEqws84PTzz09/5wIenkdPRU1UlFc9lrnx5Wfn2J8+kbJDQqUxJlS0k+RUTscVGdm6PnyYZAJwTom6pwrHTpv38I84Pkrb1Gx5/02L7H9Va/0wp9S3wvyil/vn9/1lrra0Q/6VHK8z/BODhdKh9H6OUHIgxSgB5Zm1Qct4L8L0zUz+Mgb2QaqWpWlOTyFuulwtKa8Z2g5c7c/X7yanWukstcnMZ0lqjrGWcJh4eHrDe48dpt/Tr8o8+jXVrvJ4g1CetLtTu3/deCtIZph0GMsagS/cplgNb9oQCyZaQGMZhn2RSFru8bguZkrDkanvu7uebcuJyvRBzFPP3bcGXgZ55rKism4QFdPKQ6COkWtXWpeYqzNwQhKmqaR7QjZntnWvxZc3LOPfUEGH0xS2QiYRlJW1BiGxGxP9dnlTlGtmn0RhvkhyU2u3/jP3aDKWDBx2uljjOrvW7I1spkSr0ZujejIP2tT1hqXex2xaYphbDVeT97FFrldv37Rpab5FDt12bvQAYrVC67l7QWsMwDbSjnlot2ppGEJKsWGstRiuc1ThrCMGxrgvdf1l2nHJd36dF9Txe1C2Np5tedLixN1L96wW5lIkqpm2XmfVgjtufV9gh8f2+liKZRZOr+n2GhNArhUyoWZpniuSU9s9D1kepURXKHnIhjUXeORbU27ppWVZCTFyvV67nM1sKeOdvu/+2FtE1t+fZCOtCWBaRe8X2Wqu8DtvOlZozWim8swzOcRwGnBKrzbDMpBDRqWBNbdZLMs32qEytZD9ZsphC9ElPK7nbugFIm9+l6GfJcYXIYRz288zoKjtDJcW5loYIar0XcCnKlmIducTdArU3AEoZ8QlXQu5cto1xWZmmE0r33b5u8Xi1rTjKfj/0IWAYRpGUTaPA1V5jbIWyNf6CwhjL4Fv2c61sIUqxjcJkPl8uXOcrIYZ2/yqWJXB+lySyz1++MFrPYD2jPzC4I9qJ33LOte1T5ZyqpUixbQW3KsMwHfHDAeMsqWzEOrCsivf3zKdPAzFpQmokqFSJuZILVGXEX3qoDMpgbOJDqwlaG4aDOIHVWrFFFBqH4wPDeMDYv8XJttb6Z+2/3yul/hnwHwK/Ukr9tNb6F0qpnwLf//XPI7+kCPXc1dSIOD25oyIXc24uUkNzN6otKADx3AWcH3DOy06wFLE9S4lhneTC6UktdwdP19TmNiX0v+ta2MeHB56en2XH59zuQNV3PL2Ydpenp6cniV9rett7/WaHFftzxxh5en7cWdMAW2zpQ01PGVJk2VYx405CN0drci1c5ithE4iopx+FZlR/9AMFgW5LLHx5+YyxQjrZYmQ8TKDloLOmB6CDtZoR2Q1L4dQoa76CazvZaye0WbNPxt17dltXPv/4Pa8/foNqu864NS3jslBj4jCOHKcWrJ0zsbEsQwu2X7ZIrmrf3QGcz+I9rK2YkKRcsfYGO3stN40GcYHJcrP0Rq2jDjlFSZRp15ExjmHQzZRk2D+f8/nC5XJlHAdhT46D6K2tbeQqiRTrMLvoYeVw7N9LJsoqph41NdvRhLWGJ/V4I6dpIO33GJUshBdr0UZ4AjEOuzPY+XxmWV72ZmGeZ67Xq1iAKtnzaWMFLruDJbukShoV2eH3CQya5rjcspJ7kc2tUIqhh7x+yYWWxnOZF97e3rheL5QK7v2NP/2TP0Vrzfv7O++Xd/HcTgFKRlXN5XIhhoARpwWcGzBO0mj6GkDOhFu2cy61RQFCyoXL9crb2xsA/ukJq8RasEQx4U9E4nKlhEBNEXKCHCkxiNY2Jyx19/HWStKBHk9HHk8nfvLhA6rA28sXXl9e5Pp0omioSpELws3YElSFMY4YMsuyAhGUQ9UgWvYsBEbpHQ3WD0I4KrIrLzmxruIqldJtLy7NW1uh+QFTKtoY/uRP/hXD4BkGxzjINMgwUJupRTSrJIQpCXi/zgvrFilV4acDGYVLMgHP60pB4YYRvYXd66AIuYbD0X+VhmWdQqtMShe2bUVri3cTz08/4fnpG4ZhEvVGFoVASJGX91c+f/5xb2aXZeH8fmVdAzEkUqp8+813zFvk7X3meHhishOgqerWAKCEMinn48b5/Mavvv8LfvWrP+fjhyc+fXzmFz//FqMeKOqRUI4kTsTiCFk3INTgpxMPWKoeOD19EnVDuTXfgh5VnPUtx1vuB+eMRFxOE8Pwt1RslVJHQNdaz+33/xnwXwP/I/BfAP+4/fd/+GufrNbmOXuDWiSFAmih2HAzMegGEs45uQEb7JVzpqSMbROhsS2btE17unkhS2KIwGilQaK1VtZmXFGrdJFKK6xxOGv376kaWaUbS/SC3G0UO2zYA+6995xOp91EYk/mcW63iFyWhQ8fPoqbidKEdeW6zKTaXnc3bmjxZMUVjJWbZr2KllFrzXQ6ipatSpFWoWXDqq4ZjWxxQ2WBS0OMKKd3R52iO2wuH0tHD0yHvvvUqIUtPR0O5CI6xWWZMU26VIok4HRDg3VeeH97ZxqGvRPflpkShBxjUKRtpRjRSO6Qm7nt4fv+uzcr96hEn8g6utCtO5+enrDW8+mbr92j7l2R5N+VHe3YiWY5470YJpRSdjvMlBLjNHF8eGL64QuHxpo/Ho9M08Q4TbJbs7ZpieV7/uLnP28hGAUNbGHh5eVF0AGreX5+RmtDLbCusWlbm00nGWOaTtfL+yBJKjdOwuvrK+u6EkLgfL60hiviXSOQZYHahB2d6O5r/b3sxbZPvCikGNKn1Vt4h2ks1xg3Ybq3nAdjjJDl7vbVYymkGPjlL/8co7TYll4u5ByxVrjbthnUx7gRquyyH58dtENeNXa+kFFvOciqiPexNLmVmgNhsVCVEHYohPXK+6uiloy3mhdbmZcrKaxoMq7Bg0HJFG6OR7wfbsS7XJkaKXEcJzlf3IDzI+PhgcloShVocQ5bQ2IypUGdKUbWeSOmAtpKUk2uaCQGsqTQ4PzmK4CVzwF4e39HKm8VYh4Gk4VGIZz3tiZJldeXF4ZhZDqMpMm390hKpNYVskzaRleUMuJ9nhLXeeX7z5+hfiEnUX2U3BClnERbXrOYU5TCmqwQSq3DTyPPHz8wjh5jKiGeeX17QWMZ/IGH5w9YN8iuc5XgjVQDX95e+f6HH/j88gXd11cxMW8bsWmrlZY9aEWJ7MvIPriiZEeuW23QWqIpVQUNMWe+/+Ezf/wnf8zhMPLp4we29O/ycDzyes6swRGi5+VtZYvvjfxkKVkm46IMbhR2s6Bj3aJWzgnnBmwj85YiTVBRmuu68d7O/H/d428y2X4H/LN2cFngn9Za/yel1P8O/PdKqf8S+GPgH/w/fcJ+U3cYAgTCDTWhk8B1zokphG8H2rK06KgG06laMNrtBId7S759v1dFRyfwaDusYySGuE/HusfUtb2o7szXJie5N7nor/ueMbsn3jSXoG4g0V/PvWFDiEHuoHbDCfFDIKamLpSLz1qcH4Qp2XaAqTmyGCU7pUpFG9lp99etFOLM1A8rrSUsuTR5h3Pt55OiDPe7TL3/F2h/NmAM1jvSKnZ8BTE1rxWssRzGA6nduLUUwrrJtOkcBkWOSSRD8ikT1g18hbb3uJf8dOi3v8d9MgP24nn/nva95TQd2sEpzML+GVJvEi+BgAX6zEkkNDFGckptb+7YQuByvXCdZ7YQGVLicLcSMC0l6uHhgePhgWk8cDwcdgamtZbD8Ug3ohDINO9M294IyM+oGNFYP4gas1Ziia3YWgbv2nXt933s0oI5gJ1EKO+Vaq484h5WUXjXdtdKtxCIts5oEi3Z76sb5G0sPeCbWvC+B1dYlmUmbALFVkoj8fimkZbXphrx5nq94I0lhUCthWHwOKta/KkU706AylU+BymkN3KcRX6mWjXGNH5Fm+ygUktiWwZyFvQgx8j1/Z24rSgq3mrIK3FbuZzfCeuCQeMGL/Z7qWVXF1l7xCI6e4PcPxZpJOZllSSplqurlUGj8AhxUXWoV94YgZJLlek6Nk9i9M68F6jYoJVAo1RDLZoc5T3XyL+PKZGLwjSdv1Ly/qUiJjEgK5OwxX2PrqgC8+7cFt2c6sz+nO/nKykmYohsIe22raXlZe8abNG7yL1mLWMIpFxEcqcEZQgxt5D6yLxtbJsgkykLLL/FhR9+/Mznl1de3t5wTa60U22UojZFwRYCVjuGLKub29eIR7PSWcIRlG5s4Pa/WrnMC9dlYYuZ33u5ECNc5kwqjpA0r+eFeWtkWyVEQdFWV1lfNOmjVs0Ap0jQvfP1LxVbpWiE3vAb69v/52Jba/0/gX/vr/j7z8B/+v/qyfbdZUWp0oqqBBIra6lFjCFA7axLgb96oUyt86gY3adLsx9gfcrd95+N+FCr6Kdoz5HaRHN/yHfDh3sPZNTN1H6HI1vX35mw7+/vDVoYdjvJTvDpbOUO+1XE6KJqjVcaGvW8Kk1pS3p0y5p0/o4YVql1oWv6VEMBuu7zZvwg5Jfdv9mKXZ3SSmQjw7CHEPTmQykxEJDXIHrQWuoO6edSJR6N2CRZAu0LCapyPJyYrwtZSzzetgVG67BI8HsOkZpkJ2ZQXJcFi8JquSTv99u92N6zk3uzcV9s76FRKbYjzg10c/ZOYNj3p5oGfzapVwhM07hbhwJY5wkxcr5e+NUPPzCvK3YYOOZb2pNp0O7j4yOPD88cDmK/6I3fr78QgkwuWg5LHUwjIXUSEO25NN4PODugEGMFYpPlGNOyT/0+4ZeS+ebTN60LNyzLur8fsnd2soe0RiAwcyP9SUP1dbylTInCkNbKMQx+/z5asQdr5JIZrp6525DWKi5j08g4DMRcKC1FitIiAP2w36OHaUQpuYet1mhDy1wulNo8xnbz+taLKn1z6anSGNZadrJkLYXtIIYemkJcF16//IhSGmcU1mour5qcIyFKk1hj5sE8UWKQ4uskTzqXytaarvXquTjP+f0ihMooJLHS96nN+rAgpDppUNrr7hK1XIktiF2386OqBtkrjVIWqxVVSP0oIpR1DxWpcFtD6IobhsZvUaiCrDWsFP4UMyFs1PaZUQZo93wpYJR87tRCzIXteiVssTVqQhArjS9Rc0Fb2T3XNqlXefux3nGYjqSSMAa2MHO5LmhlcKFQ8JSWppkbdH5Zznz//Q+8vEqxnQbx7baDR1uDbs1JyoHrsqAxDG5oqTqZWiHVKNNvtSiatA3IJVFqxnghMi3LSirvvJ0XUlIsayarga0VW60FaVK9ineuZZWVpQxnqiU1SbaoHzaMUbunvLFSbTth9Dc9fiscpORnlG4wJgmBttZjjMMOTgTjmxwij4+PPD4+7sk/y7KQY5IbVZXmeyqFZzyKXy1auie4hbj3A0fYlbeAgH6A9/zQG6wtcIVxUvDuc2n7/vb5+ZnD4YAxhnmev5q2+nP2Ytuj/7rr1ftV0ooeHh9F+tNO4NL2VfuuCkkE6SQOYwxrWUnLwrZte/JLzgmjFYMxKNUjshSuFVZlQCfH8XRknCZsC6EvtZKbaUU3ve8QXk11h1MvlwsfP31LCAJPToeR4+GhTYUVP3Zf4oQC3t/eIRXCMDB5SczRiMGFN5aa2/e90/P1z6MjAvdBAT0e8ddZ3t0nuhebXGUFYbhJh3pxcU48je+f/z7EAmiFctujDS+XC1sIt2bAyHTY/12PlAN5v/prO51O4qMMKKv3z7bcQaFyrWgOg0drRUqZmAPbfJXXOAx01OHG2K18/PhR2PbDwLquvLzcPGQ6Oa/WNhFxa1T6/XDPPnfOALfmZRiG1rnnnWuglEKXblM67IiDdwPHw4Fx8mznC9frmWEYocL1OpMm4UzspV2UI6Q2rexELdiNZtooQ4zbPilKNrxAw1AZBiEsqpwwVSbjuK5cc+RH5HUP3mONIsdVinkVxEjuycz1OvPy8oo2lpiKNI/j2NQNtObVcTic9uZ5dF3zLyiUHyeG6YD1o/y9Sng/Mh0qxiVKmbHKoZUU49pJYjVjdcE50CqjSJQ0UbYJSgKKsK0XsWesJTNNTlJrlMaktDf6WmtoZB6lClYjDVMRCVtOCW170ywQrqwAHMfjyDBMAi9fr7vsZ3TutmpaJeM352uTrsEwWobBcjwKL6AqUKkwXxdiLAJ467Z+WzZSllB4c3kXQlNMVK3wbsRYi1eGnIShH3PgOl+Y11lqAcJnyariqpf0p3bGX5c3LvM7RRfhf6QkQ4qfMMOR4Zg5hEqohqfpAWdNI+mVv0Ra3R/Nra7W2/qKtn7qO9vudjfE+Bvr3G9FsYWbSUFqQd+6TTDrunI+X4hBotL2Lrb2+DSzw1zaqHZgSkINIDowbmbu0zTtu67lOrMsS4uoWySOroUGdLLTnigzDl8Rg26ThSzKHx8f94m1F4SuQ+0FYZczIYdcD7LvjMEtRsr5nS0GztcL12X+imC1LAtzixTMbdoAdlZ0TjKVj9Mo0GFj1OaciGHjer3y05/9jMNJ/JE/v3yhVkWMqbH5Wm5oc8pyymCta82CIQdh+9lUGKfKukWs9zwPYtLurWuSFYt1noenZ5TShHXjdHrAGjEgeD9f8MPI6DyD88QoqIBuN05N0rkaY5kOB9wwCimngjKWsK4y5VhH04wItN1i27YQ5eeocBgGlJavq1VR662wyO5KuAL9s+6wnkyKqu3WH/jw/IkPzx/5/PkLKSTe3t5FP6hAW8N0mHi/nPn8+ZUUBeZeF7GxPB2P/PS732nNgOimXUsHkt2r+DfXtt5IOuIHD82ekVraRCu+ygZpAOuOsLS1gbnFJ67rKpOQhsfHJ7wfscajtUU3N69Sa/PA7rIlQZRuh06D1zs3YZCpOqXEuixSeFGi0S6VT58+yT27rCyXK7/4+c95fvrIMExsW+DQ2PNVSaGjE11gL7Ydd5XpsKsDavvcpPDqKtCh/El0l8YqwhZ4OIx8+fKlHYSOh4cHibXTCmoh5YkYNtHdDyPPT09iAakNKgvp8PjwyDCO+GFsk5PadZ3rGoSANs8YY/n0k5+0hlBJQIpSLcFKSJ7AfiY4Z5suVLJ4O9NYQt4rpkm3nFeo7FHJs61XLuc3YkyMw9hMLSaM8QKdVoVxgihN05HpMO1NiDUKa2Xrr6roY+dlEUOfgqwSGnHOGiHSHQ5Hcso8P3/c1Qz3hhYgHuumqSfGYcA6sFZkQc4PCCPfMw4HhlHMXIyRhKjpMOJHT0gr1/XcUBctvvLaAYqcqrDnbfPsJvKrH/+cH19+JY1YLcxhw3nfVmKav/cHf4BSFeslCarUhPOWw/FwMz+p4gx4fHjA2qGtKgRYVVo3+Jt2z7V7wtYbErmzzNXOsi4lk7Jcs9r85nL6W1Jsb/KbX/+zOAM12M+IHOKe4KLbnlAgaPY3hLajoJEr7qGy/m9zatBxksPCWdGIGis+y/d6TdVIRrmx0nrBvnU4N4iyX5hLyzqVG2Hav74X6U5+klNDi5RkEyh3Czf9ZK2yW9mCCNlT2//1gt6nE200Dw8PUjRKEcNs0w5XKi4EpuOBcZrabrZpAVXPIBV5gLEGowzj6PGN7eu9I6eesrQSY5KkGmtxRlAEyauVn2ucZy6XC1R4S68iWG9kLaM1D9ORcRjw1qJyxR4mirMko9Ex7J+dbbBwKbcA+A4pG2MYWgZxj9gTjaugEp0tbKyjFrXbZf76mkDeY+4K7Y2I03fAh8OBh4dHmdBSIueeQtWuJwRlmS8L6yKT77JsjKNou58fnxrqofcAhF4cS8379aWK6CJlLad2sp+1pgXa3/b+dKKQUnsM373Bh6xjHE/PTxwPD4yDWIjuMifwL1EAACAASURBVLfW/NV6R07c98hy69ziCgvOy+uVnOj8NdmMegfJy8/zzSdpUMbxQEqZ0Xv6E8s/u7sn1b30Sg44uY/qXRFubsm1tp2ahPqFLaI0xBA4jB7dYty885weTkytWUspsoWN2OQr3V0uhERNhXLMaGv48PEj0+EgxVbbvdjmAm/vZ5HapSSrFCOTbS21BXxI4yxI2u3nrLWtjzJ7BJ1pe8FKlSm31vbeNPci7clp2yd8a52oMMYJmmUgbULXzWjjdHqAmuXasQKdl5zQSs4Q5weuy4xxYn85eE/OFWs9znlOxwdKqYIq2uahvp9F8rxCKpJm1GiNNgWlK1olYvSAxmgnBVa5Vpxdi/00rNuyc256sbXdUrQqtLmR9nLNhFR4v7zK3rvtjy/rgm3+DCjN7/z8pzL1N12xrBdE726dSOkqgjwJGc3tyg/dr8nW6O33A4jkqkvBWm0xd/Xn3qzo3uHur3r8lhTbX3u0i1BuJt12E3X/YeTvempML7aSUEO9ufqgvoYFeoG81wx2otMw9J2HZKx2GHdnYpZCiEE+3HrLTO2QJvSdyg1yu16vXK/X3Vzg/nv2SbfkFu6MlWmjkX/udZ/doMAYs0/itQp54e3tjW2TQ/356Zmf/+Ln5JyZr1devvyIURo7yC5tOhx4en5GW8MWxNdVG4vzAt+UeUZp0buOjUU9+IFhEMKRqsKy3kKgVsXxeJLPQ9F2yar1NoX5em1OTXC5zuQKg3VM48jT6cinpw/4VkBUUShnuMbA27Jw2dZ26EgBmaaDEGqaXCqE0KDyLNrnO7Z4L7qn04nD4YAyFmvFOzqlG1TcDSCcc02uJJ9jLxgCZ94K0DiOPD8/sywLy7o2tq58TW96RPYVdoh7l6iIen6f1OQ6uZldaCPXXo7Nf5Yqe11lMMqTc4NUK41Y1iCt5rQjn0GP1HP7L601j4+PfPc73/GTT9/y+PC8sys7uWrbAjnH/XqX6/LGUu6NY0X8uXPJvL+/U0rZpWs66x3BKeWWdvTNN5/47iffcTo97PdZvx93bfJedL9uiG+chLuCXOE2YzZWchXmM22ls5yOnBoK5b3nME1Q2VGhkjPOWKZxkjD3YUQTqJPobIdh4sMHWQcNw0Q1dm9GqxLYWWkJfQgpY50TSLaK/7CRVTy6NWn9nkCJwUeujY2sxWcbJZBuzGJtqqKQpDQJdBVnJmvl/urwf5ucBc6XK2kcBk6nBx4fn2TCa4xx2S8mtO4Woxv+/N6Kmm0cBYGdnfM8nB6RVYMU2+4NX/bhoxuX7FQbUJlaEykt5CzQskI8E9oXoJDdthRruyMWDZVFZDZyhufU1kiqecmXQqYNNqWQsxRb5z2qkb2u1zO5aMK2kXJEGjYh7A2D2+WOuRkDPVuHbfe6Ru0FttaKbrGiwpNQ7XVJse1TrVy2beptl/HfiWJbqxxSJndDBklJMbXni7ZJQn0t4bgxU7/exd1b+CnVvGeTOON0pmluJAdq3W0C+462P49SEjStmxWkGAQ0i7WWydq/Tmu9T5n9gLoPiu9Si2VZdllQCAHnHLkWnj98QiuLqgWnHZOf0FWjqm7LeUVJlZohbvK6Y0jEmIX0YISs8Pz4gXmZWeeVbY18+u5bHh8ehCw0eH76s5+xbCuvb2/48QvjJBPbdDw07aK8f13upFG79IdS8QMo7aloxum0H9p9UjbatG43kaompMoSMymdcd7z8XDkd3/v9/nuJ9+iGkSqq2E6Hfnx/ZX64/d8vp6pSP6JMpZDK5zjMDCMY8uQFaepDt9Pk8gz5IDT+2S7bRvGOIH2jMap8VaMjFgSylGvpNHwspPMWa6XXCSV6HA68t1Pf4eQxBN4XmZKakb0rdA456gHsdbsOkjvZJdqWnet9B0q0+zqjJFmb8mpGUGU3abQKMvpMArJJHfddUN7oElMxDjBGNlBD9PAvM5UJdPmxw8feXp65ng4oTH7tCUQYWdatgZT9ahBIWTdnx/GGK7XK7VUzu/vbSoWpnPXG/dG43Sc+PD8yPPzI8fjSVCkNgV8hTGpPt8Wsf3rf11kem1fIvdag9lrFbmYwM+K42GixIRTGqc0x8ExjRND22PP5wuqFtZ15vz2TqGyXGeGy8C23DzMp2Hg4XTkNIwcRpGPFW1A2Z2B7+wg6wyleT1fWiNk9lSvXDPCrCjk3Oxml5ltntETlKRksi2Vatqk3jR1LWdApCw0xEUJz2KsQgTSxjWypG2uHnJdDNOR48MTj08fsE48kU0r9CULm10c+CTZyjZVx/F4ZFk2tNI4N/Dhw0dE7y1kK/EwkFWcVJXSrh+1F6RKIqeNy+UVow0hJoH2tcDw1sr3OhwmoPD6/sq6LIQt7r7kXXJotEY7Ta1CctRNwmStpJelkkWBoZW4tBmLtpbHxydiKuIgtQY+fgx4N/Hpm2/56c++o2S4XN758uKxToiEMTR/dKVbsc1UMs7KBG6trKhiTG21VrENJeyZyPv1uvML/vWP35Jii7CJkXzJDhWo2ncGN4eb+4lPnFVMo71Ld2K07BmdF7/blColSmcem3tRt5wDvmIQ7915vYPq2htYkGSadVtZ5nXfx952zTIx38PhHevvMEQvwn3y3aFypCvXzfXpnvQDAo3nu10x9RY9N3YY1VpyzpzPZ9Z13Uk6xhj8ODAdDxyOJ/w4ssbYoPBKjJmYM0MBP0z0hCOQyKmSGuNWC1S2LAsxZYz1WD/JBdcYyqoUjFy/hJxZY7c/E3jO+oHpeOLh+ZnxcCCnDuFDUZ11rb9qmjqEO47jrrXt73Nvqn59qoU+oUn2rlJxnwT6NNZh+HK3LujvJe0zKFXYwALJWU6nE9M0cZ2vYnW3rqSc8E2jKwx5RzLy+jRf+zZ3ZqrREv13I881CZgxDWOUg3q/eWu7ubUCJOPZNw1iadA47Xo4HA4cj0eu1+s+Wcs9I3v4Pq3fv39yb5UWmF12wlSH+ZS6NZSmjW45CbwYQhDpmXXy9+Wu6PsBrcSacds2bGfRI68D2vndDu96Rwjtkp+uNRa1QettlBbWKnV/LSluxBAJm7BwI1BTJK4zby8vfHl948vrG6+vrw2ZkWtaYisF4j8djnLYIxMzDdYvfRq/IztKsy9NmbaiCbXOoXTGdbicivPiNa0UYsKTNTlVti3QJ6ku09K6eZibJjmJCpRAsM5rSmn3B+xwfFXi6uacFx7EdMB7h2ynGvISJOhFVyMsYufv1i4WEMTOGMswjNI8tGle/qz315pSuDufGnu9VonOdI0b0SwVjaaZD02M44HDYaKUyNj4A86JzaNr8kP5vp2gJ2iS9FsyaeZSIFu0EV/zwQ+t2DrG8UidNxQRVTUa02qBxVlHrBGxrWzGK+uKNbVJtzqaI9ajzmm8szhrSM5Qm8aWWlu++t3ZXeS+EvOar1eVv/74rSi20GAE1TpX1Qfz25QJtImj73H2v93xjHuNrrOSHpJLAtVM9htU2E0szF2x7CwzcW0SQfeu082yRU9JXF26Q1O/6eAGIfdD7F6H++uQ2P2fO1wZY0SX5vdZb7u4HvW28zLb82st3sjHw4GUM946tNJ3qSVycxvTmgnvGcapZV7K+12LGNTHKIxi61TL1ZbDtxbRw+4svFJYN3HyQRfGY9pZ3qVWaqqYWjBaNVisEIvYDSrr8OPEeDwyno5o50gNKqpUtiTxWL3R2Rmu/pZq09/Pe8izfwb3n+P9e5ubV7RuE1h/9H1LT63pZChZE4jnbEcnekH0fthJQaJJFPmI/Ep7l9tJdLkUSM19pnbZkuy6ar3B5HvRdRbq3eS6N5dgjKfb89Ve9FBtjyV7J2vdbughcPtGd+gpzTJTCCCNaKRvuvCKRtcsBzpt76g7XHh7rfd8iX3nC3huxhcK5DNrtp21ilOX88Otmtad6Ht3f7f7uf08wjWQXVrO7JOsUeJO1glktSRSDMSwEdZVpuh1k6muJF5+/MyXt3dezxculwvXZd2NcC6XiRQjH56e8ca2KLXmYNrOJJToyHU1+/RljN4NGYBG/plQKuMbY1ukdSPGyH+t8dQiTSxcd2vXdsPvvuj9PRZnKppGvE29+2ZR7b8vlbbPbQV38E3S1VCnnBo6JweJyJM6Q1jt+2bZ+XtZ4SGcF+9vNp+dq1DadWSqQutKLmm/XkWvKz7WRku4gPdDk0GOpCTXqTQrZm+q7u/L+0ctIgUTTbAgb60PkmtVSS5zLQaqgSLFvn0sgswpJYx3hMldSs8pb2oHjVhTZnmvaiOx1WrIRWRjgqwUKn0Kbnr9IkS3borzmx6/HcX27oZGiXfsfkH3A6EVmdQ8MI2RQwlo+s+bSX2fVPsE083Xt20Tndgd8ck3Q/CaM7FJXVLObFFILjElbLC7kf8yr6yLMD3HcdwP9U6G6gXivtDCzXyhS4C6MYNMCiLg7pNcj/srWrozZWU6HoeBaRg4HY77Pm0aJ7q1nNEilHfG4k4PPJweGJxkq2olN1eKhZQKtcgNGqPs7YxdSamSESa4M1bYgdrs5vCqVJwrxFh4e78ynR4FIjUGsOLHinjapgpFGdAOZT2H4yMPHz5y+vABPx0IFWItxCY9uM7Cvt6a4X9/L7tZRP8sOxmtHwCdHHU/rd7e95sLVYdMU4o7inG/P+wFrzaKca1q3+3366oXuJQL67KJi1gt6NVyvl4ZpjNxS2xLaMiCXLvTOPGzn/1M/Hq17MqUFdMQZIhEN8tDqxQGOSRjCLtN4eHwIHI42w1ImrWpdYScyLkbj1TZV0+HPf0m5Si2i0VsBL+aUttDGPt5b2Q6S7O/d52d3BsTbWS10PWmtd4KsNa6rS4mYTcrJdCc0ftUm/d7v+7faN9HKtUIYq0RyF33rdq12Qp+hpIyqUoMYtxW1utF7FmbXemyzHz58TPv1ytLiGTtmdeWipMSl/czeQukLWBQfPfpGwZrGaxB1yoWhRQhTufU6mLdzyh0J9TB6eGIVlVsPts58M03H/f3u1aBkZc58L3+gZcvr4LkidGxvNeU5kmcUK2y1Fr72d7WHtKAFyBX0bBa53DDgBs7gUrIQt35yFqDQixZD4fOtWiFqVY6qcm7TnKrrcm7OZaVUpjnuVmRyk4UJc5fpQSUilwuV+Z5o2RQdeDxQXbBwyCNaimxkfnk2pMi3ZqmqnaULMbUQj+SXLfAukoOOMoSQ8G5JNOr9nz5fBGGfjbkAGnLFFtEpywbfoxScn+p1pwMI26Y5HqOGylqYpCrUxptuTOmQZCJWisWhTHSNKuqKHfWkX8ndrZwu1FraTgkNJTo64lwHMf9cO0TgN51jmJM75ouTCL6VuZlYekXScmNvSdw0c1ntaCMFNQQI/O27s/dzdCF7CK0/XudrlKKy+WyT2NDK0D3cCh8bdTw62Qt4zx4T7mzJZQdgcY0OdLtgi27/27OueXbGoq+pQ51uMu5kVIkwH6eZ9ZNAq5zBTeITi8mmVi32BKOjEU5TdFJXKCK6BJrFp1tyBllHUo7tPHNqUqhktmBBudHDqcHhsNEUYqiDdVYijaEivjVyhcyDIayKfS67oL/+4JwP4F1stL7+/tXXfD9JNiLaP831lhCTFwuV9Z13qe/h4eH1jC14tb8rYUZfEscAr5inpd8szUsSViur6+vAIQ17sXWOSHqbJOgIV2mhhpwznxVzLRqmlWjKWFBFyl+YduY54VSYBwPjKMkwIiURPxrU70FZwBNamEaeVA++/P5TFgjtaivGlIpiGJ8IXvGvB8m948+Yd8aWiPEuelAqTIt9WaIWhmHUWDMLPeztxJvKehv3c3u9+lWCwGpf/bcIUM1y3RuGxQPhhwjcdvYtpXlOjNfzizXK9f3M2+vb1wvF5Zl5no5834+E2IiVkWxIxnTCpdiWRf+bP5zzm/vXN/eeTwcpZlVGmMLujl27dBSG5sET6j72dXPg1xa9JpKxG3hdJpac2fYtoj34htgjGqFpK8xmmZbKxq4QsyRHDexVoylQcdGNM5FOA2lNJRMNwc6bVrz0u8jmcJkBwtFaw7TkdiKp0K1naoXiYwxDXW5/UwdIYoxsixbQ3v0bklKpZFSm1d6iJRyu1+d83g34pwhRs04THz8+InXtx8pVchb1nZClRTcEKQpTqVl1OaKsQmlDMZ4UhS0RyuLwfB8+si6BZacyElTk4IicLK3cn2P3jMOnnEchMeTC4Oye45yzp4cPVpLPKPRoHRh2ANZyq7Xl/J982r/Wk3zVz9+i4otu6vT/nd0GK3QPaElo9Q2HZ7sxti76ronXZScWcPK9TpLkWm+xxaB8RQSU5Va11QBo27OTt3LuMM77Pi82iHGzkiWAy3sh9i9A1GfQDtxpD/6ob7/anCvd0KRr8J6Qg0D03TY93re+c7oEYhO6Y4Oyab1Dn7WSnYuWhtKkXQTVeT9stZxPJ4kUcYJ87D290ZrCrAuK9fzpbGpM0ZZYhK9q/YD75cLdt0aAiHpQyiZfkpOXK8zuVSm00lco4BYCiHn/5u6N1uS5ErS9L6z2eJLbMhEAihUF3uGzea0kO//GORQKDLCG8oMp7oLBSAzY3G35ay8UDXzQM90XWO8JJBSkZme4e5mR1V//RdqrjskZ0MnOaHO7Yfve4gV2C/q9+/d+8/qvZb5/S5dGqmyIxvTNCNM5J5NKrPplUt5v6u/7c3f30TbhBu6QGh518dukOAmPbLecRhEorVN4tt0LUk/cgCbjZxh2MPlMYYuOHIOOJe0y9ZrTZuwkoXQYawcRPrDbT+lIAy1Sk7nMtP5DqMQ27YykVQmSaERZMBRrUqRmkBwICuCbcKq+jMYveZ8EPLZBsHLqsPSdWGH4Zu9WS9u9/r2q+wf0WL7/r0WpirN7IShjXxnDOI5vIjP8uvXZ6brhWWamK9SYK/XK8s0MV2vpGWVuDQMsUaKcVAaNQvZMceFksTq6Oeff+bp6ZFSMv0wMpyOwtYPNwbqxkytVZyunPM0Izr5tF5JwVLpaCWRspeTrBmul5mhH8n5dnZs15687LY3AQ00TGQhrSspFZwPwpWgUFuiNkvdkoP0AKitCeO5NWoVwl2qBVuMZtuW/eeXxCW7m+QIL6Pe1gxqO7mdN2JxK9dp8P6GqtmGjY11zfpcXiL27BYjqNO/rkFqrczTzHSdqDVjLOIi5UUmBIaSRaKTSiaWRM6VuGaM8XhnyUnSmawRx8Z1KaRYSbGSo8QUtgKmGdU2N1qVdUZJK0uslOoI3YGDGXQt4LFUrKt4KxC5MVWvf2myttei7If9Xtnhjb/x+N0UW/OOzCVw0u33bvpHox+KdIDif3EjHd2mxby7Ok3TlXmadmmG7CTkDcvKUAbRxRn/3+706kYosVs81o299j7LNJdC8J7NRzS/cziqtf0G3twhQN0FCkzkCLqfPIwj0UlAsWnsJvUy1fX0YbPQE8jH6Y0icPJvYcLj8aSkGCFAsBUaH/YsT6s+yrVKpJkAhpAuMxdNjymlchgOsHslO9ZUiElIXc6hjHEEWmuVmAvGd9w9PEErVGPJFdnj1rrv5Jp1Kk6X4Pv3BIT3rk//mji2ff89aa7VSnOOWuqeU5xzIaWshJ60S4DeP5fIEAwpbbDQbwv++2nZe0/f9Sxp1aIvzYCzjm4MmINcR+fDWf6ONmH6E+9F2TtHcXaXqhkr721pEpPX5U2/bfY1ydaK1lJpZNBINKOH4xZRyMY/KIV5mhnDSOf6HTa0xtJ83Yuu04JYjZU1g35/ezNq2zykbw3t9jqwG3N5I14JhCqNUIamk5VVuY821r8ZBAzK1N5IUe3G3EalI/r+bLnL03Xi7fWNl+dnpuuVdZlZppllmVgWcVSLq5i9NGM1maeSmkzcLWdSlgm55YwDvnz5zOdff6HVwvF0BidFw3mv0XjowlD9gmsR5rgxrHFhnq50ncO6pveETPo5F6brRTKDyy1tbIOl0Qa+VoMpch3HmFjmhWWZSLHS9SNdZzFWdo9bHRStvry+RlNnJ2kGSs7CWdA99FaAixrXiJbby7rKbHJEbb40VAKjTTzaxDuR1IzjqHBwhSaRi94FvIdW9bxRym6r7yblWpWlvVBqZrPdpQFemrVaKtkI4lhL0/xd2bO2WilJ3iOZMStJQ5xqEbY31WBwMvlahylGvY9lv7+shUpgVP6OUXOcTV+/XZu382VbBBswdZ9say26CTEaC/FvP34XxVYkNiq2B/Wx1WLkBCMHQ3AWZ5qI1mulJImVi+vMukxCDNKJChqXyyuXy2UnDTlrqeEmrI8lMy/zDZ424tvr22bErxeKsuPcftHJo7TMHsVkZO/mvNfQ9ioOR9ZpFq1McjKhCoy5ffkg3qBbcMHDwwNxkVxZ7z2fvv32NxfBYTjS9x1dF3arsK3Y9L2wsLfg8ZzWPQBa8hY3xyWRwuRUd7LVJmfaJnFTG8s8ATJ1fPr0PYfDidCPuG7EWC87xSymAm37LJ3S4sPI+XJhWWa+fvlMGO8lksz2RCrkgiuFZhIpFqZFYKr3+cAba3IrqDs0rPtCb6wsrTYIEgTqwagsolDmxLoKFCfGjQJF1sq+BhCNqlcIUFzI3kvM3hthbNFiX16eqanq/de4O96JY9E40nUD59NptwI9HsWq0DuDt4beB9bgydlSisK0VopMq4hTUDMSHRg6jNmSsG7BAaVkcsmEoVcmqNnXKJv+PK6Jy9uV03iHOTqBbytQKjZX1pQxTuR2O7sSPcCd+k6rv3FJSScnaS6r7kqp0uEL5yAwDAOn04mwweYWyRWNifqOgVvarXmgmf3Q2mt8UyZyaxh1kSqlkHLk5eszXz5/5vnrV9K6MF2urOuqvAxx9cm1EYsEClRjaM7gQsc0rxJHmRK2FU2igtYS0+sXvvzyEy2v5HUidJa+C4QuYA0y8egwsDuIWTE/iPPEdH2j1YHzcWTserrQy9Y3NaiGnCQ/tZWKMxY2gmFNKuXTS7mtLHNkmlaxPcwwtkA1DRMEQsZog+U9NgxY12mIPb8ZQGrKu8tRqZmmvBcQZrILnUiJjBi/SJqpSId80OdrFd8FfNfhraUfBobhAEBKEWtXNgmU97BRy3OJrHHBL4FmOnIp+OC5f3jgfH9PShFj0HjAHu+luTQuYozj2HUYH2S1N0VMc3gbZLK1el+YwIdvPnK9Xqm1cTgciPHEWa19z+czZkYRJ7lP2ta8GiG3gSQb5SqWsWkzxyiJPjgttFX4CVWsMI0xsiYB3en+jwAjGwOqtwre4vse54SOXVvCmKTL85VWFryrWkgy0+WZVpPS9SuHsSfHhbeaiHFVc2rpTFIpLOtMckL6SamQELJQmhesupo0J9qw0I/4DT6rsMQFY9pODrHWSIebC7YKWaIg8qVSIaZKMJ7D4cjHD99yf//A/d0Dj49PPD4+cjyeOBxGurHHdxJdZr1j6Lo9QzY4R+e7d0iRTOc7i29rt438R0Te2/9v5LTomyxTT21GrB4VrvIGDaWGHMX3eF1XWso83p04jCMFQzWOZjtqs2TjKXSsayMVS6kBU2XCkQtZ9n/29D2nQ+ZQMx9/bAxBiCfZAp1Q6kvLLBms9SpJ8KQUtSkRe0NvLHZPm1GZTeihgLeBw/FwO1xyJrgAzUhxrY41JmiW8+mRv/z0LyzLyuFQGPpR8mzTSm2FYejAFHJu5CzSs1YKq+Ycxxj3MABrDMF6POoukxoOw93xxMPDgxLdpGm01pJTxFhD33nGoaOWRN8FaumI64pRcgjN0fUnYoJSHNYNPDx+oFbhI2ANNji89fuaxSj7HbP5MJ9l9eA6SpqEyWs93TDShUFvOYHD++G473aLBkpsrOmGrESaNpPd0NPF/vZzWEspmcPhwKcPH7hc3ug1QCSmBedHnWwNvUEyf3MmpiimKg2crkeCIk5sk3Mqe2OxFabgAwZIS+L15crXr298/fpGXNd9TSRTnKX5AXqLzcKGzw1irjy/fJEItQ31K4WhN9LEt8h0/cw63bF0DW8i3ouExTkYTgecQ/gJTowmihFDi1JWHh8eOR2/pfNeQsX7EVPBYDh2R8J9Ry6NKU6UNZPWdUesTLPiZNVE6+wMXC+Ry9vM5TpzOD5g3RFrD5Q24LuRUoXAVY2jNbEvDX1HcJbgLYYAtTEhZjmtSLP55fomjZlztDWKZKk5HJXYspw3DnITRMi/u+5yLZzvzgz9QJZdBdY5QjfQlwN9fyClKyUXDqcDT9880vUC0xonTRPa6FsXJC6PRm6OOC14n5WYWpjnq8Dk1gNi9epdoPOOdYmMvSUEiwuOOU2seWZJM9NyIZVIKiupRCriuS8JaQY/jOTrhHPgh0Cqic1kxvpOGqYcMVSClzpRS6bVQh+CrFHY3MyE4GaNUV/xf/vx+yi2cIMfzc2FaBvfzQ6YCDSCGonXnIQJVzI0ifNyKjqutdw6u1p2wksuQiM3qpErW4fTiiS6qO5wTYnNko8NWG2it6VVYo5iBWhFx9qUPCXxWY7D8cTpfOZ0PPPw+Mjf/eHv+OabDzw+PPH4+MTxeNz1oS44bNAiacEbJ/IGI5mVRqcBdHcgHr+iVGylUt+9h5sxgW68qarXFGi+0JrdJQMaLyJxe6hEpWRMa3Q+cDxYTMwsKg2al5U1NVIx5Lqwpqo3fAMrjO3tuTf7QNmdCoGqWEsyQK047UppYvINAmEW3b/fSGmVmBIBdLoU44wuhD0SzzsvrMAGOJH4GDSZo1TNGvZ0/bBLDlqTjNrnl8/EuGAsPDzc79dOrYVWbj7XaXN3auiN5nBGhP9Vd5gW2SP1IdCrQYpIkxzJoWSUTZ+Z993+9m/Q5NO2jf0gtdbTdYPshhRuR35KWQ3oQbjGRE6JmBLXy0SKoku1RiZcY6wmInX7znQrqvsOx1SslR3jNu2XYvZGblMFbEW+1iLTj7N4K4XUj/1OYNxY34D8nA1MLTf+A2DqxoVoO2K0rW28VRLZRtbVtKl1Xnl7u/DyXTrumwAAIABJREFU8iYe1aUK4afITrzUTE5CdFxTJpVGbo2kSoPQmkB+piFuS3IQBtNwrWBqghJpOco+N6/UmgWKdfoZGKgILC2x24YuWFzw6mMd8C6oSYkVRcAQZHp1SaDNphPW7lDEzk0RhcPKNC1i+zka2dGqHMVWi6pOaIjhxhbP6Z2h2SpytwbZByqWihDxgu/IrUjTnRJYi29tlxphN57KDf5t5rbe2+I7Zd8ublaCqPT40GHtQjEasOHlXGtGTImaFT11lUMCH3qMNXR9z7rMkjCmRi2C9Dg5W4yQlDaeQy7ix2CsWFKmHMk100zFBScAnnf4zlNRjwV1oKpNkBYfPE7TkJruN/bZVO8NHwK2VV2dbHwQZTM0hZNvwNrffPxOiq1e+HrfbzfiZl1n9QaXfZeSClqj5JsjVFUzgPdPuTON9as1sXmztmGqugSVm4vOdZ6EJNDYD1fJb9Uuxm4dfxPbs9YYBk8/DJSUWONEq4a+7/jmw0e+++57vvnmAx8/fsu/+/t/z4dvPnJ/98DhcNx+RJmaqTQr7wGmCJFlJzlUEVUrU3snnegzCKtTlvgNNYfQ/0l3kG7/ljHAJntRWLI1HA3TGnmdKCnqQdlzCJZLfGVaI1/frlzXyrRW1lhZouzMq0LMxnsawog0xuC6QAhC+Br6wGorvW8EZxi8YQhiC2lVokCDgsDvsvOVXWjOmWmZ6Vv9jRWhD4GQ/9tMWFlJOJUQ1J3o5pz4Oovto0yFr28v/PnP/x8xrWrAD6fTiVpll59T0UIoDmSt6T6oWSwerwSQ3V1HSUWbwbuxm++ro+sO+57YYGRXqKYQUS0eaeK7WmtTqFuLjvdUZK3hlERWa8E68E4m/hRXLpcrzy/PPD+/cb1O1FKVHCcCFucszquDUXt3oyD33QadN/U23iRfN+9k9B6stJZFO6uSnlLEgvK9zGOLAoSbn7UpN3b5vmdvYhhjFHEySA6vd04JUkoSK5WcMpfrlZfXV32tL7/dvZfCdZpZl4WU087hyE1gZTGtUJWqERJWsILwdNbSOZFe2VYwrVBSpKRILQnTpBnZ1l2lVEmVMvo5W2HybzGP1lhKEt2x8Y7QOaiiM3XesxEtN56CkJGUD5IK87QwzYvsnYvoSks1mGLIWe5zCVpxN8MUXb01I02AaxD13mymkVvhcDxwXWfhL6QoTmZNHbw25ptBmv/6W/7MJsHauR2tYTTXN4QOr9I0ow5npcl7aZvdn9soq9yHjn70+315vXa3FCpTOfYDzskXxlLSjcsxzzKRd33HMPY0ZMjwwXM6n5jmifEwcjwdBc7eUtNapdQqq7su3FDAd9eiNJUep02AU2JURshwnbKT5T5p+tfrTnb7tx6/i2K7MfDQmL33xCOjOwlhXEq26mbALQxDS9Pvp9KYlpVYClhIObLGLLR/3QNKGtONDFBy3SeANeb955FpUPSrW4D6GIKIy63cICCT17rKYeC7nsPhxHfffc//+o//xPff/8Dj4xN353s+PH4gdD3Fwq/PX7lcJvUdTeSaRQtJpRm5MLc2V1YFmS1ourXGqFFlwF5oK9It1ltbAqZRikBrpVZSQUgDWmyNscIq0K+0zNAqd+cz3377LYe7Rz6/zvz8+YWfvzyzNqcsPoMPR+mozUbZV0N2Y2nW4cNAGHsajcuySlSVbQQHQ3CcxkBwAt85KqZk5twoe8GW3XKlsUSxaQs50Ff1sPYW1wkiYL35DZPcmC2errCWGeMrLjRcKPSDYxg93sO6Xvn6/JmSM+MwyE4xb9aem8e2HCpW6Q/eDnQ+MQxHjPkVaqGWRFyNOEqlBK2KbMDoHrKhZvg3mUDJWX24FdTRbbI38rq8uZlzWGulU1d3IZn4i4I9cuCu68Lzy1f++V/+mbfXq3hYLws5Rl6fv/L29Mh0fYCW2UJNhPtS90lUWMqajFRBGMC3tBdrHMFDF2SKG4YO5+5wPpBLxVhPP4x0/UipMC9xb3jeLhPH4xFj3b6P3oqt3RERtehEmLjJiUayla3xFLnbvMxcpyvTPHGZLizTrMVNnvNyuahf+S2cJK+JVIogRrFhTcXRCMYyOktnEfjVGFrOrPNMSpm360o1ntwsYbyjDSfWZSWtUTXG6GdqJRFLp9uu61jnVSSBFfou0vc9y7TwdrmwrAsxx313apw0kBs6tcZJ9NO1KCqhKxUn6Adq8WiNofOWYK0gDM6JpaBpe7HtO0+zYhgUmqM4iSxNqySBWQxD6KBUWi4Uq2ROhMFs2BA1RTyclYkQlKghX6UWrO+wPgiC8d4FzIjfsrWep6cP/OM//gcJgnj6hvP5zPF04Pn5mdfXV+Z5prXG+f6R0/mBw+GMc56amlrervyn//T/MAwDx8OR+/Mdx+ORl5cXlmXmhx++x3vPv/t3f+If/pf/maenJ15fXxj6geMwchh6LtOF+frGawicT6edXOqMFFjbKt5ZDoeBvgus88S6TDhj6MdBOENF0A7vHCVn5vn6N+vc76LYghL8FNIV032vFPOO4DOpCTM4lUJWzLxZuy/tbS7UmJjWlbauAi8Eo84gt/xGQ6NZYd3KbtEoFGKlS32HyW4sU0yRizg4mRybYRyPAlvVxjwvDMOBT9995OPHb/nxxz/ywx/+wPF4knzMUvn69gZcJJ92TaRUbnCeF/mLMeKe5ZQAczuIf/vYdL5NdyYCcb9z1dIJBBoxFVIRgXZMjZjjTuqqWTr3lhO1JOq6UnPi8WEFP/CNP/A2RS5LYk6NcDjQBUPOjbiIm4tgKBljPc0K5R9bqUYOUO9FF4epYi23wW9NkoWsE9s3Fyy+H7G+IxYpAhWL9T2+G2lU8czOhdJgiYl5WfFdT9cNsn8zjdrqbiW4LAvX+SJB7KaS0sK8vGFdxTpx2nl4OFNyoesC1sLb25uuHpoyLd1vpo1awCC6Ua+xYRtzXaZg0SW/192VUrhcLmwhCFuiDbD/Gfk8xaHGOafa0hvD3niB+rwJsjNUSM9g6IIwQ08nOXhavblfSXDFxPXtlcvrC4aKM7fdUvEWayo0gSKb3RoWMWCI6sxUSsIHxzRdWOZJJClxoSHM781R7Xg8cjwe9wK+rWU26dX22FCI7bVv79N2+Ya+VytWKMkIitUKS5JQ8es8Mc0zcV0ppbDM044ElZSkqCJ60TUnWo7YquEJVEF0TKM3Ah8Ha+isuEfluNK6QD8MxCJa53VZ5DWGzeDE410QvWyuvL1dqLVwOp1oteGM43Kd+PL1mZwyIUiqTloj87wwr4tCqTf7SrPpm5VsuGUUJ6se7c6oNA813ECK4AZVtIZpW7tStQaaTXEr/uBG0JP2jkD1r01OJPWHnSeyuVy9VwPc5HdSRFqrv3mezUZ1Qzg2sx8hPsrwVDKMw5GHhyfu7+8JfgAlMNZW+fj0gePpnmE8iid6LCzzgjGv1HeuVVtmM4je+3Q60nUSr/jw8ADAskiAi6gR8j6J5pR2zXnwjr7zqqsVQuvY99psaNJbXFl1h5uScDjGwVMwxL892P6Oiq3uLlLO4s9rtlBuKzmBRSa4ZY2sa8I6we2bMZgtC7XrwPkdNjPOY1zBeRFHULkxOq2VdB+dYuVC3ZiQaoWmMFErsott1kBpavAehDVBpVI5Hs98/PiJ7777nm+//Y5BQ6StFx1iKkV9NaEaKwV26/q8dKIKKMvNsaM5m/Oz2RcDJksxqLoDE4hZiVy0HVJuVGIx5GpJFWKtzElIDzll7c4jLWdayZBkR4XrOL3N9OfIdU3MqRKrIbgO2xSGs3Gfjhpbo232r1Ih5Y0qr15z+udSkwvTOHFTwosMJvQHfD9IMS6FVBrVWFAZVK0NslhArjkTc96ZpnZjQDfILatVpEz0wTSxr6NQa6K1jDGNrg88Pj7KlGkt1lmWedWJ1tB3AWcloaQZcSxzVmQ/h/FAUBlaSqLLLeW3Xsvvi8nGpt7N9c1N/iVf9varrjK2gox+/jf9tN2hPQk194zDwPl0Jj5FjHXUUohx1b5LtbTWKIEpsPEQeoX7xY9XUmKssoKtgZIiyzIR44pzRiQ180xW0pjs3wwSlN7t7O2kzldbSEhK+d3BfoP8t12ZpL7s2DYpFZ14oURpYlJOzNPE23RlXhbWuGpMpVWoVwxHpO9S7kYrmFrpvcXawPF4QPYfwv0IyITrgGChc07cqxpiHqKM9pwkjtOUqkQ2/Vwbuh/WaEQrRK6+G5jnhcv1Ig5tTtY3dZOh6a5014u/m+o3hGpTN5QqlqZbCINwVuyOCNYsaIppbS8MW9E1+7WzvbOqe9Xfc9ZKWIYWRqdQ/uZIt23m2sal2CfVLZUNcA1brX62ujdudW8wvA9ahL0m5wg5pdZGCB3jeOR4OFErXC8TcUlKvDtKuEgIOGOZo6wHFm2y+q4XqLfr9qhIY2SNZww7nF9VRiUEOlnJuY1/0Mq+f22qx+26QG3lNs3Lsh6MZUlZV4/SXHvncKGjVYQw9jcev5NiK0zMXERkXkoR+riRQrsFg5cqcNThOIlDVJZDtXmPGwY6Y3aZCMhh2jSYoORCAbyxyoRzOAylGRF+x4RBp0rtAtMaIVUKqC5P7M9qK3pABY2xcnz76Tv+8OPf8e23n3h4fKLUhvO9FFzrsGHzAnVKz7+pslorAiM3SXxhL54yeTcl5aAHrus6KW6lUnOmkpXwIKkwtamJPo0lQsGSsSQqS8ksqRKXzLpEWsriqtUarsC6VvyceL4sDNeV61JYEhQ8xQRlBzbC4GkxCmrQNgtCkTqJXlScaFJplJZVwyney3K0FIGgraEzovkdxjuGwx3VBtY1s5ZGrJBx4ptcG7YWulxYcyWWSmkGvMcEMc0vLcokhOyAm7WyD7cV48S5xzlhDo7jgPffUooEU2wTbVUZjLeeLvQUW6Flcm4M/ai+247hp4GuC2pXV3dS3q2w3ow33odSSJHlN5OuGJaIocmmXf3NFOFvf84YsYnbSHLGGNE8qt3nMAyUnJjnq75Wz3gYuLs/8fT4QNcNO/lFohFvh/57DbO1hpwS83Rlmq6AmGvM06R7RCHZiA+v3jfKd3h9fZNwDX3uXMruRb5NP/+6GXnfoLy8XlA9jsQKFtm9LsvCl+dnia5cI6UWxqEnpyqM0ZyxzouBgWoqu9BxOB05Hg483N2zXi/kuMgEmyO2JvmsjeUQOnone2jZ70ozK2z0hMlFm++6cz5yTXIP1iT5y93A0EWmZebtemGZV4GZc97nzKoT3kbJSVmQG4ncE7tT6yUpioRKnhIYIRs6I0QijCGnrVRvhbaxGTBYrJZXtv5KiqzyCqRxHDkMGjeoK6bNnKJw8+fenfywu9MbRlYsW7MYgtci6Bj6kb67BYhY46Qx1nOwVgi+Y+xHxuEAzfA6vorUCUvXDcK6L5UlTvz1p3/h9fXC29uF6XLlfDyJucYoecW3NY2gTdZJ47NJGXNOSlgzDH1Pw2FaFcVBjkQDeQ1yPZVEyYmpVI7Ho0T7NbhMCyiEvFnu+n4Q0uN/g0H+9vE7KbbSaIoJ/bYE0AOgioyyIgf18+sLXtNZUsqkknHOSwzV8cjd+fxueV+JcZFCm2VKDc6rvaPA1FjZn63LivOdaN+UkJWjdEK5FIm3Q6RD67rQaHRh4Hg+8/T0xN///b/nux++5+7unsPxjA8dDw9PDONILiI7ajqN1ormMmoebi10fRCWo+Y6YptOg5uY/GYmcX17IyW50WOMzDHKe5FEq1eUdFGRRgEjt2JuhrU4UvHkJje2DV52O8bQW/DdQD8OGN+TcXTjiZPtsbkSxrN4uZYKTqbWPSzbd/hOsj6blT36e5N9eauNklOKSjHA2IaLOlWM93z49Ec+fPsjX78+Y/yB61L5/DyR0qqU+8a0ZN7eJmotdEtimCMhC/S5ieXXdZVutkK+znSd5zAMuNBhrCPXxrxGcrzlEs/X6aabbo3sM87K7lam1qxJPpbBDrhwE8GXUliWhWmauF6vKvi/kYAeHx/3iDmxERUP6C2fOMYkO8daiWtUpySdFsIt8H0zQ9ijHFtTj2YhxW1aYKMkqpwTxnQCPerapRvCXhRzzdRUdzu+thtnyPP99a9/4cuXz1yvF4HaOscShVRzOBx4fp1oteC83MPTNPP8/MIyR67zRVYFVsgx3gYFPppoc9mWx0b37tqMOpkgmlVL1pSUv1CI68y0zKRawDasM8zXC+s8CZO+Nsiiv68qGfr+hx/409/9yNPDPR54+fqFZbqwTleW64U4V/rgOA49j/d3DMMA1rJcL6Tm8FGeLy0L/anQhY7j8cxD86w54YLBBUs1hbvjmcPxiO8ld3mNkTWuWOPUHGbbHRkOh5M0pcZIdFxE2eZNeAuiMxIP5I0MqTaRVu/fDQ2wiPJONMDtN/OrxeyeAVsxF125NG7bVCtF8b1hzPbrFscosO2Gqrwf5DaYuO/7nYy0BYgYY/W+Ellk1rzaZdnQsU1eI41DXGUvO18XvA2EYPny+TP/8f/8j3z+/IV5WViWlYeH+72xFcWB2e857zeYf4OzvZL3Bu7u7jjhibkwx8h1euHz58/M84zF8Kc//YmYVnEou175p//wTwx9Lz7kSeDjVqXRJRdOuQopcDj+zRr3uyi25t1mUliyAlPUIv6gko8oTOLahP7fqCqsV9suhUL6w1EgkybWchgoXuwBK2LE7dQ0I7hO2HylMgxZaOubZZwxeuDJTiXHwrxOXN5euVzeyCVxPEmh/e677/j++x+4v3/kcDpxOp05nu/wPmi0m2CttWlUHsr8cxZrO0KrxJJp+ebMoyOLdJn7RCCOKLFaYVc2yFiq8eCsaOWMwEluuxU29iriAjRU8TltRYLrXatCUjLQGyh5Zeh7zndnTvcPhPEsE2YDwkjODarAblnzTBui8bPe70SXphT9225RDoY9wxZJB/LW0QWPsZIV6Y+P/PDjv+d49yoT2elIMx02qESoVpZciSp9mNfK63UV31RE3xkXaT62/GFvoMUKVYz9a7OkDGusxHkSnlGtpGXdWaZsuldjaFWkOlvjVmsllYjsdcQntxTxxJ3n+V2x9bdpwDhl7AqMuq5R98ozb2+vvL6+svYSQkFpu6zMYna26nbIbftYkEMuRkFFqk7TKcU9S7kU2V+/vb3x65fPBE1gqQ0p2JqiJR7dGwx+29v+8vmrFs+Jw+HIQ39HPx4xThjSuX0BYzme7zgMB4bDgX48cDqecJ2mb/mA9Va00foaLJZqFDgV7qNAv0ZQpazXUa1VAsHjSopin7pPxToFz8tEieICtethaPTecTwc+f7bD/zh24/cnY5cn78SPYTeM5qR1TYWUwneczyMnAbJHi7I5OhwtGrIubLGxKEKitAdPacHQzYGrBAbcyscR8nR9c7jQkc3jDgXGIeBeVmUryE2n1Z3/hupsbaqMhLR8W7sfus8oRNZjfdhX0XIdWX2hk+xBfkNnVkEpZeGRuZflA0thUgayY3X0rhlg8t9YMztzK2ba1ZTFcI+lwsCZ63E3Vmd2DdEEmOlVdjTpkTtEHxg6EeGfhQ5nzcEJ5Kp4Aqd7xi6XmI2hx6KGKtse9Ztf91Mw3eepDGMy7pSWiOmxLyu+OB2t8CsKWbnuxOpFLheMcYQ14Xr5Y3WGjGJ5/b1euXXX3/lOl3FREhtWClWJ3pxDVtTwr5LgPu3Hr+LYgt6gXGDmbZuaEs9abDr2+TKuu1djQYIW+8xTtItdms7o4VcD/yNWSy7W7UJtChL8lZst7SW0AU90DJvby+knJmXBesdd3f3PD19w8ePn3h6+sB4PDGMI8PhwOl8JmWZPjHiTCXsX+kOi+5phG4vsVtZf28nTiEXU3Wit3VNhPipNpJq8jIb5Njwlk0wIq/XGIwX1yBhK8tcedufVlyrG5+b3oJRiLzvJT3E9YahGRKG6nrpzBsEA60U5B+SA6Gql2pp0IwyZzG7vZ8kkVSRUJhbNy47JWEvuu7Ah08/crybgUbwTlm40pK1WliWidDL/sr4gdI8rQqaUZqnGSGbWCyuWTovph2lVmKKeK83KYV5kSxPoZTYHU6W1yHhFM7LYWZXQ0yJmMWz1mxSBrRY580SMuqeTt14Glg7C1vTCGM0Kzdh+0opyYrACjsmYKhWGsxcbmk8gDLxZddkrVwvqaohAre8363RySWzxsg0L8xrxLogrmYqb6tNSHe5iCxC2L/o35Xs0Irspg6nO7UYrfTjmdI8GMv57l4NRk4M44HhcATv5PD0Ht958WdW/aY3HtyG2xhKE3i2VNHEOisHthAU1aYRcGGVIrXtuq0V+LgUkciVQsHQB8fYBR7ORx7vztwdD4zB8xZXXM266wsMZiBU8fQd+15MC9QObSMWCbkrcr1cOSwrQ39gGEeO/QFCoLRMaYncCmPf451olWUfecAcDA93d4pkiMvVvK7QpCXOtWJSVYhTpSS6z26oq50P4vbkPLVsKUt7v7HvvrfDo7bN5JI9KbAB1Zh3u9SoRE31lW9aINmI7rLrr23zXFZkjlu0n54k7ERTJZua2ti1nO9WYO9RSxCGshSpG4Jn2VLMnDZjjbDbZcr7I/a5CudWcaUKJVCKrNKMNZQm9+Tm11CKrANojRC86Iud1JmUIuu67J4L0jyvez54BVwnjQQm7XvrlAvLGuX771Yw/73H76PYGsShBIM3XuFSS6mNRWPGrLuFbEsAuBfJQbtJFxrsSThV9yw16W5JSS8hFDUaqJTQdL+z+ciqSHkjnYxHum5LGRLIL6u5w93dHU9PH/j20w98+v5Hnj58lMimriP0Hc53LHEmqX4w9AOuyc6xztI55awQZa2sa1T4t7Kfqw0wDmcTwYlJt7WOKcqk3zAy1XrZRVsrzlc3i0HAys0s3ak837Yz8QZMTZhaZBfqwKluzBiopimRwAKOYh3ey8XvatHJXYot1pFyk+ZCbdBk/92o3ExFhGtg6YPfb6RaMyVLA4EJfPj2j1gNY9hYhxLsbqAWnp+/SASZkZivzis8yWa2kNUbWezWTmNPzYnr24U1fcF1J0Lf0QdPLhr/pk5P19cXUo4YGsfTicenR0Lw1FLwveH5uVCukbJmrENZovJ3a6uUWqTopoyvN6cuZxX2DJIZ6kJHF4oYcrTGMBwIYSNLbalWytCPmaq2ksYYgg00o+zlWrHBUdPG5q2/sZTseymsWIfvBsJhpD8eAYtPWQ92lfwUASk3tjsWmvF0w4mYVj5888gPP/6gKVOWaZm5e/iIMZbT6cQ8r4Qge+N+OEjhbsg1kQQCtlYY6sVDZ8JuhJKTFiI1osg6FYkGN2M0paViQA0zat9hSqIPgVwypSDXBTCGnofTkU/fPHE/jtiSideFt8+/0PJK38mOPPQHOoVfu66jc5Y1q0dxM0LMul6ZUmWuhtqdeTSOuzAwnuX9zDWRS6SaJqsK1R0Pw8DDwwPDMPD9p08YY5jmles08/r6ynVaiCmzxEQsjbSscr3Ups2P8iHUXc36gDFe7BZrUdazofYa1lKl0bWbDlAXtLltI64ctsN4ZFgiMWVizHreyH3sfdjRmNuvZpdc1mbecULenVNNoO6dNClTBO2dTnfXQ7fGusTbKqRCilnJY1tAA1CRYIla1A7U0nlH8Y5cK4uiSPM8E0JgGEa2YJItaATlIRjjdgTLGmG3i4JghWZIadVISvk5Nz/7y+XCvCzKr5Cag9E/Zw3LGrlcJ4H6byy0/+7jd1FsDYYUpUD2fa9EqaisYrkAMEYw/yVBMxyPJ46nk37AQo3v+4FqUENySfwQ0onH1Mq6ROY1YVPB2UStV2ISaG8r4pvAPuXMX/76V8bDgUFF+jlnhvHIH//093z69Ik//OEPPD49cb67p+t7hsOR0HX4EEil4rsOnJPd4DKLlaJz+K7HJslpXKNcdEnZ1tve+gYli75xdSoexzHFIsXSeZz1SlQRuWwuibZEtZDLOIeSpgDjNP5PzBgcTXalVpinyzSxzBdQjRnOMyXZrzYXKDZwnSZKSoydxxaR2siNt5nVb725BAu01qhZ/twGbRnTlPGqEKs1OGPF07hZRSBu8PPWOGwG9fqvyZ+zqNuW1nxjhUBirXTNYSBWhzE9/WHgQ3+/NxOlNdygsYprppRltzbENq7LzD///C84Gam5XN94fXlmniameaK0LE5ZXqb4ZY28Xa6E8Ao2YJrRXboQYw7Hg0oMPMfzcTdr6foB6zx9P6rH8TumJwYffhu24IwUIqudea6JvhZlYzbmZeI+ruSSuc4Xfvn8WYiA1nG4/wZrgxRCpOkqWdOIMCxxVQMPkWO9zYlLLDQs3fGR0+Mnuq4TkojtON/Lrux0PPL41GOt+FYPwwFrm1iXFjksq17XtRWm68J1nvE+EHxgiYk///O/8PMvv/LTr78SDmdRGRhBr3onvsQ0IUltoRydbZj8wPTSSLZRbMO3xnEInMeOx+PIsfe0tJCWGVMSY/BiC6tEo7Pq1o0xIk9yYlqQUuF6XaE3OFtJMfPTX/7K65IZn18Zf/7MZZ011L3ycnnh4e6OH77/nh//+COlNL5+fSHGn/npp584Ho8Mg4Sof/z4kbs18cvnL8zLMykXfOipDUouLNfI6zRTkjQT5/snYpQpal0y3neiR60FGywVI4laKWN7D0aS0ULoyMUyX2cA+rHHOE2mmjyvb288fSMeAELSMyyrNolI+o6siCS3eF4jP//6mfM58vjNI9553dEKarjEtIeT4BxFugclvQZ1uQp6rfeiAKlNzlddCXrnMD1cLq/EZeHy+sx/+a//mU8fP/Lxwzdcp4U5Zi7XaU9T+/TpE69vb6xxZbA98zyxRaTWWrler7RaGYZB+AdDL5C6lWbw+0/f8nB3Fp+GuPDwcMfT0yPfffeJ77//jsNxJHSeb7//luFl2PkX90/3nI5nrBMP/L/1+F0UW4whdJ3ANTGyrIs6kgTuTide3l4l9xF6k201AAAgAElEQVTUwk2JNwotWCN0867vhVKvpJ3NaQgMtlSKv5kEWCvpJibfAueFiSnRSpszUc6ZucmN573neDpzOh/58OEDD4+PnM93HE5HetWC+SDduhRPuWC993IT1UqJkZTFbzfvEIfC2woDlVZ0ugAQ27PNv9g6y3g4YqzALMEFlYlI7JowHsGYTgqUlUkr65SxEW2q6vOsNRRncE6kIbUUco6sTSLv1tJIDQqO6jpBC0pmmRZQCVLRCMSqMuVNTlU3LLK9YzJuhZF3+yXANB3Dm8L8KnMxOnVsGkOxa1TTD6S4yOtVhyNjlHG8vT8eh9kZmpuQemMJVHWFki/5rncOp6YZzVTWIj7bl+sb0zqx5lVgTyPdfGlidp9K5jovWP9GFCz9xm7GsmZJhvLekVrd4+KwMK8RFwJNpRfeC1HIGiHNtZR36UdtGj1o7N7kgDqdGW66QbUDxVjWlHi9zqwxY/qgEJ+jVMOyihQlp8SyCrHIIHZ3l3lhWfONbWm8aKqpNCt7SfGFFb2zMbcACWGobsVWrS71w+878U3e9o/X61VSbpaVZVl5nSWpx1hDMIaxc4K6tEJLC72StWwbsWmlzldMiqRkGKzn0PUc+o6x83gatlRMrQzBCdvY2s3Ke99tbo12a6Lx5t1udINIcy0s60J5uzCnxus8kWuh1MyyzpgKd+c75nlhWYSoJwlEQp47HARmX9eEDz1d13O+v6cax6RcA7AMxxPd24FkFDLF6r+jjm0ugI36s1tSbqwxMUf9Xq0kW0m5EWNm1gKYWLFRkoecC/TdAWsDtRlikni5NRaVu8l9sqaVeY6sMWE0Oaw0mJeEdUUBYNHtg9nXR1vAyebuJtKxxBpXhWzVFrU1nDPamAkBKaXEdHXktMr0WQp9p8XaefyaWNaVrb2PMWLfpU3tEqVtrN5gdWuoqigxVhj+h0PH3fkkbnNx5Xg+czrd0XciGwohMIwjoeu4P59FPoacS8Y6jsdR5Gf1f4RiC4Khm8a8zMQU6a3FB8/57sx1nqhqDO/fSQZQ+rz3Yfeg3WDkLZd0y2SUiLlbiLtQ1+ueBhR8uH1AunfYIImSCwbH4dBzf3fP0zeP3D88cjydGY8H+mGkHwRCNlbhiqbxUMqMK62R1kxcV+Y1knLayTayj9M4KnS3qWQwQJnI8jqFWCDJRdao9tU6YTzHxDTNO+mo7ztqi8SsrOpc5GDe6g5yU1Yjrmy99zgr+78YV7CWjMijUoPiqspWDGWJYiK+MZ932Ev30U2eW3Y19l9p9GRnajbIrFYxYlDvV+dUJqWF1gDOW/VBtgS3+SkLa9tsSym0mXJbZJwEObg9jUM0zPsEbMxecMVv2gpj1lqMM+AttWVhTldNAnHCDg7WkHRpVVpT2VVljRFznZmXrCYqmybRkYrA3s5LXvBWHI2B0+lMaY0xF7GxAwJBJEIIhFc0NtBaDbGuYlEne01pNrbg9/caXmNl4nh9uzLNwrq3WqhzqUxa4OIad1bnRm6b5ig5pd7J/rbJ5yRVymFtwFmrO0WZCLd1h7VO2ALG4ppMzl5dsPp+VDlP3XkZa5Rfa2lM64o4d4o22DaHaQInB1N4OB05DR29Axtn6nzFlcxaCqcucHccOY8DY/A4JdbZWhlCINhbw6e6OjYgqRZtdq3I2ay11L07FCQixkisV8oceZkmRY4Ewo+nRFzTzojPqmmvrezuR8Mws5wiDw9PhK7nvhtwrofnF2YbwSR8sBwOJxZroFVyhdKMytlEdmh9QIzEDK/XicPbRbyA21FIjMay2EKJlXkVr3fDivdGPYEtXTdSMcRcIWYalmWV86JWObuWdRXi37TIz9AMayqUy5XN3cpZQ43rTrgC8SRfQ1AkzdBa1d2ortHKu0xfbRCKSrw29r8zhr7rOJ9PjH0n/BzraGghl0NM0rq0sBdlWxtz8/FuqjAwyk9oVbk0Boa+53A4YJ3kX3dDz/EoYR4hBJZlZvN17PuO+3EkeCHalgaHQ4dz9gar/xuP30WxFb1g1WV/5e7hjr4fGIaRw2HUN75qfB1yACrmPnhP57d0FUNR8soyC8Qgtndmp687J045WCuSh5ho1pLVQ1aW9gK3ejWtMM5xf3fHH//0J853dxyOB4ajsC5DN0gEmrIKqUX3uosSh3T3phfass4si2D+WyFflhXjetkrGCn8IcghKbFlA30vXXDXDzrJyqQQvND2U0zM08K6LnTBcTiM3N+fZRfxrtiWCiVXdY9aMTUi4m0YDx1p7ahlYV0zFIsLHWBIudJKUoN1z1oTBL83CzlnbJIGw24yAavEi/fCeHS6rWJVuMlYUoZSHa1JQLYwTmX63Qq1c2qm74MUXwtkeR/ed8kgfrXbDRe0uGzFVqbehndWzRwkUMA4j+0MuSbiuvK2zDgL3kM/HjmeT3LPNdF0/uf/97/wernirpP6Tt8K2LzMrGsU0olQwTjMUXfDhnlO1Jr1cxH4+XQWLejd3QOHw0GlEz3OBeJ6y+F1RpmPBmrNiJkC2tlbsZxvQlAxOuHHNfH88srz65vsb52nNUOMmZe3i0xiGm84DKKNzDlz1e+FCvOaWGPBed3lo1C9d/i+J3SD3sdGJCvCZFEvXccyr1TEixgs1VhiSVyuM798+cLX51cu00IuMA4nchEU6u40MAZLjhOmRB5OI//49z/y4eHM2Hn+6/2JP48DL59/ZXp74dz3PJ3vOB+O3J1OOBBiTMn0IQjKoWQ9uTA3FXvbTetNcLhe9N/ROnIFcqHFREqVtU68zZFfX144HA4ardiLwqEZ0prIq6SRiWNT4+3lha/lmdD1fPvpex4fvxFzlH5kGBLGd1yvM/OyksvCw9NH5mlkXVdSsRoAIvyJZj0NR6mZ6xL5P/6v/5tPf/3AD99/4k//0x85jgcNYo/UBK+vV6brlevbGx8e7zidjhgr0PPr24U+iSlJ6DoJeXh75XK9EnwvjaSS/wBe3iYJllBEoOvEetXmTFwlSzilxJevL3QhiJb3cOD7Tx/35xESYmWNM8s60/Ved6ZiKnE+Hfn2wzeMXcCZxvN3H2SCLwKlx/S2e8UbYzThTXJvc8mSMNUaMSZecxKi07yq9CgT10gzTc7pVun6wKEPjGOP0QZv7AOH84njaeTyduXt7cL1cqELm/rD6DnqqUWQy7/1+F0UWxBiE8Zw//TIP/zDP7AsK9MkH9qyLKoR1A8+JVJMxDWKy4sVezuTxIiixIRtcFbD/7oZROiUuR3CK0nJVqIZ3MLet4Irwd1iLffw8MDHjx8Zjwd83zEcRo6nE+NhZDwc6IZ+X6xjNVTbCINyXVc1AhBrOaeJQ2KmEVmXRdilzuN9x3gQyMKpYfnOHgxCfhJKvkxr1m6BC5lSkmTuWoFVa60sSW4Q6zy978G4m0h/9dTVQl6hiZSkH0eK6jOXmAidpzmPyY0pVZn4rLCcQWzjTFUSgs24UinVUuvNElCanbp73G7FE2SaBNnj+RCwfsQ6yeOltv092lCCbUgdvNr5WSFaOZ10a92M8nXSNWBCB9bK60Zwg4xMCgEpRhhwtrKWwrrMTNOV5+dfiOsMZJxtjIM0QdaqXrghWlDnReoUevrjmdPxDuc6LpeJZVpY1ihkESuMbYyhGEMsRa/zC80ZxsvI6XQi1sYYV8Zloe9GcRHKTdmUBarRDr6Q0qoG+QKf972n6x0pLSwxCjPcqvNT+ZW//Pm/8vLl635N9d1IiZJdLIxPIUqtSXyI11mII6td+Ou//JUhdHKveEdcFl5evhK84/7uzDCMO2v6RvCq7z7vjaxid1nSuq5M08RPf/krb2+vUthDR8FjvCV4z6E/YFqiFTDVcHc688P33/Ph/swhGPoaCSXychqZXs7cDQPHfpAmHEONiVYS1CLkmCrM59pkurFWr0WjpB4jAextTUiNLeQWidPEOJzE2cgGir3CywvDMPD09MTpdOLh7pGxH/fViWS0SlF8e3sTRUMsDH/Xczwesc6JWQXwzdNHTqfENM/8/PNPPH34RFzvmeaJ4AdsKLRq8K5jGEZCfxBWvK18/vITYRg4nO/4YYvBbGIlWTKszTIXw9uaCW+TGGgALy8vvF4m7u7vOB5PdLnx08+f+fOf/8xf/vpXgu+5e7jHB0nPuVwuihJ6QifueJIx3nAtU+OquvGV1ipxWfHeczoe+d//t3/i8fGRt7dXvnz9zOvrK58//8I4dJQSmacry3rF2MrxOHD/cOLQBZwxONv45fMX1nniOi+8vj7z/PKVME/8+usvMjDpOb+hEKUUPXdnXl5emJdZpW6Voe/BmZ3RHNdFglO6QNcHnDdyUqgRRimRXFZqXml5pTlDw2NbxajfeNZm5N96/C6KrVzjAoMdDiNPT498+frMNE/kkuRmUJiBtk1lSbR3Tg7rrPZbeV1pRW6qDXOXL3XycZtZALr/U79RYBxHLYLyd7zzmtjSM46DGIEHfwt777udEIXRD65W3Qe8Y7WlpCJ7cWqiVnKMovkqhS4EmunFGCL0jL1Kjry4Zzm/RatJ/Ju8Z2Y/wHKWfVurRZ1vpLjFuMoOSC0qnbVs0XUWcDVgShaor0isoKRxSIRWmmfQvZrxDlNFDtMaIrjfSDyt0ZwFL+iA1xvZwI4o1KqfmxpIoPuT1gweR64GFwIuCDxmVf9cUiMXpFAj0XOlGkp1GhIvFod2MzJBxuc9jsFA6IcdXtoP2dYo+j4qE0vgTudxfaPHMJZCrl9Y5ivrOvP8clHHMEvwht4LG7FUYfuK/tvifOB0vMPaDmsnmpnIqQjxyuim2jiaIhlFmZ6lQSqF6yJwXUyNrsvCEC0CI+dUKUnZ3VVei2mSPmKdoescwxhoNWuTsjFKhS9wfX0hLitDP3A4HBm7nrHvGEKQnbuSSZaUoBSCmpRAY7le+frrZ6b+grWWeZl4fv6K955pmpQNKsX2lsJTVUIiwfZGIdusSV2brOZynUhZZD7edaS16c5avKnXJRKXSOca4zBwf77n7nSgt415GDgfD7CeGAzcDb3YLtZKTYnYitoXyv6zFPOOWyBNE+8KblNdaari2LTFRjbgdD7z8PE7wnjkfJnIwPFw4nw6czqdGPuB4DxUNDxlg6vR17ro5ygTXktZ3COb43TXy5nVRAtbWsPVhktVDnbnhNzUjXTDIKsI52kt0R9OuG6gWsd1iaxZPL7jmjHGS8HNlWwcc8rYVVKMlmVlSUl2766TzN/XN3758pWf/vozh/GICZJsZqxlmqNIa5DP0zpJO/IGXMvE+Sp2ilF06Ne3N4wxDMPAxw9PALvxi2hbL1z+f+req0my7LjS/bY4MlSKyqpqgRYAORQD8v//g2tDs/uAOySAwXDYGAKtqlKEOmrL++A7IhsPg+eehqUB1o2Kqo44sX27+1rfOh1p25plGonBoVWishqtcrH2FAjGNDJNo6w8vBPfutcM00AoepFLUyXNxFICOcaroAlgmWcOxwO2rkjFzZJSuk5QZcCarq9xaZDWq754t7syeZOztrEXbUH9V+vcz6PYavnD5iwjhKapyYgnMqZIVV/M12J/kOxYj/dOZPbBi9BCgV8WIdoo9ZOZvuz0rpeeciCL6lX2QsYY+q77Cd1nQStF27R0XUfXNCLSMZJxKBFNdenGxMsa4mucn9ziZScZg0RZXS8L5SZ1MY2v+xWmXmGMFNy6uhTactu+XDay5O9KTKC5vn7wjhil2NbFwkKKZS+SgDJyRV8VrmhRBao6CPpPZSY3smqs7KqMLRaMBZ3BtB1ZK/EEZoof+if83ySK73ztdI3scZKMz3MWIpf3vhTs/NpVKGGpmspS1YKoU6pEwSmFCrmMulMpTJkQNSqAtZK0oq25ijEufyalFFmDbRq56eZIdBcsY0HulaVpVoJ2NNZQVw1Nv6bue/GkPj8zTJHD/ogiFQSioq8yy7yIZUwJq/sCWmnaDmVqwJKzYRynIiyiiJwuEq3yo+VilbJinBd8ALuEq79SJxG1xBBxs5dRJxLtlpOEZSgl70XnaozOpOiu3m0ls3bm4cwyTISuwwD27l6ixn7Cq3XjyBwCKiU6W2HJhJIKtX96kvWKgtN4Yr8/YCsrkWZddx3rXYvtT0Z9dS2H0QW0IV9NuYxN5X2k2O7iGKi1xmAhKuZhIiwO28j3dLNes+pbTA6SztI0qNWKYDSbpkZFCdlYnIMkynXxaZbP+vJ7Z3Wx4b8+B0Ao/G3Vt7Ly0IIjvbu/5/Mvv2Bze89hnFDlItRUNatuVVCFVkaMUS6YIUphHceReZqxNnIeBvb7fVk7gLEdTSfBJaboM4KPpGzIWGIR72lT1iy2xtZZACBBs97d0qx6sja8nAa8c8yLY549Vd3R1B0qK6KyTH7BGIfKmcUJ6rWqO7SZySgOpzMvhyPPhyNZGdbOQbG9+JRZFk8o4QdVVdHWNY3VVCoxjBPjeWBZZoxRnIeBGCSA/scff8Rai3NOkpmWhfPpyOHQ0TQWt0x470QgaCCnyOIdYXG4RRKUzsMoiudlkSlikpWd81GmV5nic18YxoHj8Yh3cymici6cTyeW6GlXPZvtRtKoSjN38TqLL9ezLHLu1E3DetXL7heuQi5QwiZQhrr+vwBqcflyei+z9X//93/n6fmZ8zBye3vLdruV2/Y8s+o31y6GKNSfUG4z18guJV/y58cn8aNdLBPmNdBaayEQaa25ubnhq6++Zrfb8eOPP/L4+MjpdKLvJL1ks9mw2+3YrNc0qxV111N1jRxS5lVItZRb0EXxnGIRfpS/n8qHuUwzyzTLa697Pvn0czA9Octhmy6iJYqXTb8Gd1/EdcZIYUlBiro1CttYbFFQxqKObbsNyUgHldBcuNEKjbENlVGouiIHx3BYiOjraHSJnjB4tA+02qJMLeEAKVFpi8olghDRD2QthVj2pBXWSCEwTtSrzlryrFlCIHpfEo5EWVlp4eiEuGC0BG6nnMgqoHRC6Vg6ucwSI2FymEXUhzG1V+RcU4z/EixgwGo5hIykOqUS2B5DJLiSvHQRxwDH0VEZQ1NZ2u6O+4eWpr2l7W7JuuWwf2YaB7w/8+ZWAOmmrrEBxnlBHY6kbKi7DU3dY5qWOsLiAy5EvJf82tkHGfUuE+fhRFIwLQtN29ItAfQgqDor4fGVbWX3m2WsGUMsau3yecdIygFcwsel+KEl8emCL005sIwnljkyNw3JOTZdf32NnOT52O9fY86MKX5sBfM0sp9GLokph/OJYV6wdcW8LFfoO1CQkeovxsg/jc50zl1VqpfUFinAGucSbX1D2/bUthIgSUhoNE1d07cdfdPQNw0GTVvV7LZbVpVFeU9rFW4YmYeMY0TFeIXJ5CJ8TGWykckUMzRJieUlAlkZbG3odzfUWRNNjV1t+PLrr/j6777m9uGB8wxNt2H/vGcaRipTU9W2oA8NKUSG88AwnDmdTnz352+ZpgWtLb/77W95en6hX23o+jXr9R0+ZIytURiUrglxISRN1pUgUota3/lESDMxhZ9c8DTj7FnSgR+enzmfBimkKdF2a9arG7qmo68qljhBSlitSGgWJ5MF5yPnceLlcML5hK0aVpstMWtcSBgiVdvikyJOI6fhTFO1NHct/WrDm92a6XxinhcOhwNVZfFOmoAUI/v9vjRHgeF04HDc8803gcfHH9jdbMkxsl6vuLu7wZh3KCWeee9mjscDH378gZfDkfM0MbmIdwuVblmWGV2eoWleeHl5YZlmckoM5zOV0dfONnjPd9//mdM8cv/whr/7h7/nF7/4TAIP6pqmqa6f3yUo/kIAq61lf9zzhz/8gY8fP/Ly8oIPgfcPbwUBud381Tr3syi2Ei2WyCoxTgPf//gdZCU+uloO7a5p6JqGh7fvCvfSSpKG0ZLDmGSEq5UQV1LOTMtCuCytFZgSSiBdYaGYZPjss8/453/6NZW1kBPeLRxeXthuN9zd3nB3d8t6s2G32VCvV9i2lZm9kqKWQ3hlKBezuVKK8XxmGifGIta6JLe0dVUOk5b1Zs3NbsfiNSEoQlL4LLA6o8VbmM1PeKWIAvtim9FaobqaHK0cKEVEI+IYC02D1oaktJCAfCgCEcCoa3GEhLaWoGQPWbUd3XorgpWkWHyQ8V5KOB85TrOIii72iWKt0UiSSFPX1LagJrUEEyiTwYhfL4SELnQsrXXpdgV7l4LHaKHwoBLaFBZszEUEFfARQhQxU0we56UwufqSYFLSRpQRJSuGbArqz2p0TGgTcF7iOi5rhrbfFN+uWCzavqGqN6zX97TdDR8+/MDx8MRweuLtuw63nJimswieoEwMauquY7e5hazxIXHe3DItM9M0Mo0jtjYssxGf+DhIZ5eSTBOSiJ2sDVSmFvBGLcEIRlu0rtBNVVSq6dXClAXqwBJJSaYZKYv9wS8z0zBQpcRwnlBa89K0nPcHSe8p9KCqqmRku/hrbN5lhTMvk6xRisJ5mEYmH9FLRYhya3FO0lcuJLifFtuLQ0ApjfeuqF0NVSUdr/w9hVYVb95syUGUwTF5/OJQaWEcAt/+6c/8vq+53XasGkOdApUx2KYWDCuZqCaxTMVADA7vipddKXxZZwh0Q6F1kq5IS/5PVMUjXs4NayqqpqXbSBdkrYzcQ4jUjegocgIXFnIKVFajmorKmFe1/eXiYiwxZg4vL2hdcf9gaJo1xlTM8wx4QKPrBqUstlIoUxNUICGqdiQe4ToFs7nicHgiuAgxMM4SFGGMpW57TN0SEGcBVUWKsyRymYJwzEqcBM5zPJ1JSQI3bm7u2O5usVUjWNsyGTA2Yqq6/MjaR7yzDU1dF2+r8IpzTsW6J9S0w+Eg5+v+hQ8ffuC7b0UsWlUWq+Gzzz/lqy+/5O2bN5AjOSSWcebDDz/wp//8Ez8+fuT5cCBiqdqWdrUmKc16u2UcF07ngaenJ2JJaTodT9TWXp8F5+Qi4LIEO8QcrqstrRUhGkL0wGWNqOXS6maG88K//Lf/xr/8y7/w8cNHTsXXe7Pdsd6s2e1u/mqd+1kU21TGvPoydgye9XpD362oa9nzdJ0Qcd6/e3cdX+qSGpOjCGliigLdLjzg3gvkX9TOuRQ7wzV6Sguuu64sKQZCFuh5jpJfu1mv2W63bLdb+r5n1feoInbwZRR8sUjEmK6+WZXBWMv5dGIaR6Z5vo5S6loEUF3X0bXy300lo6EYZaTko+Ap0TK2zppisRGBjNbiYc1lNFJVlmwSOSiWILsYU9S7Lgu8AF5H6AWhLarmwirOKYOWZCWUJAv1/Yq5QOpDjKhLcEIQ765SFwV5LtL6dI1yk9e3xGJSr5Qp0I6CTQxRLCxJsjNjjjLOU5cg8cRlgm6sIpcDBlQBMFzyfC+HdCQEQ0yx/CTqVLB/TqGzRRlNZQQZqLMiWY0KiUixX6WMMbLnFQ+mwthKFN91w50yKFOx3myZhi13u8Rhj2RkxiMgsIDVZs3t7S1vbh8wRg7m6WZimCamcZDA7kozjWfa45GYRWCijYzBzsMgUxhrsUYKn7XLFWJS2fo6Mhdhb/HfplTsHSKSE/W3fOqXnNfgHcsykVPGzbPwx8tFsK5b1us18yRWoGEY/sJC4b2j73vatqUpHGdFuk52BEc4/oXtLpVnS5J/ArZMHZwXN4EpSUWmHMZil6q4vSnrmJxJUWxyOUbG5Pnu+x9oVeZ223O7afnsfie7yZSosvC3XZDwjxCj+Nq9lyKbkaJ70RGUxBq0QeqYLsEAmSU6rHOo2mLhSqoLQSD607jIbs+HEjsogkJrFH1bFUuhoakqUtuw224xemCevfjeUxIqUl3Rtg3uYp9LEu+2uLIGUILsFCU/aCTmsypKcFOU9CnLxGMcZ6GudRVV1WKrppxTwiYwthYlexZbGcpcf2LOaG1lDaIN/WpNVTfy+cdInGd0uZSt+p6qEOtAgi10AWk0bSOX5/QasJ5yksbDLfjgmJeF03EvKuQsXOaqabi5ueM8jHJBj+Cmhef9if3hxMv+yNP+gLY1G2MxXlKomrblfD5xOpwYTqeyJoRQQj3ausFqLWu3EFnCwjCc2b+88N233wrQo6lZrXrJY7ZyqWxb+U4oMsfTgf/x+9/xh9//jtPpxCV7/bR/kSD79fqv1rmfRbHNOaG0ACtihLq23N3dsNveMI4jkOhXa94+vOWzzz959UxRREgxlxQdD0m9Mo+NwsXLji4WPGIWsc0VGgHTOPDNv/9Pmrbl6fGxjIQMN7sdt7e33NzcXKPLZj8zDWdGt+B9FNvAdZSXrt5YqyvOBSU2F9xX3/XUVc1uu+H+/o66Fo5qSpl1vwJl5csWY4nw0IVMEnFBwAPOL1ehTCg+tNa2kBVRZcIoOZ1KCVpxdDPYLDvBsl+4zE5TAuIiirvgyEpu61qBrWo2mx2jC4RpLkIrUYGHEMlZgY5l94Wg/pIU22Q0Nka0FcuDjPKrwgEO+CCeSq0EY2hMJJEwlZGxNhIo/xe5rfwEen6pslk2nj8Nwb4kjsSQiE3CZovBo2sj+/VGLmmX1yRdlNzx6ns2JWIsN6BzyZi1Neu7W/rNhhQdOY648QeccxwOA9MiE4d+teH+zRs+//wz3j58IrYjFN57sXVMI8MwoivD+Xzm5eWFtuuZ54WUAvM88uHDd6IJ0Kb4hU25JIp3tanKyLyu6btO9raI4Cj6iMoQLpcUabdR5ae8gVzi4TgfC4XHIhnS8rzNy8TpfLza4coQiLYVfGnfrzBNQ1TTVWjmvcfNC6Eo4FXpbC+j5VAunMYYFl9yqbW+AjgufF6tbLH2ObIxxOCJORO8JCtN45H98wu3646H2w3qH/6G5CYsidZk6pSZZvGzzz4yXTy8zuNCLBc+sfnk4r/XVoRSpqqK7zRwHGdSO9CsLF1T0K5ZCeAhDBzPA35ZmMczp/0z0zjRtjWVTmxXNdYouqbC0NHVBqUSj/a5jGwTq3XPer1isy/ai/gAACAASURBVF2z3qyYfWRxnsUFElHCKXxAW0v0SQhypUHQxqCtpipghrpqcGEp7g3RSLRtiamrGlIUbYrVgqHVMUiDkrN4+KtGcmhtiVzUQuRbrzd0fc8lWcc7J8xr27Fe9SVAwECWLFqtDavVugiVIjEsJcNWVmJumYnecQkomH1gGISUZazldF44jY79sDA7UAn84vi4P3McHecpMM6BtrMl5EXLmeQD4+nI8fDCdB6o65olJ8I8EUNku1qz6lfFBmiZpj1Pj09UVcXL07PYfeqG3W7LZrumMpbKWtq25m9+9StiDHz88IHf/tu/8u2f/4Q1WgLvTcM4DByXiXE4/tU697Motrp0YVeDM1lg85WlbirmecAYmOael5cPwKsa1xhT4rfEPmJ0VUDgClcCDK7EJCKVsZJlHuFwEIGH0RXjzS1/+7f/hV//498DiufnPW8e3lEby3QeOaUz//qv/x1rE22jSXhqK97Cuu1QqiIsAvb2LsrIB4WJEVxgu17z7t1bHt498PbtA0llhLajWK02PzkMFUpVV8EXIOPfpEmpAtVJxugshJp5mqlwIllf9aibFc55XAjMIWKTZnQBF8TbtrL2VQU6TSQStbV0rcX2O172T2L6RvHJJ5/IWPTpiR8/fKBRCutl3+qdY0kXOpAUwtcgdEMKjnkRMctuu2M6DyzzwjLPovALvkDPRaDiZ8c0Sne72Wzob1bXg30YBs7LieikIFojEPucM6TXzFgyRJeZw8KiPVqPKKPoNh11Iwe6WmUJo7aWWhlMY2krcyVhRedBSfYtNggCEHPN/7RdjdENlhXji6bfz6wGuLnPPD/+iA9CH/v000+43a2LmT9jbcf5ZFiWmsWtmSaPlE9LXa0KcWhiOB/IYcFqyq5LulVjIadAjAvjcqSqaialeHnOdF1bRrZSjFTO1GV32DSN7GuTJiZ43h+kwLVNWUeYAlBXzN7x4emRYRAhj48Rre2V4d00NV//6u94//49q/WK3/3+9yxPe4ZpunoxUxCLjZifgSh4rlhyZsPicFnU201dwgZSYhoGrK2pqoam7QnaoZsVxhhcSowxgrFos8KlwJ9fRr57Hqj//Mjv//gjD7ue3arjZtXS2QRuJruF6CSsI2pL0OLBlE5fJmo+epIKoCPKRlSjyTZKDrPS2Kbn869+ye2bt9T9lt1mi1LiW/bnidN+T5wGTHZ8/O6PtG2NZWa3Npg8k93AeNzz+PzE6XwmpETftnz55ad89sVX9OsdVduDls9YxUzEs9/vZYSeA+O0YJUhRQmPmMcRpRTr9Zr1es12u2GeHefhzDCcOL2cCzs6USVDpyzDMkpwwCqzWt9wOh6YJpmarNc9khOmubm5Y1mmq7blbrdlvVnRtg1VVRcohb/Gm6okF18NtFbz3LXc7W6LZzYxT2eG4cz5fCLGwHqzLePdPabpSapmjoZxcjw8vMGpNY8n+M3vvsPamvE8cDwceX5+4nA4ME+exRuyVSwuUDeJ3loqDeumxtcVZz8RU2C12dI1NWOcruCiuq4JIUKC0/HM6fTvotFoappG9ABte5naSFMSJ/H/fnz8wJ//4xsao3n/7i1ff/kV6/Wa//W//p2X/QvTOP3VOvezKLZcxrogYpWUipIvkK0pHZC+7v/ypau9/Joi7NRZ5OIUhaMvaub0EztPraqrcEMCpGfQAe8azqc9bStJHXe3W7q2uubFLs6jc6StLZtVw2q1o6pacpb947wEESdphTKaaXbi+wLauuX25oabIrKy1uCDk3/ZoqhT+pL4UdKP9KtFKaoy6szyY6zCE8DPZD9RN4au1rRtJd1FWkjBk0KkrVeIWDXhkkNHUW92rWFTr8qOuRj8M1RGS6GeHXVlqDT0dcWqqbjfbRiXRawpKYgdhRLPFks2ajSkQvOS/bi+jhjneWaZX8k6ulJgwCqF1xqbpVW9jCUlXzWL1aXkHF/ycSVPUjzNKcmt5OKxlUYqlr2rvGbwnroRyEBq2sIoLmK5QotCGbwtI3AAdQmGkH1Z1sXWogSlWDU9q+09Ny7hfBJVZEh8+PjIb3/3W9a9jBKN1kKoQWOrmrruaGrJavXeMZzOnIYJvwiUxCqLIeBjwjtXlPEl6qwIfUiizBdbTboKp+ZpEjtZ09C0DSRhuMTyLOacigG/BKEnsaxppUXZncVbzgWS0TQ0iEUL4OnlRfJsleE//vhHTuOAj6GsODwxFNU9GXsRMpKLlc4UbKaMlavSRYYk+3hlLLZp6NY97z55x6oXwYk+as7TQPDieQwOfDairk2Zj4cR5wOHYebQVqwbTaMSlUpUWRGVaBaSMqiqIrhQ/NYKZQWvmpQiKET3oDVBKZJRuJQZ5gV1OpHHhdUPP9KuNigjk5qL/UqIRLkQHmXFc8krHsfx+nP35oHb+3vuHt6wu73B1qJad6lM55Ls4SW1TLrvFAMuheJQy7RtQ9s22KoixsDj4wdOxzNLwULmICK56Txw3O+Zx4Hz8UxlK/CB939/d43/DDGxPx7IBxG9uWUmX6D/dU1VKZZloGma6/qga1rWfQtKcT6dOJ1O+GVmRpgCAE0jGbJtIw2TQCtm8VAHD2S2p4HD8cw4BU7nhcN5Yn2a6Dczm9GTcmD/cuDl6ZlxHHBLJCYRVKqqRmlbAmqsUMYESVdsQyIQFLysTPMuq5YQgnwXVfHXqyL0LJCKZZ7FIpgiMXrG8cz5dOLbb7/FKMU//OM/8uUXv+CLL77g/fv3fPnl53zzzTf867/961+tcj+TYot0djkVhB8imfdBDkR0eUNMwS++joDVRcXwk1e6dDkXxXIu+x4AZWRcpMkYlbEKOaxSIIYFUqCpNOvtDXXTMY4jk8londlu7uj7ivW6ZrNZYUyN95FpclgbycoQQ2ZZAiGcSU6k4f2q5/ZGOMpd23HhEytyUReBLp3uZREpsAcpvBrZaSuT0al4FKMnRkdOsjuFSIpexDrjgAuBmBW27qiljqCtxlgliSd1TW0rGU2XrNCUM+uuZSIzjnJwtpUhdg1j17Bb9YhWK7GEgAlRUHtkwiU8AdkjVtZQVbZQvUSYIJg2CU2XDtWU9+E1DQQlxfZqF9Je8lpT4esqhEjExVNX9tAJlCpZx5fnoyhMmSBEK9YxhGEaYyTXSQhNJUjAFKJUKpOQy3g6AzrJIldH8dYlDFXTsdneIlmhmcPhhRRmXvYH/scf/kBlMpURMMNms2G9WrNZb9nubtFaMHDjODKcT5zPM8HPxDBfyVrBC7hlHEd08XHnIuTKMXLJdQ1Gi6n+4gv04dVXrgxVLZ9Buk4AChRFZYptG6GhSIHVVmOiJRYBkzEVuuwNXw4HDscjMUQen55IxVKXVb4mqaRULo5FYCLhEFoUumX0b8tEKALKJ0JWdH3Per3l9v6ONw/3VFVDDAkfIk0nO0TvPTkkMJX8Hiozzw41OUlbmjVzo1nXms4aOisXhUtIhtKGQBCfrZJgkKQKxD8mYlzkgqdEUGTmiefDnrMPuAS237K7u6ftVoQI4zQzLwsulBhQIylQKHVVCoeUytga1tstd/dv2N3c0HY96IqY5b31XtKiwoU5XtwLKUVyFE2LtYa6bdlu14DCOc9wOjBPE8E7UoioBCE4pmHgZGuqyjCcRxGWal0mS/EqKvVeIBTOCXlPqXzdI9eNZhptAT7UrNYrbne39H0vU5Oc8MUvm7zAQ8SHbso+uSbnCDmUM06Rk6zHqqqma3u6bsbaM0sJMfAhERPMi+N4Hnk5nAlhKZoQSc2ylThBLhheexWRZupKvNlyRrwyuS/6moswVozKsv9OIRIAlRI42cNLDKbj6emJp6cnvv/+e+q65pe//CWfffoJd/d3PLx9oG0qck5887+/+as17mdRbJVSGGSBrjHkUDjCxougJUswusoaFbUIZC7VttCLLt0xlwNYK7qqw2UtEH0VRSVbyQ4t5Ux2geSF3lJXmlVXsVu3PNzv+PyLzzG2xhchh4+J+/vbkoOayq2S6xdEUYOyLC5wPAygP/CyfyHlzO39Pe8++ZT1ZkVVV3i/EKNCW9mhaCtiGBlv5RJ6Hq7vjb2Yx5V8XMfzkWme8MEX2k1kGAcO4cDHjx/xBU7Rdj3KzVTGUreW7aqhaSq6rqNtW7q2ZZ5nxnFgHMci7towDgPPz4oQFrp1T1cZwjKw6WtyFgiGqSuOk1C+ppyIUR72quTgrlbyZcwxsxQz+jRNLPOCWxZIYg+xKREp3OQi3wrBMU35Ks7xPv6lpaqEM2gk11Mk1VJYFQIMuApgsuy2tRNYhw+J1gfqpqbrOlZK02hd8I+WutLX22/wkRBed44pSeJOQGOUYdeLyX2zWbHdrRnHIz9+/y0vL098+PADfhHcY1NV3Ow23N3dc3/3wLt37+n7DU9Pe/aHE/vDC8PkSdFBCpgsQdfjODMMI8NwEod0eeZTSizVco3RS16+DwJ7ERUmRUBnUMRg8G4hBIdWuajx5YKTtYgGJcijpm4qERNqXUR6wqU2xkKE5/2zhLl7UV/bEjiAVhhVLjxRQU7Ycqm7CIsuzHFjKprVCls3+BCZFk/lA3d3b7i7f8Mnn3zKmzcP1z3hsiys1kKt0ospnslUYAqKhUiKjnnx+Dngx0zsG0JTkdoKg4RMiEahWH6UiO7QhiU4RucYFocLiWQrohZVchMye+dRpmaYHfsp8Onnn3Nzd4/SFfuXF9w0sUwTLmXWtkZVDVQNSRuyqdBVQ92v6KuKm/sHbt68pdvsMFWHj+LnHSf5/RfnmRfZLbvFyf67kK+sEZX/drvh7ds3hJAYx4Hz4RmVi9bCCElsGGbRIoRA21Qssy/THMOHH78nBU8IHpJHEcnJEdzMNJ6AhHeWGBqMSaRwYRinEhf4Cfd399y+uZeksHFkOJ2YzkcRhNU1NLKz1ghQRBdFlg8L0zxxPspYuesadts1wzBxHuerOr1pGrF7jgPDcERrdb3At01F21phcBfb6EU3o7WiaTtypHDBFbaWFVJVV9SVjIpPpyPeLcVcmVm05hJ0krKcv7G8R//223/j+fmZ/X7PV198wde/+iVt2/By2GPrivvbO27v3rBab/9qnft5FFskWk1njUpSCP3scTha25ZiKz9N3aIvOYg5Sc5r4ehe6CEyJo5Mw4T3i9y0M9imRmcELOEDcZnJ3rPbbfnV3/ySX//zP3F7e8dms2G7W+Ocp7nZCk3Je5q2E+Yriml2JJVoqpbe1KRsGc4TcZZ9T9P1rFJCG8Pbd++5ub1HafDRcxxGUo7UqqZWFpRhmCe5gWmFzkISutxo0ZcEHEUi8/z8dA1syDHjgtCp3OI4nI/UtqKrupLPqaSr1TIptSSSm1mCw48nlFbUWlGvBeihtaIxCZ1W/O8/PtIaTa0y275GJ8+mq+i7Gqcs9nBAFRFEiFDXrQSHd71QsVK+puXM83zNrwSJtXLOyQagACdSTsKXDuk6joJXD7XcYjU5SwLTBbOoLhZkJe+dslnSnAo8w5c81JAiMSdc8FRzJePsEK6Xj7quC1Um/4UvOhblqEBJMsFWxMVBHWisKJDftA/843/9Ne8e3vLy/Mjz00fm4SjTGpWZx4GnxyPD2fH8fKDreuZlYVkc8yyHfAwenTNNW0OusPYS+7hm1bXXFco4jlflu3PudVeutexBy1ogeoebNDmqMgXJKCuh6eIlrEqncUmCigzjiXl2eCfRgCEEiV+r60I3EvGOMoo393fI+lVUrjn6qx9+mYUidFkJaCNFsqob6k5jMyzTLEUlBLpuxd2be969f8cnn76nbmu88yitqVvxul/CRnLOBFMoaAqa6g1pGUh+JrmJOTrUHPEJQV8ajVEWNCwpsNntxG6kNedp4vB45nA+cxwGzs6LH11pojaYbqTeH0loztPCmDRea8YkQY/f/uefGYdRtAjzRKos7W7Hepo5Tp4laXLVstoa1qai7jZEDJMLTGFkdpHZBc6DYwmBEHNBKWqMQuxqRZuilELlgJvOnA+Sw70sM6TIumuKAFGTveOcAslH4qJoVne0G0tdN2z7ho8fvkPl4s+3AmPQ1FiVChd9IGfZzT5/FEDGssxM40iMgQ8P73j78I4vvviC9XqDUom60owpkiN4NxPCwvn4Il5h7/DeMY5nmWwVr3mKmb5pYSPiqmEcr1YtN088PT0xTsOr4yEGVNZUVkuGdb4IY6Pk4cZLspm4Ki6rCtEvmII0Nbx9+4aq1iI2LROkUohEmKkviVCys92/HJkmwTn26xW2anAu8PT0wuPzE5998ilPT8J0+Gt//SyKLQAlbNhgxK+YRcmqlRZ/oTLoYupXxQSnkvx/JFL6NTpOXKNl5JYyKssDW2mJW0slD06hqK1hu1nz2Sef8Nkn71mv1+KdqxQhRCoLdaOLgtMBFVlbbN1KcHOCEDIv+wMvLwfGcWGe/TUw3lY1dbtCGUtIgcUHYeUa0CnhY2L2nul8BgpBy9Yi4y+ZtG6R8PDLbnRxMz5ekoMCVkmwfLdq6Tad+IkLZ9loxTCemaeJ6SeH9IUd3Pc9fS/KwrcPb2XK0FTkvkMlT/LCpe4qyzyP1G1HXYnxftU2uK4lBlfem0wKHr9MxOCFRlSoUanE+RmrxcsYIiEF8PJwy6dY9rCqjNdzsfdcOt/SwRLEb5xMKgcQ5VfKDldlVVB/8h5zydlVF9uRjBFRClPZ61g/pYT5CXjhcknTFwtNykRJTCAXwlIqfuLaGrY3d0WRvKbrVwyHF0LpKOuqFbpZhnGaiiLbCefbCxHKO9kp13pFCgFylgSn9Zr72xuqSoK9X15eOJ9OBQSxyK3fGHlGg5dDScF1J5MlLQlbUVlFVZlrbqg2mhhlmiL7YXk+QxAqlo+e6EQ8Zqx4lE2S30tob410xHVDTpGqqjidTmIxKpnUznvxaWawMVLFwOTEhqONpWob7h/ecPfmDdvdjqoRr6bSoK2iair6dS8rBmBxjhwrOZgv+82yk83KElMguSiF3CdSV9NUcjnLVWR9/0C/6tHGkp4eSYcDDsWUMlMIhKwK61qDdzhliCgm5zkvMy5FkpId+WkcOZ+liOQYr5GULiMJPbbCKDB1g61qkjZMLqLSIv7wkFh8ZF6iIAdLApVWis1mRYqiyr5cUsmZ5BfG014mHM7hllGah5iK7SrTNPLvu+pbbrbr64Ssayqs5soDCCGglHDVU3Tk5HDLRIyBED37pxexOjpX9rlij0zB09QWf3d3XRPFKLqW4GXfuUwjixul2DrHNA+Fm+xKJJ7k2uaUrhap2moqo6RD12LLbJtaVjp+kZ2tkvWGUhebm0yjVCmmcp4EdAmUEW1NWb8Au5sdq7Uw4FMSLCMg+1tzmSSq0jXD8/Mzw3jGOUnEGqeRvut5ePuOaRnZH458+PjIy/7wV0vcz6LYXsa/l9m6LiNFKZLm6s0DAVNkXXyi5EIwKjvbiyNEi4DKGk2OMrs3WqLZTNlVCTu5pq4Md7e3vH/3lvvbG5q2ESpUUQpbC8ZklE7yJY4KMOiqQWnNsgSmZeTpZV+CogM5G7quw1Q1tm4wVU1CMm4XH3AxYrQhpIyPCZaFcZpRqviBCwDgIixanMSfyf92WC07nkt5Aqjqir7r5VAqjNsQIn5aODw98vz8zMcPH5jm6WqPSSmy2+642W25v79jt5KYqZxSgYtHcvRobelqy3BcUE1DpSXqq2sawqqDHAneMTvZ86ZiPUopE65xVqCNKqb8jNMIED7nayJPvije9AW0ka94NG3E0ymOH/lPKrtHjfoLupYqI+ZUMoBfi60qa5qSDOIV1rny+0uBlXCD1yzMS+ddaj4pRLISDN8F95mxZDJt27E1lrbt5IteNUzDmWk8k5MiBhmRh8WzeFdGu7IXCtdiq2iMQaUyBtaavuu5vb2jbRsAEQkVNuyyOJzKJG1QQIieFMW/ebFQWSO8Zm2MkMasBIubsl/Uhd6l/CVFSKx4VWXlQpcC2WfqWKONwtYWhfzz9XolnvGuux5owlc+My2zWO2gJABJYMQSAkwOZSz9esOm63n7/j33b96w3qzlGSwIUflzVHRd8ZqnROMaebYWiMkVAQyAJitLyFrIbSS8k9zSpC2NMmAb+ptbdjc7TGUZYkD98CPRGDzgM/gChTFlT62cI6IlOMJ78XtrsRzOwTEHhwtBxHdKuuKsDNgK0yR0quQ5slYKufNkJxMwFzM+yE/OMjXLWcbwVSXrrxREpHcRKqSYmEdHCHI+uEm6z1QmL1pruqaS9JxVx812VbzOUkwqnfFF+BeD6CykqC8EP7NMA84tzMvED99/e3UvRC9Wrdpa6sqy26wxqqANi7AoKi2F2nvG4cQ0n/HOEdwixXaRNdLiHG2/Eh2OsfRdy3a9Zt339G0jBLemIvYdRmuWZWaIi4zKraGuK9kDX9YhOWONLWrjgNOBqq5ou5auXRcLqZwNu/WOypqiD5H3TDzMCmNVUWIX+6FW3N7eimVvGvj44QPH44m6rllvNiQSf/rxT3z/w4/s/28otiBf8pSD7H605J1iQFmFsqIqTSQ2u82rcCVf0kTkr9e/dxHaRIJbrurlylblsh9pGsvDm3s2mxXv37/n3btPqCuxQ2grIhFbXZTLssNq247JK5YAbWtZfOJwnnh8fOb55UBGU7UdxtTy4RUqT0wZ5wPOyfI/I/vBjKDXRN2pRITiIyc3iKetdD0oEbhcxiUuS3pRU3fU67pgxpoSw1f2zPPMNE388X9+wx//4xu+/+5b/vTn/7xiy0SE5GnrpiDSbjm8PLPdbmmaWjqhnGTnWDqYl8ePJL8QtEZVHdtNT9vJr9dG8/HjR2bn8MFJbF0RZJi6Kh7WfL2ha6UIl6JXlK5KK5RRGGWvO5h8SYksgjEZS+ay245i8i/4zcuFTF5MxufGiMGGMhUpks4yCRFvqMFAElgGZSxqjSmG/WLJUrLLSQU6EFSmbWtZeYSIcx6FXOiqekXXOcIcWZaICyOPTyfm6UyKYi2CiFtGgp/xQUbmKUaMMlTaFCOY2I26ruH29obVqkdpmKeBYTgxz2Px5gpxjPK5ik2pkcScvmW1brBllaAN11241uIf1lpEYev1WjzhyG7VmprHpyeOp6Ps9peBum5ouhKbtlnRNDVt27DZrAtZSaYxp9ORqVwmLtmhgIAlfCRlz+b2lpu7O77+5a/4+3/8B9brLRnES7sIJCKnjK0MmIaQBWOK1rSNYxpHiY1zTp6hMipO2oulJyTGFAnZMEfoO8umr9BtT73Z0rQtq2mhXq0xpzPYM8kYQvGeam1wMRLjIqrprBimgdktZSUhF0RTVXTGknMuI/eGuu1YbTe0secSI+mcK0AYuQjPIUsARSqjfIzwr2MkJsf+8VAi6wZAglLqqqYptpyL2vm0f2E4nYHXhLKbTS/Rf+s1N9vVtaP0bhRRWBRltzCAkR2um1jGI8NJ1L/LPFGZxOzF3eC9o6lq8epHj5sHzsfiNlgch5fDNbc2xoBfJuZZLgLeCz1NBJJiHbo3hubOsNnuePvwwKefRHa3t2y2N/SrNXc3W253O1CK4/nMxw/f0dY1d3c3bDcr3DxSV4bGysSn71dXu5u1A7vdjt3uhs16x9PLM1ob+q7l3fv3RV/AdbR8GdMbo8oEpXR/wLt37wgxcCoTjG+/+5bT+cR2u+Xx+Znf/OY3/PjhR06n/xuKrQJMEn+eUmLnIJXOb2J2Z1yYCGnmN/8mOLjLL7S2eDUp+1qtsVZRVxXb7ZppOMuyO16cryJpX/c9X75/x1dffs3bt295ePdOkGI54ifPMI0s3nM+n5iXSW7U/YaoagKWpB4Zx0VELOOEQtO2K8wFx3aUh7+uPdVhzxI8Pni8F3pKVBlT8JLRL5LxmQVafj6fcctCBurCZjZVjTKianx6fqKuG1a9olutMVWNj4nxcOR0PDKMg/B3p5nf/n//nQ8//Mj+5YX9y0GKUBmbzvPIIez5+FHz/fffczgceHh4QCEw76+//pq3bx8AaJqmYCULl7fKVNZQ24raWjGlK/E2p5wF4H8B2/tAjnshaRWgiCjCLwg4uSipLKsCayVfVuAlUTqrsmPSXILoX78sSalrxysd6eWhKp2prqDYqEDU7Bc1c/CJJYk62jkRPhlriNZCpcjJlM5Xpg0UlW9SmeN5oG0bjNakmKhMi2or6qrh5r7m/u49w/nE09MHPj4+kxY5bKNzxDixLKOoXwlUJZFQ7DYGayqZ7BhL1VToShfFcJYLiVVoA5mC50zFzHLNQ87UjaJuFE0jgfVGQ1tXV7WsjJpNiZ2UahxDQhkBDojOW1KsYkHdiYClZbXp2e5WuGkheAn/0EpsQxeB2bIshdubr+JPKeSW1WbF559/zudffMlnX/yCpu/wORa+7YibRoHCK0XdtIB8Lm3X0ncrCZgfxIPpvScuMtrMGag7dNZk54jecfKZ+TwzLBqXLH/64SNTyKzWK5YApu5QtiagmRbBiebkmb1ELmZlhamsrUTSHQ6cjifZDfogyrksJLPFzaQUqeuK9+/fU1UG7wPn84mPHx/xXr7j3geC81JoUSis7CpdYF4W5ukMaUTrzKqpubu75ebmltVKMo+bumEcBw7HI999+y2//93vJBRDK3xXU2nwGiYSBw3L/Hp5T8HJ90dfGOsSZuLcwjIPGA19V9PUhhhaxtGW6VpFbcTT6t3E/vmRaTjLdym9XvaUgspA3bc0tS1j5JaubSRBx4jOYbe75f7NO9brLXXbMjtPQmyZh/0z43Bid3PLze0tbVcR3UBdV+xudvRtQ/QCzJA1VShjX0Pfr3AuXMNSqoJwvZCv+r6nJIWKpdQWy6a6GNWKTajUmZhlJL1arfjqq6952j/z4fGR//zzt8xu4TQMNG3L/f09/+//85v/Y5n7eRRbQJkEUcaNWSW5NabIHCbG5SzFIYwsaQalrm+sraXlV2WUaCshz7s2vAAAIABJREFUfzSxQleJ4XxkWZwQkGLGmIr1ak3dNPSbLW8/+ZTbu3tMLXN95xLD6PnxwwvTIlFM0zzJA9J7kq6JyuIjeBfLzghZmntPduE63okp4UNAV1bSK0rBTUmSNmwlo7zkPadFKCohOMZxIpfoJ2sbtJGbW4pJgpNdJAYZ0Sll6Vc9F7j749ML+5d9Uf7O7A8nFu/JKKq6ue64LgShFCMqJoytuL17w2a747Df88MPP/Lu3XvO5xFbVdS1ADzmMBJipFaUjLKEJtPWNbe7mzLN06AsPkrHN44zp+qEmuQzjSFerVmqrAHUZSGXKPt76axzknGdqN8u6wJVQt8L3/oyRgZeI1x+6sGW4nFdN4iZ9yreIeUrBrOu6mIbei3sWmsZSyf5c2cyScEyjqBEVR1dZLATOStiDZWxdH0PJbv1l7/8L3z8+D2n4wvn4wvjKOIflQ0Sj/e6tY45opJQeVJOjMvE6XzCl7348XzkNJ6YlomU4+vol4zVCA3JgNKS3BtTQCeJZ7NGvjNcvObx4t0tNjolsXgoGaVWlaFpJOPTj7J7vyA+SZG2rln1Heu+p25a2kZ45hcrVyoilpQhK132aC33Dw989otf8P7TT7i5uyPDVfmfVRmHp3Td58tHIvaXpm640LBcEVEVobGAG7TF1DJVQmlJxIrC1DZT5OPTCwnF1nu0taXdt8Qk3GRKp++T2H1MdbEdGlLZbXu3YHQFKUlMp9LEKKjSpqnYbVeSd92I5Wx/HCBnXvZ7hiGgSKiiFgfRI6QcyHEhugk3nUlxpG0ruvWWh/s7drsdfdfRNuKxzckzjZqcArVReCR+0U1j6TxHZlsRlqnYieTiFLyTMWn52oToSvfpCNFRV5a6XxdRkZaoxiiTqaZqaJqWqmRtW2MlTKRczoRe9woqykksnN4XXcdFBGoMddPRNjVaiz5DkeX9DQnnvMShkop3uwCPsi1rxyJsyhIAk8o/V0h3LyStBVvNdL1c+nTxoscU5HKpVMn2Tq8sbC5HzHWvSUaagZAid/f3KGs4Ho8Ye+a+e0PdCM5yvVr91Rr38yi2OqOrjLrsfCgpJikw+4HJj8I9joY5jMU+IDfyKjavY0SlqGmIqhKSzRA4D/sSgO1JAZq6k7Qeq1nf3HDz8Ja+X7PMDp8S0xzYH2d++LBnXGZO5xPL4mjaBrsosnFEpSXSKeuiGG0AxbzMhJDwXhivzstuLisY54kQfIkJFIShZOHKfu7l6QW3zMJoDiI0UcqilVB+Qggsc+B8HFnmSM6eaXIEn3FOHp4QIqfjmcfHF+lwz2eGcS6XgZq2X7G4Be88SUXQIgQAqKqGr3/5N7RtjfOeaXaM88LxPKDKAXmzuyGP87XTvIztc8pU2lCt25KFWxGzvB/jOBG8CHZSiiXb15cYwutMooAoLvsfyrMgDVtOheF63aICBS+o1OuryEvpa4crFzfFhcyVVTmic6nrBb5wEdUppUWEl7gK6wTfqMt4rPxiaaSZllmEcDYRXECpkRgyro50dUffKbSt6fotf/t3/5V+1fP48Qc+WgMqoE0mhgqURykRwSl06QDlvQg5wzTyfHimHisgsz/sOQ1nFr+IErv4yvVl51QbTC2wjkwgRCeFIcv3xFp7Ve6ngqpUKqC1LQAQQRpqK51B01R0bY13M1qVC1MMeLdws9mx7nvWq566bmibWkLotWQnq/I5p/L+1k3Lervjk08+5bNffM6bt+9Y77b44EtGaSz7+AvDOxcEqqi6ldESw4jBOYuxRg7DLCrelDKVMphankOtLcs8kcIiJKrZ8fSyJ2ZwIbLabonFh5uyIFeNltdMMaGUwWpBfVor8XkkyQbOKl+DN4w1xKAk57gWYdIvPntPV8ved7MRtbJbJpZpQBMFwkCRG+RIzB6dHISZ6MV33daKtrZs1z19W1NbDTkQXGSZzoznA6fDCxrRWaQcJVN2zFetipu38mxrhSq+d/nei8J3mgYWtxCCx1rN9uENu+2G9XpF04hOQGuFNbK6gosPXPK5jZFwF8q5rUvXaCt7zYWVdUK4rix84WDnnHGLKNd9LDzrIAWwsoYYA8P5zLzMEqmqFcE7gs54J0XYlTxa52bIma7r5Lx0DjPJOs15jzEZGz3zPEFdk4q4kp+oX3LOpcu9XArkQu+8J6TAZrvF1DVdv2J1PvP23Rvevn9PyukaIfl/+uvnUWzJ1BuLTboIRoLkd6bEcdmzfZAbw8WQrEpYuDFC8rko0GQXlQjaEdPCPB5xYQEDpjM0puZ294Zffv23/PrX/8zf/9M/o+uWx8OZ77/7wDDODNMsCj9v0PUNt2/foI3sEGNOpPLBxPwaSh+LjUV2LZT0F6CEH19n+Uoedq0pPFpdYAqGaS7eU93Q9LXgF+uKnAz7lzPDMDEMZ15enpmmhaqyNE1N8CPn00RVSdJN22zI6YX9fuCbb74Rm9OFT5ukddGmobENTbcRlXPw6LriOEx8/+GRZU784qu/4cfHZ4bZ4WLm9s07TLui7gKhwDvk+6WuySZ+nhHHjmJxkfM0cjqdeXnZ8/jxiePhxDROAibIr1mnRMjKAhalKqz12Iti1lqqqkFhXrtfIEVTOtxyPb/AHpKUKvTF0ymj0Ndut9DKLh3xT/rdnGEYJhSiXq8rsciIurtk7F5sNSSCSuxfDrLrUYZl+v+pe3MYybIsTe+721tscfdYM7OyupZeqqdnWuEoVAlQIkFgtAEokQSBUUido1EdlQABAiMQ5ChcNFKgRmAwEgViBqTA7qnurq7OrIzM2Hyx7S13o3DufWYeGZlZaJJA8QUC4eFu7m727N57zvnPf/7fc3QjTdOx6keOJ5lxtkYkOJ+9+BGb7TUvP/2U3cNbxvGBeT4R5oEURRIOlFgXZr30vuZ55n6/K8lNwjrFZ59/SkoBP0lbgiQHn7Wavheln8Y5bEmmjJIAGEKC0Rf9cEPTqLPYRbkl2qiyVrKQoIow+3q1koRFi9DKYb/HKU2jDUPTMtuRw+6BY+ltWWtxjYzYRBTZWF68eMmnP/qcP/jFL7h+8hTrGmE+owkhipj8/oEXT27O+12BMZa+E/vElODu9paH+z27+3JfimtYzJmcI51rabuOZrsVQs5wIE4niAdiVBwPI95n7ncndocHjocTySe6tufq+oam6UReEoVtGjkDtOOTTz7januNPw4Mwx3btiFGjw8jJnvwAw/vvuHXf/Fn/L1f/JS7uzuGQfxWdZzoLbQmc398oHUdlYcwDBMqK1z2dDoSHdC1NI1mHA781V/+aylAoiSsh8OB+/t77u/veffuHVYbrq+v2Ww2pJh4//aNjFo5R1dm67UqVbAzNK2IggxHL2ITOUDykDTbdc/11Yb1erXwIhRAjIynw4KELGgI4/I6avKdU1FeK9MPwrPxZf8Iuz8mkYVV2mALmVRpTcpyPo6TR42ChhjjaJwlp8ju4YG46kq7SdZ117T0XSsQtnPcPHkGCD+haRr0OC5e6a/fvmXdijGBUaDs2QVOVOegmtdkZLY4I1vi4X5PQow2ttstx2HC2u8PsvX6nQi22mg2170otxSYUaQJ84KbA0vmUXkuoMhlBpXSZjJKlWwf8InNVSfTD0njTMfP//AP+Dt/8nf5xZ/8Cdo1/OpvvuTh/sB+P6KUJStxxegbLeLcrsFYi9KWlMXOLaYZH2dCEVuIJpUKLJfnLAuua1x5u4CUlq+lQjkP3pPnUs0HqU4imXEIRfze0rYTTeOkx+MzRje0jSo2g07IPwV2VWjaZsXz5y8x2tK2Pb8ppKhKKkvxTJASyr4YNAw+8L//q/8TlXMRIF/T9xuyEiLY7jDwLGSM63BZl/GQgbHIMN7vHhineUGBfRDIu460RC9yln3b0rlGRNUp+tbaYFwLNKAasTRrnBzWVj7WRS2mxtsqkFCZwxVhpnxNG1EHslY0g8X1KV8c4FUEpaoqyf2vzFalFLZUgTXYVgJWldGj2CxSyG1GiXuTNWIS4FyDLYP35EC/7knxmhSfMftPiPOhEKQGQhgFcguB4TCIkUIIUkGGWdiopRLXSP+6arfmJDAppUJ3VhUDAyF8KDQGg1Uap+3iNSsVYVpminMWM3Jx09JUd6lqHjFPE74oJYHCasOT7ZbNqscVBv9m3fPy+TOMtYzF1i6kxOADTddz8/QZz1684Pr6CV3fowpMeRoHhjIS5ZwjFxiyMsUpvWOVIMbMaTjxsLsrYxl7YeyWYJQA7xWS9jagpYWSo2e/H0jBESJ0CZqUOewHxnFGa8svfvF3+Pv/xt/n6bPnNG1HKKI5KSNavE1HRoRW7m7v0EaJL/F44u7BY3Jgf3fLX4WJf/HPW9HMHYSc9PXXX7Pf7ZlnMX74+c9+n9VqjTUWPwmidXf3wNt54M39e6Y4ooywvsmKaRqldzrOhOhl1CfEUiUbop+YB4U1jnXfLMTOGCbCLGs+pkAInqaV9lvwAWs161VPzq1AumTGUcb3RHVN3u+q9KaoLZxqklH2iy1Sn7nuta5aX5R9KdtMmL4GH+tZrooFp4x91pHBqYjzWCsIxqpvUblyRQzTKJWss5a2kXFJECvDy5hRswURuIl4PxGmSfZROStk1Ewv+2L5/pz4Yv9lsWPMSyCu51AuPImL3/ad1+9GsNWKvm+WsQGxvqpjBMsE5RJsYxEryDkTygEjvbm8CBxoZAE0zhK8MO6sMzx/+ZwXn7zg5ukTpsHz5t17Hh6ORC9at9aKP6PSlqwaUA50gzJONGuzkVmvAJpA1JqYEliBGVN9DbEkCRXKLC4jiVwyvVCk2BIxZhHWT+LS4r0nxUxOQcZ4ioqR9DoVRguEmrMqms9ymOeiymS0ZbXa8PzZC3xBClIUYkaMYalEQ5nTDMWP93ga8NNM2wk5y1iLjwlzGnnYCyQdUyIEcR2KKYkowzAxDjNz8NIbNeJO07hmsYRT2hJWcRnlMdqUzauk+mt6cnakbIutncNYGfty1gk5CHURbIXUcCb6VEC6spOLBKPVEqhIC3O5BlsNC5xaZQylQq795GJurovzjynVdWErameWYCt0L1OM66vfshWpQiVsT6UimlTMAq/JcSTHWQb/w1hGLDzjcRTGZumjzfMofccUJWlLXp4rpXeaIzkGqs61Xl6rwlrRgLUYkW7UZ+YlsCA0l3OItb8tL0stvWM/C6NWLDHlffvRy09Y9Wuca2SoPxdxk9WKYQpFtCIyeE+7WrO9vubqicj9WSsCIvM8czwe8SEAmaZppfIuz1HOBOkZBjTBBw6HHbvdPQ8Pd0zDLG2HMldPSiVxkX6pQaGKoEkIiSFNy2jcqsCg280V6/WGn//05/zhH/whL168pOk7YsxF31uchIKPDOPE4XhidLY47yR09uzJqBQ47u+4u32Dn07ieTpNzN7z5s1r5jlgjeP58+c0TrNZdfTdStSVfCDMI+/feB7u3jLMI0llaQfELC0gL/KllQxXddeUhUllVIqs11vatpFZ9ijzripJv1tm94szmFYE72m7RrTMjYiobNbCMrfWLEIquXAmtNLFU7nIcGoJIYLYFQ/qSnoou2I552XHLcHPFbCtDDwKeS5nlErS6oDFShR0GQmtQTsXH+bi52ytFBVFzKIcCpIgK800ybpVWskanmUP1d6yKqpq5++lnCeZcZoRz/WLcLrse2lvUN6H77t+J4Kt0oqub6jzTsu8Xq3ALl5EQvqdsTAeKaMsQJnPzKX5r0p1iEju5YS2iqfPZMbONQ2vv3nH2/e3HA8TjdvI3TAanTRk0Us1OWFzomlF41bk7jIglYZWYDEiM0ledHfFhi4vFZipVVhJgpakIkqwTUF0amPkQm1JBPjn5JdERBa8Ef3cUGGzjK8BxOhFDGSzueL3N+sLGOeigkmpsB8F/p6miS+++ILX+68Zp0mcMUp1E2KiX6148XwnmyIlQig9RS8EMWMcvW2wTYNrRXEoZ2Hw+rIJipIEy2ws0md0xmJdR4iaGMX0/rI1YLQjVW5U6beqkokunKmyBjIXYy1Gnn/OAZmtpsyV6gvW8vn7Zeb3DFVXcpSYYIikoV6Ce0Y3rgRegX4rg1c0WA2K8p4j/SWjwWhhaloLRsmhl5InxamQnUSMRawZheQ2DEfRrg6e6GemeShCIjLXTBLEQkWZ2V2qEVGFwFiLUxZ3EWzrPbi8d7K/kIq6rBMh6VmqocQ4juQk882ta/iDn/2M9WpNznAaJlarDcdhZHs8cRhFFckHYfV2xa6tX6/p+xXKWLGoG0eOxyNKa9rG0XUCEVIUvOZ5LtaP8t6M48z93Xvub99xf3eLyqoc5LI+kg9Lv9JaJ6NUKpPDTMrSax+nCTeOZAVPnz6l7zvW6xU///nP+fTlp9w8eULbd6SUykhTZjiN7PdHcogMOZODL31hBVajs0fHmf1+x1evXvHLP/8zSZiiGJXf3t5irePq6pq2seicaJ1hvWrpm4Z5DjzcviP5kTfffMXoZ0mGtLwx+aJ1dU4cNQaILhBmTWgaVv2KvmuZlBC5jodp0dJOyJr2ZT7WT9IHbaylbVu22y0vnj2j6zuaRpi7sRq5xFT6/nb53SqXEKPkOcViylCNX1I4t3dKi7oQRyNwbmHEHPGxGn9IkRVzsfXzM23XMJ5GlJI5W43idDyIMEfToJRazs1agcpomyVmOJ2OuNBI0uhn/FC1lqus4/ncOCNYgtL1/eq8V9S5nQkSb87ckf8/BFsEsqvXcnCWKtZeNK+TElH4EAUyqDJzaSlH8vL5nCPH00iYEgrLei2avcfjkV/+8pf8+ldfs98PaCX6rSlFDocjs4+chpGQNV3f06/W3Nw8oV9ZhuMdx/17Zn8kzNJDy0qUfhRCsPA+Ms8Trm2KdqwMW1eZPOcEGlFWgbUorFSnAmxAEsJICNKfmfxcxpcCIcqwfSWRaCSY1wUtxvOxqNZYpkhxIjJYwbOX+yybISxMvu12i58nHu7vOR6PQpE3wsI8nUROrbIOjXEo3dC2Dtf0tP22jF0JTImRHjew2CAuTUEoog2SBaucyUqjtANlqWb3ApSWkFjYg5JL6jKeUjdrOWQzi3FALNZ0EKmTLFnXNVQzdL300esGsoXosQTfuvl0GQ+ola0SlvSSCasi2FGhFeQxcsfl64laPGd8AoPAaVprrOuw9QD0Aac6sGtsM9OsJnHASqEwjyM5eeZp4HQoUHRRqgrzTI4BbUTAoLGOzhpMSpiYsEqVykTWjVa6JICVE54XkYDqP9s0TSFViVRkihGNEuEWZPwlxUicJ/wwMh6O7O4fuD8OKGuxTct2e83q6oq278soj2I8njiVeXCtdXGWEXeZFMUUfCyuOZT3OfrAYbfnzdevuL+/ZxqPdM0KpQQ1STGKwEM4m9bnwrTTOdNZJWzXUVAaHyM//ulP+OlPf8qPf/w5q1XPfr9nGAZ5HinRti1ai0jLPI746USYThADTjUoq1HZsm4bbq63zF7Gob764iuMtSKAQSb4iTDPaODh7pZf//pXvH3zDY2T1kPOma9fveKLL/+aw2EPtiTwZZ3ZEhCNMUVRSXxcR++lAtWiC9CvOtbrNfp4Yh4GsUqsASKLDkFNNKukYd+Xmdyba66urmgKS3g4CQQefCya45fokCEvAbLokEdxG6uuXdGf5+tVkr2Xi8mCKvuvEtx8DAtRSSMB0DpT2O2KprWiqNY4iIkwCxratR2r1Yqbm5slUKqi162Noe167h7uadqW9Xot1fBCilTL69FKydmqL9NwHsPS6nzf6r8fiup81/U7EWxJiTSH5bnmiyeuc2WiyjRazhmdFAbJ2rVVxCSLkosMvdor5SjWXo3r2ay3OOc4HU/c3x149dUrcm5omzXBTYTRcxwmgYkOA8o5cr6haTSKTYExBLoLfhayT+lr1P5jJf6EEIj7Oh8qdnO191CJP0t2qAyu6YTVZxytcyXTAvFlll5byiIOn7xYmmXE1aVKDioQ95EYJUhpxVznHDPCri3m8QvcXYKt9zN3t++lQkJUhxrnylylFQAoREkQUEWZRz6Wd0aMnKWaFWJYLALqWBYFRunRCkqg5G0ll75eru5FpHMABSg/vzJcjZJ7XN9tVQKcvD9iVFDEdM4QWJReXySWoC0kKJagI+9foMo1CoRUFaUWAl6FvXK+OHT00nNSdczoEo5Ssl5rb1hlYdfWWT9tNK7IS2Y0PipilrlOZVsULeQJVFigaEXCNVtW62eE+YSfxSM4xBlV/WQpKlQp0htFbzQ6R4qFQ7mzpWwCclaoHMsalgQsefFUVUEQm/kk9mMKMBlef/UVVe3Lx8wwzRzHmWkYpZpy4lG77lePKurgA6dhWCQdV6vVotwzjiP73T2H3Y5xGPDzTNd1kDPzNPP+3Tv2Dw/EecZpTeOAmElEEcZBGP+os3hL8F6YscYKa1cpYk7sjwfevH0rFfeqx7qXdI1DGcUcZ2Hu51hsHRU5x0cygn3XYp2G3JOS55NPP0Nbx93dPe/f3S+GDj6K/vMwTozzzPu7O375F39JZfWnkHDGcDgcuLu7E0QpyRiUrHmFyoJGRV8Kkiz71JoWlKiTjWPmdNiLrnKUed+q8pVy4jicGMdJZn2DZxxGIfwUVybrDL95VYh5fsYqmROW5yjKcNZKAWHN2a40I8VOzMvGK3vE4owgPFbLWVf7sLrAtwIhZzkDCsy8iAuVdki/6giTF9EXJ77Ixojsa9e2YuT+geFFzNK200YvrYicc+G7nBE2VfqQ0n5UFYBbLvFHfxxe6r4+Ey7PyfV3Xb8TwTbnTBhnFueXpdKoL6BURQoR0AbkABa7s6hqv+mC7EImKUPSYJRb3H6iF33ih1sZj3F2hc4G34x4r5iGQUzZx5FGdYBHq4gxEREpFBeLFAJjgfrGeYRigXUJzfkyyqBKJaW1KQzZ0v9b6PiGtluLlrF1rDoZT5KqUhVz9rIYjEFnJfBNRpxPXPW/ldGPnGofRdMkgd4rJpJzpGpIpygkHPHeNFgtBKYYxDWm70SZarVaseo7bGGBJzSlvUbtwWQlUGrOZ+/TOgtJhjrlqpVsusbZYtAsULMOVfxA4KMKI8mmLc87SRWKEqu2WjEKjGNK0NMUuYwSNC6JUALFVRBEWOMXwVZrFg1aav83PoKWgCL0fyntWJKmi2BL7XdC6W82cpAkSrAVVELmxTPRsGz6hBERBax46KoyDpSl/6yy6N9a09A0ArNb65eqV5PIWYKlnz1pHlAqleBT+tJlr9TnUp8bZV63JmI5Z1TMZC1uW2nyi/Rf0B6fBqBCiIaQkpjXO0c2Ftv1NG0r/1/moosd4DwXbV61jE147xmGE+/fveew3+EnEWBw1pKjVKSHw45pHMgpYbV4WCdkjlYYtX7ZL5KEB1KcSTExpyQsfyXnzBwDt/f3tF2HcQbXWJ4/eypz5JnFd9poLeuvwIWmVF3O1soLrq5uWK83bMaR7faapukIKSwz7bmusQyH44lX33wjSXkIaCUyiOMwcDgcCCkQUsI4S9vImbDwVIqWr7MOZ60UEKdTgVAT0ziK8EXbsFr13Nzc0LaiA3C/e+CwP7I/HRinicPxSNsVqdd+RQyRcZrlXBtOdE23+PbmJP1tVfgJWVP2XAk4RgmzuexArTVWu0WhyRl7PgN12S9FYCWVfV+DrTVW/K6ztH+6riVMXip8Y5mNICLBh0VBr2mEra60EJ5CKloCOVKZP0pR9A2K2QA1418wt2/1XnM5P+Sfc0BVBa5W9XjVfO/1OxFsU8yMh+FcnSxjPKXyMGe4AaTHW2cf0eAo8OASbCOg0c5CTFIVKctxt2d3e0+MitPhSPaROYyoLIsiokULmIhzmXVvWfeGVa9pmoRmRmVPzsKwPe337PY7docdYZ4xRi1zjAuZpvafL0go5Lz0COrhbMuogTGumDS3S7/Mlg0lDhaihmKR91/EuGPpHWgaV1KREgBaJQpbjxh25bmItJ4E3+A7Xj57xvD5Z+x3O+Zp5ma74fr6hqurLU+fPmG76UlZE6JUrz5V+FoWnVX1fRE7O31mIBXnErk/zhi6pl3mMXMSQfWYIzFFkXEMkRBECjHESIiV6X2Wu0RrMgpj2jIeYDGmKbBvrWpFsF6UkDI5iSZz/DBNVepx/7cEhUtC1bJey/1rTbNUsLWPXCHlXH5eJVDZ8tiFG6yKJKMCSEyVUKI1rm2oWz+RiFkqo9mLcTpRkj6xM9PkVIhYthXTb6tEOCV4UOKsczzu2J326DQV5nJ52blAYpnF2L3CdmH2qCzerkuyEYSQorVGpYQzBaEgEbE02rIyhitt8eiS8Er1YrQtQiFFwMIHQQ+sxRnLaTix2+159/Ytr7/+Cu9F+H2zXkEWprifZobTkeAnnDGFqZskmBZLtBxDQUHkHjqNJORlcC9myMZgtJyU7+/uOU0D7+7eMk0jf/zHf8T19RWNswIJhyB7KIrbVAwRlCQ8tWtgjKHvV3LuKJlL18ZyOh4ZxpFxnoo5SYvRhtM0M93eiQhG43jx7ImIMcTIHAP70xGlFNv2ipsnT/j808+WQDuOYg6yWW9Yr1as12t+9atfsdvtlr6lc44XL17w8pOX/OT3fiLjhcPA7e0t+9PAV69e8erVK96+ecd+f2S7mUgp0/drNpsNfdczdj3OGFKqDSCNcw2Na7G2WdoLEl01xhlKk6dwZgxWu2VM0xaz99l7jkfRS0CrBckMFa0q97OYeqGV2FSqKFwBYzSxEugqArq0sMTnVluLTgkdRVBDnoPFNo626yhN8GW/L/P3pbBZzgEoRCwp+OqxsXQsqUk/y/d91/U7EWwVYON5vikRSSouwaiOeCwBt0qfLIGYIv9XFGTQGG3oilQYSUPSnHZHdnf3qGwJw0TvLD5A9jPzaU+zWrPpHZt1S1QrNpst2+s1642jMeKy07jMzdUalQNpnjBGjArG04DQwFUx3Bb207czAAAgAElEQVSII0U55LUqgaJWEqmkUlkqtWk4FrUdgT3chVi8tUYkx1zVob0qAb3C0HIXpf9ilz6gUhptuqXq0wu0KdR8GSGRhKDpHH/v7/6CT14+5f7+nocCZb148YKbJzc8e/qUxjpC1oRkmEPDcZKNP00TwzQWb19AI6bhGqwRf8sK3ZgSuHKKiBe89LobA9o1aKsLazTIweO9sJ0nL8baxc1FkIFa4Y4lQTNY26KsWXrLADrlc3CBC8j/zA6HMydgGY0qn6893QUWrsyJmsmqhfu1BFg5NMqarr9V1/dBkj+DQ1cR0ayLx2om5lNJHnRRJ1JAjzYNtguo6CELGer4MGJUwhowRsZ+ktMoHBmB6+xak40lOYcOA1WwXoFwDZQEfTlwCvszZVRbDzt53yqyoVVFAhQQClqQ8UmkM7M2JN3gUYwhMYbIaTrxZLUGJbO+yafC3BYY/XQ68c033/D69Wt+85vfEP3MatWyXkswUUoxTROn01EcYxDvVmc0VtekFQIRkpcKpDxXYxLOlvES7cCa8h6IV69WmSnMvL19T/zzP+N+d8+LF894+eI51S87ZyG5tdZJr7L0r32chSXti3jH16/ZHw/c3T8whcjucOI0DAQSV9dXPHn+gtVqxew9Thv6Vcf11RV/9Ad/iNKaL7/4AvvLXzL++lc8ubnhk08/5fd//2f8yS/+uPSNhcwoc8et9Hut5c2bbzgcdqQYOBx3zH4kE2kaSyzOQTlF1us1/WYjI3ne8/79e1DimBNlQ3J1fY01ZkFBlkWehXFsVCUvFoOYEvSUlZTrjKIVwmgIzCGg0lzQIkPXrkqgrQ0PxBKz9GyrvR3IXHtKihh9QQMvJgoKYqi1Ed3pKpZjzMJrSSku2vI1UY5R1i0qk2XTP45JlQKklIxllo2vUknE63mif6Ccvbh+J4KtkCNEcjBmmbWF5fVAFghHZNyivLGqNrzyEmygxC4AlfEpihKJczjbYle6wCKKnMeySKRnMkwDru+xrhgQWMN607FatXSdxTotbOEynkEWOKJrG0LoIQk5oFauqUghpqWKPI9YUCpBeZqKrBKqEFByjsQgIGdMARM1IWhC9MXpxfPu/VucdUX4ol2yKtGRbS5ckkQ2UZd+6pIJlkVdD10hTUDTyFB41zjyZsMcJqqE2jxNopZjO0zjcF1P1p66VRKpmBzIAjalcjBaxp5MqWil7ymZpKYozRhDtqBMBp1xWpGtJSZDaBytdbTNzDQHxknm70IQhrXYhE3SN1YKr0e0kapXIXC7M/a8QQvERO01pwLTZpY570roOBtblNyuKssgCd0cI/V/GdFLrus2l5S8Bl2lqoa3MLWkvhUNaI2Rca56cGlFRA6BpHUJcmUvJCH4pFAJc4mIoABKZTQzgxGxDxmr0jjV4NqtrGs/lDEigXvFoiGL727OkAIY6U1Ln7DuwbxUKzWDTzGCyksybIxk/lJ3ZzAyo+yspS2JY8iF7Rw9VhpyABxPR+5vb3n/9i3v3r7h+morRt/9inW/Kq0OMR6PC+FHgn7f98tccaaOyJV2ksqlvWLIIeFTpLVdWQMikUjtu5MZxpE3794W9bMTpign5ZyZhrEkjRaF9JZXqxUpUZyWDJP3TPPMOMwLKtW2LavG8eLFS54+fSqztdbIeJvRdH0nMLYxbLdbnj17xuwn+r7nyZMbrrdX0rMGUjIL7G4KmW8cRz777DOapmG/3xO9lyT55oau6xinkRTTQkKbQuTZ02cy5rPZYJ0tSc2K6+srrq9vRDEtiWlETTSrEpta7LnUmbmrIKskkxIUpERJFrrAsIW5rGu7R53Pa2FllL2TM2LWkQWyLnsiFeSzhOCzuFBBvOo+j6k6+ZT2ouKcyEY5v3MWLXF5XnpJPsupvDwnlXORjSxfMfUMOAf75f58f2H7uxFsldK03VpuXiEXLao2XBxglKQiF3ZyVEXHFRb0XSEHg9xaEb4GtLE0TUffb5jmhLEjePneVCTofPS0Wno3TScar9aJ7J30AOu8n2xmo4Uh2LgG30zkuRzQUTZ5Kr1HqInTglNKH7ZE3KQyph7qCxNOfp843KQSUOXAf/v2DaZ4NXZdt7zhSqsF2hExAE1KZSziAgrNF8G2Sv2BKK9srzal36IKvDtiTvL/lFZ0nfgCO6dxjaYp4zohSQDJpYlhS79ZK6ldjRJiVP28UbmQO86fQws8V9nTOStilhGTrmmZZs/gZukpTRPT7MmzJ2RfBEUUkRm9sIJFiQnnSo9IRgFUqTJlNIay2UrnMhVZyZjxcxGKUGchCV1GHJRICSChqqxJdSZt1ay9vnFK28K+VuQsIxNa1Tlcgdtqz1cbW0YXSsWWygwgkowFXz1OC7xVoPeqV5xJZexFdI2zUWjtBG0wDh2D6GCmgMkJlTwqRfmrRB1KKYUtGyqXfjf53LNMSRJfXQAEpTRZa0JM+JyJKqOtqfGOprJyQ53zFEKQCFAEDrsHdvf37O7vOe53bNcr2qZhs1qz6nseHh7ETnASQlUlzhhrCyyoigzgLONvy5x7YZtrjTKQU5C3XcuJkaLAhrr03mOK7A+HomA00TmxTFRK4acJUDgr0GgI0lfNBX50rmGaZmIWWcntdlsIlIm27/nks0+5uroSMlbXY53MWRij6VqRnb2+uuKzTz9jve4x1nJ9teXJdfUylhaQ1pq2OdstppT4/PPPub6+5ng8EuaZFy9ecn19xWq1ll6uYvF3jcpz/aTl6uaaFy9fCvLkrFT5Wiwd5T2OBBVLT7Ygi5k6HLskuBVajORzUs9FQXRxyf64QCnPzdKFtpdzRYNKYFMSaFXhuaCV8DoqMpVFl0H2jqypzPlcy3Vv5/o3XfRryzK5+Lhq7VfSaU0gVFnn9VxbWoEXyOL3Xb8bwdYY2usnwAWTt1QVQBlWlsOkb9tlZjSEwBz8Ag/Uf1OUIOKUiESEeWaeDJttx/bqGaukmKPm9PaWRJCsSll2w4BqGkzbsulXJBTT5AklKzwcDjhr6bqOeZzOz18pyJoYqsavsOlUUihdxl90na0tyy1f8GxLRq5QdK4R5uNFNaxQOO1wxtHYhsY0cp+mwBjHhdmstSbO8fLOVjzz0UK4VFGq/885czhEdvt7qstNJrI/7hanjCdPntCtNqzWW26ea3KOKGaMnjF4YROrIiohDRCccfRdBxl0Amc163VP2zqBjZLkqFqBMyKkLxu9jEEpA6ol9CISP4wTx0JKG8eBh/2O1gicHJPI3vkpobVUi6AZpyNJsfSIMAZtDaZpMU2H0g0oS9JiBxjSxDwOjMMIKWDJOJWIeYY8L7Cbsl3hBdf+TlrW7KO1wWWvp0D/lE1cDidRudRlBMqCOhth28UCjHOFqzJayb2bg0fp8+8dx1kSBK0ZZ8dDFkay04pn11tWrcOqiEkeE0eYj2U0JrLuDDl4cvIluTPlwFQi9E8SSdIMycgTijnjZw9dyzF4AgrTNLR9y3A6MYdAt1oTVcKHmeBnGies+8PhyN27t3z517/i7s1bxv2e7D1+GNisVjx9csNqteKbb74RF6FiYiHG845utaZdbQgR1OzJWZMpiVS5p+iEMpIauazx84lU7q0pa1VlFkZ6zghreJrZrlc03ZrNesPN06ccjyeqe8xmsxELzCzfv4xIIazcH/34R9RpBNdIYrxer8soUYHkTQ30shef3VzzBz//GUBhZ+tlJr0ybS8tEhdxkovz8vsvxQq1+At/eOWcCQtHUKOdXoqb8u1LEKrKScvZks8oz2VrhQ9/1xJoz6XU2cmtCBKV9y7kMqkQsvS7lSTGcwxEBUlBIKGsKchSElcsbWRiI0ayP+u4LyNmtigjFIZy3aDnGf3znL8vPr5aa+HRGFuIjfL6F8TyB67fjWCrDG2/frxwUpm30ue5rCocH2NayD31JlaJxFhUdhTglCFHsXsz1mFcwzgFQsyMk8eHBEr6EM41NNpimwYfI7e3twzDcJYA0w5SYLvZst1uaS/o5gCn0wlbVUyiyI0Jc+28IXRlTiqK9F5ZuPo8hrqQqOrjL8hidYxhtVqxCGZc/P2QiFVn0JbKX11sDM6wh0IyyTqbmj4IxjmLys/hcGDygdl70RN1Ddpo+l5jjGMafZGw9BUAQiVFTkEModum0PMVjdXlcDJFIWeGOKHSXNxnDCiLUg3GdmRlZTwgRiY/sz/uOZ4O9K0owoSYmH1gR+IYBzEPD6LEFHNcoN2oMhRNbW0dpl2hTAvKAZa+3UJSOGMwXS/+vfPAOByZxweMihgjLYRT3Amp7nItwxl6Xda3om3bRxlwHTvQC5tTLdV4VgZlHSkJIuGVYqqHASV+6PJ+l7lio897Z5qGZf3EJMpi0rt06FPiNI1YIjZ7VjqQ5kCeJ+J44EF5GS0qFX3OBbLLmZAUc5S5z1gq2+A9c/mrVz1BK0zXsXnylOu2JZDJRtjUomNeIHEfGedS0d7d8u71G/b394R5ZrNe8+PPf8T11RZjZMZ7v99zOp2Y5pmsFF3TsFpvWG+uaFzLYCaUtmjjijRjRaLS4jtbVcNkLDASBd8k1/uqzt6mtiTVMWXQin7V8+lnny1wbn2sKlC7QhzHbJnJrDKX9X0w1tI4RyhnWzU9/3D/1v1W9/flGqpfT0VU5PKAr8YeP3QJbGsKKekcYJavlzZXvWxJ/C+/XicL6vcqJahCmZqTx5XFumCTBeLIUDyhK/JQzsF8pkCAIEiXVbFSBcXUQrZs2xbrzCI/a6wufBUNKuNsI/s9J6ZxxllTTOcbNusVN6tObE1re+/RKOEFUfci6b0MwpccjlzRDT7Y+B9cvxPBFkClOraR0Zmlp6mVBp3r9KQE09IUNySyPsPMXAQb6UeJz6jSRkQR0Myz9PtCodsbI4xW7wPGwqEIvg/DIP2PWCXkOlZdy/RENEM3282yKavW7DJzqUQWzhh7ESz1eTMVDeW6y5WCmB8vrMuqs368vLbv+PrHLnG0kXCaM9/awI/eA60ebfTKql4IIl7kGLUxDOMRlwpRCV3Yr1NRm8mL9FvjDF1jWK8amrbFOWGQbtc9/arFOUtKiePel/yjCpgkgWw1slFcU8TzIevI9ug4HDvWveM0nhgnL3J604wfZ1LMBCIxzIQUSFnkJX2ZXUSLnJOyLWgHyqFwxPUkrFllsCh0jpgss7+LNKJSC+kiKen91vV32eNcNi+QY/gg2HImGi3kNalsUUZM3as2sKrQv/ysSsCrKJBzFgG6qwTnuBDw5lm4BilL33gcRlqdcRoak5gdxGkkDCfm454cBmSQs8hBstBUiEkM1FOV2csJqxWpzmRqRXYOa2WG05d2UK1uUpR57nEYmYeRGCL73Y7dwwO73Y5hGFBGsdlsePHihVgUgthFTlMRVUiAWkzCu7Yt5Mm8VCXONWRTAmrRIVelutJKUz2AlxnXi3GvGmyrTds0TTRtS9u2vHj5kqurq0f70TlHQdaX75O3/1xNPaqWijD/h4lyvS4T5W/tz4vk9/Lf3/Y6V5NyD2U9SSVaJyfkk5cQbPpWsK3czvNzqvBveV6KZf3Lx4hl3fJjhV8ALGeTUo/4hgVSVkvrTGvxWjZKRgfXfcfBOZL3EDNtGZESx6YkMHuRp8wxUWOj1tA1jTg1lUInK0G76uu5nJ8XfXG7oA+PuC/lppaW78Ud/vj1g8FWKfVfA/8e8Cbn/Kflc0+B/wH4GfBr4B/mnO+U3Pn/Avh3gRPwH+ac/+UP/Q5yJswRXbKcKligUMsIR6pZalw67qiql1kXpZY39ZF4QE4lAxF4aBpGQmHIaSXi2TGJhFdKkf1+z2634+3bt+z3u2UOcLVa8ezpE8bxhPczSiOapt+6X/UlyQIylcGpz7f6ckPVS2f1rczow+ryw434sc1aM94Ps+TLr3/XVZVp6rWMMF0cLjEKuSV4gdGjkvR1mj3DaZAeWFa41QZnG9pG07YiIt73Elyb1nJztWa1Flm+cZw4HcpsaM5FoCCjs8YqEShoSv+x7Ry2he265TSs2KwsD4eGw/GE1TDsHWNjSpsB+ZnRFzJRwPtRGJIU5rE2BXY0KBrSOGBtizMNvevQOkMKaKJA3Blk1ESUy3Iuwbbe53Ref5d9I5/H+g4sVdTS+6mjNUpJVasMxjUXrHI59CqEl50jWUtOSWzRjIjjp5Tw84CfRtHeLhl3jAkfJFh2XUtjFK3V9E4TOkuYTsynE8P+SJiOpNIPXoQvynhGMW2ThEA6nlz1TQFOpALA2cXCT7xpaxIN0zRxPJ7Y7R54eH9LKsIWu92Ow+GADzOd67m62vL8+XParltGXaru7ZIIGoFyXdOI32kWSF0Y+a4osmXw5/2ilSJrvZib1GSlVqDAEhQv0aiaeH7yySfLOB7AXMQ2FJRq9bEEpvmgKnx8kP9wj+9ytrtef9tACxXBkjNqqeMqLFzOq7yEQ/k3xsCHwfaiY7EE28fRRy1BFs5k0PocJPCVKRJYfJQrfCxVbjX5AAo3Zs5yZjdWPJl3TUOcJkIK9I2j71pxhcpRED2thNA6ewndRUe5cW6xc63zwArp7ZvS961xZRlDPb/geiOWBKMSp3/oHfltKtv/BvgvgX928bl/DPyvOed/opT6x+X//xnw7wB/VP7+m8B/Vf793svPgTe/eb0svhDOzjRaV/WPtGSE9fqwrFdKLY9bcqhcG+cW4xpub+9BaaZxFqhJxzJS03N3f8/Xr77myy++4K9//VcMg8Bxxmj6tuPly5e8/OSTJQt/cvMUEBjzwwBa5e3OwSt9dPPUy1R2Xn10ybxDCN/aWLXnc3kgwEfgoI98/F2f+zBrrvf2MlPXWsQo+q7h+mrF6XTicDhyPB55uN8zDhMKTdO0PH36DMM1pImcRp7erLi+uuHq+ortZkXfVdgzMY0ebTIYESNPMRO9mAfMcyD5BMFD6mjsin7V0W8brleGqx6sDmQ/MqoAeUarhDMyAuMbTY6iP0yYyf5ENVtPMRFTpriSonC8ffcWpQxaWxrX0fc9TWNpGwMqE8MoQTsGkrKEQoTL8YIzsKAr5YC7vNf58a6s69YUppHSBmMlK5eRLVVmOc8qVtLLO68T0mpZ+8NQvEGLEfs4jsxzICbIWS0z2rb4rh77FkMUizXrWPXPca7MoJbgtaAz2sr8ojHihKQSyk+oHDE6015fCYtcKSY5iRbRjxgjX796xfs377h9+46vX70qY2BaquYYsc6x2V7x8uVLVkXTu4pfVNi2tmpqvzClxFgkH6WnGxZbxKTjsnaXhKbAlZctq8sEtb53dX+llLi/v0cpxdXVFT/5yU+4vr5eRDiapik649+GcS/31GWV+12B9sMz5GOP+659/X1ny/kJXS69DBc/X6v6qcfnQAj+0XOTj8+h9dFrvSgoapzMpXK+RHnq+whFsrRAA0KxZEEKABHAsEZ8tkePUoLsNLblsOrI88Sc4el2W0YiHXOccU1HRghz4+kkymlJmj6dNfTWihQ+3+7RXrbu4HwWP7oHVKbzOWn5oesHg23O+V8opX72waf/AfBvlY//W+CfI8H2HwD/LMsz+t+UUjdKqc9yzl9/3+/QStEbYfxlMiGH0rPNy+dikfGrlzTpFQYjs4rl/1llUiUlWfFX0YUQ07Q9rWtRWuYcR+8Lww1yjLx/95ZXX33J119/xf7hgc12Tdu1tK6hLdAnObHf7TBa46eZphGtUrKIwccgoyNaa7abjVD6tRZYsGAZOefSIzi/Q7OfyDktbOQYKgnMk3JeMi5rLLOfS/VUvjnFJcuqzNG6vBvnztnY+V099xseHfwsfRKtFDkGcXIpD2ysQamMn0a+/PWv+Pr117x9+5b3t7fcvr/DT4Vspi3r9Zr1as3V9pqXL1/wx7/4I37xi1/w4/w569VnxOSY/cQ8TczTSNtaUIk8SzWq0cLqTol5PnGIE2GypLlHhRWrVUdWCX96YDq853j/lvt373n/+g2748w0Zyaf2O/3aCXemtFPqDDhipoSJuJzIGcJtprAFCMhQkyKY9aM+wZXvIVdY4g5iE1ZjGTjhDSUcnFYCYvec127lcW4+O3Wv+mxPu1lG8K46oB1hvUuDwCBscoojjVMxzXkwqIOQubwwTNPs2gZ50T0XtaUc+QUF3juuOpY9x2bVc+TJ1d8/qPP5PmXSrEsLIFpqYG/MKhVxOVGerwadN+DcwQgh0hSIizp/czh4cBf/eVfcffuPbv7B969fUvrRC/cFjbsplS0n3zyCTmLCL0kCzWZLe9jDMthF0Jgt9txPB6Zp5EUwjKi9ThoFctAJTX50m8tycSlUQfUccT2UQvl9vaWu7s7+r6XcaPyM3I5sL8PQaqBu5IZ6+e+C4GqAf/Dn/Gx62OP/ejjAJQUM3XxqeUoKOv04p6RWYIiBa35sHyrozhQGMO1Ir14vrlgxBU6FmUpOUtsZfdWWFdxDrq5BFtj2Kx7gpMpEG2E0LpxLbFp8Wi2fc9V30uwDRplHDFHyEZU9pSo7bnyb2sMTml0Lq3KjLDuosiThlKq1gQpX/w/X6JWZT39vxJsv+P65CKAfgN8Uj7+HPjy4nG/KZ/7VrBVSv0j4B8BXG223GyuyuJ7DF3UBbkQpJYXCFDmCZWMRqAENRZzANCNFViyiF80bS96nlqTEotEYPRiHfb+3Vvub285HfZopbjebliVEQRrNKtVh7WGHCPjMHB0DTFG2rZdDoOciwB6qchjCCK9ly9m0h5tLLX0OM4VDiI8i7ByNZINVhUpYx5v7PozP/bvD13fVeEuB8HF1+vr8X7i9vYNX736kjdv3nD7/paHhx0piCuRUrqMRLVsNmvev3/GNOyZpxOH/T0pTjx/8QyQw3KaBnyIzD4wh9IqWGaAEzkmfJjQydCYSOwgOUlMdPY4lbA6YZVUaCpXbWAZhYnJF4WhCZ09xpQuk44oJvlVSaGUo1UGo4TrMQcJ9POoGYzFNha0bLSYM9kIXJoS5aCOS7BFneFilIJ4kR0nEW1X5fRTFcpTCpSGcVgCci5lhNa1r1vfo3NfPfpxcVnJOdI0LbOfmaeJ0+kkVbn36OBFOL9WyspgsRgC1oj/8na7gVyVumpzNpW+HizVrpJEt1FyLxOJUKBwqdBFzjKGyDROvH79mm+++YbDw47xNOC9xypNNBqdIm3bsN1uub6+YrvdLgFumqbFmapCvqnaqCEJxul0Kj1d8fWNUeDGx8H2vO/q/a4VzaWoyeXfGhzrpMPpdGK32/Hs2bPla8JGZtknHwbcD3/m5R778FIfPOfvuj4WyH+r/V6q11wgUGpSXu9PfdjFj1qCeIVLP7jOQjnCC3hEatIX/c2ytOueMGUNiYF7kbBV54BrSg9ZlZ/TGUu06lxW50yrNb21OMApJeI1xfc55+Ka5mdykM+pMtGSQxDGdVbokmwsBUo+u80tSbG+qPY/uHd1ROi3uf4fE6Ryzlmpj70NP/h9/xT4pwC/99nn+eWTZ+VJaxk0LweRNkqG+3Odb9Xn1ZBlU2tlS7DN8ljEiQdnZei5LCjrWqyx0uDPFF/XyDhN7HYPvHn1NQ93d/hpYrPuefH0KevNSlwmgLZpQAsZKsTANE2PoJ4PN+rpdBTShyouOR88rl5KKVwjJgUpmUeZdoW5KgmrBt0P+7SX1+X/D4fDb/2exCJHd/ka6lXh/HmaGMYjX331G7559SXv39+y2+0Zx1Hy0Xzh6gHc3lrevPmat998xZvXr/jyi5+z393yp3/6d9lshGQ2jicOw8gcISTRMzZRJlhNzkjzNWKSIboM0UEAZTWthat1w7DpGU8rrjYdaEczZ8Y5knxgOM7kHLE5Yk0uesKyvuZCmpIeVsC6FdFqfMgcY2A/Tswx4ZOMF+g6L6pkLCYXLsDynpbsX9WeVU1ecoWjLmzSOB8+l+tIWPIsfSBVelyKfBFsz5+fJ7dYMgq/YC1G49PENI3011sa5TEmcNUa2q4TNyrnsE2HdZa+t/SNoW3MxQFbDqdcBQYkARTTbTloGi3rRdS+RH84lkrAaCHOnU4DX375Ja9fv8aPk5iDFFOOWq2v+p4nNzfcXMuoz3EQpaj6GqZpYp7EErImHkpJsB0GCd4xRJk5DiLXmAsqcw5GMqcM6qMwYa1O676rsof1+8dx5L44Yl1dXeGcY5qm0ns/J9KX+/Bb8OMHH9frh9o+H/7M+vHl9/y2CXZKaZkBl0BT1l/9WVwUM7VfqRSPENNy/8/BpnAXik4y6sKurvRTjNKciVHCdDbFfctpVawQS6UrL0oS2Jyw+UygykmmEqxSdNaK2EXKhGkgT4o5elCKkMSe0U+DtJJiIPmZeRxJPqHTxc/84P15tJ8vzu3L4mNJTv4/DravKzyslPoMeFM+/xXwexeP+3H53PdeWikaU817jTAnqRBPCcDlphvjqAw5uQ8yx1azV9AkJQQArzIxi+ZmSMIQvn1/S4iROcgISy6BM8XINI5Yo7narnn69Anr3pHjzHAUibvRWNpuRdOvsYgx9VTIKEsPwggbOaVAiucMOiXZ5B8LtFprDsedyDpejPlc9qkvRxLq911WoY96axf/X60ek7g+7ANdJgCVDHa5oS8p7/M8M4xHbt+/48//rz/j7u6tOB/NHqMNxjk5BK3BmDrmIwfq+3fvOO73vPrNl7x7+w3BT/zkJz/h5uYa72dev7vDo0jKME8BFSQT1TFik2fVGK43PdvuKavmCucyqgG76llvOzbrnpvrLav1NUMwhKTxSbF72KOiaFprAutOmNGtU1iVGE475nEihkhG8xf/+m8YxoiPit0pcn88cpo8pzlwnGcOw4nTMHIaB6xrUcosh+3l+yYWaGHRoa52bUt2fIFsCOPxAtZEiW60lZ8dQsT7YYE5ZZREkh/vPWGQ9yYlUTEycWYuLkCttfz4xRW/9+yKH930PNk09JstTdvTtCuCMuxPA5MPhJxp84kUztkOAHUAACAASURBVG2IxZlIUYRJ0iIhqVDF09cRUKRxYAyxiOtHsIIChBCLHd5I8qL+1HUtfdfRNC1t3/Hy0xc8e/mCft1xHA7M88w4njge9xyPB4YSfFOMsq6sJudLglNhnJZENadzkiAIUT5XSh9JTj+2n+DMOK4jfrvdjt1ux83NDZvN5tFe+/C67NHWn1v70JeP+b7rYwf5xz53mRh//yWIz6KJvXRW68cfPPZjweXyj6pJXwnM+vEMsHjFSvuhmqXU/WK0BGCNwpSCVSro8lpSBu/JfmYo88z1/PTeo0LAIe/5sHtgoLLmExiNj5EpePxwktlxr5mHE7vb9/TKYbOW3/vheVj+L/m4sO0f35b86GMBNn440fnbBtv/GfgPgH9S/v2fLj7/nyql/nuEGPXwQ/1akN7Rqm/PPc1U/AOVwKoZROQgiz2SwHBnSOhSQUmVYBtBTJVVMYGPSeYCp6mYqyu6psU4y/F05O1+z+GwJ6dI4yzbzQpnJaAqrWiblq5f4UNiOB1ZGUtMnhzSQsoQ1wnRtB3H6RGbVxUBdjhvjMuN2qn+gkYg18ey1cv+zIfD1HVzX16Hw+Fbi+ljh0r9twbzGjSaplk2zjzP7Hd7Hu4f8JMQzHTW0jdXBkshVVnLdnvFdrsp32+ZxhMxisj97mHPl1/8BmscwUfaziFsWphTZH8amA8H4jSR5wkTPTerljRfcbN25PiU/e2OmAOuE7ThdBCXkhRnGiNOM1k3WG2J0wGVPNYknm47ntysWPeOrlHMgyjuxJjQ2fCj558yzolpTtwfZnbDzOAjpynw+uGeL159xZu373jz9i3WuoUstPTvUrGimybG6IVBmyLzGJcDvwbc5f4bA/FMfhLHlnaR4xumkWmcmUr/UqFkxjAl/DzjWidOTSiarhUUQIuf8fXVFT//yY/4ez/7lD/89Am9iWCssONNw5QU7+41+9PA/jQQphPdaoVzbdmbMvOoyVil0FqsAY1SZAxjzCir6NsNoWlgHAnDQBhHVMpYK8Yafd/TNi1zEos+UkIrTdM2bLdrIUVtt2Qy9/f3wj6d54XsddlLdc6ckZZZXHm0LipkZUY0Vau3csUYUWRcrbYu9sOH12WgnabH4jV1WmG/33N9fb1MTuT07cP2sgKtSetv2+apgfnDIHqZHP9tL2W+fQYU8P/x/fjI71DqXAhdBtUaWM+yqEps+6ozltFisUdR/tJG9NcyhRksIzopRqlCvewbyt84jhcQrlS2OorgDGTG41FacFoRQbTGU4QY0DnhtMKQUSnix4G+UShsaTvWPiyPfkd5wSKk8ei2nB+TcmZx0fqwof3B9duM/vx3CBnquVLqN8B/jgTZ/1Ep9R8DfwP8w/Lw/wUZ+/lLZPTnP/qhnw9y87vWUl9RrpzvEkgFehMBRueqr2QNRKWiVecxiqw1ERmCVsZATKBkzjJfbFoRrpcDTYg6E0arxadSKfGttE7EwtfbLYfTxP4odlbBmjKuJJVIzRpzLoQmdc4Xl8o7I6MUcLFoKc8jL+/x0oSHc2/l4n7JYwrSR70XjyErqIeMWhbLeXOpb0FBohfLefOp8stLvy7GwPFw4LDbk6KoupCFENW4RiqV1tG0DVfbG1brrjBDHb5rmCcvYK2P3N3es1m/Q6G4ut4yTIGgNHNWDOPIdDoRppE8T9jgsWmms7Df9ez3D/j5REweczLopuM0eqZxZByOYMEglbYxCmUM2mScSXRtw6prWa8aVq0imEzwTnxfsaxXW6Y5MUyJq2Pg5CNjyJzmwOr+ioggLMPpyOxj0c7VuEZGXlKUWdfoJ3IK4j8awiMj87pBq4ViDLLOnXOiZWyN+KSW0RHvJ1Lw+FkgVY0iJRGKDz6QEA9jrTU5GhqjiVqIf421PH96wyfPn/DJ8xuaNOIzZAxoS4PlNI7M88SRDCkW8whX9hSItWTGKhHPqIpLsRwyqVQjUtVc9G0LbGitYb1eF9SnrLtCUlr1PTdPbnCNI6aAD4IWKdWLGUXp28phXtanFrMPuZ/nGcpcmmkZltGOZS/Vvyp/a6rh8rpEdurjKuJTnXMOhwPH43FhGMsxdE6gL3/vh/3UH4KRL5/X9wlVfBfX4rv+f/GdopUuj0Lx+HHf+rmPPlaPPr8kEUWYxZTK9uzcxnk+tX7P8regDCXYgoxjhtmLdraX0TOd02JpSjF8ByXJWjkjc86EaUJZW0zjIQVxEyMGIc1lWduhoCPnXiIQz8UbF+duJXvpwiK7tNNbejyFo/PovP6O67dhI//73/Glf/sjj83Af/JDP/PDS2tF17uLSu08YAwQI+K2ADSN6NHW6zL7U6ponhpDQDFOuVhAZVL2hVxRJQUFtq4qOClEovesVz1Xmw191zKPI1dPrnn+/Bk///lP2WyvOZxG3r6/41/+q/9DILZywHQ313L4zfJ7Vv1mkZ00RYxB64UhUDZdWgIm6sNF/7hqvYRzL+738u/HNm7OGdy3YedHrFbOB4Ro1oo+rjFmGW+omrwpBnb399y9vyVHRZgTJDFXvt5e8/TJE9abNat1j7NtYVjL3G3f9hgsKWWstuzud3ytv+Z0OPH06VNmQHc9qmk5nU5E74UwbC1OCYPycNjz+k2msYntpsMYOI4nutUWnxXj4Lm7fU9QR5p+pF15vI90GowuZKngCfOEN5EpQpwGQS9yRumGxrRko0hWsVm1NNkwJ1jFjFk1+CBSiOM48MUXX6JwUDSe+64lhcCUE8cUF8lHXyDeSqSrll1d2xFhgYC32y1NsYzr2kY8YFNi93CPnyfCPBLDjFKagIhkGPV/U/emTZIkyZXYUzNz97jzqMrq6mu6ZwbAYAa7XBGAX0j+CfxrQlawX8gV7ICyDXKme6bryiMy43K3ix9U1dwiMqp7FiIUKXp3VlweHu7mZno8VX0K+OHAXMvOAjlguZgyx3iMCL5nykFrEIcDYu7hfUK2Fqbp4CYTVoJiABrL7RFd24J5khNyNkBihUsEJqiPAYchIbkZfIh4Gh4RibAbBvgQSlvIw4GbB15eXopgRWke3nUdXrx4ga+//hrv7++wP+zYoG7bouQO0r92tVoBjWVUS8bSOQvvuYl4CBwKyikWBXC6HgBu7Vd7mqelHvpc47Zcs8twvXOukN08PT2VY9Yr9zREdE5O4WT/c+gVgCO4+adyNE63U7Tq9LjO2ZJXoPY0G4FJdyyencLn5TrzqGgtGTR2JPVRpFG5BWBIji1hP7EdDHGJnzFAYyy0tUXwAw77Pbxkn3eN43UpSlPjp3yPJD6cietU/CCK0bEhGIL07A7w+z0oJfiDxy4l3FxeS21sRilwqUI8wChvyRhWzvLbJbZNXHRPxCQaxdv9ie2TYZCCzQxvZBLif7WCM0xg7zYjo5t0hd6OIHmQknCSkdjTIw62X88XGEDwQ4QZHEKKJUartH9cx9cDSJhMO8wXU8xmYweOq6tLrJYLHLY7bDYbTOZL3Ny8xN/93d/h+++/RwgBzjFvsjGchTudTjlxyxA0+eC0sbxuuhzESX/2edmvUo7nPvvY9z6277n3VZGfxqBUEe/3e+x2O+x2O+y3W1hymM6nmM/n+OyzV7i4uIBr2Ijph4GhT8kmvb6+hnONeGoR7969x37fY7PZI2eDbjlnisX0iAxg0nSYTCymzqCjhJYSZq3FYjlFO5niabdFPxwwDAdc2U6YoLg93/sP75FoDes+ICeCzQHOZExbg/5mgRwv4BcTzCcOORy4v2vKMOSRKeDQRxz6iD4a9MliyEyX6AcPS8B00uFytcB/e3rE6uICk3aG5XyOnCO3KUPCpHOYTSfIKSClASYaWMOxQy7UisgcHEVOHikk+P6AvnHo93uk4JFd6YPCyR0xIAePZK00sciSOKj1sA0aa5nEXghKOPZ5QATBTGYIfcbGb7HfDjiEHYa0xofHDbaHAYch4WK2gs8NKI1UhJwkxY3BbTRCamCQGyCTA/MRQwjg2RhWxjQVYMZw/XW/PyD4AWYywWTSAsjYPG1we/sBmTI3Ap9MSoaxJu0VhSoxVNdwP+B8xMaEUSAaIx4TSpw7RTa2PqaMdKvDM3WNpcLWSh+pa96amsDwf2w7pxD1vVrRne57+r1akf+UrBhzXY7fr9d7HX3mBgjqxUnoDiNsrCQfxpixz7H8fqIxtyZLbNQA7GHGyJ6psVwaKQaShgmjD4xMQpQttCbXlLChceBeyU4tBwIMdw+yzsKlVOp2c+D8CbiM1jDaySJ3hPYFeDy+Fzg2Xo7GVeAUMtVc/4nt01C2hmBbgWGzEVJ1ARtyBFlWWjll7Pp9BU0Q1xDGKHWO0notZYSUsRsyhkRMmp6EkxgsFIhGBUNkJLnEoHENZ2pai1c3N/jyy9dYLud4uLvH23dv8eq1xeuLa/ziF1/h7dsfkWKANQQ/9By7M0z8oBa0KlqjUBdQYGFRkUAmqSH+aWjrY4uoXqD181MI6+e2c5BXWThCmHA49Mw37BMWswVWqxVWqyWWiyWICH4ICNHj0B9KyQYAPDw8MLGIs3CO24Pt9j1SXoOMxcpfw046mLbDZDbFxXyJWddi3raYWsLUEaatxWre4mI1Rd/PsNtt0N/f4nG7B9mAIQCDT9wdJnjE3COGhPmkQesMUiQ8bQzaxsD7HrvOIA57XoiRrdTdzrOiHRL20WBIBJ8BD0LIwN16jc3jGn2/R4oBrXOChsxxOOy4C4t4uX42ZfYqPyCkyFY6WABolQQR0FjpaWsIyElagKmVnaEZwcf3pmr6YNgY1fpSfU89sjfvPmDqgN3TI9Kwx8PTBruDx36IOMSEx/0AnwjGtvDtHGZ6BUwaIJN4sxbcbkF5x6WvChFAjltoSEkUB+UIEGWbEgtbZ5mYYLsxyJ6F+HQ2BQjYbDfYbJ7QTSfoJh1c67B92nGSlyQfErvUyDlxzXPT8FgX+BVl/ajiJYGznZMsY2SEEzSoVqan6wc4hnJ1PFXZPj6yx821pj8N69bvn66zc2v33DH+ks/OKYbnkPNY/jRCwRXyRap2ODxWStAqaJ1RNk7Uc477hzMLlTk6Nk9hdqGVMS0lMU0qQ8kYgutaGMP8CP7Qs0cZUxnbXClUHe76GqJk+oPYaSvhspQRB4+YEqKVnB9KR9L2o2jByT05d79OE+E+tn0SyjbnjEEEDCujpIaUQFZC1xgj+mGolC2XFnjPsZ5h6EXYJwwh4nHn4RMJK4/DdDHHdDKVhvNqnZkSA7WiDDTz9+bmBl9+9RVmswkeH9a4u7vDcnXFXXAWS3RtCz8MIAKCD1wbmxOctegPh5IlrUIVkvWnirbEWn/CowXOL7LThXkuOerccX4utqNegAqguja473susYjceWUxX+BidYHVaonGNeh9D+8HDN4jxgEEJtUwzuLp8Qk5BNjYYGa5x+7guaNSykAyBourS8wlmWa1WmI+mWLedZg3DrPOYtY5LKYNlrMWbT8BbIOHzQ67fkBCxBAyeh+47+0QMXhmJ6M8R2gM/JBhiOuEp51BYzNCv0PyElOFwfpxh0MfMfiMQyT4BPjMihbOYbPf4Wm7weZpDUNAJzRx0+kEMXIyT7QGBg0mXYuhbzE0TeFnNeC+rwCzNPH4WxiTJcu3vjfl7hZ4Lmf2IlKORbGyFxtkHo8lWzFGHA4HvHn/AZQCntYzBN/jabPDfuBx2seEg0+AbdDN5ui2A6aHALQRIGkYT05KpSJyDiL8hEwfRrimpSa3EohjqIRrbpu2hbMWnpjJaiqt63bbHQ6HPSazKWzD9czeD4VCtbCYyTiosh1O2OJqv4QEImV0Seazfb5mzv3Va6NOZsyZM/Y1bvv4+IjFYlF4df+S7ee86tN9z639n0O4Tg3zc8oWonBLeIpGhVsf3xmLbMb6cJWVmhFvpbmEI4L6C2OMVuKcplLqlpAiJ0qlEEo7T3Z05JjOAinBH4Rql9tqlZI7QgVNV7HunPKobAEJsGYgJkTPPNnRCbmLiUdGwekY6vYxo+jfs30SyrYfBvxf/8//PZZMVGwuNQWeelc15KFQmdbkcQeYDJCFbWdImeCaFtPZDK/c52i7Dg5jdlkG95Ns2xZd145tzZzDl19+iV//+q8wnXT44Q9/xOZpi91ujxACpnNXWmxxRuSx1ToMA7puMsYv9Nc0Tlsv7Kxe7si+osernxONzZNr61ifnyZknHq5p8fSd9SO1bKEugZRvQoV3DFyskjXdbi+vsbl5SW6rsPT0xrrxzWi9AtdrRZYrlaYL+aYz+f44c9/xuHQI0j/rjEe5Tnb1BC6xQyL2RSXywUuLy4xnUwwaVrMnMNyNsFs0mI5b9E2BLgWQyJ08yds7h6w63ts9wc8brbYHXoc+gDvE4aeiTgICTkMAHpYCqAckGKPYb+R7NgMgkU/JAw+wQduDuET4AUpQWMRKaEfemx3O0xnE0ymE+leZKSxuEE0hkMZjUPXtfCTDlQpAr0/RlrtOWfLvbLWCEVkyzyvUs6jjEW6nw998cqm02lhWYqR+b2JOHt8vV7jD98D280Wt6slk0MkJpOP4HyICAfrGmTbwieDtx/ucfu45czo+Ryz6UTWRsscyRr7AwGUhI/clPgXe+nsaYQodZLS9aZtGqSmwXw+xXQ2hQ8em+0jgIzZfIrFglvQKYlFkhhsljiLc066brGhq/NIDfURukYR/GXcgBKDVa/29K/ezhmcqmyfnp7w8PCA169f8xX/jBH7USiymg/nlOhfetxTPufzx2MjiYigeWz6PSsKt5xnDaoqhFxDzaaiOBSubIjhw620SYwdU/iFrayRlLjfsjeQMACY4c8xc5pzTtDKQRJA5U+TovR+hXjkecYU2XvV+yg5OZwoxY1DvBnQ7/ZwHfc3VkPgY4r0YyG9f8/2SSjb7W6H//J//J9HxeQ1vKMxWlWCJWZLY3p8raDVwHZDj2QsTONKw2jjCGSlbZg0mCZnMZlNsVitMGk5m1ZjEdrL9fXrzwsvaooRt7cfsFzOsdttsV4/wLkGjpiQox/2DIWTdrdQiHi0wOv+jdAIdHUP61vMZILAcWoYAFWyJ9/JRCWgfy678Ag+0cC/Cim15OU5qSEQI4b9HjkltI3DvJthNu8Aitj3W2x2j7ANsJqvcHV1ga+/+QqvX7+WlmSEX//NL+F9xOPjBn/44x/x/fd/Qgw8LsZYpBzg+wN2mydMpx02TQd/6LEzDmtjsO46dI3DtG1gbAQQYEzG6uWXuPjsSzxtdrh7WGMff0DvHdouIiRCigzxR899Vn3v0YeEmAJi8IgDBC7lZhHUNLL4WfkiJVCMoBgAS7AmczceYzD4hMNhh/sHoB/2GAbPCsB7eM9C2YceZIDJpC3xKwDHY02a+MYdRkIIWG+emN83RWz2B2QysG0rCK0BeVu8utliDhJih5AyHh6ZyIQVK7AfAt7cPuD93RrBS9awMSBrEGKW3rBMZ/r23Qc26qxFN5vii88/x6tXr/DixQvueGM0jszJaykOPL8NuLmDzEeyBrHXlovcWJ1AcJYToyaTCQwIfhiw2++wWq1w/fIas/mcs5trpUQZKQc4ZzHpOj4PcHa8cvfyoDKDljgzVX/aMeml67rCG13ac1ZGPd+PUTFqJnK5Z0CBku/v79moblsQjd7tT3lK57Z/r/A+PUZ9nNpgHjdWW421KF2S6Lh8BzgJZkmstWQZExWKR0McF88a/8yMhiCLN2pI4UmZMmq0JIQoRnbkPsMpBtgZJ67CEVzLaGSQciCAs9+1F1BKzCxX4s8mA9r8LyWmmRXe7ca1mM+XcEKIEkJAsJyAmSgfGSrnYq8/ZwT9pffvk1C2MSU87valH22K6WiBOOOgTax9Gjs1GCLA2aKEGtmfYIRTk+sJu8kEsxkT2LuGG0tTBshq2j7/ceKFg3MNmqbFQbqUTLoJXr16jb/9298JlzJh/XAvJBNWOqzkI2o351wp4gZkDmrAttpGgXKsBhkq+cva6dVq/Nzrc793pHBlfy1V0thKnZ2n8SqAYbyLiwXIMO+tjx6ghIuLFS4uL/Di5RVeffYKX379BZxrsN/v0N/1cE0DYw1C/JyJDtbMabvb73CZr3Do92VcEQhN08ESKyFmmyFu6ZYGZApoHGG5mqPtWmy2W6zXj7i9W+PxictyYoQo2wExeKQYuCwnMr9xChEppKIACVHqZDNiBLLh++mD58xqw1Z7zFEgcJSmFJqdmiR/QEtWNEtWGaR0TgMonNdd12E+n4Okcbx1XHamaRtt1XiC6Um1Ty3vMZ1NQfSA3W6HwTPCw9mlbCillNEPfB6+Z7iZDQYrbfDYwwl9j8Nug5Q5lDCdzbDsWqxmU8TFHBaLMfQBiHKTMAhxT1NhwQNlI/2ReT3Xjc+tsUDOYpQwrLdYLNh7dw6H3RZa0lMYiAA0DScfdl0nYaPhGRKjypMRoBNa04xnQrX2amtESNdK/f0o5VXqEGw2G+z3e0wnU7RNe36d/Ywg/h9RtD/l5X5MThx/h8T4H9nLgI/AotV7KmvLHIR6vpD8E6HHRXEbqoQxRhlGo4aNHPZCY6kEyDmhjZFpFw3BNQ2ajps8pCA1uOBObko2AWOOyDl4fgnJkVadwKBrO8707wcJaRgxyLQj3PN5UW8f453+Obl8un0SypZHhb1Pi4Yp+kTgO+cY+pWegkzXZrlg2lohFZD0fWvRuEYECRdOs+JkwonJdA7TMF1jjmzhKwxBcoOVpantJtju9nh4WGPaTfDy5Q1++7fA/eMj7h7usV6v2ToXiKvvD+i6tnjYTGJun90IvrT8/EYpFFP2O7MPzi+4jwmHsyP9EYvsXLxHLX+ggpiJ4LoOy4sFgITB9/BhQNtaXF1d4vJqhdXFEsvlHNcvrkGGENKAx6cHNI5bYL28uUbKgPnzn+HjgLuHe8QccDjssX7ghRr6COc6GLJIiRUTL7yAIeyRc4BrCBeXS7Rtg710ILq7fcR+x3B1DBkh5MIohCw8yckjZVa+OSbpLwzkRIghi5LIgGmQU4YPPYZhj4QIY5kwwccAkC10nIq6cD5TKt5TuR/xmA2MxPpy1qLrOlxdXcE2DYgsYjYgowURGa5rCim7EaMjV329rOPeqz4EDIEbuTPZQkbXtIiRs/WDD+j3B1hDJbyhIRBrLeAb9k4Tr43U73C4ukDcXQL+ACe0lkoqw+0vxRsESa0ioHXyo8cYZY1SQQWCDzx3/ICUcyHySODcgJhDGVfQSLAymTBsv3t8ZGXrQ7WGjgXm2Lc1V8rhPHx8GrM9B/UqdaoanpvNBrvdDsvFEphOj9bSxxThOaj6p7ykf8/rjymB8WllYFKtV/UJlacjSYWWSGmGOu/Px5QxK9wC4/3Q6lNVtkAa65MhHNwyV30MhRTINQ3ayYTpP700/hDjMosRpgje6fhZa0WR8nuTrsNysUTXcsKms8zpkBOQSBOqxlrZWoTWo3vq0EDG9y/otwTgE1G23WSCX//mt2dr3rTeU5u0K5+uptxbSTuvBR43G2aWG+X6DSHgabvDZrNDP3D/S2sJISXY1mI2n2EynYCQ4NoWl5eXOBz2ePf2LQwR/sPvfoevp1OEP/wBP755g/v7eywWC6SUMJ1O8fDwI6bTDm3blDibZofyxtCKMexpcJIMoTQjhnmWdl4v/HMK91QwnGbHncZw/xLr6zT2e5qd3LYNurbBYjnH5nENHw8AZby8eYnrl5cAZazXt2gawtfffAHrLDabNf7zf/7fESOwXK7w7a9+hc+++AymYbj2w4d36Ic93GGEKA97D2saEDmECAyDx+ADDkOPYdjBOQNjAUsJ+8NGMp8TnG2BTMgBiIEXztCL0WAyMgJSDsg5sOINkZVRZI+WyHJCXswwhpVl8NyZKKNnZQu2ykEOtexUiK3Oci33RmgMa25rAqFxHKb44osvMJ3N4doOZDvEzArCkIFtjDTT5usxRNwUIWeE4LF+WmP9+IjHzRMSAB8iw2gZsDYjbDkunULAsNtyhqljwen3W1a+zoFSB0oes65DYxu4FNEMD2iGR7TDE5q4RJKmC0zqLh64sUiGjdiUx7HQKgGN0XUdk5yEgWHYybQT4Wcxm89BRBiGHk+bJ/SHHqAM19gyF2fTmSAAhLWwOA1+wGzC8ewUDZKON467anHML8MLv/Jp0/h6bZwmRelrNZaICH3f4+HhAXd3d1gtl7hYrX52bf1/vZ1TtM+UsSg/5blmf1SyiDVzRHBiIu6QYzQEx4TF1e8pnMwUoyZL5YVRYhP2oTNlyUWR+Ws4R0a97BgCYkoYQs+ZzSCY1qAzHbIq41RljhsDEJNmQGDsBI4dFL3hxgYTjcT51QB2zgFJKwAqVUmcZFWgPkFsJJkaqC4/q23HUGBtyXx0+ySU7Ww2w9//w/98FHQfN7XCrSzgACWk0J6WJS29KAa+iUGaDWdwMsgQPA6+R0gJsNyMfELcGH42mWK9XsMPPbpJh8VqhRQGPG23aO7u8LTdopeEk8enJ2y3W5RWesslxyBjRkoVlFXHQrIpWX2jIjRF2TIfNMbrOfP8dDtVsvXz08dz3zvdlGe2FjI1lK0xr04aM2hyiiZLNa3Dev2ADx8+oO97/KfhP6FBg81mh+12j/v7Nf785x/x49u3+I9/9z9huVrhs89e4+7LBwzeA0hwziKFiD7vQTQAZBB8xmFgyNF7Dx8DtpseKXqAIobhULwXZ5jIgrvvGMymc3h/QIiR7R1RslkaW2iXJvZsBSaOESFEpmkD9/SM0XPcUOeXwKdaY5kBgchkzCRxIEtCStd1MOBVS+L9xjzy5M4mE8znrGwTDEJIRWh0XSfeFGfoEiwaa9E0DsbMmKYyeAyHA0Lfw3ZdqU3MiSlKHREaw83Tp62Dc7yG0oE7sDARPC8U7vOZQTEgKJnGcED2A0uZzOvLgeO9yIL01u0FIV2iEis15xp0kwmHZ2iPw+C5DIfYi3FNg5gSyWQ87wAAIABJREFU/DB2+ik80JLg1LQtE62kfFSHy+EiTcRh47r0KuFFwXM6JvGGNScEklFNrJorNOc05qnIjtaUhhCw3W7x+PhYYHtdW6cZrOX1X44Yl60cV4R/ludFAchzWylLnmdUlGCiEs0EBIEgUnYny4qUtIH6sXxw1p318vVYLBf42ClEmCTxYB0/olFp6bEr3RRj5sYCgatKBjPAgLg1KBi1abqOQw6Ru/ekzGQuKWmylFI9cvhAyXiK45AZBVWXledUM3rg1XXVlJrP5KSGTKBwuVIFS7nTz9zgT0LZWuuwurgsC4aVE9gGO71wrwoMxRIpUAVGSIQxeYCkRiwkaVeYhWYuZ2R4HqATyNZai27SYdgnWOcAImx3O0SJSVnrJJElwjmCcw04ycWhazss5ku0XVsWpibC83kdgxGqyLR7zBHMVXmZddzEmLEUolCFZYVkGOYk/Tyn4kWNcNvze5BFgBqhXWN2HjmKTGhDgGkaNG1bfnPSTbBYzrkDyqFH3w8IPuLD+zvsdwdY2zB8TE568XpsnjZ4uL/HcrnCarHEzcuXePvmLSdj5YSUI3LqAXB9tR8C+mGA9xLvyRnDYYfgPYg4DiTDiUQRwUfxAA38YBDCoRAipByRcyxjM3biUa9RFGZKiDKK3ESCC+wLfCbzk3JV1zeuxXGOQmWNmMsJ4O5UzN1riNAJPNoIRAxDnB1NCRYERxmJMlMNClsNosQyjUHoeyAEmJRgUkL2w2ihSxmFmuFWendmuV7uRgUABikRQA4xkzBSNQiJEDM3iEgwbKgSgYyVREQxzJSdjS8PSTKRo8zjBKBpO7iGW1wOIWCz26NpHbrJFMZa9P0gGeusQKX3JK/HrsOkm4BA3GVq3yNKLLhpWuz3OzaaIrdezJlGqFS1VObQUiZOLEs5IUeWHYWuD6Mg0VVbC19VuiovmNxii77v0XVdaceGDH4u8yQlJu1RY6sSAc82OvNM/M9yTgmiVEdJIr8rj5qTSRjXP1+EKNYROeHdtCd4ro9WjaFc1Dnbv4ahmVWIH5WvWmSO1smqgm4bgvKFM8VpQjARgQIa65jkommQM+BDCwoD4hClBaspBgSZETVUuafGhEQkYQ0Bzsr94X6442iqDOWwiH6HxDjWRNrTezTOK7Z4Mp0bnHH7JJQtiEDWjcoyq4UsNGcF4z+2FAvEo4q52nLOiCkjEfc2jTExnYBkDHsfkHq2iJS6axgGQJJD2rYFYsJiMcdsPsd2t2PLuuuwurzEanWJ3XYPbvNHcLZB41rMZgtcX79AzsdZbj8Vx+HXtlyPxn31tSrbonSrUoQ67hQjxyCocEejeBk6+Qq/bOUJ6748H5novW0chp6QExMHBM/1xG3r0LZNuQfz+QLXVy8AEJ4eNxj6AGsbvHv3AU/rHRazC1ytrjGbLoHMscXeD+j3PRwxzeOrlze4+3DLCiwkAL6U1qWQsBcC/iCQZDaE0O9F2Y73GxmIEEIIMCXcPvjisWsGqsL7RMSkEwIpssVejW3OgDTfI+JMSMZJ1Thj44ZXpCSIqHBRAS3zm/vycucnGOZtZV3I/MDTbsJzOwW0tkFClHKkCAQ+K5sjnMS80hDhPXsph80aiB6OMhrKiH4o8wbOwuQICLkLkUHwCVE8Z7IdAGmLl5iFakiEGA3cZAoPh2RbwHXIpkHvB1jn0LqG0QJ2MQSKj9C0rhgjeqmjlsoqNN0Eru0Aa9Hv97h7WOPiaoXl9RVABrv9Dts99+adTmfwg2SrGoOry2u0TYMYRvYxIw1Cum6CnAkxJIQQ0bjmSBoYY5ghLBO6poPNgAfg0xhXF11cvFy13g2ZYrhoAmRtAK/Xa6zX3Havm3Tshcv1q2GriZ8k7EdaTH1GVbK3VF7V0G6ZTIyo1HMLKOdb9kkM3WaiYuzx1MwAHEg43UdaSxr/qsFLMt+lmqeMZ5Fdwi5WlDEkVp71qtjrg+GENT42gbIRalI2UkM/YDj0CBTgyaBrMmxjYBsCWYJPHcxw4BZ5YYDPwMQ1nMsj10BQ75U9XGNNua9EBLIWFhbIBibzCOas4QGVhVRGXjdNClTHrN5U7py3Qo63T0PZ5ozkj9tOlYSYNAbUgeeZYaeJDfoYU8J+0H6UDKelwJCCJYdsIGwy3K5pv9sJ4YDDpGmxnM0xvXqBtm3RNAylNE2Dv/rVX+G3v/k7fPnF1/jXf/1XvHnzBu/evUXTNAVe2mw2R9mNp9tp7BVA8Y7PQb5KsqHJW/Wx69Zsun+tSPf7/UfHq2bHqeHmuna5hpG5ZKODNQabxyfsdjtcXV2hbVs2ZMnisOvx7t17bHZbvHt3i88//wq/+91/wK+//TX+/OZH7A8HdF2H3/72t/jrv/5rXFxcwFqLH374AcHHAlEiZySptQx+j+A1zsbX6HuGEdnQOB4vNkJy6cDTOMl+DbHUbeo1aS2nLha9Y2LqfRzGz2zFKz1JuWsiTACMAUx2c6TxgGFoDiyMnLGgjFLuZghorQElXg9MoC68sDEAMTDpv9KgpTS+n7iMggzJT2fmg/YDMhk4cjpIyEQlvgniZKxMRk0z5EzYh4hFApJxQNMBrkWWVnxZDBRLtghMK4qK42tibBgD03A3ImM58JeNRcoZu/0O5AyayQTXuz0iZRjn0E3nWDQdBoGJdQ4Og+duSocDCEDjWnQtty5EAnvjsDgOsrERkVMqMDfLfirQYt0sPKpgpQp1OnmtWwgBu90O2+0W2+0WVy+ui6L13nPnJmsBIkQwtFrPsTNO7dH27PN87s3jfUewuM4IPreprDkX230+59kfeZ4Dwk5dKqcWkWAyYLKsQ2Xur1CfnLUkmx0dRxbOtog2ICcg+oToPZQEA8Q5BY0koHLZT+S5VFkp+eg3xjI0qCLFODVS1DN+nlSac5acifF1OfFqV3XwtHzy57ZPQtkaMpg2HRSmYNhlDIpHE8tiGHrOntSRIKBAelkUdAaAlOEiYKxmzBE6siDXIZJFNA6DB0ImZAowGZi4Fs4Spm3HMbQZ1/whZ2k0TFjM57h6cYNWMpGJCB8+fEDOGY+Pj8WjmE6nzzIdz22jYhzjovx6FABEVBLE9E+/VyuO0wQzgOOppx51vel5KWGIl0nunCvNs3XjTFDH7bHmc8xmE9zc3GC1WuHNmzfMmbznvqvL5bLEtTabDXMjtwwh3tzc4Be/+AWur6+5xERIHHLqj85HhZYq/iDJTHredVMGvbZSVpPGOmouvwkMPyWGyiEWvx6veLopVijJCKlVshvqXciJlD3Lk6qGWm979L4IS52n1lo4yxZ+23CTBjJA07oSGCEiWGf5vJFhM3PFcoMNAIFj0TFzbWFIEnMv55oR1SigJB1aKrhN2q1l4ppDVZZIET5HXKdrFlDWcH9dZ8Zj0+jJGzlXIxSPbCyLgSwGo8Zmndy3vh9Ado/JZgvfD7CdResaYDpFazQBLJS5MPQ99rs9N2wXaLmbTKq6/GoylFsg1yRNCpBTEcKKlNHJOjhdqzo3Tg3Z3nvsDnusHx/xsF7jy/wVlCYzsvXJ42aIDSFjnh9bJ1Ief2ycS7kgBVk+K5+WdSyvjfpiucC2RcMRoRTHgrgmtY5xFE+byvGOzoFI/FWBnuuJTQLBy+Q24h1yZyuh9jQEJPmmOs8aukEGBEmMwSOliBADDn0PGAMHV8gwuq7j88kZYfAwknCsaGg5e72/ek+rMddrHM0D7hJUjJT6/uTjzGSe7zi7/bxf+4koWyCDpDBaIWQJPgI5cbJJzvw6JpF1o8DMgMSJsrDGZZic4UCwhSMzI5EFuYxEBpECED2AiAiDxlg0hru3cE2n4USdgfvfNkuD6D3HJQ8HtG2L5XKJqaT8p5Sw2+0AcMKXJrWc4149F4BXj00V5SmcrF6tNrKuPdlTiLlWwJPJ5JnXe6qcAVbaJUuWxkxw7W+rtcMaL44xcgPw6bSUY6SUmL4OwHy5wHw+R84ZT09PePnyJa5fvsR0NsVnn32G6XSKGCO2221JPAli2Z4TbPz3vFzj7GySOVQWW+Q4TypsZMfHVgtfOYZrL/90cdXC8SO/fuRPZNlRk+lUIKaUQEKwr6Vpeo+sc3BFmLGiSpRgIUxIiRVwuVYR0GrNWxG2RExOYYw2CsgAscBUflyI8tULTRgVHDxJ1jV7yyAUhVHnEWSIB0sj+T+XByk0T6PB2PCfGjYhcNJbTgmGGs4wbRqGQat7r3XLzGIWMWnashaGQ89GdjUf8skNKu01Jbu1sEjlY37k03WaK3dJr1nfiyni0Pd42m6wflojxFgIQ0RD8+sqi/loLhV9Rcfz7KNe0qgkn81LOn5eXuvz8lf91umO53/xSLECzxWQolH6L8vfxEmfOQFJFVo++qVSNkYk/AYWgxfDynu4Vso4MxX5lBOTWZDqgpKUN47jKQAwXm41EEai1kesWRjr4ZOa3GKcyx7nRumj6NfJ9kko2xQTdk+b8bUkj2QcW5oqRDX+YNRqg9zvBMlC5f2dsbBkRwFnmGIuUUIAIcIiZMCRwbRp8ZgyLAxsJqQh4H7NWccAMO2+RIoR+8OAP715i7brsNlsilWt7cAAFP5gVVioruOnPFzdn4jKcfXYNUOWNjk4/X6tePXvcDgcLfTChapUa5VyPoWSa6NAhSWQ4f2Au7s73Ny8QErcheWrr75CSqkIxPlygW+++QZd1+H+/h7ffPMNLq+vsLq4wNXVFb777jv88MMPePv2LfaHg3jsHJPT7FMdN6VvS4kZubJ4PAqDa5ylxPChmYqsXFTR6vgdCz5pPF7G4HhMzz2qAjHgtCk9ztGCr6E25Gff10zbpmkKoxIjFuBSCT0HYIQfcy7K0wgEqoqUz2DcSt25ZvnGwB6uGc9Rw4elmbh45d5rrW5AyEzHqKE9YwnIdaxP3k+cWBeyIg+a5JegnVWaRtjZWmZnY+GWgRwLmqKev5dGFtqekEMiBxwOB55zLRsojXOIst7yEaIwetaA1FrHALF8jtbWsaId14DOJRXetbJV2dT3PdaPj3h/e4vD0GNpVowAnIS7juZUdXN/WoxX3/nI83Pho9PPj//k1ypUoozZ0bcrGBWjR11ksdwnSqxEtbkGJ25pz2bOUSCTQYlT3Y/h+VRKhaxpYNsGFAJyTvAhwYfAylbmZ9M0RSFS1M5AjFhk0QWmHl89/yNDhL3ZJF7tUehO9EuSzOZTA05RkHocxuc/r3A/CWUbQ8Dj7X15fayQxoJ0FfhZJ9aJ9wOFkbNYtWSQokIxlUeZhILPR2CIoJBgEnDYbGEXM6QQ4Q893vzpz9hsN+jaFt98/SXW6zV++PMb/OntO+yHHtPpFI+Pj3h8fCzsSpo5qUpCYSU9x9p4qBeKlozU16mfl7pi8TRPPT79zjnvVuOup/uf2/Q865jtYrEobbaUHpDIYLVa4fPPP8c333yD3/zmN/j7v/97hBDw+PiI+/t7PG03+Oqrr5Bzxv39PX7xi19wkXpOWK/X+Kd/+if81//6X3F7e4vXn3+OxWKB4CP2u70QgpgSp1avj5UiGy/qhbNQM9Iqkduf8TWzALPOFJgwCWONCptawfKwaFOKYyF2fsu8P45kZ9mOHRUCWaCpakaDYTYsShGH7QYPtx/g2gYJQO8HROSSHpMIXKcbA3yMbNVLkpUfBtze32O333EZkZCzaOE/iKHMlIAhRS7pUUGaMhqpo1QSjRgShjTg4HukFDBpHSaNQ2MIKQysGGGkqTxKFvfoiB8L9kJXKnXtyhfNuRAV4UzbobGOafyGHvt+h91uizD4MpZhOHACmTPo2gbWADF4eDnXlCMDhBlS1iVrI0PCCJxRn8RQK4lzKRZImePqJP1985GgBoAs80MvOKWEp6cnvHv3Dh9ub7G6uBCjohsh5Xh8Lqe+5McULQMUf5lyPafczyng2jBTP6/sXz4boWRzsj/AtJwaEeb3eX+jEK0kHBEZICWeyYaNLoVvCdzRzWVbqiwa5+CdRYwGOUVxKvjXmSuc8xvQZi4zIkL0BAYsuGubNWOb0NO/cTOIwiA5ylKUc9ekUhADrJVPN94XKYETYOloDXxs+ySULTJKf8FT0TUaX2yx+MEXq4wtDSrfOlVmBgawSWAUVcA8MpRZiTWWSyM4N4/KYiCiojQn0wkuLi7wtNtis92wNzb0WK1WRZkpvNV1HUIIRUGVkhOFrdIpTElF2ZLgSurZncJbunBVYAMjDFrHaWvFq/vo4+lfuQU5F6HQ9z22Wy5nAIC2bcux2HDkc1kul6Wh9ps3b/D09HRUp3h/f1/Oabvd4vb+Dk+bDX788Uf8y7/8C77//nvs93tcXl3h8vISi8UczjIlnyaCKWKgta/ej68BhTWZZECbVOz3e+TMuQBN67CT0iWiY8rE54kR6aNehI5RbTidk5FHx6yfpzHGrJC4JtO9efOG60Ubh0yAj5HjfXIfU+bC/yAKl+m3iOkXB4/HzRPuH9Y4HPYgY+BjKHGqnDMOQw+fIjfZjua4ZMQY2GykPZqcs3DQNs5htVxiMZ9j0nWsMCElaCqKSQSsejI5FfSJ56TWb/JCtuLBqndrrWUEyhKYAzkhBi91kyMhxrjemZOZOyBl+HCcTc7QMNf35qRxZKlqSMzdq9BxXWJXrxtOahJxUSEhdQ5FPTe83Md3797h5cuXZV0AOOZcPlK0xyr2nFFX73O6tk/P4ZxXWz8fodIRaSlzlVRtnvHSSqbvme0jdmgBlZOy9DGUbDRufALXK60oSEIoKSL6XNa/GsaNOBqFGEYQppgko9jYwmJ1Gk6rrzdnCakcWVKVXNT/jsbiGOpXBXv0vZ/Rtp+GsgUKNFNMBYx5niRWdBY4SG+MKkUA5bua0ARgDCcYKjCYfqbZiJoAFBPTwWkj4JQzLi4uMJlOMJlMsFyt4N6/Q/CcgRhyKkw0qqBCCOi6Dn3flwQjhalO47enVuqYHThuNWylY1QL+yOoUj7TRf5TE+B08p1u6tkquYBO8Pp7MUa0LRsjDw8P+P3vf4/7+3t0XYeLiwssL1bYbDbFS394eMDdwz3ef/iAP/zhD/jhhx9wf39ffo9hxAZdhwKpqrGiY8AJUxFt23KcL7MC03hobfQgsyfcdg2G/Q4hGIRwbKToWKj1/LHx4Cmlxk8VDqDjxTrun4/mGgBACvf57QQlqdjugPw+Y7vdgCzzf0cAxlmpOWfvMXjPdasaTyUOv+gc22y3iDEUjl7tthMTt6XUOl2T7ZE3bqxBm5ygRAYkitYRkwNcXaxwsVxiPp2W+2/E40owsDBSfx7HMazGtiAFVczXOS4fs0q1ql4wBMbTOJwIu4LW1OiN9MtVY7b8rq61yEofxsjbEqtVpXly14qBagWiB9cKlyQ8EnwscUFnWZuQ5MLDAR8+fMDDw0PpTFQbzEalszgIo1dJRWmdez2ierpu6WhcceT91kqy0oVlVxIjgh2P2mg/nrvje6VuuDr+R9EeNVB0T1Fc/FuSYHWixznGmxi+ETmTnZNyMuY3J4J01LIgwojwibJFymJMa+tUM4ZbakMpSd5HaYzAPuz4WZb1nY7XbrnciiCo8mjVvDga/zPbJ6FsMyRjsgip8TO27CsrjooNNirnehMvuCQfEI3fUQFJHHNS5coE+RYvbl5iv9/CB4/D0OOXv/ylxCQdVpcX6CYT2Iat8heXl+A40r4oW+89nHO4v7/Hr371q496tXwqo/UPjAqmhoPUk9Vj6Pe05OW84hgVI9FxP87TMqHTTSHqOiNZvQ+FdZVInBl+Ih4fH3F7e1uU54sXL/DrX/8a/8v/9r8Whf309IS7uzu8+/Aeb9+9w7/927/h4eEBOeeSLZ1Swna7xZOUFGmcti5Bypmzh/u+P/LeU8o4HDhWXJiHaBSIXdciJ+6xq8NLxJSZyhHMx8vld2pBlKSUpb4fOY9xzPoeFLs+jzEvAMhR2aKUJANIwaDv91iv2ehwTQOyFslaOFFGeh5Kul8rF50X1tqR+QsMQ2vMX1vKcaEuwSb2jEf0JyM5WwzcnCMcZbjGYbVY4MvXn+GLVzd4dX2Fw+EwJnkJSQzZFiEl7IYB+8FzSVDmcE5ZkMTt5mEMbDN2/dFQgFYeUGaKVUuEIY+kCyWMUM1f/Z5epyraLHWhWZQtZY4jpiSJOxCHxhDIWVhCYdtixi5O4KrvaZQM5pS5HM3quYgwjymh9wP++MP3eHHzEtY5zGYzgdm55tMxqTZHCumYT7f2cUc3QUgaTuFLQknYGRUwf/FEbco+BCAJwlCkpijC43lez+FT9G08K1TvVQYmRkV7fBqnRikKCmmg+U1V5rq1cNQiC/8416azUdVIcxdlsovWwtmAQZWphuIMjX/Ewr+sF2mCEHLl4aJyTgqBRSpZ++WsiY4MGL20FMWo+IgNotsnoWyNMehmUxl0hXRz+Vct3wwSyDfrHWMqMp0/hlDSoVJG9gnJjJ5LFMuZE0RkJC1Td027Btcm4/vvd3jcbXG7fsA/vHo5enOG+FjWFI7mN2/e4OHhAff392Ktcxxqs9mUZCn10NR705t6WrKjVvqpUtTv116qQqwKs5wqdT2OLqRRKY0UkgCOFpmeY9M0xWvU5J2u6wBAvHeOTc/n86NYtf7eu3fvsF6v8dnnr3F5eYnJZIIXL15wTDUE7Pb74i2oAteEsmHoS3YyAAzDgMPhUMYyZxaa/Un9Zc5giDWEylBoYC1fX9u1SJnbsSm1Xm1M1MbH2GdXxwVF0XJS1qjkjK3FGyd8jNuxdWzIIBWUI8Jag2S4EUaU31SjL5Y5Ot63U+hQjSiNaddCU8ch5yy84hYhRS4/SkzwoLkN2TrkEAHDiBGFBJMZ9VlNZnj94gavr1/i1cUVnsymlO3knDHEBNNO4GMC7ffY7A+gMFJhancXgMrc03XSdR2cNeJpRCAFGDRwxqJrWmzDU1HY9ZzVseCTkLV/YnCz8h6N0/H+jt5HndtQj68alwUtYo0JOkmmKt67ZTamlBLefXiP9+/f42J1gZuXL9E23EDCEJV4tK08znOy+Vihjc+NyCyF0kEE5X5iwZ/PHG/ct/wmQyVlj+J1Vxtfn45XfaTznhsbRWPM9tmWVXmffE8UYZI14czIKYAUSzKcNsfQOQRznAiqIRmfJfygRlV1LVFQoRhiaSKSadynOCz1uZ08sqE0mkk10vhT1RG6fRLKlnECC0IGZXs0GbV1k8I4yuCDakIob6jePAL4PVPBhJRhsxl/j/jRKJ0hGXQpoJl0CIc9HrdP2PUHSXhw2Bz2aCYdXr56hd1h4FICUWzqdejmvcf79++LolSPVxsq6Ht8KpqFnMpiUm/lHKxc39ASXwKOlG291YLqNImiPl6t+LsquUMTEwAINK7tC21RzpPJBLvdDuv1mo8j3ZnUM/Xew1or/VD5sx9++AGbzQYgKmVAXEcbj/iZddM6ypSeZ4tyS7xY4rhEJJ13AnPzBobDffCIUu/oGofpbIbZbCaKNIrHnEqNqJJojAQrWvZAgNyrwhJLBmMMKMvrUQAaa5Ek3mqISx0Km1e1DxlCY5xQDuYjT7q+h6exOw0f6HMdI81wRsgwcJhNOsnM5hhm17RsoMaEHIHWOsBGTNoOn728gQWw32yxtg16IZMo8zwD2fXwiQlkDoc9YvBAzrCVEhrHRC82l7UQgy/Cn8q65nKLxjmkFOE1yS8nNHKd/eGAnEa04NQQGQ3UxIoiZ27qYCtfRee+OU4u5DPMJ+xLXEaVUxoh5cojI/Fw379/j/lshsV8jr/59V8hhQhrCF3TIPkAzQsZ1yAKJKnaqPYky2/zzS/wM4u/XPJNlHe7zCedGziJ8aqhXQYBR7L0CD3No5LR1+OWCyyNyuPWjk/qKKH6Tf05kjFX6JYqh0AVvzUWXdsheEbQhmGAEdnIMskBknFvmwaTKR8j+FDKd5h/nL3VMbRkMGkmgDHSOEMNOjnvzBznOiZkGF3JOjeT3neleQ3Fw/1YBrpun4SyzWCDW/vMwowxjdqSI4Bp7grcLJnGzwwKmWS2vGRFXmEA7PZnWLCAM8aiSRM0kw5730vSyQPmqyUmbYv95hHdbIqbz14hZuD7P35fvJ26GbVOhh9//LF4HMMwYLVa4eLioiiyugyFF70R2GgUGke0aNVWZzfW+5XYROWxaqJWGetnkFE1anIM9TzUG9f3m6bBMDALUiJO6ppMJlitVri/v0cjLQqns+nRNer1v7i5wYuXLzCdTvHP//zPTE5gDBaLxTOKSv1d9T7ZexchXF2T7l9D6EbidCEEhN4jxQEhDBhC4MVuLVzTYjqbY7lawfuAvj+gHwbAWG6Hl5lmMIqSRwYyGRbMomKtYWq+THVuZi7Cp06IMYbHLIuQalvhJM4ZybKBaZ3jWFPTImEMO9RJXXXooZ4b5wg+xnsqln5KWExnnGwllv6kaQtNZsqROw8lYD6b4/XLV8gxYfP4xAxvKrTkuBEG0Rh4ZAwp4XDYMZ+0niMBOSvdpeRNyPzUXtBZ2LvUUIYqSEPcKzpkDAPnQyBpL9KM/rA/MjCNUUasLAgD34uU1OBhA8Bac7RONH6rrf/q0p5ReY2dbFI1rjz/xFAQhX17d4eu7bBaLPEff/s7BHhYMmhdgx578VCp8sZV1lGpsijrX+eRerFEZf8oPARZIG5rR+as8YgkqKApGdaq3YuxgFGB8NStjfnK0668eRnOap5r/q5eG40HKAc6NiBYPvjiPFElZyDe9qTtcEgRffDwwyBGBqNSjRkbC5AxaNq2VHRwh6tYFG7yjEhwS9YGk+mUEwxzRkzHbS81TKfIiH6meQAphAJL5zyuh9pQ+9j2SSjblBP2fhgtsFQRNSh0IvdNKOSPFUiJdOgNlQbD5XUdP1LLD+PEM4REGbZtYLsW8YnLVf71u/+O5Axef/45usUM1Do8bXdMpD4MQkK+KbEsjSHd3t7i4eFBOpJYLJdLrFYrzOfsmiPZAAAgAElEQVRzXF1dleQpXezqtZ3qP/2sjtvWpQTH33/+COBsTe65Tb9XQ9AAjko0RtpIgxwI2+2mQJWbzQY3Nzfl+y9evMB6vYYx3BXpm2++wbe//CWMtZjNuFXabreDaxpcXFzg4eHhCCKslXwN1cQ4Quk6uduWFX+tsENgCJMhag8gw7UNurZF03ZouwlnjotX632CD+yRkuX51xpXzSyBr3S8iKCFEeW2lR6z7IXVW4wRbdeVJg9EqKzjKIQPDYyzyJLrq6QQ5/4+dg/LqVT33ICAJoFygjMWrjFwJiIai+wDhsA0j411cDPC1dU1rq+vcXlxgQaGy476ofTk1RFJRMiOxyiKMIpICATEXHngqu7SqNwAqbG04lWkDO3onHNG6McYdUlElNgugNL4QOO1dbjEOcf48jNodTS4j1AgGoWqMUZKWyqFqmOrfMd6XURjD1d53x967IU1zfcDHHFoK8cEB8ME+6dCWU9Kmc30d8XDUlFVZ5Eb0i5iBIfzqFVtmBlR1Go4ApDuU+q4nJySfB4HD4VqUVbD+Bv8KFWrluvwWfFwVykYK4YIl+hpSZozFhYZURLrDIidqCo3IlYOjMoBZZXLocplkWsIglyFEJBC5LIjVeZyD5MoyMlkVpJhgbE6QQl2VNlaa0seiM61VFCu507MT22fhLIFlFJrTIpQ+CdnsdGU1FJmHn92omR1YRPLOg1+k2I1uhWXI8u+UmLQNJgu5pjsd7hbP+C//9t3CEh4eFrj8vICu90O79+8x9u3b/Hhwwes12tst9ui0NSb894X2sLJhCkNP/vsM3zxxRd48eIFEw1UvMQcCzqGt2pFWkOJ6ime7qOf16UGmnSk43ROcddCRz3G+vfqesS+7yVD2SNVsWJrLRaLRWGPcs5hPp/j/fv3WK/X+OMf/4j3799js93is89f4/r6Gv/wD/+AH374oSRDMdw8wvG113+cEHTsmfM+z+OZeq18PEYujCO0roF1DUAGh8EDPmDoPYaePd/GNsXKtrBCYm64jMwIYgIJb7gW6tAyCjeSwCHp/VXjMMEpTEbMPoTApTLOcIJSEEacIw7dMwr2WdcY+f2j96vxQVZFRjjsDphOpljOZ5hNZwxlZ1a0067Dcr7A5cUlLi8u8NnNK0zaCSgTgtdGCuMyDJlFZQArW5NZcSoUqCUYKWf4EEbKR4HPrTXIiTsdaXw3pSS9f4eCGIXgEXxNPpGQg5AOSAISMlMDWgIbS1ZKjqgeDr4XKWknIv4zNBK9kLXFUNJsY/1dImKPMstdruBnffT9gO12i/XdPXZPGyxmczhnkH2AI2KKwVPBLCUxjACMLqMzbJSRtMAzRpEVnVmVvEjHxp3cfFaCmrdStKQS9LOSyzkDpjZM1KDitczzSyhcajEq/yiqk0KEMWyIagzZQOdnZuVXnPoqzKKIBikZjXrtx3Nfyx6JqMw5TTpzQkwDa7mHsihu5DEDOmcmrAiDxzo8cP06Rgg5Z+5e5QfPCJQYYK0TJE11FAmSIXpJkQ/j/n/g2YIAsma8cTT+6WQnaeL4US+t3PlRKZeJUVzZrEDfqGzl+DElGGS0XcvdO5zD+w8fYBuH/eGAq6sLbJ6ecH/7gNv3d7i7uytcwjV/a62o6oSQOvNyGJjfWa+FJ5Ha9R+HeGvrvVa0ar3W8Kvu23Xd0b413K2T9zS7VZWUPipHMmcG9/B+KI2a9Zpvbm4K7DuVOGjf99hsNnh8fMR6vUZCxtfrB3z77bf49ttvMZlMGAGQ3xwGX+LfNSyu58AwEY+Fjrkq23rs6/hvSomJLSwLqkzSJi5leFmUMUQplTGcYStwWBLPhXN2R8NPFVwMaRRgRwpx5LSVIAkA4t8tBhTH7A0IxnKMOcZ4VG5yJFSLRzg+V2WSx53GmkU5Ask6sIYJOLwPWC0bXFxc4ubmBovZgjs9uQbTboKubTCfzTGfzXGxWqJpu6L8cdq3UzwjPS+OubEwysI8xe5TRohB6mmlj24ajU0eS48c25K4Ve6n/qUKzUmZWYPEc+Hzy+XPCCJ2LvEnCfKg6FiNpmi+gam88nrtAZAOcvnoc31ujcGQuSfvfrfHdrvFtO2QieODRlvP1eck9ykbAEmhZL752muCCIA1QDIFrh5BWT5KHbMd7z7/U/r6sDaHUyPiCCVUi1HmjXy/sa6MlyrII7+lRnOkDWV5S2BuEF8XpMIHOSOBKjpP8TwTRDmOyIIlAysGW7mH1T1Dfe+c43ySGBF8qD4TAyejyMAhB0ZJqUIpAEA6NNUOijWmXA/Kb5/MATqeD+e2T0LZEhFs445e65aPHoX3FVqYXV0cVY86eHY8SpZFn3RyZZ1u/K/GyJxrCtfv7YcPCN7j4f4Bq4sF1g9rbDc7bJ92eLi7L8q2Vk7qVWoXIC1xUAIDFSJ1nGAYBukr+ty7PYWGVRCdg5FPnwMoiTM6rjW0pPspBK4lReqd19nRWooTgkeKQbjMTSnN+frrr3F3d4fpdIqrqyvs9/vSEWW9XuP+/h4f7m7xpz//GSklfC6sUXd3d/jj998LXMjlO6fGxji2fM81g3mEl0bygNEjHw0L1/IiTACGYgwJ+qExWRAyWfjI8CbBwBqw4M04GlPdfPRlfopPXc3HEXIjqBcXxk5GYRhJHeCQJRubM5UlW1uEnmbcF/AjjUJCm4NTHpVJva8muTTWwRo2SibTOV7evMKvfv0rvHrxGbqWObcnTYeUI5zh3sNd16AxDXvsWVs9yliBYFLkBEMR9s45JCQm0BDDAbLeQvDouqmUWhG4J2kuY+uHAWk6HeOQZ9AXhfEks6XA0uOcP57n54Rf/c5RhivEy6m/U5SaKFxB3lD9Tr1ZYeFKMaDf77F5fMLlbIFMBjFmVlypUm7ybyKAi6tp/E3SzklsvJijErXj6yMAjdRXH12rWGK1Uwtw7DLTmLfyfG5TAf+cGelutcYcqJClysjhhNRcjMMUozg2FTSOjCTtHvPRepFzlbVoJVM/OwctA9Lfzfm4CYmOhTPcsCOGAGN5bZJ4vlQl1sYY4ZOX+vDjOm6DU2cmIoZYfpuSVkCM4zDG7587SfX2iShbg8mZyXJuixozOjawyqRCFjefCNQoBJIAJEmukt0rmMEQoWla7HY7bu2UgfmEF/76/gGP6zXub5kLOfiE6NMRdKx1jnwto3ICeEE/Pj7iu+++K+8dDocS/zTG4HA4oGlakBTqnwqaWrmqcDiNF9Q3v/5MSSnGsf7481NFrNdUe+jGsJfUuQbeD1iv15jP5/jtb3+Lpmkwn8+xWC7w337/e/zpT3/Cjz/+iLdv32IYBvzL73+Ptvsv+P3vf49//Md/xOXlZWHcOhwO2O/3BZavk8BqI8YYV+LH9fgrBK5/wQcM1iMTcBg4lqMetFyxLDDLMLE8732AMRnGZDjbgIhh6CxKAZptaQiAlditqB9yAtmx9uOaVDHsKMMSn2OTEvrDDj5wX2X4QUKMXGxPKRS3hMS1qf0h9gLEUKwWvnq8lc9YGgUMAvevLq/wy1/9Ff7mb/4av/nbv8H15QsW5kSwZOF9zyEbyLqJel4ZhpjpSW1VCgOcIb6eGBACYT/scTgcsN5ucOj3GMnegZRjiant9/tiDBESDocDlsulEGZkKdMIRwiL9p3WdVUQJOXSrr2fLKSC/MNQ3wzmODkqJTYOuE0hIyCyIMrxIIrpY6JUPThqCV3TwpFF6Afcvn2Hl8sLdGS5fadxoxPIA8yZxCTTKlaakRQazsXLRRqhTVaU4/yIVUP7ejtSyvLYuvZoPmXx1Ea5YcCNKuR4JRErPjM82exiQ8xZi5yjiNVU1LA2ZyAS5V3WDBUPVuk/jcx7TpKzMFK61vc9gvQaN5KFXCs5XQsjIkCcvS18+MwamkppUNO0sEiIOSJnSM39SIebAseMhyHBh4HHW28Pjcm6KUcxwMzz8MDJ9mkoW4wWpcLIBa5SWAVguEknYEYZAH0EZJDVuwUhFu3K70ED6jphZCGGmNDvDwASWufw4vIKTy9v8Pj4iMNhj8N2h8N2hxAyQkjFa9PSlrHEYaxz1Cy29XpdlGRKLFjqer79fn+kbD/mtQLnPSx9/9zjucV2+qibJnTpd+rkBOV8Lty2qws8PW2Kgr29vcXl5SWm0yln6WbO6tO2e8vlEmQNOsleBoCHhwc8Pj7i+++/L2OpirdOICteDUj6/hIWiwWm06kkbx23EeR2bAP6fsB2v8N6+8RlP7JYneWm0841IOOgjETGcKa1sRbOOjRNB+ZiVtiURGgYgAyatikCj+OTo8dhDMOb3FBH6A8bJt+PKeL+7hZv377F/cM9Hu7vkGJE6xyc5ZIIhQDlZj4TLDp/c3Wvn60rGsHslDJAFtc3r/DF11/h5vPXmC9XyERMAQnAUgZJhrUqhWwyKEtWPBlkMxoehAZtYzk5yhMoBvhhwHa7wd3dHYYc0XYTtC3fn15qpg+HgxhVgxjARpKgmC2MMpfGqdGlj3V2d83kVeY8coGhNZmIiEBJfCiRKafrKQnSVOK2MtZJUJ9TfuTTMR7ht4xGWLFSSri/v+cSpdkcrmk5PloJ7czOIHu3R/dbZKLEnUHKNcDy0ICK8iINWMQkqJ3aaVQes8xP6J96eXyRYqRV3guNHdgyINnKglJU8ihD4FlJdivyFZWdYqigK87akg8hP87XBZX/UawOZQ/kpCunxlQcHZrTe08AvCjTGKN4rAxDN9IzGikhW762SEl675pigKsBd5zZL5nSOp+yZP7nDFRVATp3fmr7JJQtgGJNq9WgcbMjOEgmXRZpMA44cBSglfk/wjUqObhLBfQ7qoeF7ivFCCckF26xxMvrF7BEeDIG+90WjbFMS3eiEIExe7ZWDnre3nvsdjtofFTpHPU7+/0ezvnyfeC5t1o/1or93Oe18K1h5J/b1CDQ8zpiSyKS2K1FDFMspzOEwPSIyu+rSjSlhK7rMJ/PcX19jbZt8fLlSyRkTGczfPXVV5hMJri7u8P7Dx9we3srCvY4TlyPwcgJPWYiayy8bbujMqkYI5x1UotHCBA2GgCucejaDs7xdw1JuY2xcMahaVv+ruPjWtMUgQeoMDYgY7nN3amylQQhTmoh8RoVPXFMhJ8S3i0XCClhCB4PD/cIgYkuTLaglGEoi6XOnqH6VWVMTubfuJH+PwZa5Di2aXD14gUurq8wmc2QiNAHCRcAsCaxYONfKjAtR60x0u3p7xKqcxwNNDWyPFh5W8veQhwGDH2PXshK2FtlReiHASEwIUnwxx5tMfoqz6L2sEi80KyeryoCeTnCoBiRfjnvjDFxUDNRrYxBIU4pJTP61UpWqWOQCSkmOGLu6ZwSNk9PXPcJhfG5JE0zpTNyIVYg0nMab6N6eyBVyvnIuz+xyEbPq77ErN8fz3+cM3VIrTpurXjrfXTOaRimuOkJORMiYvFoRwllWHlLm73aOSJ5TYTjc8h6LSr3JcsctpzWqRNirWXYOlQOAlk4Y+Csk0xnIXShDMZ/GFIYnZqRi5mVrDDMWVPOj3MsTDlPk6v2poqKfGT7JJQtoQriA8eTZlwtPIBmZLBJKQmccuLxyVwZChQpUdnqRmoWG+/PGZAWhMZw/V/TNMDr15h2HR6nMzw+3KNtGmy2e2x2+0JmrjWguugLNOV9IfCvFZbemNqQKMQDGK02fV4/ltM9I2Q/5vkeK+AsKeupwJD1ubVte0QOcZoJzeQcFsEHLGcztK0rSVDfffcdbm5uAHC50PX1Nb799lt8/fXXpeSpm04xm89weXmJh4cHbrEnLFwa/64TzerrGA0MUz4fsxMHKCFIqUGtoO8Ld8lxTUNouw6TyRTOMRE+Q6MNrJXuM5MJe76qbO3/y93b/FqSZHlCv2Pmfu97L15EZGVmV1VWdw+DBIMELFixnj8ACbGDDQsQwwLEhhVsQBrNjo8NEtIgEGIBiCVCSEis2NBCLIFVS7BomumqrsqKiPfuffe6mR0W5xwzc7vmfv2+yKyKGku9DL/u5mbm9nG+P8bSNpwGwZe8vuegOluSEIMiubI1hgJMtZZUrlXgSsLubsTheMDx5Yhf/eqXOL28qM8f4HT+Wa1QiebrmTL3UK11LQnSMVGWyzHG/R5v3r3FT7/7Do/v34OGAU9qMQ8IoTA6j4FLxDJzqTCDI6LGvxvCtVsAECMmTUw8gcV32EkAlPCi1uxq1Q6OGXm8HF/wcnyB8y5b8mdEG6NGBaI5JwmFHc6piwchKhEt4k0zNso25JqfV4gi8mJhnkLxHbactLVUycFL6L5GSpT/QCBmxGnCOEis9RQlG5AQ8B53+70SUc44gcwdMqFEMzKkCxXbqvqLGSWFHQPsKCNQJg1GQgQmiKsRKccFkih5EMkEVBdqhKsRZajhSZ5D5D0AQ7JpLlEwna3o6jWusO5DViKEjNDhuS+q2B46cw+WNauRv/bPJGkwfaUCmDQxB1AMUVMSWw1AfNYH5zG6AbthkNy3BvuJwWkCIep6JJwnERsLESkSimFw8MM+5z+WPU+iSlGCiswTwlFBYgvli0C2AIHIN8AVsFNVh8Frwxdm/ydbUC0MlughsHbKIsomKcUNA8ZBDJpsc6WU8ObhLXa7Pb795huE84QpBhzPZ7yczgip5G6tdY21K41xaCZSNl2rRY+qw8XV76YgqdQsB2swH0MWa9P96NXAQDZnTCmLdEJK6mSOWdgyA8aJAMACrQsgMSmAdxbEoeKMPYHVGtATgzghTCd8/+E3+MXPvwMzZ5H6n//5n+NP/uRP8POf/xzfffcdvvvuu7xODw8PiJxwOB7xF3/xF/izP/sz/OVf/iU+fPiAwXscDwecT9OMYs1cC+ZcfYwRv/rVr/Cb3/wmA3jbR5LMYJ/nOzEjgHPAgHHc4zge4ZxwqACw391ht7/Dw/09fn2eshh5t7sTPZtJW5zDOOzUfWUQwEwFwREZEEbmRmTeWQ3MJjhCFos55/Dw8IB377/C6TxJzF1mpDQBxKBIkkvWS7CXVHG1kdW3Ud046v0sh78S15HHu5/8BH/8N/4GfvHHf4rd/h7nKeL58DFHAAPEOOw0nTJnmNuyP91rJvbzjvDyYvUZGDyGYZSzxADHhOk0gfgIpATvBqSQkIL4S3sF9ayqlcPzESDCp0/PYu2u8ZIJUIM8lXjJwGBxmj0I0ThMI3jhioQBHnDitxxSzNxxG7q0p8JxipyQAPiakFFjmsrq+Xx+QXDSF0Xg+XCQVIm7AeP9HabTCd4LErA+E8pcm7hapAUJgxNdJqsZL5szoyKMPBvEYhkPvc9O1BjqsuYGgiMPEykzUxFbK27MPjnMigXV0iXUxpiaOSlB4BGM6CuISESHgtiJxFgMkzIMbprtJ8n4VCJ3WXAvItPdSiz0mEI+cwK3EtI5iEpROdjd7g7nJN/m/CDiYz9gVKmV+YhLBDDGx+8/YIoTyFMmDs+nE6YQcHcnsGC/32M3jmpUWXG2Rn+kJO56AIha8fNl+SKQLTMwRcDk9bD/Z+SoFQlZv5QPREMJFS7QTBo4tzkrQvYX6RAThmGXKRsioUJ3gwfzHnwvx+J+CjhPksLMKO9av2QWhMycQ+IVkbJS11UUHhtrDJNS8JIUebJcm+cJJ3sWEyInTKeT6MmS1D2FSbLBhIizBu9OSahNpCqWNGy+7BqZ6mSI7so5zqIdOdPmfmW6czl003TGh08fEFLAfbjH/d0d/uqX/wAhTvj09BEfPn3Aw8ODBnBw+NWvfonD8Yjn5yf86q//Gn/9q1/i04cPeP70EYfjEeeXE6ZJqVXmbNhTKGibKkH201nS/2WDJNOpwOHlMGTrTQEwLgeh8P5YZQRxKHGUR9GpkoiDvBNjCe/E79Z0MoMf1I1I3DkMqEgdI6BUh2OuMiTWojEGod7JLNE9Ht+8xU9/+nNM54Dnp48I55M8QyjiT6QiEzTAz9XOFkoAUI7G/HW9d7i/u8f9m0f87Ge/wC9+8acIIeHDhyftHzifA06nqfiK5tB0BSFlSYxyVyYe96jHoTGe3YD7+0f87Kc/x6fng0SqepkQpgkODqfDCXEKuNvdgVOQ4PEp4unpAO9+g91+pyJB6YyYlCBMqLaxrLXuSYlXzRBfddMv259OmSYi4AREJDWWkxCp3g3KoUr+6wjhfiVvr+jxTVdfhAyK6LhEcR/3O6TEmGJEdAmRGL/68D2++vBbPLx/h5d4xgkJA/sC+EwUbAjPkgxABZ0Kj2oxds6HRtWdYTCGEoLtGSCHRA7kgUQ+91MzJaRnPzNllSQRAOBjvi2EkYb8YAZQJCzm5ZWBh5YSCkPGxbClkTOZzC9X18t0y5oEKHP8icXrQPYAwfsdoISwJ4cQGfADBvIqQtZoYEQIemTUTFaI8/0IBMEnLzHilBICEZJziESYAJAS/udUCH+XxwiAvPjqKnEaGreutnwZyBbIkYEAi1ZSczRU1SyIuIdoyTZaFpBcItqC5IyUVB2PchCGpMlLe7WI148RYyzcV8/txsa9Ju6dXydwDDm4RgyKbKMg23OYxFE7SRjBl8NRgFiSfKan8wlhEi76PAniFUs5Rghn9WdDvle45CJOZhb3i9lsK8ciehoVFxki5oSXl6M6hAtg//Vvfo3T+YSn5yccX4549+5ddoE6Ho94enrC09OTGEb99rc4PD/heDiobmtSXZ1w8aT9p0aczBwRpjpMX22YQFmcSBas3HmwRa8BzSL+2LvOFcMNE/2bysLEoF51tNmAxqk0JouvJWiGZSWR7CX2TKzdzbfUVAecxCry/bv3+Pj2I2I445giXAogdhWHmXkfAZb1frK9aSJkFd8579R47RFfffMtvv76G7x7+xWmKeH5+VAZ6DkQnTIB4DUKEGCEg8/zZeKyHAJQo+qLKocRUkSCfOu7x3fgCByOR7xMEQiyF+NZgsWPw4gYZD/FxAhTxNPTM+5CwP3DXcngwvZtlY/nDFnomqvuzeYAKkKWvW1AVghLUQHJtSMPzphG2opIeX8IShUOkWosVI2BWUSdwzAgnMXWwCVJlfjbp0/4/vkTfpYCjilgIIZD0T/bfsji7lTW0WUi0xBbxXXUJzVbvmeoWcSyYDVyVphqXFm/pTmiBcCukY16quaBrfsmV2+1Psa5sxBDpk03mJpIuPdElNe57LXcQ4ZR1qobXKZTHEgJXw/yqIwYlYNn4cGjzkICq0uRpPALSeJLMxEwDGDvEaCETkoI2q+drUSFRkrah8HWtfJFIFtwUQ3kW5lkL4hXSjbVkPtUPSfZZjTfC1u6L6mWZtuwVDBdETkBomWcCzq0pb4univ0iAF2oFokXvcBYJblp47wZJx2rWd9enqC+S3W/rOt8Ylw4vMk3G2bJTcvZ0tNM4hhljRwFsTicDjg8fExJyw4n884Ho/ZEvXDhw84HA45LZ6FW7Q+2kxGvWIiw2I8VRE4UY3W4BG5CoqOwm2aS4pzPgO8YdhVz0Vv4zQ6jXOkxj5ykEkjUVnsWWf5WZWjHnwxoBo1rKFZZe72+yxOHoYBX331HrvB4fD0ER++/yWQXPn+2eGwfV9xOipWFktrsRp/eHjA4+MjfvrTn+HbP/oZHt6+g+TFDTiTQwx1XG4pJnq3uS0c+KWu0jkJawmHrP8kIpw17jKicDsjDXADkNyIjx8/anQgAJq2EESaU3oEkhCSx8Mz6iAWlPs1wpeyFa2N286HSY3kXTtf5dwxOK9Pa9Ro+64QYXPvALP6saT0DFNzCLZJJkUiAN5h4ojD+QVPLwc8nY4ScYsBl0WSKLClmtvMDHBc3PuX5ZTb6LVV2320NiBLpbaBaNu+qEeU4eLsGyrYDOaMqGcqQ1RSE3uDWcL2kocbPGouuu3bSg50w4zkzd5Bz4rzok5IHsQDwvEJUxREys6B1OhSCCdBoIEZHCOotlDXsdUqzNo1c618Gch2Rrk5zIID5Gd2TYBGqRHJktE++miBm/3BRtqZ0No3da0sb/IEPw4lzJ0rgMV8QA3IzDeyicbmi5/dInCJsOvgDy1ylU2TMuIz8Xite04p4jwFfPr0BJFClBCSp9MJz89HPD0949e//l6TCIger27PUueVNpHFNKaTt41fI9v6sNcRpHqHf34DhcXR1HfCETLgCSmqMY0Tn1zDZQTh3sgQqkPWfYEIgZULsXUxx3hS5JPvS5hIM1rx5DDsxhymMXHCdDpnX8lhGHO0x/YQF65tjmyJCnC8v7/H4+Mj3r17JzG5Hx/hhwExBSAScOYcrzb79pImTnde9w+UuPCoOZEZsnUOIQWQF4Q5DCNCmHA+TzgdXzCdz1nKQiC8ebjH4J0E0fCEw/GAMEmgD0BcjOxEhzCp6FiQauGwnXBC1dxItD2RwhBYJQjljIiOUgNzqPjVqXOrU32o6AaTRvICiAeVbCG7jeRJMEkYUfazZsJMPUREOX76x48f8fQkbnJgwJFKZYzLZJ7tbbt29Ho4toZctyLbXjtLSJxA8PXvBUQPzPd0t63qnkjh8mG4gOxkIni9LtKXOHPFm50ZSnj3/ivhurmCl3z5nQC64XFbmyH5nj8EZJt3dPmjMoNzmYfVYcCyA5XntR4DYK5fvjIEKiEO16in9nn9u/du++zyEAgB4clXHFVZ7FpnVr9nvz3m/dbGDELF95411H6zceyvhEmMMy43hIjnwzG/G0LA4XDAx48fcTwecTweNYbyOXNHdRvTJHll67alT9Ufd8bZAxgXnEBnnoma6EtZZqbvwhArQAawuWj7kQBx2pck9Y4K0A3JBHbqJ6gWolRdWwdxGPNOzHXJIhexik0jYgzCVYmTGYho5kYmY54bE8r3OjG+GYYsuk8p4Xg8wn/4ABoGsBMjE3Pcr7lY4+bsr77X42ptTwZF4JzkG0KMCKrKCFNAmIotwjgMuNuPGAeH/Tji7rjH6eUFx8MRx+NBEJGjjLST7eP8rwYOoPm5LgAzwmngH3UAACAASURBVHLp1sjWgAiBRbUNs46VVbZoRQAjBpKAGCpRYCpRkNgoejbEbiFA5b5x1zZfFk/cCMvdblfOHZe9Xp/F2X525StuLWsw6RZkW0vU1pAtACCmEi+hczbbcbWlRyDkoDDN+713aji5ytFTAlIEVfiih+jn7Ra4VOIhAN5f52itfBnIFgLopBh5UT+sa3L+P/XqQoyb8pl8xXZtEWjv/i0IdzY65mZBFRA4p7YR8+ct4qn7BDADmPPnZvF6+U59Xd+rXX6M063jDddc8Xmau3o8Pz/j4eEBHz9+zH8W/rEWW9dIu+W0mYE2m4aNsffnVQzbcnmXpX5e5l0IG87X0ldhYDJQJigHqPF+TRSWKqtOEDjRjOMpqkACLHSdDCLH6EUWn5XxeO9hejgjgmbAi93Fd4qo2yuHKcfa1uUcIuAGkPMg1dVm3bLql7136l9c8i47J3Fp6/Rn2QBMjYYiB1AiBBYiRVL3RTV8klRnIUwIacLOP8A7h9F7PNzd4f5+j8PzMwgsGaQSYyCH0amva9S4uuALoI98JoqVrPyFEpSfkIl2AwVEJF4KKUmcYw2sAK+2HpELkk9Jgngkyha6ZhVcdohwUnZubHzMYrlt4UzNhzeHayQjAJYJ9OwTs6EswZze/VuQbZ0wZQmR2fdyTEVvnAnZztmkkqziWjGr96VvacdBVOl3W1itYwIlxGkCOIlLl50DPfw1twwA93f3imyVMK5hP0r6RbqyWF8Qsl3Crj3KyCgSunheOOOMbW/s+zr1VNdpObA1xFhfz/sU6lqP7EW7tc9pK4LpIVuuABFMh9R813ZdUKmbDYeGAbu9n+m83r59i8fHRzw/P+NZU4xZdC1DusbJ1gCo1tNma+SL71geV6svr+cpEw1mGKZNmai9wG+LjzyPuWr3Cndk4iKZUIlH29tjhPq8MhgpTLAsMQTk/LIioJHg8H5Q4y1OgHdZJ2jrbOIwZmS9YdGpFm7U/mKMOBwOSIcjnB9F3zyUMKEWns7CX9q/cTrPuNy6zRnHaxbfzoFJsqmQIwyOQPsRifc4EeN0SuDThJeXQ7YAf3h4wNvHNxg8IcYJf/XLgOPLEUSEKd5hP44AMWIELE+p6HHlT+lS2TcxIiY1MKz2jxmN5d8s8YunMCEF1YV7YBx2IBqQ4BBASKcJhASkgBQhbjRcgjIUrpo1NqYHnL8AxND43EYsmRiZRW8y+4bZ7rEx36SzvSxrCHgrwu3V6zEcBmbqHhmY+eXWbfbgaK84wu3ItpLULb6jTBkiAPXCWJKSHY6/7Y61Jvp7HHFbviBk2/7uA7EYa1ENzd6riJkqFdX1TdUu0lodu15Dsnbdin/Xvs30U9Rpz9q8eIfnFH9dLyNIb6K3yzG0bbbiyva7S9u1r7uM02ue2t1uh7dv317Ec665WONua5G1iKNjBVj7/9pfyx3X/bR9nicJ1cicxLUjBXGjiozEQXXesgZs/t2EzPkUJjRhHruv9qszWwNjkUXMqLQwkKgKjCC60jL9jGEYlWMEwHPd38z9hggpFoBpImNDwkDx3zZL68gMP4zw4wjQHIGKXn2YIVbru0W09V9+NvjZODNHTA5v3jxIlii1mD+/nHA8veB0OuH7738NEFTP/4zTOYi0RMH1bjeqXtWDBp4b56UAXxkpRuVmWYNA5P1LNUIrZDhiUiv3BO88HKl+mgawjxjV4CrGAE+SdTVRCQEJW2UqnDfx/Own80euxPOAqhAsq1NrFdqcO+YSuei1pQc3aqOna6U9+0ttAshhGet6PRjZgymL7VZqhF4dg2NL4l975wKJKsFjZ9oyigldzeWcE4PIw8gIruyEwAA5FnU+COTW1+rLQLYEdJN0VmIgAErpGzYtVorzMqegNnXfQaRrdZbauPWdupjYwxaSjTWyoVTNXLTJeStAaLYipsrIODvBV+0ZwYKMErQJI1MUgBNVbcu73pndoLZLUH/VAbtdofzs21rE2WYuAlgNs2S8LdLsId1at9z2USPiSZNKM0fEoMg2KbKNkxq2MoCEGGwmWMXCFnxdkbEdSEhQmrLdGmRblMO6mg6SM5RAcILkzV0FrFGpZB4dzannue6U5MBz4WzNhYe5EEyFMx0QWYL1kxtEvF0hTUOO7Z8Z5vkm24xZZnu1PnbVuLwXvbH3DoNzSNghxT1iiJhiwMvxBYfDAU8HsUZ/PjxLQJTDQVzKnAA18alMmTMl5+F8cQMTYs9E63lXynxnUSEhpw+ouMcQpuxaJj62xbXJ9rwjB7ZEAEmuqRwyWUMqXTKrTzsV4M7Mkh6u0oFLxLtyBi3tm61zjTiY+YIzv1o6oLD3Ojl3UfVau62tVgutAUAd9/OdHDlq9u8coFHT2hz2MshCn+QMUk2/Ldxm+ej6uwn1PMiFRSK0UJOsCQn4AtkmeDfmsReiW9oSfGTpYf8QkG1FuQA6cVBg335AlUuSqr0omxT5YAlVuR7Roy1LiHGJWpuNt0M9LVFwdcn3m01YlEyzuwCQdXmz8TDn+mUDl8w9MibMgEoee+6hPp3V1jEMiwLknRuqb+JsQW1tGtCuv7FGrkuceq9uyyUbJ01U8ti2bdecbYyTiiAFwcZYDLJSCipOtvmytuwQlsDqciDLPExTnZNVYsDOctstUMdgQkxTRSVLRh3xDZ6n+Grns9XZMrPmStaoYNX8GLI1mkDysxR1QM2hWj/GLZsRVSsiq991meCqOHASq+bRO8AXOjoRcD6+4HA84tPzM2JM+PjxCS8vZxyPL2By8MMOStIgqLGN0yAjSblHYlaffLNHEEM0mWpn+DavGTHnvKmyHxIACWhiQUoshKKdIwmoIoni2ayQKys7UiZAtZKILL671GAkI2ZsDqdp0sD7Opc14mgI/r666UppQeXSu3xRdbHIfrtsr9cyU6NXr4mSCzi30B9qWMkSq14Tm1yTOua0m51n3Hz0oEFdBIkSiipJrmtC2bkBNbK1ulQxIVZ3rXwZyLYpM+quQXR16cnXqxs/+jh7yLUttejEfveKo6wQ6rY9q1shsdbHtLwjdXa7uU9wPSZgbm2Yk5avzJ29Z4YTNdfT1umJuK8dmvrafpvBT/1ujWxrw5R6bgTAhnwo2kwxa4RTO97eO0LMZc/AxW9pOfJe38IxFqTVumXNEC4K8H55ecHDw0POh1zHtjaAN8UoMZ2HMacfu+SYy1hb/Wzv2+wZc4WIM/cvoQNqZDMMA47jDu+/+gl+DsLX33wLNwzw/2CPCA86nzBFCdJyfjni5CJ2o0Trct5jJIcpRxFKSIoEPAFwgwaKMMBn6yd6eUbSbDAJp/MZ+90d/DA3JquJtprLtJCNq3uWWXToTSD6+vsBEZnXZjSXgS3mf+35WSt1is+L8TXXtyDw1iakHWNdsiGf1Wv2To2a8jO+YKdyXUCioQUz0tIAPMZp23Umtkwsr8SQNVLkhcjI/uV8FoaMLmPVz9VDcyOxyxFS516/fEHIdi567FEJM9GAOL81z42SUqrqChBsxZy9Or33e1ystTP7Im6/qd+2iJyAAiTWKaQLy8wrY27HY9dtPy1gbetbP4Wqm49hqc8agLWEQe/Z0hhK/+VerQ+z5/M9NFQGZpUV6TVJw8q9jGwtBN6GkteM5fC3Fo+OXAUc+vYD+bs000hKCY+Pj1nsC/Ss6EmMw0hYPkbhzEDzfi/OS+YSTTRb1aNKXKtI3TkGQ8TZnBS4ppQDBEg2HUJKjPv7Bzy+fY+3hxMOL2fwcQSfz/DDHR7evMPp+QlTENGxHzTKEDtIiCDWmPoiCYhhUiDKqH0nYUnoNf2c82KY5WjIrlGGpGqJSJ15ys5ErduerQsjG4tFzInqYRhwrzF2jTD2tlaKoBmXZ8DaqI3/cncLMKVHSLfP2ja2lC3Iu+63hPMkgFy2KRO9tiJbp4neFWkCmmABBepXLReJASOjzSI4UssIKvuX54KIUrfmxWARtwggTWhSSfvqkvgSblA5DBdneal8cch2a73efpnPEXc35lLZSu3ViHYJ0W1F3HUdyXnady36vHHPOeb6vTVJQV1a4kJrz95ZmoOaC2qft3Xq93oAoj3obZuXgECPOZuaYrthyJZCvL293lz3ABnjMppa0ytqI63SLqFdk3yfBOFalLQlgLm0/v06lP8M2JBymwSLdSvzb4jFey+hAx1j3N3h/v4N7h8ecf/mBYE8InkwQwyUQgRZ0gAnmY8MPMZowmZCYgk+b9/OGky3BHopfA2R+PCiql8jNAs23xJ/5o7WQ3pgFS1WU2d1vffY7XbY7XarZ2vWXvOs2yeWzuRlO0vSpVvKNRhjBENKSf3HdU+or7mtgKVTJCJEijNka9ctsiUzciOUSGo14qyRXX2vh2xR+qNKIkXV/zIBWX2bIRu7ni03md3ANY3tF4Rsy94tbj0qoalrNZtnrgivf1M1+60Yt8eJ3iJaKWO+DILx2jZtwUl3igVW0EatwfnvTQ07kLkTVe92D2uzyWgBELDJb+r5XphfQ4ol1B4yhdoSQ0b92716flvkXOsa23IBTG6Yr1asuliUe9tatkoCQDSztO33XUTldcYjWY8WgUvdZPvJtc/t3fUxLj2zmOYFOYle27jdTGyRk6wtTCAG3OBw//CIN49nPJ4SaLgDu2eEIAj27TsPTgHgpPkXIlKYJNhFIkk8HyUi1OBGAFI3g0VD9EQ6X2pYlQDKHCjl+/InunUJrEEg8ohxUikCVN+rhjrQoBYEiVtOEeN+Xwz6oqTfvLu7w36/xziO0n6NlWn2q19qWNXbN9QA+bpO+47+3gqVuPl3rZ6k/2OhFDUIhBj6tsyRpiBNYaG1ecsuj9cI53mNev/WDNbVkiqwypgHSHINHNTx19x5nhUqwWv+oJDtdVxCqHFti4znvyUlXGl/GQn2uIzfdeEMYHV582ozLk7H5qEm1Y1ULgR1u/MRXDa8UNcB0Fx9nbm0V0oIQQFrJZA7q7hv3hUBlFBJhC+o/lZ83CN05gSQANMiZr6OHTfvAyLknGAb2txKGEj/a8h2ztkWycJcdzznQAFiDZTeh9ez4i4Qch9BM8SLhfWmjFqNu5K1pfowSDxmJg8mDzfs8fjua0TaY7x/j1NgfP/xE87nswTCOD4hTiekEBDDhBgDwnTGNJ2RMCDhGSkGMEukLdOdkxmw6TwSRbUCr+Yvi90dgJj1unAOngZJsADJSXs6vyAGFYUni8qG8r4bwDEgJREbW2g/coT379/j/fv3sxjh1MAroCf6l8JODbfk18W68QritHdqArviRLaXrciLGWZYlFjNx2p4XHGtJSHB9VLbb3cjAnIh+FPaNlzH89gFjijvVwIKbIPhXiX49Z4lHLDnf1Bi5LII7d3O5NY1OpxR7/fSe1Zei2iviYZuQeLdA7dEzW5rETOgfYWila5mICmPq/cNt+mKLz/DOAnpSzarzFdfb3xNejDXKddjLpG55PQTLmRXNWWcLZNtFpaucWEAslZ6Rjbt3LKKJNendE4UzddhBdmSA3HavB/XONsyDsDEaGUKKYt+ZyJuJzGok3KFjgHQDsOOcf9mxJ5G8HCP0+mMOE34lGz/nhGiiKXZ8JsPcD6AyIOTWJuD5fuggB6sWZ6IQFTlgWWCpoYBgRCVY7K0dMMwwg0qDXASMIM5Zv0qmY6bCERDTkBRS4G8JoP49ttv8e7dO+wrjteRud2UPbco1oca/qxtiqX79s5nwBBaa7+pJ1IWl+tfSs3yTtRhbRmTEuwoxPsS7CZlpTcZlREkKcECkWPfNPuWStJI7Riqumvli0C2QIeBI5rj2YWPaVHINSHJLYYxS6UFkEvI/ZY2e3Vbw4elMSyMsqp7fSxb9HVlsMv1WqQ3e20Bcc/6WYQplyExe3Ny2YfpVBSo1lbfJuuCYYsk+SmtrrnzGDc5u94ehSc3j/m+QXOI9cl6WxlrrIcF7Q3Buerb1+pmIrGuu3BuFBoWKp8v6xoHZ1nyWPSukQlMA/zoMY4P2EcH8mdM5zP8+En9roXrTJxUT+tBboTzO5EGkWQZkrjW9fxwZ251jCSuPTKHplOU3+QszSBASHB+UGlaUlWvK21qO44cEhV3s91uh8fHR3zzzTd48+YNhqEy0psRd9uI1SX48jnSuB9DkkfO5bVeJeyxeMzbFsvZVRh2acRXdKZElxbQS8URz6QM7T65QLYoSL9ln2n+v8XyRSBb2eatmfglEmVmOOoP+YISB7BFbAgYVbatbi0OvKaz7f1eG0Nd1owfth8UQ9Trfb0WEdu71+ag5z7Qa5vBJa7tQl/1dc9oqttHfq2VllD1J78tP2953l4bUSD305yhXCwJyDF0DdHO/pVBAy3Rea3dWfD7lvCrxp9Fw1uQbZvQo0ddWWu1T6L8ZmK18lJ9FssLwzAiJEJIhCkAL+eA0zliSh670QNuL6JTR3DDA5yTyUgUMPGElBwSezDtQJ7hfAQ4YmAHpEk4UAqqVk2ZaGJWH2elb6LY8YAg15Y+2znLeSwOwsQk7lIJSJR0eSoCOGpyA0+AIxyPRzAz9vs9/uiP/gjfffcd3rx5A+ccpmmaWTLn1agkShfzvEFC1xL+7fP2+prUb9799p1IJGFcdanX22fOwWuutsua2J6MhOogOmj87FsOTyMJaoHk7Bc19zvEPs1gRb98EcgW6Ftmttc9bmn5Pe4asPTauKWscWefUz7XWOtLLWb01IpRW4Mn4TbMR3Nbu0ul3TuWRk7frFu5uNcGJuj2bf9+5jItiufXpsBE4e2YFGPM9yerWF5caFKn4d481kZiqwCcgKRB2EGkYlxFasySqIHUdcOJG0hiQmKHmIAQHEIEmDyG/RvseAf4Cc7t8Pg2YBr32O+PGHd3eDk9S8q+6YzpfAKnvaagi/D+GZwmcApIcUKYXpBiAGJQGBAzLDULArFk1g9RH2fnCOQH5Dhfg8eQIgCvPs9RLJOTBrtwkByuLPrdaZrw+PiIr7/+Gn/8i1/gq6++mvmIz+avIax688xGHWwoSxKwizW7AX5trZtbdzQ37PxBilF124iDz4Ht14q1XTNmt/T3hSDb1sfTkGv5beqHlnqYA1Z7V4F4w4X+UGVJP9hu+NuQZuGuUCU9FobFRHOmN6INh1CFelQiqlQSyPnepepZM6TMz3UZI2r+re+3wKOmqg3ZVm8Yw7hxzm7RI281YJCx9ZBxfc3l/3Td3F8b1fntUeWAme/YUq9mRMnM9VbAUvZk4ll8yXz/critbresVYts2Xsx1CHS8INzZEvKnYIjiAMie0RFdEzCRZIbMQx7DINHTA4pAvu7B3hiCatHA5x3OPsTJn+Sc5cGEQUiIYUAjg4peSQnThjRObBzkpwgxcwRVdDCjpQkKNfIXc5LX1ne5gd4YlBK4OTAIUmaRTC8H7Hfj0gcEeKE/X6Pn/zkJ/j222/x9dffZEQL9BOYeNBMslH/y7IR8gp2hQs1TORqh9aEJbcrjgud42rZmlO3IgJt/HMbhGLIJPe2iHtLbOvcDahaS2uwLynb1q7Bahtb78y7Zo1qrlbh7IY5/TKQLc0nvyDN9rchnepFXC5mPkgXHM6PR/UslVsQrgxZLSUrkWjWIdomoUtJQLe1Vj+U22qRIVXPFsZ+0V/tPjEXT9l6zEXMdV2gjjw0768vjrmV2291vFvLbXp2XBIu/dF01RQXRACjuw6XHffmqC9Cz/PZdsUFyHS5Kr6se3FN6u6hxJ8zoJM0ML/5IZN0JCkJRYKRxXgkoT/JjWKjRAmgCW7YKVdJYDgVbWswD47g6DOyHYY92BFSdEj6neQI7MR9SPxnC6EhaiMAzJoqUOM9Owc3jCLuJ7FQdV6yD5FLSMnBq/7YEWG32+P+/g5TOAFnSZ7w9ddf45uvv8FXX301k+ZY6FgD1uisYJn7CpjPkGiHGq6+6dp65XudfhfL1soESGrTy7/tMGu5f/kMmt0z6UBmQDaP1YLK9FyFenO3nFmsfWetfBnIVssqbEdNya3XkweF8ukB3S9ObEsq4KoAZn3dixp1rT3ZBCWGi73b07PWz9o+5tcGQIuu7lJsW9ogKm4vbShFG0d5XbHNBVHV/+4eUOkBl1uynKyF5isDkdGFlC72Y68wGHEKWZ9VItXkG0qKyH1/jbNFb+7XVDGEwQ8ADWCeI53cbHVthj4XXddSHCX8OEXrDFEnRvAJyTgjYBIaCXqQwK7ohBmSw/h8CjgeJxxfTji+HLFTojA5D/gBtNuDYgKHhIiTIEwwHBzgdxBp0AQijXvsHDAk5AxKimxTKBmiMiIcvCZQGLLUiJklV++wg2ONy5wSyEm0Ie893rx5g8fHBxwOT3AHwsPDPb77+R/jZz/7Dl999bXkwaUEIofBjxIPO3N7JV5vTajOdYFLiICq3zXhVRNJPQ7tttJva6my/M98bW19oPG/LWezLbyNeulLakfItLBPgWWYvj5Qzr7AW4iUVuJwuU7bypeBbBkAhzk1DWBOi8+f5F8X77yi+86kLSGb+p06ZuZSEvetxfvaJIwBLnomO6CskIycx9VujCLO31a2skU76Vpyt+2u9mNAsz0ANu5qMACYY6den+jhPP7ZJ83an3PtJRShVSwA/cadsXENB+cuotRceBXp9bgbJJyf1o3EGktYEZdxqzZ2lIAQ8/kskY5kqGtjLUhNPR8B8hnIM3g2NxZoxMOr+FYJpmYT2PuglBM8JAARBGaHnEKcPABLZOAQooNZ856mMzwRvHNgOJynAOdHjHuH5AaE4/eIiTVFYsDLKSAExpQcotsjMJDChBQDUhxqxhXkHcgNEEgfkXgCpwjHEcNovr8uq5kSAwx1L4IYaDED5EaZ86RiYyIMalOw2+3wzU9/in/ib/1jIETE6YT9bsT79+9xf38P25usrHZEkgxMKcKyR2W97EIJYbJVRk2UCWHFKJGz6mCHRmCnvOotWqPaIh+WbMOIqJqQ02xVuayjSOFiTQUhJ5Kc2adbQAgl4jRJElX9cqz3pNNv1B3H9fXlXM2Jdh1dBUDm77DE1kZ5Pn/nsu3mjnzfjaD+y0C2C5xMfyJuAZzbZ+OqS0pzbw1Bv0ZkPUO0eudChzOrs+HbumKn9qqpsVHnsWWnKZOwKKVYeVO76c+hcQYLb1183I+hPaj4ydmNvnSGAYImC5PfDsWtgbNjfqWPIpr95XYgfqOvGnPNTjawJnNZmOvEDOnPv90oCTNsM5BMSBajmRzki51CVYLX6wQCBVZgzmCWYPMRTt15HKaoWZuSInHygB/hd4SdpsZLYUKME6bzC5AcwB5gD0IAYVCCNYgQJhGIHQYkeDKLY5LxsHBPidUdSRePBvVVUrE4OQI0E1Ai+UY3jHhz9wajA3bjgP3dHuOgmYSyZM2C9Gvc6IqIXi1sNhrVWlVHgyxKVn5o2v/q3uLZqx9U17MhUVV/NrDeUC/6l24q/agRC1w+xZp2UMt+btqgS6J9CQekTpzTJYnXj6VaWitfCLLd+kF9quZzyxyglXu967V37H7PaOrW8fQ2yTVdTK9srXeTSwBu26w/RrmZmPmBx1t0ahWXWffXXKdmvJWFQoOg5/uu1cMy8zZRd1PWRP2t6mBpn/WeExXexlm8WRKkmTJnJfckMpNEk/LOghRI4P+ECYEcAgMxJUxTlAQCzJKDdxgkUEYaMYwjsNtJ5KYQ8PwMMHsgRYADwBOIAxhROO0IIIq19M4BDioEJ+O+oeH7GIgiOSAnuXmZWVyZWGgGIQAmcEx4OZ3x/HzE/X6Hu/t7jN5jHMacXxjK5c3F1gXbCn5aWUcqMoU+EVeXlhhvr+drVq9vkZxcWh9LUodeu5f3aHaXO3g+i22UCK+Jf/Fpz8aCuvdrddNSqfflkvqjd2+TpfWKeurW8sUg2y2lG65rsS42131taRHr55QWQa9xx7dulFv7v173FpnBP7zlhyZ4gD6R10OUtxJz19Z2CQEvF+Ne1PWHLTGZIFhxmKHM3QiSUR9cdRFK8YzzOeF4BgJFnDEiMiEmxul0FN/ZVFINSjw+ta53pFbEjN00aPOuRABTPQQnRsIgCeA5YagSp3MWdxKSsxSBYrlsom8izHyUCQmRZDyn04SPHz/i/dsHjON7eCpzJ9mOSopEC2oxeA/vLVZzDyFVa6Kz/GOc9Wv3fihubqn0iMglhmfNzuR3Uf4h5GztKm8xezK7TonQJvddun6NqGArEKupqB638ZoFajfc53K1rx3HtnZvqXsbsrlmgPCaQ/djzMNr1+Ga1KR+5xrRdUv/S3v7VgQu9UXoPSdoHYo9AIo4miGJxRNXokRBfsQRHBPOiXBGEmtlZngn+lOGRmYKQfSzKSGFCQgBzBFIQXxeOWrigqh/DMtfnJL6WbOIGp2KjwExm4pJXJESxPp4NzgV/XIBR1BpuHfwMWWOL4SIGJMgeV/mLjFL4AydU++9pPNrxPdXJnouIVlARkscnT17zb1sPHaDceHS/un9tjzB7b2W4Gvh3hqXWhtj9srSGbxWXmMM1StfBrItkpUKX9aI037XQL59Pm+wFVNcHUIlLtjKBbQbYUn8+zmlh2R/LApvM3fL28X5r0WM1+bx90Hhfs4YlsS2fdHdNsLqtXOwhYtpOY9apJ2BGwgSi9i4XAV41m4tSmSI/o406CIBgyd4BzgHcNIYxCyI3HvJW5vAYOfE/oklOEeYJnCYMnJ1xIJgU1Su2cJCCWBRVSCYgcgsATYM2SZGjJyRrR+8RI1igKcIkM2PIh8iOOdhxkkxchU3ea5jJypJHVJKkqnK1proqr8rWSMb13Hr897++iHP2TVk3hIHtah9aVzXCPC6rWvPauS8pfzOOFsi+i8A/HMAfsnM/7Te+/cB/GsAfqXV/l1m/h/12b8D4F+FGP3/W8z8P13rg4GSzYcZ8xNa/2uXa9ox+ffW6VlzremJ8YwKs4UTA4g+V7q1XBOXZKp5Y2jJW4iNW8WScXTeKQAAIABJREFUa2EV23a3jqOt2x6wdoy/b4R7a/+9de3d27q+t4zh2jq0VH9NBLTvkihboUJk4WYJyomJwRQRVfKnEtyAVV83DoRxGLAbgV1M8InhknC2YGAcxcJYsuMlJO8Qo/LSzGIFnYK4HjkAxtUiSiQrJDFqgiDIpNx4TOJbm9gBTIgxYpoiYmLVKzs4N4htbyKJlc2GxOUbM7JlJ3rlKg9uib4lfLn9NvhAJnFj9RteWbMCEq+vcY9guwZH1q7zGF4Ba64Rcympnr4DM5ckLC3SbfttidZrSPc1sPFzyxbO9r8E8J8A+K+a+/8xM/8HzaD+SQD/IoB/CsAvAPzPRPS3uPX56BVeuH51IbQ+pltLD/Cs1ett7BZB3Nrv2rtbOdDNnOqNdTeztbgdIfUQ6S1Shx9iDL+r0gKX+p5d98qthNFrxrW9FJc3p9bExcgFQNZNilg3p+6Bw24E9sljnwjDFPESBOnFxPARYuSk+l1msQh2nEQ8OxCIBxA7ESs7sTZukRgzg8UOGgmiD06a8Qcsku0p5lDO8IkwRY0mNQyCuB0hxagteJBaYqfEeHk54XQ6Y5om7Md9TikoxHiaqZok68/tLiNb1qgXsz1//0ZJyedIzNb66CHbTHx0kHRL6K2dh7rullgEvbrXyq3IealcRbbM/L8Q0d/c2N4/D+C/ZeYTgP+biP4cwD8L4H+93s+2DuSjr384wTbZ69wkbi1LiGAzp9gg52sb//eKQHjLCmjVDaIfK7ap1wBEK978fZVbvgtYD5axBJzafz9nf91SaiJgSdStFWEGS0TC3Qppqz6r+twQJfQ8Smh5jdrkCYN3IBck7GGImEIEJdWosvjyhhCUG4qF0zTRrpOfJa61Eti2T5OIiVmlYjEbURESe/jBaco/B8KQpWwu642VcGcNL6n+nykxpingfD7hfDoh7DzGccxjMOnXDPGZUAC4Gke4tge9hszWEFf7bg+2bN2ba+UWhGtlzY5gKyys+1g7K69V8/3OkO1K+TeJ6F8G8L8D+LeZ+XsAfwzgz6o6f6H3LgoR/R0AfwcAvv76G2wH31s+vFCTW7naa6Ljre9/rih5jbvtIZ0t7f3wdV8vKdhaf+lQtFTv76vcygUsicd6v5fWvAaUt377rWNdm/f8G+o/KqMW616nYQnI3J1SQbgQ614J2iiuQH4g+IEVsRXE6hTZSozliBgjolomp5RUVMzFSIuMg1ZO2AxBUkl9Z8nFU7RvE19Z7y1Eqgbd4KLWYkjyBINP5BwoORASWINuTFPEFMKMWxPd86Uonqq12IRAOmvYW5segbZGtG5Fhjb2q+O80t6a1G8JMS4Rl0v16+c9pLt2Bq+VH4KofS2y/U8B/F3IXvi7AP5DAP/KLQ0w898H8PcB4B/5m//o5i/5sQDsGrJdut9755redWt5rcj0c8r2/raLwj5nU1+jtm+dn1t0ltfKD3H4loDntf5fuy9ukbL0uOrZ+8aVScJZSGBjACR5XyVucm2slLAf96IXVb3u6Dx2cNglYBgiHE25z8AMbyLkqAgzCtINIcAhQWJRSbTl7OaTpC8xmErgGJFiQEwahY29GEkp2zjsHMbdHs4PgHOIgQVxMiMmCc0oxs0E58UdSKQUHoyEGBkxRMQp5vNvelpi4d5NtOy9RwyVaBzrLAZrhS0SrhjjBee2hGxrONVrqy5tAoW1cgsytzmpxd817LRnPW71lvNy7d0t5YeA58ArkS0z/5VdE9F/BuB/0J//L4A/rar+id5bLQRaXNSWwlkTBdgCWfxeCYtWZDE9IH3rItT1bMMslV6qsqV/27Zaqq9+VoeJbEs7nl62kc8tRqFvKc65C/3IljFcE90Mw5APY60X64nUbtHP/BjlGuHWPm+BZNnXRd/0Q6xj3d/S2No6s3EBKnoFyCIv5WeS1YaIRHlLFpsqIjGJuw0iCA673Q7v3+8x0R40vgA4wCdGOJ0QpjNOL0fEJKEZWf1VU05pwEjhpNyyIV7OyEyYUvHHTSzJCogc2AnixLADnMRWZjgkTIiMnH5vPzoM+0E9gKKEUFSunpxDCAEvpxNeTi/Y7/cIIWCaJAbybpDnzKwic19PsIbz/GHW0dpuz0AP/izBjyXmoS4tIdbCwy0IvD6za/0v3VsrS/W39ndr37ecw1chWyL6jpn/P/35LwD4P/T6vwfwXxPRfwQxkPrHAfxv1xssC3UNMPUonbqOPOPcLlU6EitbuMalSVxDiEsbq/f+kjhwi/h6Cxe+1E9Lob0OaF+jydfHu9T3LbqRJQJsaX2WONeWc7ul/1t8EJfG3pal76jnphWZvaZcW/ct+4QBjXcrF1x71/Jl3OyUYjagYo2g7JzDQAP2NOBuIkzJIQRGOLxAWWUR76oo18TTjhlREWx9yGVnakAKEy+TxRYnkB8ANi5cDLVU2C2ISN2BM0JRIEIEMcYiB2aNdESCNKZpwvl8zu49LaE3W9PZPF47e3MXuy2i2hrZ2r0Wdq6Jb1dH0zkr7fWS2LZ9/zX79rVc6dLvre0tEZ63jm2L689/A+BvA/iWiP4CwL8H4G8T0T8D2S3/D4B/XTv8P4novwPwfwEIAP4N3mKJjC0cptw3CsW+v7eYzHLI6ilqkfRrRQM9AHdN3GlljXK8Jhq9ZZzLREj/9+19lPi5t47nGkH1WgTWK+039xB0DyhtpWhvARifu37t79cg2h5R0s7BWv2L59U16w2mSjya9ah2dqM8Jy9v6Hp75zG4HXZ7h31ymCJweAlwzkv6O+/BPEAQuSDXlFiF0SnjWvNbdVxGp1pcJBZjJ+c8EjsdL+XnIonWTDUo5GRitbfO8MaBSUMYsuQIDiHgdDojhFBEyIqgjYsra6VzyBvEyCvPLupWiHZtrxmXfUubVpYYgZ40ye6v/X7NGNbq3dru1nd78/Wab9tijfwvdW7/5yv1/x6Av3e154ti1oV9caf9TJrSqxYXI4d5mW82P9DFPWv7tQCrHds1MUtdetTfUju9vnq/e20sfeu1treW62BiuVwD4JvHcAWwfA7Xt6XcOvat9ZcIkx6n+5qyRvj09vLVfryxtgDUMArdNqu1IomPDOdA3sP7ESN22N8NCBgReUQ4nECsyA2MYRiQ4oAYPSYwAhKgrkHTFNTPNsFxgib7kz6Tip011Z/bjVD2GID+kxgSlxdF9KwkQkoJ0JjO9bykZOn7hLM9vbxgmiaMo8VGLnVtHkiRO16559dKex56Z+zWs7YkMer93jI+e6enfmvH2BvrEnyrx3qNsbDfLQJd6v+HhCFfRgQpACKa0U0DoxwhlGydxwwk0h87vLME6XaYTbJUkPdyv5/HoawhsR4XsQTgeotft1P30+of1gDmLd+2GYizIdxtZc0HsAX+a/rodqz1e91hLhy6ayLS1xIA18rWtbhGGNb76BZJwBrnem2ca0DQ9gLDlQhJSFBJq55OsfIFOSQiEAYQeTC8+L9CEhfIUfcgP4J8APkIN4zgqDicgBgnUHQSdCIB52kSRAu1Uk4hj9NBEre7QbhkKCcrrkn543K0JiIxZMpnzgkXDdboVzEgxiDGUww47zAMA3b7HYZhyHPEDAyDy2157+G9R4osVtp0XWfrqATxqNdl6ffW8jlSlqVnt7RZI7veOaz/XZL+9c5sjzBdQsAz/XnTZwt7e2PttXmtfDHINsdUq7hbKQWBArK5y3ObFFeERnlxOIuXgGUq7bWiuCWRY724twLCHhXa4+B+qMPy6romSLixzWvjvvXAWvvX3rvGTf9YyLUdw5ayBHDae7dyK5/zjWvvCidI+RoAan/XGVFGSjdbGj6WmMQxAYEZUwRCBEJCDm5hf8yC8GwoTNkcSrICkTRu4R6T0uHkHPwwYhhGEDlMUXTL2hxIxd7QNkhz2SLPsfxrbkwpFRckpwZgu90ODw8PGMex2l8KlyppltyvdO9XJERM2+VH1yQWPQJuS1nyD1+TKtnza2UJri0xKy2R3iNEl8oSodIbc9vPkvHurWfqi0G2+dsdVacWcl0hT+8dOCdWt02dcrU6iXuLwNa4vluAYcsBLum/2npbEOaa2Oc1APNHQbZ4rRD5hyu3IuYlbvp3OYbXtt8Gba9Dhd7S1hqgqcscOVyOZ3aPapRa1DYi/hB0mGMAK7IpQS8kMERgRkiCbKfAmEJCjBBDqZAwBQuXqISniWNJ/GSdH0CIZuUk+lnlHkGCbMfdHgDhNB0V2QqbPENorpIUKDYOYYIkHdCIUOp+JPtIEtDv93u8efOI/X6fwxCm1I8ONqNSa26gtw5Wp1mDJTjWQ05LTMHW0u6FFobVfd7SRxsHuUdI1mVtLy7B8d78b9n7S/P4DwWyNSQK2GTXH+arepTvMZv5+HxCnOubu7cT89pNuOSiY6XdBO1iL23W3tisTttHTVAsvWe/e9z15yIbAopvxC3vXRGD3SIJaN1f1ijV33e5dRxL39IDelvF7mvE3bX7PSAjHCVyYl4R/wpCApuNrxDCxAzLFQCXwE50uxFAIGBCwjkmTBMwhYQpMGIiTJFxDgnnEEFIcCQZe5wfsdszOHlw8gAiYpw0AXwUP1oQvPPw4wjvBxA5RAYmY3mN6wQk1KOjCoZI2EdOCSBG4JRz5YY4IcUJSAyn7mfDzmN/J2Jk25c1QVT/9hmhm/HY775sPf9LsK1H7DHzTDS7ReJUt7n2fOv5+RzGwsbbkyT9UMT5F4FsAQ25xjWxV38g5ftlAoBiIGW/20Tc6w7ZrxUnbxFvLJU1zrftY40TXiMW1r7rc0ToZTC1qPCG134ATr19tyYorkkRenP2OVzvj8nZtiKyeuyv5c57wGMJ6GxrUN8XJlHOr6tEtMwg6HNmradIzUskJhMnxwSEyIpsI6LqViMDMarlsQfgHYZhBNiBMILTBEeMl+MzzmFCTBEMwjiOGIcB47gDg3A6T4gWfco5CRZFJNekXDKKrMxE3qwfYwJfIvs+i0qVcHo54dOnTzgej/0QjdUfSQZ6AIDjhLWZZlc432tnp7en6/Wej2G7FK/2Ye/9uzampd9L+6t33+bYvqO3d6/B3y6xuDAPbfv1HGz5xrXyRSBbAvKmypJjIItQ7JoISFH96kA5fVWeHpsoFr1MWYy+tKZ+vlUwOlsoNrEYZ+lQuVbfPirf1f1u1GMo3y4HnfQGAzloQK4BQLTVbIZjZbJmfXB1fdFvmYyrqtjPpe/ag9AH7DdQsZnAKq4W9sXMy6K1a2O65Xs2F+bZOrRfObvHnCN6l71/CQSIKBvRLLVl1zOksYBsra81biIjfzASQfLOUkFQSQljMEBMinAZ5OSbyHlA/whOkwcQIieEyAgxIaSIxEl0ozEgxAiiCIneRAA5eKc73hOQIqbpDJomJDiQdxjGO4y7HcZxRAwBU5gQgvnHanYi0sAWVImlLRYyI4ub80xoXV0iScvHjJfTCZ8+PeFwfJE4zzpO45zZ5sBeNKSzstcZmKXt3gLka4S69uw1WaW2IJVZIgDI3LT7etY2Cky5aF0fMjO4zissJupzPFH1KlKXprXq7JlxZxnrZSvtQGom7w8e2daFmusKjcymhZyDJzkwxt8m3chKi0meS0ARb9tCQVoCtwlzy+YECT6uk6mHLEYTXxpSFaDvIGIx6AZLYDPIlGg1xrbD/Pbs0ItIzWm4OyaGY/X9o9KNAcWEBEpmGMJwICT1Kc7XOi4mgFID5Gk+t/WUOGAG5C9mq9pX9RZbRTkryE3GQ/kw5I2rxEW5bkZGLGI/RuZQSqLuslc4xzsoiLZHWNUE1Pw5dz60frfM7CUC5fqxZMRp3mx3Yhl3ykDZjI8y8cmW/FxEn4MfKiLsYhAF2ep4ZqCFOpHAiMApqUEQMrKw98p9OV+C/OyYWCo7JYRYOpS9mWTfuwFwHo48vMYZZnKiu00R5xRxjhEpTgjhLH/TGeQiHDwcDRicIFTnHBx5DPcep3OAmxLIR5mXu0fs9nsMw4jz4YAzJ0wpwpEDwyt36wHyYHJ5bRNc3ufimysIGJDUeqCggTmS+O8m4Pnwgt98/wFPz0c83N9hHAjeayAMzeEr80VgTmU9m/1QX0vgO847aw7T29+XyKCWAFoKwIKIW/K7LZUh2gUHXffZvsaFN7BvSEXl4GoikoFkIFefe1BVt7hlkb4nbI3BUGVyiAq4qL9NgRujwDWqPjuEADsZmfHoEOsgieM9n3ObT8KMIrqS9OaLQbajyftZiNUlQASoCIoIGg5cFlSRHIHUYtkoLda0VqWVQuUlMEcgG1nMiyyV+f/6AlAVKTuF7bbBPFi4TBad1TB6EDmh0EMyRhhEXg6jflSCJNImEiTNqRYxEYg4I2ivoi9Y8AAWIxFpi+DIDqiMyzk3GyMvzq0BxhrB2AbjjJi7eow1Do8Nb8zFQTKugqQ4xQrZAeRKm3JtKgG5J9uloLg5MZV03qS+c/PxXgAMKu3WlocpAYyaWneztnIeU5tHM+4zoKJUtvTh8mS0fWYkTmpXT4pXK/rC2U0i2e/C2hUCSReoPvqomiebx2b9kWR1a+mMuMvo/skcHxRw1pIAiV9sM54wgDDAsvrYlDjtyHkW5AaPswJSi5tMfgQPjOSB5BNiPCDxESkdkcIBMUxIowfvRuzHN9jv7zEOA4bBIcaE+zdfIYSI0+mMT88HxJhwmCJePp1wPDLI3cOP93AUAUrygd7DDTsB3AoPQB7Oy3lyxGAPRIg/rScCRoeYHCImBGacosen5wCHAz5+fMG7t+9xf7/D6AneJSQO4CihJt+9faefTAAbF6ZBNxAV2ljS+5J4vqLTN/y+JCRrmGd17Ky1olkz7rLN4Kpz2CKb2bU+lL1jonnZc7LUSdy3kODIYRh8gd067LLHZW8kKLHp/cVzB8r0OJIwLByFSLxQJyoMzWQryb3EBa4VrA/MkaaK/nVYXB+wQpG0NG63fDHIlmuDmxret0BJJ9XQIFSURkTwpsNlieyyTGnU1J02bUC+5m6ZCyCELOLgHdgZ4LTWWH/m5ZR/FfhmWKq7ivSa8sbhDEcdkwZxN26Y5+Mzio6LcQVVwI/yZhFE5mbxWC9noQa8zKl6Vhtv1JTf7cWQXmvdV3Qtrd+wfgvVvy9L3WbpxzgHE5nqrx6R0Bnb5Tj6SBooDmd2eGuimvK/RlRx1R6322+2NEQEZ9S6tV/naLX5UaDpMjFEDf9cBj5rv9qnWc3BRR0yW6d6fE4RBNkgWL1jUbVoolhfIXbZl852FVnN8mYiI2vl7EY1ROI0IcYJ03RCSh5ICbvBYz/uMLgBBI83j49gEM5TAOiEU5KEAm6IYL9HpB2IGIMD9p7B6VxJUQgpmbuPZf/xSiRF48dl/h1AboDzO3gIIvPegxwh8SAiZ83X60gJ6P2I5AGOhMETOBLY6cypBMtmgcFwpAQ3M4rMrpRb9aC9Ysiwp1oxQrjXnpyVOSdoINL2CpGrru18m7QugVjgtXNOMjq5sg6zd5wSpvqvwXkbI1GlvlOCIFZMSXueZieMSIguQCVryIdbPttVtVlpaMUBTurKkGQu2JiUCzJ3Xr4cZLu0WRoiyjknVFIt+vM+byBm9YnbtPdarggoYPIS2ALiO0so2SiYDdFy2XS2GUx/wApYltbiYqzFyf6yYhFFLbx85X4p1Fynag3ydp3/U77rhsPdM2zo/TaC4/JZPQKbgz4yrpGr3WflJm8y/kEPMa//nj1bWG/GNsOMtrj2HlfzOOOQO2O5Nu4GTqwZ30k3KtBjUmJCEH8ySUX+dNXZZmKkzH3mUoCsE7OzK1KFaA9AsIhNjADG6TRg2p/hNbj/MOyQQBjYYRhZLJVHMaxy4ySiazAGx7gfCeF8lMAU6sKj3ZRJIDcTKwjyIJCTABneezBGMCdNz0ewfLfVJME5ghu8hKg0Ha4jcCIF8po8QIl/Jsv1K7plYjdbUrbJ6vxe0sOWvMKc6zvvZ/ClPlkZ0Vaqg9mJMeRe/bb3ze/4AgbWsFpDV1qCkiW4wCzi49aYaU4IGkmt/XeIhKW9L6oYC9tZV7i8JlTTbjClIjj54sV++SKQLfO2yEFElM3rc17LihKrrccSi9n+LUYsLRLpvSsbsmyi1lqu/teeL1nD9X631+3334Isem1sqbsG+NeQbZ8aVqmD94vzVIv4a2TbIuW6bmv12V2rPI+X968ht17f7Te2AKVtr31/yVqyB3B6bdb7ql6ruv7SfC1z9pfvLn173TcR4FRUbADZaCIiRpG3qXEQQQ1dWGSN5FT2LIiqtu5NMYKTiO+8HzEMO3g/IcWIaQo4Hl8wep99Wu/fPALOg1my3zw8PMC5AczAFCJ2d3uAEwYHPOwcXg4eLy8vOJ1OOUPP5d6t10kJQQgnm3jQj2X4geAUMWfLXVjiP5JgGt6BQxQulkhcjapoW8Y1MYqkQXhfJwhlgZuti0HPdi/1YMktsX6XYM7FPZ4T5O1+tbmpc/7WbffutYi6/r52Xy+NdfE85BSNy6V33lbn4Er5IpDtLcUWpKZi7NARUT6wDIYfXHcx2r/WvL2uXxeh+CR/Z9tGvVlqLntpQdpNJPkoq34642nnYEvZuiFew6kuzVc757ZWFrqurmv1yzfND1+vbnvvGqdobmXt+Ot6NRKv6/T6tn/rtGY9ouqCUqf1QCttf3X9JWTb1q37ap+tESc9BN4rsz44gjLCJSRyGFSglhQZiZGi/SVV4gIgFTcn0Z3FQEgxIYWEFBnODfDjLnPJzIzTyxFhOouLTZA4xLvdDk+HI+7v7zGMO/hhxG5/h/1+hPMekRPG3QCnY/EI4HiWZPQWoILm5z8li02l82QEhHJTFvtYuG/ZW4kZk+oZjWlPKSEZUCdCClE/vY6CV3ijZqZnyKue/97ZG4ZhlfCs36/P4dJeWnp3rd0U4uLeMRhQi7Db9uoYBi1c3rIn67pr30NEmkyizxy0ZVFq8IeKbLeYoxNRFv0AJVdqlzOky43Zo5h6f1ZaClBEWZWEqRpXXVoE3Ktj98r9dMGBtaX+7luQ7da6vXeWNvpaCLMeAqkRR69+jWjtvfr9tW+59n3yvM/h9ZJX23U7zz0AUM/HzPWhg8zbee2Nv56rrdxmO56lvntrU7/bjqnXX83ZEvuKgyW19AVApjs2lxe5jpmrVXehBCQSw6SUBNlyYoABZy45RIqYy/zHGEHKCYcQMYWAEAJ2+z12u72sh3dwwwCGGA0O3sMRI55PYC7clXMO7OaBGpjnKqEiIbwUGApilrsxJrWAd3DeI/FJ9oQG49CJrVowPaW2anuSxKLbUZWbu3PO6tLu4y6j0NTtwTx7v/6+3v22MLNZws3qLu25XmL4FlYsjak9Q3UbWzlbL+asi9/zY5QvBtlupRKmaQLQByRW7IAsLUIPudbcScuFzJ6rsWC7OXqcUDvOuv8WEa9t+vY7rgHeedlWr7dR1+ouBRJf2/AtZ7aEcOp7vUNW97X07vy5uG604237MWKut6ZLnOjSOG5Zoy3v3bbmy+/05rNHALR1O60DKJbvgmCdGvepuDgLU4u+UMxV5W6i4quaEguiTQzLXZtYLL6jiZazrUZCTAA0MXuMk6opotSDcIvDOKp7jxMXB5bwi+a+Z/s4OdM/V3tTcazAElbmvOjniKQ9CaUpQ56mIHGcQZIWMBQfXSISdyP9zwgUUNHHS4IE7cMRHPkyv1p6+9e41bV17521Fln1ylrSk/oep5Td1C6eLRDgbb2auN2yb5eYqLXx5neLWeFqMW78hyhfBLLtTdJSvfP5LP51ahxh960URCB+e3avnfRah1DfW9Ir2jNHkhPT+rG/pQ1UI6YCtPMRrIA8qvuXCPgaZdsrZQNfrTrjqteAbE2gM69zR21bPaDeHsStnPjSXPfmRfbJpQqhXuOa4q7bl2eAIet2XzgLXK/9XH5/+y7P5u2yTpnX3BaVcczf5dz35ZRRNXb7PR/L0jzP9+hlu9Y3yGUjKYbgUSbJLwsqKTMNgTgQ2JEmYJfgEYklclRKACJAEaAoBlJhCginCcfDES/nM5ISQrvdiNEPcL4KbEMJYTohThOOx2fs7x4wjCOGYYAbRtzd7eEIOB2eEcI5E1Xee8RQpBUZuFZn92JPyTKKYDxG8YJg4PlwwPF0wtt0LyEisVPJeRJjLpiu1sHcoxIUmYORSLhgdXqBJ0tEP8+adblWnX1aVqnUM1hin0GUDaWMGJrV7xSTalwQ8URdeLzWVg8B10R8O/fz/cqwsL52O6XeuSpjrX9zR2KQrzvztDTu3u+l8kUgW2CbGFmo2DjjQutkzXVbieWv5QZrBFYb2dQGPFZaHQIRwTvxEbNCSsELMKdmI2YQVAEFi9bG+XcNSOXeHCBuoUCX5mvmyrRSiCQl2FofZXw2h1zdNyRWrrU2SMVhVLkxGZeCbFrjqvZuE30vcZsFENXfYOslYyDSROTVOtQExRzpFBctZiD75tXv1P3kKVBfvdJM5xtsHsqBJ6eIGVDkpewWc+G27PdFg6yDIkUchuS5ArKdyQRUlNvH4qRcKyunJzpb5QozotV1VIRLOfqIk+hR5JCiR4DEK46JkQJAGsDAgXE6TwjTpMEHgPv7OwzuQfxXvbjWQEXJp9MJYEYMZ8ltSwCngHEcEbxHZMbBe3hnyGt+noyjTXzpk29fbbkCxYra6TmOCCQEwxQTvv/wEb/97Qe8ebPH+3dvsN/tgETwxBg9wOcAUqMn9cRXAgUANNlEhXgdu7yU7bapjle7es166XdWxlsS87kgWhCp5a/U4JQy8qWsO6ZZm/maygUNSxzzMlFXb7Ni2S3v2PPsz16dEdvLNcHZ2mZcjDH/Znj1KIHhhGquShtcjvjFOaDu9Vr5YpDtVs62BqKWDaVGirHKymE6hB7CajmcloptudVs8az92bs9Tri8RzBdLLNTIG0bRA9VIt0kfWvS+ttvRbbV25tqOXfJmVnfdTuFQ+sCsGsBAAAgAElEQVTP6fydHtLnZh5qBL7yFRu4ZrteFu/OiYPyXS3nWr7XDvicUtbxoz2I5ZoroF4kURVC7X6LunZptYumDftyaX/1rFffUQiKltJvx1KPsNEzt8MnysBGRK52nyvEIeNgJz7qEjGqcLYpi485v8amvyUx/tntRtztBuxGDWQRJsRpwnQ+4XwMSAmIISBMk4RKTKP4DkdBxgzAO4/7+weAGmkTKniQp61ILGZglQCQg6s44ATGFAKeDwlPzwe8vIiu1vkBzokvsneE6NQ3OmdwqOZL2zbvIXP6mYUgn3F57XngGdDvnU37N7vc2D6onqOCi8ZdbhHp9sTW64T7nBBuJYDzsbbfXf9bE0/9Pb28zys4Ua19Pb5ajLxlHtbKHxSyNQ60B9zrBTJk6xqutu5rLn6ZWxLX99vE54bcW4OKtq3aHaknEm6RUfu8/p5ePz9Gqeeptx7tIajH33vnVuKglUJsfad9v73u/a7H2EoveoCjN8aWOOrN3dKctG32xlX/2xKM19rpfcetwKH3DfPvaan9mmxRUtMQMInojsmDaZB/wZYVD+AkWQdSAhTROiK4YcSw2+Hh/g53+wG7wWviAeCcIhJBIjSlhBgDOARxX+U7EEuQzHA+IARBfuM4wg/jfO2qT7qcNzu/eoZJQ02QqZAIrKEmD2ESUfLxhBAinNvBsVfEycjKXSKJCQ2AG+qlnsM5l9Wb//Vna+dyXYVQ/m2TrC+dzR7saOFcD6Zda7sHu9fGvfSs127LvK2VpTN6yzn6IpAtkSRgXqKS2tJaINduF0TmixsRYsD5fAYgnOn9/X2eXKPu9vt9Rp7DMCxShNbu4IeMcO15D3Fan/YtrX9ZTzdYl6XNaO327q9t1LW5tX5MZHetfrtBlyi/+jtaB/Yl/c6aMcJriQzr2w5H28drDqo9q9/NbmcdINP6kfckIfVeaccW1BioNeIbhuGivfrfpW9a++aeD/PFN6l4ugxVXIHgonK1STlIMQyC85iwA/we8HcA7ZFcUHQbATDidMT5cMDzp48gMN6/fYc3D3d4fHxAjGc8f/qADx++x29/8xucj0/gFEDM8J7AIcCD4Qfg46ffijb0zRu8ffsWLp6x8w7kEo7HZ7x991X+ptPpBJBkCRqGQQ2xNDBOSri/vwMxEMOE48sZcQoYBifWzs6BcgpQAiPh6fkFn54PeD6e8O037xGnI8IUkMKEtw/3Eh5T/4TLLag2pQDOJAgkJeHCnrmltHDA9kyvtMg1r27nvNv9WqXX9rfUVg0X7NrgzzWiv33XzourpI69d+o5qN+px9qer7bPpXa3IN4vAtkaN3ptM9XAaImDyZMFzJBiy7Ea0LXrFvgvUWW9oa1xEPXCtRxw+067iXvXS332nvc2cM/ir8cFLpU1qrSt1/uOLQdpa2nndKmdHkG01ucSR9zrYwvgqwFCO/4W6QKYnYW2LAGTXlkb+5Z3239n/ZLa1XqVEYvpjyBaDbEgxlBqDYwBoBEJA0J0OJ4SPj2f8fQc8HwMiMFhP46gh3vsHOHd4zfgdEYIJ/z613+Njx9+jcPTJ0ml93KAS1Fdegi7YQdyCSmpC5AH/ujrt3j/1Ve4u7/Hp+9/hZCSiKwxwPshI5xpmpDCnED23kvkqypzj3OEwXsE1WfW9VOKiEniJx9PR3x8+oTf/PZ7/PSbdxioMsBkkji+0fpTi1hOOXMSQ0TnjFSADS+v3RJntsYB3mJdu4Rkev0aQbmV0FuKb9AjYOt2ewS6fVd9PpZgWsvs1O22DA0RzZiQXrtbOeQvAtkCl8EElkqXyqa+iK22WK4RTY2AezqJHoDKCwI9EAsTuzj0VmdZ/Wr7Wvrm3hiv1U/JALf8ye1qjkkFVzn4wFwUmO8YBW5UJXMxsGB5g6svKuMrpHsZl81lT8x1O/fazk8XQFD5mtl3XXwnzYcwS5PUjq3u037PjceAYnRVhsSzd9p5QTYAQdNGLaCdf39dp95KcyJx29yS7gk7izZOi5xmfUl6P4KFrSvDLeMkOCT2YPIARjBGJIxIej9ylIQPSYxxnAMG//9T9y5JkiTbgd25qmbuHhGZkf+sV+/TeEQ3Gi3gBMKmkGsgF8Bx74ED9hI47RFFOOSMa6BwCew1tAjYFADvoaoyI/xjZqp6ObiqZmoa5pHxgB4ktCQqIt3N9Hv1/j8mSQ6XI+fzI1+//MLD158J40AKI04SfefwAt6R8zNHVCOSAneHnk/v3/Du/Tv6/Y6/3XuOl4mUAjid0zzWSH/GGRWyndMPAiIOnyVfKARAc1GQ7I0tjnGcOB5PfPn6wGW4cLPvrHhIcfhJ5oC0nHPJCF0IbW0uKntYwWD5NW92zs7VMr/Pne+3Hpi71jk1bh4qw0Oa74JmMV21uiobqEmLI1MWhObfGdusrtzq/xVeypdiC74ha1FWSJX6Gtbm8eXzej6NIPFEIKpeq/fopYzsd0FsXyrZtq3ldNYqyyqPqeqK0NYSVvnZkjy2pWdd5RBu51K3OpNUebfqvTHIbxGq7flsPXNNijEnWOOWreqLFrqLZqeKamX2TvWZ8RVrojgDZX6WgpCbabfz0fmybq/pOQ7+ubbFWdZz9V3Tr7Bmlqp/lz2Z+ynORUhzYi2zVMZU6gIY5SgWQmVv6saGrZHssnc1oW058VY9tibKzbL/hO1VXSq+FEahPju7X+bghGavTa3ZrUyERQBnifplh8oBkR2u87hecZ1Vz0ppJIaRNI3E6cLf/cMfOR0fuJweeXj4hRhGei/sO8/tzQ27zhmR1UgIA2jEpUAnkfdv7vn1Dx/58PEDzjv+5u7AOI5MYbJMUt7N0QeWGGOa10eRbMUiDxbJ1pmaOUyEGC17FJoJskPE03WecQo8Pp746edfOJ7O7LpX2cvWz7hJ531aCG3e9cy35vta/mvBd+Mcn2CMZ886bbyw3TSHT9awVpeLXDSJT+3Lcx8NEVtNs8BzvaiVIKVZe7J+p/7djMa8ONUVU7KMkeei621YaaDKnGTBBq2AtJrLxkza9l0QW1gf5jX1XCvNPquOrPqEp/a0QoBDCFeJbd3msUre5Y151M/9qS2Eb+eGvjYnYLVnNZEriKNtW3bBa3u+pTX4U9pL1K2GgP60vftWv8u6ak9w8mcvV51vtSIdtGf/HENXz+uaqusaLLV9lfm3STiea3+K+nlLjVzb3RdV5CLNm19umsNMkgopOaJ4ovNIfwv+kCVbIaaBaUqcLhd++eUXzo8nhsuF4XLky89/IMYRjRNOlMPtnkPv2XWO3gkpDIT8vRAJ04Vd33H/5p6/+Ivf8y9+85n7N/cIyu9+84kxDMSvF7pXN9k/xBFjJIRg4UKYvdLldSYBVauz67MzFGIFTzToXA+16zoj0H1P33vidOR0vvDzz194fDjx+u6GXdfjnfWlK61W2VudJWOVZByygMe9mChuab+uwcNLi8cX+GphtIaDmkCJ3865XD9Tax1Lf8+ZLJ67O9fm/Ny/V/03TP9W3/Vdu0ab/llJtm17bvK1o1G78PogFZ1zJpc+C2LaQnRbiHcL+a0EoivIcQsQ67YJAGw7JtT9bX32jzn4a8Rzyzmi7FcrPbbp4a71/6351s9aGbk/zZ70XL/1XNtt+RbheQlhmssksuxTHRZWf1c0LPU+Xru411Jh1mveQgzbmpjlu5cS22tMSMugiWiJ2DEbp1oaRVO3WRWgiJCcI9IRJmEYE+cw8tPDxB//+Au/fHngl1++8vDlC+P5QpxG4jTgHHjX4Xbe1MYevChOEylMaJwgBXPKSiOexKvbPb/+1Uf+/M9+y5u7G3bepObf/PCRn3/5whSF7u6OznumEE3abTLSlTs7xciUIl3nLYGGA0jEnC7SGPe0ujOqxmdMIXIZBh6Oj7wfX3PYdXSdR9Tq6JqsD0tsedE2mfRlBJccIvSy82pzcz8ntGzl8X5pewnjvNVamKydFre+r+G1jFcT7HYe9b15bu718/XvFmfVDGybsvLa/fjWvnxXxHaLyyltjZSf2mhr4Fo2kJWUUfdTj3GNo9mcWya47Vy35n4NoK8Rz2uS3XPE9vk5t8rq5wFia83t3pU1tenhSmuBdktqrvtb//1yYtue9XP9OrcwZ+3a/jHtGqxc48ifMmzPj7uFeLbGrbnxa/tQP/tSiaY8v75LT/0kTCJbCL/TZMkRAFRyXmOHJk+SjvMlcg7KcYIvXy98fTjz+HjmdDpzuVyI4wUNExrGXA/W03mh94JzCeIEMZFmol5Uhkq/63nz+o7PH9/zw8cPucRpwgm8f/uat/evOA4JPewAskQ7GQNewdy8R5pI0wT0+GJ3IRFDtIIJ2VRVJCRNSsifx2iZ7h4eH7kMF24PO/aHPeTkKbMf2ey7YNKtEdqi4Wl0nFfOqJ73c8TkGtP00v7rflu4EJEXCeBbsFQLT9fGruG8pQMt7rkG+0/Xxoxvv0Uk2z6v4u9/TsQWnhLTre/rRV9LKuHEbC4vBZhrJf62EPq1PKTbyL8e/7oUuiXZXiN+1+a59e/avmw2uLL29fvlsa3LuQW4zxVDeE6Kev5S8WK1WTv+t5izl7TnYO7aZ99SfV/jynnGxlWnEm2JpIis/BueQwD19/onbG7J2FPgZT3vZR4iYn4A9oCtCa3CWQToEDrQHV++nHgY4TjCl8eJ0zkwBVOqmrNVIhHRXLK9c8Ku6zjse0QnVJSokQnzRHYC4gSXPO/f3fPj50/89tc/8PHdPQ8PX5imEcHz/s0rPn94yyXAV+05jYFhGKx6UEp0ObNUKe/nvRVYSMGyUBWbfoiBaRoJMZCS1bIFq5tr5f9GHBERZRzhH376iU8f7rnZ9bw67Je9q/6fNy/DwrKHlP3eOLIteAwhZAois+Pi1m+lwNeLyKOdi3EVFKTh3Bw5PIdNwrc1J62A9C3Y3Xp/i6HYSoZR9vSaBihF29s6YmV+NzOMm4Lf1hpFrn9Xte+G2L7EG7nlhlqO/0lYizzl6FpCe62VPp8mpieXDVs/W+ZTpN7StqTN9ecZQNK2xL01z2vI/xqXV4+7XLK233Us7LeR91MC3XKe7Xq2xl0TW3kxsf1Wq/uNcclCs3XxXvrv9juHkGThsFskwiwRGWpqL/41ZFNquxqhLR6rzM/aWGuGaTnvhcFbz/flG7uejhHDGp+IVM8UePaCS4acDa17kB0iO3AHOneTn1W7l86zO6i5GInDaWSUSByUIIm3928QK3iLxkCYInE0FXMYB9JwJsUR55Tf/PCRf/0v/5wff/yBzx8/kOKEkPBOESK73Y6PH98x0jP8MXAabT+999zd3bHvD8QYmaaJaRzZ7/d0ztE54fb2ls5ZxqqHx5EQwopYpZQsqxyey/nCobdNiTHyd3/7d7y7v2Hfed6+usNrQrB80o5yXywPsoF+RLE4ZdU4550uW/0cLIpaSJIUglvd/0JmK0h8IanNGa8oDlAZ1rVK9zh7IytR0zN4w85+gfllHc8R6QXeoTAjS58lTa49V+zosJb0n/YvhCkiCl7M8a0G8HZOq7jkzbm2l2K7fRfEtnDvrdpyS53WGufL76fPQpjCav1btUq3CNpzlS68d+TErBTQta/LnJe/a2miIMLy/SJdFsmHfGZPJdTnpMFr8yxzmT2MxVRXdWSLUoh8dtBAcmHrwqw89cQrI2vMcYBSfZ6ZDUUtnlDI3pTLc+WP5R3m8dGlOs+32nMMTbtHVq3tn0Zsl8tefS5+TsNYI5Pl2bLK8jfwZEfnWa4Q0NInq2eW9V4L8TFC3J7Yc8xlQcPzWwsXNTOWxlwVT80C5y4bHzO8i5AoiR46khxI7oC6Ayp73ry7Q86RdJp4uDyYs2GKc3KKzjtc7+lcx93NDdNwYRhGzqdHhvMDGkckTTiJ9J1Dup7OK3eHPZ8/feTD+7fsdx3j5WzTygVJJCVuD3vuXyk3Xx85TRD2PSKK9z19f2CazM7quoGbw4F937HrfU5EkRguJy5nx5yVouyY5py+neNysWo/zpuj2OPxxMPDkdPpTJgiKpqLHgloxZyRcumBUlvX7MEWOCVFsLbTmYXdWjOSieLMyLvFgY+ifajh7qW3zEIHV3dCzBZvf2ZtQMbLKcUMGGvcNs+yIrTFO7smwGuGsPaszyxCys5WavilCFMLfpG5F628pCmRSpU2SqPO761muiHEtRJ527ZU11vtuyC2UE/U4riKHaBG92XjC0JfASEFISycSQhxxXDYGELJ02vakXVWoRrRtcivzKOUAEOKC7+QC4utCJUdeIG/2UKwAJEsF2kRXraJ7ZqIbzEDNWKtv8zxgCzEtsB0Us1Jx43Y9b6DXGrMcGkeG5nfm138VRfCrMyqpkK6JRPbGTNLQQl2SbRCGqXfcglf0grn2trkbX/WErafK3ykCl4q5KM2z8K9V5s3P6NXnFVqWFzeWcOj8TBShpkPYSGQ9Vhzz9Ultu8XWGgziK3fL5KA5ZvOBGdGXPOq8ztCCbmSau4zt445QuXjzQPkf1PWJIBDRVA8SgeuJ7lbotwQZU+k5+bVPYMb6cMJla85v/FIChOo5Q/2nUdch9NEnEbGy4Xz8ZHxcsQx4UjsOqXrHL3vOOw879/e8+7Na+5uD3TeMV4Gi7GXQhzh0O94fQv3txOn8UKKHuf27A53SHdAxkB0PXR7bm5uuNnvuLvZcegc03AiTM4uaUqz1OhsK2yszhlRc4JiqtUwTpxOF86nC8M4su884kA1h0wV5oxCcEtqqYWQJrJavsFzq9RTKGQCa/fV5TOqiWxD+J78wROG2HjmxhZcaVDMQa6yp84EEMwwXcHTig4VeZkZEdjf7Rxzf+R432ITz39rXq9Vk2KOi1YB0jI3kmYBiTndgWihJd/2br5mYqw1qi8xV30XxFaxMAEnxZPTzsl7R9f3K0IouVB0rSbw3uO8xdQmJQeeL8RbZF0KD54Wiw7hKQEr79VSc4wh5z1d6/nrQ/Per7JTOedXYwJzAHY5TMlu/k/UQ1KX8pOsLmkldFbIdJGyEiXnm9m33OJBW0kvKY/bOZdz1WaVUbIi3HO/lLqjWbsQtQxs1VoqzkaqqAXVOtyBRWVeE8X8zktZ7nq/6zNqfwwCFmKbYiGO5pDFCiEpKTITE8HS8smMQRbEIKIIHqWoe23+BckrSgwpc/4R7/oc0VE4cT+Pu+xOJtq6nKvdBduYZXsdBVHHWFSataT71Ca/chIrTGsSwFMSUxQGaK7IlKVal/fDd55So9b2NhKCguvodj1JdkzJE6VD/C3u5i2BPWPyHIcESbiEyBAGxssDw/kr0+VCGge8BCuZJx0Slf/8N3/DeDnlGNrAbW8l6TQlwnBiR8dut+f9m1f89V//1xwOHRoDeNjtdlXiCA8q7Luet3c9f/arjuP5P5NiwnnH4fUrLuxzmskDB+853Ox58/qWz29f8/jT33P8+hPHrz9z/PILOg6ZKejM1jvbey1dYQqJIJGkCU/HMEQeHi/8/MsDn96/tbK6Aioxq3yVhfUpbFs+6wy/ieZezHesnKk5ZeVTRTJzVy5UgVGD05hNE0/VpQuukVkiLhWC6nta/ifzXC2hhFXPMnxXcF65q6l4qatx/DGZead4dtt73fx8CIEYp4qAGaMTU7LSqTFZrTWBznnLbpLxSrfrceT+UzTHtM5bxTbnK/pvEvk4jpXULfM+lLkMwzDPsaQVLmFjwPzZPwvJVlhX2akdRBY3e1tIn4nvVhqvdV5axXfLhrU6/ELkinTU1iK9pr4t5eIsfnWhWYu0Kbm/4pxlwGf9LfNb0oqZfWbLY7aeSxkfWOXDree5nq8CzhKwk0uH1c9kArmwJBshAQ1R1rTEUM4cUf29VlmlyjNV/+3fRXsBzAR/QZLrfd/ak2uu/i0SWZyTqr8xglkSN6xMEoBx5jDr3espqEknzpsUoWAmyrVKYWHYqGFJ5j6uzbnsSqtRWbb6Wpq79dYv09EZERaYtFV6ZtZjwfmk1EjcIhRhepGijbtwvUP8Dun3qBxIqSNJR3QHUvScp8h5DHx5HHg4/pHLZeRyGRiHC16g90roEtN54HI+EsYLcRiJU46x1YQXwTuxvMU5tvbm5pYPH97y468+c9j1eA8iMQufCdXlbhizleic8PZuz7u7PSEqcYicz2cuQJSO/nDD/es33N3s2XfCZZx4eHzk4eErx8dHwjjkECdjNBORJBEvO3xvKSCl6CwVJHmGYeJ4PPP4cObTu7dZ87Ooopn1SstZLnfSzXtezm3dyr/dDBM1LNRq2qLVaa/Sc+aYLc3RljBgvx27XbfCreZwtjBvC0GzmuAhFPxeCyC1Fs849hmniLfyis6Dz85N3tFlYStMIWfMy/vmFe87y07mzGG2JDoKYVrvua7vXJFmVZX9fv8kjLQkOfHez/j4mgRc2ndBbAuB2nLwqTmwmvjWz1zzjJ0ltIYobUk/W4WKtwhu/fkCGIZ86+/rcnVtXdynwJvXsCHWbRHSbeLarh2YiaxknFkkOfvOCKT9XRDurBivEO38jjhDumXfdH5wUSXnrpWnF3vut5bAZT3e87zhVn9PiWV7caqnZ5haznbZS9W1Z2NbZrGWgNd9rkcpyKPmlstrjYw/v7OlzvoWp1zPYXnH+pXqbOehJNVKYupMV1DvRWHCrPyjOCl5Fpa3JSND15Fch9IT1TElYVKYNHKJZx7OEw+nkZ9/OfGHf/iZcZwIU2S8nAnTQJoGUhiYLkem84k4DsRxYO9dNgcL3mfTTyYazgmv7m559+4tHz9+YLfr8X5huGMMMGu0/LxaJ7Db9dzd3nCclCFNjCGiEvHdjv6w59XrO252PRJHzsczj4+PPB6PnC8XYipl83IOXsHuRIaRruvQFDNBNkeoy2XgeDzx8PC44JxMXCXDQyqFB6Tcm4ohfsHZr+FvcdQs6y6488mbL8ApLd7cIrrlHnnfzVrHgqs1ZXYi8xPWh/2YI2Cd8KLVGJbwL2+w2+DtRRL3uOzolNJSkW2WTqXYlMvYJfFMenZd9foL3qiJcP19Lfxda98HsZWnoRwt8iyHNwyDvSJFgvSz2nadlGGd6aRuay5Lqs2/Ltk+Ba713/XvVtqsczFvhSrZ2t2cl7Xtv92LLSagXRdZjVz6RMQC6qW6jOIwm66pJWfZvBBYMVXUvHKBRYW5RtQLCVmh5I05Vuubp7b4SwpP97zdg3bNLSOz9Vzd6jNvL9nWOX6LkavnWMPrNYn8W0T1JSqp59rT+UomVPlMZCG281EUPwSWX84t+WbXzFCRzzzqepL0JDwhOcYIQ0hcwsjD5cJPX0/88nDiH376yv/3t39PmEytR8pxs8niasN0Jg0X0jSiYWR/e8DopOA9oDn3MUrfd9zfv+LDh/d8+Pievu+QXLt6dtRh8c1wuUK74Oi94+72wN2kDMlxPkW8Kl3vrcLQ3Q29E4bjhcfjka8PX3l8PDJcLqCw77JZSySrMT2SCW7XdabOTQ5J9swwXHh8fOTh4WFR31IkziLXrpm3LVjYgoktPNTC/9Z9sPN8GfNeE5qW6NZ9G6ws+KUlPnMe7Ty+SbtLyFDpY02vTDW/3+8qc01aZQMs46vqTAemaVrhSVWdMwXCoh1dGJNtvLF1t7fC7mrm4rn2fRBb1kiz/BtYHV4IgePxOBPWIr6XlIRrxKjEkoe0AayWsLcl88pz11obQrQFrCmlJ+O0qm+RJWa3xMm1/bXIW1XnUoFbe7j8LkDjFrrZzPMaodp65p+C/J9rq7NpJNvnxl0uqKPWdGz1fe37a/1uza0dt5zJFudbn3Nr878GL/WYdX/X1tSu7dtNGlZGFn+UXA5PMjNVCPJCaI0Qq0KqVM+JjiAHIj0heS4BLpMyBmWYHI+ngYfHM1+/Hvn69THbNc2ZyAMeD8lD8MQJdOcg9pD2JiEm4w5SHBnHE6ITfef58P4tv/nxV/zw+SPv3r7B+4y8Vwi+qE6jnYma81aKA7f7He/vPd3uBulHjqmnO9xyeH1H3wnj+cTXrz/zhz/8Hf/w00+cj0eYAoeuY3dzs8BJAuk8LkvVZoqKoMu9H4aRkz9lYhtNRe80O/1kFrcoPtSksFrb8pK2xbxdY/TK3pR/v3SMtp+2/5QM9muzX2FAivSpaZGyY4wZf5va17RBa/yvqiCatSrb1Xxq3FiIaCF6be3x+nfXGRzXlYrqvagFuFKmtTy3NleSJepvZ+X6Pohthby2SogVAtl1HW/fvp03sRDcNnVged93TxMfbP0s01hLKlsE5xoQt8/X79WcT0EGZd4zQFaA1hLpGoBrIt4S5fX4i/TZzqddXxmzDr8qf7fagRbZP0c4tlorEZaxIasA01PEsfV3/Vmt+m2JmojMtvn6u7LetiRXffm2stu0/dStdbprz7Ce01b+5LZd29OtvftWK2rNDCEsBSk0E90M40XVLBn1eY/FP5tTixZbGo7od9C/Rl1PTEJIkdQJOLNn71LPXfQm+UrPrt/jnNB7z75zeAI6jYTxzPlBuJwjYQzEUQlxyBJQJIQLw3ji9tDx6vUtv/3dj3z+4SOvXt1hBR4CmkNUpEjrkvNLaXYIQkhqzmq973h10+P6Per37CaHdj3OKXE48vjlZ7788jMPX74ynEcUwXc7un2HdD1x9opVPEUaUwtHooxrYT7eL9q3fCvn+1kXAvvHsLLfuhtbd1SErGbffvYaQWufaaVKUEIYiTFg0SQmaZqKv5vvW4yJFBdm0vvOmLi0llxjNBvzOI7EMD1hWst8WloAy50oNtVyr9cMgMz4cSvstIxTF7Ap/QGzg1R91791F78PYsuCgNpJ17lm52ocmevYzP5RtVLtZYt4Pyfl1c9ckyzafq55JxfiWnN9dT/ze8Isd7TId4s4bM1tfUHqz54S29LvNQLcEpj6sy2g357D00vafl4D67cQTj1OvY/tmO06r/WzxVBdG29rbVtEeIvYt1qOs5AAACAASURBVO9v7fv8e2P/rhH3lzI4gmRpq7B0xYN5kQIL4YUqbrzsDVDCVYyEdIjrwO2tuID0pAhRRqIoAQhAEgvj8V3Pfr9n6M/Zax1EIylOpDAQxwtxupCCldBLcSTGAXUCKZJ0wjnlcNhx//oVHz984PXr1+z7zoipRkpihcXLHNAc/kGy9duq6ERJXrhxjkkdQWBCSXFkGKdcM/dMjMHiZnd7OlHzcu06y3Kl0VTbWRVpFDcXvMi76pyj7w8WSnRzg5TNFPu9De/Pn+lzmp5VL81dvsZkP6e5eo6xbMds4b84iZpncp1sCHNWwmecLjOxXdl6K/ypaanatoWjymetxFl/V6TPpY+sSagEmHYdhZFfqcMrwaDeg2sMc92+C2K7cBtPC70XTqI2ehei29rc1psidP26rFWbMu8aIrx2oPX39dxbNXTpq5YKC7Gt9forqUyfEvK6vxqQWpXFsxdBF7tcAa75+UbCKnYMij2pItQLQ+Tn75d+axWQzmMVaQlktkvZGvI8XJEgzXGhhLzU7RoAt9x1fdmuvVszODVs1US/dZCqv6+R0hbsbDEuW2daf1+/N/fd9FmP087hGrO52oeiQJ4db5b4U5Ulx3BStaQKKiB+Vt2pWpRXUCO0TnqQHvwN0t+BdESUSWBMgTFEpikxTJExmrbC5p2IuUTdEAbCeCSNZ+JwZro8EqYLmiY0BSO2CcuBrIHDvufN/Ss+fHjLp4/veX13a9EeISDkzEG6SG95RXOFLsnpHR1Cikpn6YO4xXMJAULgMk4MxzPD6ZEwDXgvHG5vcGln0cOdzzJ9sH4ojIh56Rt+MZWAYrD06u6Gt2/f8Pbt2zU8ZoLb/tP4nO373BKSrXYN5p7DEc8R1Foj06ZF3GJ062eLBFm+S9Ue+blCkJtxRQkFWs0tsWgtVuuaR131XaTYZc8SJXrEpNkFB9Xv1Her2HdLP7WQtLXH7V5fa98FsYXnJ1qrEKZpIqW0QpR1HzURXmjKAhTtpl2TDktfW8B9DWnW39XEvRCC2pY3TdOqvN80TnP86pZEVV+M169fbzIm22uq+hQgxzPPI8zsNmuGITuaFM9a40g9JQbEpAmqPTZUUQ9dCPLsKaoLEVYFYo4JdIYdnVtL99f2uN7TrdZyps8hqJZotqEO1/fVWstNbxFZWPwK2jHrsa+t90/hnreaat74ZC5oiYg5xkXQQBLLXKRScmkLSASvgCMmISUhqSCyQ/wB193g9q+46J5zFI5T5PECp3NgGEYul5Hj8cTlfGEaBsI0kmIgjBfCcOby8Avj6YE0XSBc6JjovNB5wXeOSzBnKOeF3c0NP3x+z4+fP5qd9s1rnFOTatNESes4x5ZmqZYicTrr0zkH6himERGlQ7jtPedOGYcL0/HC+euJ6XxGUuDmsEezh7GmiMZIVEXFI14QFTROKybYO9MipMzMffj4kV//8Inf/ObXOTRoYWALU7CcO4tHv51cxfSu8cBW2xISSqtt2S2lv8Ys1t9tfd8SwHVugSIIKSmF7BxW+sh4o+AOLbhiIdKzACY5R4CsJc6YawrHuFaL1/NJKVjoo1ucOmOMjOPFYrF1MZcVYa8m3EXKLjSnrLHMr+/7FdP+z8JBStWqZNRSIKwXVp6r39lyfFnUrXbx6o2rJZ8WWJ5T1T2H7FpCWF+81gW99NHa9kIIVsar7zfn0K6xbdekKQPKNAPxipNtiFmZBywcX508pDzT2nLX+/bUq68QmUJk7bv1eooaJ6UaEW0jjfrzLdX91hkX70RgdqBobdSlj9aBrR6z7b+opspPmdOWl3NbV7iF5XrOvuuefF6vv+77GrO4It4qOcVdMsTmsvMQEYioBCO2qiRRcFbnRqPmsAlLOhPxOOlxfg/dAeluuQQ4TZHTFLlMiTEkpqBMQYlzsneh8w6vud4tiZ0H6YSU1dWSBCGiIRJI7HqTHbvO8/r1DT/+8JEfPn/iw9s39J0nxamIPRk+dbaVFphKySRbL31WaTpSUEt+4cA5z753HLxy1EAKZ8JwtIxWMVnKUbVqPjFG4jTOlXtEF6dNch5mG9vNmgTvHa9e3fH27RvevX2Lkwk0ZnN5hi1MCiYzw7Vkq1r+9xTPtO05rUn7U1S3LczD9aiQFseUv1u/hhoHbTGoc/+1VkwL07rM3+6LWgKRTel4eb/gp9oMuTWfcnenaVrdx67r2O12s823lo699yu1dhmrPFvo00scFb8LYgsLooeFC2ultvJZCyBbCEkR0rTepHZDagBux6wJTNt3i6Bb1UXr/bYl+bRzKk4U7XrrcUtrpaTnONqaINWEc96nah21wb84ABQ1Uk1Eajt6PeZzhOG5dV0jQnV7KaKpW9nbVr28Nff28/oC1zDSErhrkuxL57iFzNr+W9jZ2q8WHp98l0yqE8VSdOYcvMyhJ2rEq5zl7H0MSRwqHSJ7xO9RtyNJT0yOYYpcQmKYlDEqIRpxCjHmcnT2oyGgcSKFkRgsttYREEngcg7eOKEaEUkc7g4cdh03N3vev3/Lp08feHP/ipvDzqRDNbUw4tAYFz9rVVKsVYPrs7VwuJT9qSOigU4ivUR6SXSS2DlBfd73yrPYIpbibN5OqqRsxZ7hI//DOUu4cHNzw+Fwg+88TuNMPNElzrb8m+IhXuOeLeapwh81M3cNtrbgtW7PwW4d6dH6yLTv2nPls+07LdIyiUW8t/WX7lp8Vn7XWs6agMLa6fQaoW9DRFviXNbcfr+FG/6UfYTvhtiu9eewTLyVNGqCce3gnXOkmIhxenbM58rqwVNg3SI2tUS4hcCLKgIWgtp13axCLgDQV8HydavXuuUQ1oaf1PMAiykre1vUIVvcbr2OwrEX4uucY7fbzWnJaim3rLcAaH35C9e3xWy0e11foPq7mputf8petkyH937TFnNNSq0vWzvXWrNSGJBra77G2W5JudeIdXmuhstrUkPppyWyNRM3j5PAabegP02mRpa0IEeRnHrQoa4jiSeqR3GI2+G6G3x/D+4WpWNUz+k8cYzKJRqhjRGmAFMwWAvTwHg5Mw0XkxiHM5fTA5fTV6bjL+w78JhNNo5niCNOFL9zvHt7Z5Lsh/f86lefuT0csv02kaKFAPXZDjfpYItUzbm+TSUuIogz+7RlDAqQoO9KWtJIHI+4lNh3yuubjmHc0++U8xg5niMxLXcvpcyQxnwvMBOJAKiF7wmeztm98x7ubu/Y73ecTmfu7yw0RUiWQCqZ1iBqnL2U7cgWPw50TTDqe1HfjXUR+6f23QWHFOegbdhp236/f5ZRXPBRq5ZetFjl+yWLldImASqhZgsvUnBSzE5v63tS8FoN67vd7smdrBnlGo8VXFecbYtgUeZUZxRsiXF5d+tuPte+E2K7ILxawtzyQKvbFvJakOj2SO2z8ww2xmgRVwGuLY5pa05dZyncynuFOLSIue97wjitEHk9fk2EnFuCtlsituVRl1JYXcrnJMcyR++91fGsWpl7Acjdbreab8uAFGKramqbdr/rfa/7uCa91RerVV3V77Vn8BwiudauMQP1Htecc9v3tUt3jdFon9nv908+uzbHFpbK5yvmxzmstJuF/5AlD0UQMZUqYgQI57G8zaVyzw5cj8gO2KH0Fl+rnphVwEkjYQqcThcup6PZPy8XxvOZ8XwiDCems1Xumc6PxOGEJ9AhkCZSuBCmM69vD9y/vuPDp/f85V/+OfevX3N3e8urV6+MQIUJDYEUAymMDMHkp1Iovj4HC9vMxEDMOUtweKxgQFHfOgev9p1lWhNL0TiFETnsuH/ziuN55OF4gfPAFJWdai5cnwx5arT5pIAm6HtP54TeKzd7z26/Z7fbsd/v6XcdKU5WMcsOp0poIZTUMOUTq6u7xgHtfbnGcJfWMrn23lP8Uj9bt9rJs+6zvWM2xpPXZ+K6fnZ9V2cY3rhH5kH/vCTZ+lm0+1MzBeXffWWya/FHu9aWCW/39aXtOyG2T9UFbWul2VoS2XquBZstpFsDca2egLVrdysp1eO3RKH9u/Td2p5rrslUTnaxWsl2y0bRcm/XJFtVRfGopqXCjz7d63reXbcUdZgLQ5ToSmffSbaHz5q7rM5jdv6wWM3iEKW1N3K1tqwxA8GSridDfi1iaZFBS/i2iG19SbakzhZurpkR6n2qGa06JGALFlo4bu32z83l2ly35lwjw+t3yAgtOEoKXc2ngngLsSGr+MSjeMsOJT24Hbg9uB3JdUQ8MVlaxiHBFCLTMDGerTrP+XhkGi7EcSBcToTLiWk4MV2OhMvRJNgw4nIi/uJ93Dl4/fqWj5/e87vf/IZPHz9y2PX0fWdq3xhMIs8EEpVcci1laiuZXFWIv5LawbIYeSO3GUrFqur0AtKhCF92Z77IBVIgxYlpnKzObQgkzTHuWiyz0dy0Z6mtVJoBs1W77GiYi3TkO5jUVPby5NyzhoHlPGp1bA0/NQFo4a9818Kj5E3Z+r79d/35Fo59ik/zukvwsLb9rOfvfUk2UY2hOp+ZkxxxIoX9qELSyljzWqGooEVqPFH+DUWSLs+Wfdjau639Luu+ticvad8tsX1Okn1OZJ/fZznvLWApv7eArvTTAlVRRXyLm9mSfLekzrqfUjGnPvz2ufLvrnGg2SK28zr8wv3W89pac+m7lsLrdwviKmnXWp58JrX5j7TcCLbiCtv35zqVPM1VfY3gPgcLL23PSdz1361UcY3YbhHTPwVmrhHXawzCFmMwz2uOLjWbrZVvK58VCbcwAjnLEp0xadLPhFbdDpWOkBxTgjEmhgDDODJeBobzmeF8YjifCOOAjgNhOBNGk2zDcCaNlzlFo7hgZdKSOQ3d7Hve3L/mw/v3fP78kbvbWzpnCDZFs/ca95YsYagIktciNUEq+5Cj2ArMGuJ2hsQxW7QoSEp4B/SOqHDoPZ3AmCLTODBmQhtzrdZCbEVjDveJ5m2rixo7IaQc1hZTrjwjlmWpML1ku/M8bVhqTc9nWGOxNQz8Y+H+2r3/p7S1ZFsueiuFMjP6JQ1oO6ySZuey+Tkhn2+bx7vGi8sYC1Gun122dBnzqRNV+/cy9zWxrRncl9zt0r4LYmucjn/CpW9JN6VdQ5C1xKO6IMOaKG2923qylT5aybF2ZPrWPOq/a8TYEnuzA63th21bS5/dk8/W617G6Pe7FbOw1eeWqqV2fX8ihTdOCs/1Wc/v2uc1d5zyhaxzkG7tQb3e0q7Zo9u29W7bTzvucxezPrdvSa31ObTfScZIrQ/Atb7md55pWkI9FKDULo4mic12tcwsiSPhSFjWJ+324A/QHcDvCewYVLhE5TJGLmPgy8Mj58uZy+XEeD4ShzNpHIjZThsuR8LlRBqOeAJOIuoSGgaCBrxT9p3jw8e3/PjjD/z4q898+PAWNBKDZSNK0cLMPFmIdY5OnJVV86xZv7IfhqXnakVW79VUyl4cLp/DGCf7DM/Owb7z7DrHeRy5nE6EuNgI+66DGEjThThFk+DDaHqcLJnFqIgKMU9jGAbGYURfWWRAkWyLVKs0d6iIY+W8dW3Geo7JrLU51+BFNc+juR/XYKv2i2jv9uLNX/AszOk+s2v1IqUv0mRptfq3vnNzaVOXcy4D5CQYNbOxNd+ttvV5yVNd79u1tkWDWqHsJQT3OyG2zPa9rQ2tgag4Fm0t7on3cqO6aJ/bGqNFprXKdkvKbOfaOlGV1kqWfd+vOCXvnXHeWeVcWgkvqefYzqmM30o13yI6bR8l9qxcpLLX9bg1E1LGqSX3JfTKzWf6nFt8S8jqYgwvuQClj3ot7XpbW3Dbd/1s7RXffndt/u1z1+bdMjH189/SmDx3vtfGWr5LWRtR3kksZc8KsRWSWHiPug78DmEP7gbc3mrVquMcAqdx4nSZOJ8HHh+/EMYRjYEeBUlMBFIcSJcj6XyE8QxhwEtEk2WHCuOJpJH93YH37+75V3/+X/HrX//I/ZtXdDmGtbj2qhMjTqqz6kSlyt2siorLyD5rX1zZK52JV1Jlmga032UThqVvZBxQ5xE6bvcd7+5v6fY33Eye2+AYIlaSL0aGx69c0kQcFeJEDoiai3xYqIqpuq2UmzkaWmm3RF02e5ZiZfXBEw1QOc/y+1vM+BZs1M6Ac73iJ3CyvN/2ufV9HT5XL6rExOabvHnvSvy+xeCb5mWudmSjP1nPc/P6U6X8uosWR13bj/bfZV7PMe51+y6ILbKk09o6/OeQytLFImHY4i0Mof7+ud/teO0B1xLqNS/mrTivGqjX3NsiZadkKcnUrdXVW3O/xrm2l7B8F0N4ok6vAb+9kPWYrQT9Lamune9L2zwH+baK/sk7bF+Oev9bqXNr7e0an4PBLSbwGjIsn7cOZO2z8zsiMyZ4bk+vwcLWmhYZqnyeihUs2y5dDvVxKB6kA+mM6OJJ6ohZdXyZLNPSeRy5jJaoghRxGulIRE1IChBG0nhBpwENIxJHkgY0jqZG1sR+1/P61R3v37/j06eP3L95zWG/sxkLuTxkZuLA7khW3WY5CScOspp2JTkVgb7Y6ihe9gnvoknIhYDndI5OlMOu4/WrO7RPpLMyDhDUVMEpJaYwMU0jYRrRFCnXVGfcU+2xKuMwME3jfAq1WrOoS634APMa5mfmcJhv59K+Roy2YLZtW/Bef35NQt7GyfoE7ja5B1oGcmEGV/3nc6zn+Bwze22ca2t7SR/X7l6N/17SvgtiWxD7FodRS1qbyKnqo3jAmtt2QsJ11d9WHy2i3CIsW0i3lvquPVuvpw3hSWmp/FE/d20eL2E+5r5XgL9eC2KoTNUQcUzJQF4EcW4uON/OSVmIh6l73Fri3Tibl1z6+vtrzzz3/Zb01z7XftaqntuA+G+1LYL7Lcmjne81BPqSVmtQ6rk8GbsUHgBmU6AI5t3m8o8RWnE9kmNpE46QhEmVyzRxHuznMk4M02hZzzRBikiKECZ0MkIbxzMpE1uNExoG0AAa6L3w+vXdXJP2/Yd33N3d4pyQwoQVQy+OeQ4vZm9ORIJThKwJEmexrhmGZzstRRDWGd9rqlICumLNLgTNtmC/63nl9kSfOIcRN5o9NoSJcRxMLTwOTNOAi4Gd75bEHOUMNeaxIpdh4HIZZnttmZ952QrIgnNK9O+iEV8kyBaG/xQ8sL4Tti+tMLH97PPJGjbH1uU7k26L5K5ATZS2YF9m9e6CaxZnqDL/ZfzlfJfhG5zAWopdr/OpxLx1B7eEiS1B41v397sgtt557u/vV8S2RoatR+5We0pslX7XbW7E1saVMeufejPL33WihzpHc91qaaYOoi65kVV19k4WMfvkcL7MEu2WVNseeM2EbCFrI6BZus3/FkC2+sl2pJRKxZeGCck/MZ9DiVer96+olGqCHPOYrnHoSpmor/YK5kwx/6Vbzai1zFA9L1j2uXV+mveiIqh1LF7drjFtdf91ApMtpq9u1whoe+41Aq2fd6KIN+/xpJodxx2qpv5Mag5RUTocPdLfon6Pys5q1CZliBPHIfB4HrmMgWEKhBRxmixZxXDm+PUXTo9fGE6PDMcHwukIwSRZ0kCYLniJ9J3j3bt3/P73v+XzD5/44YfP3N/d5XSgyVSLIVe6QsF5fC6f5gsTmGQ2u8TiQiHM6Q5Fsk+85mQzWZ282+2KWIlD8Tl2XMU8sIUO9gcmCfhjIMTI5XLmeBo4ny8MlzPTOJDChCPDsSoxLYXPU44FHoaBh4cHHu9uGMcx25wzs00mPW7xoM4RuDNxkKwa/5bW5BqR2MZz1/1WtmC21Xa1z221NbGMqJIjG8BxTXt1XVqdYdZmX71imomS/3prbmtRIxNeBZGnSUBawlnj3tVMN5jklzDK3wWx7TrP2/fv7IAaw7Xqkkxgk2OvWrETGhGEe17N3+U8909UGkaABO/8irDPyNYtl9oVz15dYlLrAyrEtBDku7s7DofDnAyi/q4uem8wsyBxhyy1Ro0NtfGzxDlcBmZVYMrcMmbvVMH2MF/hRKl8QrZtLeAa01IDNKZE51wOXdD5MwrzAWhJWwZL7dCK2Ma8thAjmpKFCeXx5vcycX962TXb4PIhaeFqC+dq+yDF9d90hPZMAisunczBquie8gkvhBN8kcQLwQV8NTdDChZOoqqWFKF0lRaPbHGCl3Uijy0zQfm7ZopqBq5m7vI24Ds3/13mlag4+VW1ngI3FZefCzrYvkvO1ATOm/eu5tquqp6ouagAHcKeKDvc7hb1O6J6pqBcYuI8Ji6XYCXwJot3dTFAHEnThcv5Kw9f/sjp4RfzSB7OSDgjGnAacUSEgHOw33V8+PCG3/3u13z69JG3794YsxdHnINd78HtZgcpsiTm8vmr9xV8g/jZSyqfTz7L+fxjDiV2dPsdKZoa24tYWTxxpCRMKoSkeKfc7Ds+vLvnEoUQTW3tRPHphkEDURIyMTOmguA6b7CX9zgkGMfINEViUhLeiK1k+2lRH2ciS2FOJRcRyiF0BWnJLCHmO6B1kpctIlZLwyUnsRDjtn1yi5hf09asGVabj4ilBRVcvpu5EhILTG416yNl2Kyl9Yz/MaczV6TkjCIKrkIhajKTQtmhgj8EnC47KTNiXZsCDWyyxsQv+EHEQWVLniVnu5iZwVvv9bX2XRDbuYkg3lSbKQdpOgFfqZjDNK0Q1rIpGZHN5feKe3lG3EXSK1wj5WLmOFjvF+muEBItKiaLC3PeE3PMqnelfNQCRFbn0ohNipHbm1v2+wP9rp9j7kyNFRaE7wwYu4oI5JosFGxbPs+fsM/OVYWwpiK1iiDe5ThC45DjbJ/TmeEosJEMYnOdT4sFnAE4WSq6wghETcSSK3lmRvK+5z2IoVQ2ssTjdiZlt8nzLxek5uDzd1LOKMffwXwG5eIV5Fm4dEizajCmiCZwPtvyjAItc2VRjzPPba1maomfc2UccsiGTdjln5UKOp/Dohkoa1Q63y37Ve2LVGOSCYRfjn45O4QkC9OCYKHOTozRqJCAU4t7MaRjiK+TiM8IOqgjqWSvY/M8jrIjsGdih3cH1O0YIpxC4DwGLmNgHANxNEJLDEiYGIcjw/krp8efOR5/YrgciWFAdQSZLI5WLemDc4mbmwNv377mh88fefv2ntvbA50XpmhpGgXQJMv9zHtkMK6zBlwLc1Hq11aq4AaprBwnvRNEHU6zlDnzZOYhLJkY9t5zc/B4iXiX8GL5jyGX+ux3eGcJPTKHR4iRzll4ket3jGNg9I7LEDldBva7G3yuH+wEVGNmEMtdMthUJKfUzIy0mGQ4a+AoGq1kBFuK9V0byY+Z6SLvHRrz2IU5K1BW4N/uMzZ0vivzlxVcF4ZuYQdSjHkfFzMVc5jZfAPnvgtfXe5AyiFRNV6IyfbH4SCHbWXtO2XVy31yGSLSSrhSHBZgvmYkRHI+l1KYpdAQFvqQUUjZTmonrsL8rPb8mfZdENukymm4AND7bpYCSxqy3S57D0aYTlOuBiFzhqbaS7YmvCWcqDhWRK1skkVabFS9kA8+xjnmE3I2F++ImZi2zlB2kdcSed/3dL7LXJlDvKfzkFLfIPWEdx7f5RqQmUiCAZV0PhM9yzm77ztDsgaNTMlCI5xAt9vhs/opqpr0Wrh+xWxVhX5VUq5JrmkmxsKacIcYGS/DXJxAROi8n5kbWJcR3MpstKWyL9855wgpMKVASku4kX1vDm+pYlYKowMwTYFxHAlhQpVcsNrjXCkcbVwzDee8pa5tnd+21Hb5H1biLa3LN9ZhUXXoVO3pPfe1Gt4urQO6VJLglwIAdsktm7ECHlxWrTljtmbtBRbGklElmpylKBRlJ8kq/iRlUtOCJOcJsmOSAwN7Bt3h5Qal5xIDD8PE5RIZx8A0TMRxMi/cENBw5vL4M8eHn3n8+hOPjz+hcUI04r0CVpUnpQl04nbX8ebdK3788RO//d2P3L++o+8dKU1W3SUzx3Ea8fN9zurvTHxm0iFrbYAx3m01qyKxmKZLVJCU6MQYccnMx8LAmJOUI9F5YaeOFM5ovICOeCIpjsYcdzv6Xc/5csZkL+UyjRz6HbvO413P6eELfddxHia+fj1yf7cnihF0TyJpIIQxO3xZ7VuXtSUxBbNFO8F5R+frjFFFpldUrDKSSYbNfUOyw9bihQ7gxM/MuMriGTxvZpKZ8HS+yg1eebCXzZ3vhyoxBLzzizbQi2mdVvemPG4ZveZsVinNmrP53uWxY4hoR069aUuXDL9G1F0WZjBcn2+TZslz0T4WzViCGM2M4CTD2sJ8z3tYhJj5Zi1wVT8s1F9cb98HsU2J4/GIqs52sDBNxGBErYTJpJRw5WJl+01b27bVu7cOMOVzEclESWZi2xIDSWtiIN6ZhJftlltF7GvkXKrLrFTGT9Qx9nO6HA3RuoV4QVaNp8X2TMpUVclB9Yk0LdV5whRmdU5CFwCt1t0yGkVD4PqGCSjcL+DFzblHiyq4MDptAozaRlo+26pBvJqL98RkdsDE2l5axqzDZurzLmFKJSNN35f9Kmout1IH1bbjdh5btqzrgBtMjb9SfVkz9fbTYhT1z9NwA8UDB/FoNJW4/ThCgoiSsrpcZcJ58L0QdJrXbnqtjjmJRfS4OODiGZ8GRCOD7AiyJ8iBk7zipDvOqUOnjil2HCflch65DIHTaSCOEykEk+xjII0DYTgxnL/w+MsfGYcHREcOO2G8WE7ycRqQNOBF6T10u56/+jd/wa8+f+TTh/f89re/5v7VXc4trPP5lf3adf1scpnz2Oa7McOgLvvbOii23xcUnKJ5EIs4OtcZMXJWfSiqM0KTmZTeMf/svKB9x2G3Y9KRGAJTMOa31DICGCeDieQ9SscwJk6XidP5wuFwi8YzIQxY8fnRfhf9RSownCNLfUkAASUdZWE4U7rO0C7/XmCyrBkghKK1eRobXpvstlI11uM8GQ/3tE9Z34tyX+uzLvC/Mt+JmJc5gvc9zdX3RgAAIABJREFUFL2GMmcOq98XWcrkOZWsHlrf7epy0jlmTdTGEuept8xbeV+rvS+aiW+174LYxhT5+vgVVaVzZkifppEYTF3Y933eYKWrHEscFYDNBFRmbphCbFm4q1pd0OXntojPon6xt0xFnQElExJfA5bIrGYpXKObCYkzCde5+WClUik6EWKYMGbOCE/hlpwTuq6fOcAYE31f/m0B5VYwwKZgRC1Lgqo431fcGIsqNdupvfez05SkNFdMKc4pZZ5IDl7XSuWTOdGigi77rHnPRY3Y73a7hcgWZqY4Y81jQYjBpNPqTMS5GZVJZujFCq/m9YAXj/NCyhmHXCkRl6VhLx5xPqeAK+r+RJSsEagYouoYKwK6KJIWJIKVXKO5h7rYtBc1+MKEzbDYEmgRJGdH6qlT2UFIzogumjUeCZVgxHbniGnM+16YpA5VQZOg0SNpT6e3dAQjbH5PkB2j7vFpRxqEMAIxEcfIMIycL4FhnBjHS67YE5A5haHlQD49fOH08JVxsMLvKUy4XPc1jCNpOrO/PXB/e8unD2/57/7tv+XTh/e8ef2KD+/fsd/3Jl2mSIhhTvqgKXF3c2tpEqeRYbB9Lg6QM/OtWWuVVbuFGBcmOxWbZgXTYRrxXui9o/emSUJMexBUGCIMqec0QTqNHA4H9udAiKa7POwPxggV3wTVGYcUXCaazQHOyjkOl4HT6czN3R277oAwITqCDrNq3OKKPSW7l4hkptMk4ZaBKEVCSqtLlLaMb01wtohnTfC2BJMFRK+/u/V9S0zLuZSzrAWb8n4b4pSy+cjMNmWMvBd+kSktEUb1HQuOXXBPuYBC7zqzOGirESjrIt/RgsvyHaVmJoTFzPRUMm7bd0FsU0pchosR08x9TdM0e/0W5JRSImX7LaoLDamArNhwyQdlwmmW0iSb60VmwlaTVEO4xXbaAKZkj7oNz9a6rWx4jZq6BdyF2DpDZrJUoajHqPMqxxhXpaTKZ6XPNgez73czqWjnvTiTrQtBtPHONWc4X/oU8tp8tj0XKK0ub97TXfYkrefVcqWmwg2EuNjki8Q7Oz4UGJidZiCV/SoDSnEuWZ53PucGdnn9qvZQrOaQPUTRol58ShDLfS0wk7RoJhY4SIXrJsOaqy9lOYg81Uol5RBDqqq5VmqGWRVTmanM+Z+M2HrEQ9ebc0+xtZuk7Wdim6KH6Nm5RO8UxJH8nokOl3pOo0OmQNLIFALDaMXfxzEwjYEYJqxCt8XIhunCOJy4nB85Hx8Iw8B0GRiHU3Y6yrZrNWbs0O94//YNf/5nf8a//P3veffmDTeHPa9f3eC9OaOl2fQQZ03Bq9tbxnFkmiaG3ZAZ7Q6fiS2sNTDO+8yoZjiOFbHNpqSYImNFbLv8o2IpjkMSughd6mBMDNpxe3PD/jgyhlwbN5snDKkbkhcnWJlAI65Fq+G7jjQFpmnifBnY7fe8uu3ofULjGZjwkuOJFcJUHNhykh/jLCnMXi1x1pndAM7n83yXCk6on1u0cJ7dbpHyWuL6Lc3Oc4R5dsyrfvTJHZLV7zb65Mn4xrlm4geFw67kBxvLLQJSYjGViSx2Z8kvaNaOFlJd1OtLj2Xoct9m1LJax/JTJVR5pn0XxFbVisejoFmqW7zs1i7aRd1UE1uoEF4+q4QSdLFBgun4vchKqizjF4CcVRGNuzcUuK8kZFj1Ua+nnVfdX0vEipTu3CIt1yqiOmNUuTz1HFtVijhzikmq7A43V4lbqwrfKltV1lfbte39TLhYvKBnD8C8VwlDkIf9fo5rhKwBD3F+1lEupklttbqwzK1Vv5a5PZ3Xcsltb4TUJbwLc3/FrlyqJ3Vdh/Y9slurfVsP+FZCiHGavcRLvGeKS9FyR0YCzhHGVMV2GhGeL6rLcCnm7DTNUouAFtknO8+U55ziXKnpKgvT7hYJyTzPPSoO76HzDpwnuj0RD9ERBgvjOZ0HHo8XHh5NfTyFxBQiGkc0E9t4OXI+feX0+IXTwxceH36x5BXTyHg6Ipq4OezxAr2YU+H7+3v+7De/47/96/+Gf/Hr33Jzszd7aLekVE3OkcoZZhXNod/ROU/wPXvXZ/tlNh313VxMQDFdu8vl9pw48ySPOZxNs/0bU/eNcTJtkc/ZnjLKiKpMEVMjJ4d2QnQH7l+95uFxYBiNUEslyahC53uMYmZGMCwqxb7rGcOFMQaO5wud73lz/4bDwZGmI05inofZ1S/nMdtPLUTJ9x67yus72ZoggGyGWxi4aZrm7FVrc1bPzc3dTIzLMzWMFxwIlm6yxlu1CrgOZTSTyYKXWmLb4sfyfo3XVirk8jsl8yVBqxoHitOSDMTMgYrSuWIKZNFeS06Isgye/8iao2Yf6zmWnxVhrR+a/7E4Qj7XvgtiC2tpyHzfF6S2OEvIDDhkyaO1l6aYZo/hMHv5LQQ3FrWNDTqPbT9iEqY6nLonQJKdETPqa6TTDdtoa49oVSrlGe+9hRdkSa29WDUXeE2yraXp4jEcU2J/c4MJck/7q+2thQjV39frgbWNp+uc+VGQiawT259MeNfu9oC3xATOWE1LUuCM2HSFoGb1XCdPw6q0SDJpWWfZv5abbufsXbci4HWIViG2Xd+z6/vs0bwgtJThrPS1tknluOi8hojOatCoOjMR83oz9+uw/aiJsZcsHWGOJknINqoCbZl7lqJWVKwmbaR4tebTQugpNltNHSnBBetPXE9wyqiOSxT+4THw89cLX48Dj49nTqeRISRiljAlTsRxYBrOnB9+5uvPP3F5/Mr58Svnxy/cdNBJYt9Z6FcaziCwc45PP/6af/MX/4q/+su/5K/+8l9zu99ZPdqQuIzlPiiKqTqLCUgEjo/HFWMrYOrpYEySL4g1E1ZcmGGtFGAv2qwCa4iZZApS1JRdmzQSdQ78oPdWz/cG4fX9HftfHpDH85znOGStm92hzghtDucpZfGSKt53CI4wRb5+eeDheOLNm5u5vJtzOTeAd2iEru+s1HD2j8iqFor0VfsUdN1aS9b3+/lvVZ2JaBtq6L3n7u71DN8tsa39SwpOKK0msuXd8neKiTCFTadVE04rR7S8hhDCiimo7/Ki4UuzcxwJklrUQZySOZGpeT/jNHssG8MquegGYiF6qZRgTJCSaWm0IHN5qgKXzL1qgq5fArkLUZ1NGA2NeK59F8TWDj4akAKSxCTYaAHu02yDNA+2HFiZ340UN/Q552uy3yVetVYvF3umvQtmE8nqIFmAIaWQ1ZFFGnSzDRPsQMkqn1kKafqt7afl+/KsOT44LLg6r606s5o4tlL2lrTVEhkV4/xjXBP58ntL/V3sPlsSYpG2y3shLAEnRkOyN2iW2GrJQ1Oas0yVsJuiYi1q9M45wjSRpoAXN0v4xoHoTLjJF9Zs91KplDPhMiXwrF7y3pOinVuxURekUS647zyd93RdP0sRBpPlvGyVK3VVYTQyw+DFQnNKnHjM8IeYinrf9VXsNNmkAUXj0okjiYJTOzsxqVwVRC1vrMz2OysOZ+EMiVJYwLpzONlhV9uh2s3pFqM6xO9JfkcQz5CEh7NyPA9chsniLzWrslMCjcQ4EqYz43DkcnpgOJuNNoYzwsQ0BkQjO++YAoRpwAscbvf86lef+fzpA/f3r5jCxPEYQU1dnGYkbhjNwmGy5Ooc0zDOTKDLd28OO6uYbAuJkzlcJcu6K7j1zi9JPcQkxRxgY+puNIcSOaLbEZwSkydMi6ZJU2IYBoZxyFWAsjOP8yY1Z42Gdz5XM1rC40IIPBwf+fs//JE3r3f0/g4nIWuFskBQw3A2YY3TZKr1Kpdxe9/rVn9Wa3zqSl4u5xMorRDGFp+UVmorl/FrM9PKmaohtnW/rcq5zKUmtrXGrtzbGadnP3xSrp2cImlKRM2+KmqanjRlwl8TW8z7OuasXiaBB8bBCHnJsfDUxFXkuZaYPnWE3dr/rfZdEFuTMtMsuSDmBp6ihepEV9Rqic7vMvABWXoSMueabSWazMPPO09Jh2YGdAx5a4lNLKrLgqgzeVDNlwV7n4JUmVUU5tjBDAyp/K2a+4/0/T4DXOFO86Tr2DPJBDvFxTogMnNOFNKhpf9EjNkpZJb8KqJXEE+Oc50506ziLarfwhuo2vpK6S/L4vP0jNYAZxctzuEGml39TSPgxM2ZfGZnsYwky+clY3NR6QfJktEUzOFpVqtiXtfV84gQ80UOyUJZFptNCazPKjHvGccJlIzIc9hDTqenLIjbpJJKim4u2oLomPvXDBcOI7bF1GCgk/V6IhYbXSBBdc6uVc7O3ldw4DpvLmGZ2KJFwlXLYiyREghUfJTziCAO7/bY1c6ZodRK4wV1SBehi0TxTDgeB+V8mRimSIjZIUeN0GoMs412PD8yXB4Jw5E4ndFooTBxGixUxuUoR7UEC3c3Bz59/MCbN/fs9x2n0yOD2N1M0ZArkvdIk2mcMqHtnWcaR9NG+OXMZhVmrJi3/A4F0ZVzyzfCFcRdHKHyHZXsBSyaspZAQDyp2xNdYFTPENzskaqaLLxssnJ7iyZO5jmllOhcZzbg7DUMloLwdDrz93/4A58/vOaw93SdCQ6qji5mRjtlSJBF6jOv40XjNDMgjQlpDZ8Lk1x77bvsGFkk2frzmlA8Z8ettXhFi2ZX1BiNmtB2XSG2a6LlnCUfCiHknPhxTrThZmY2a3IyM4QkRHNueo2kUOKTM05wMA1T9g6PuORy3L5lrYpqXuIalZimrONUvHd0vp+ZNZPcQ8bndsLjOFX7WzSBC1P0HANUt28SWxH5HfB/AD/YqvnfVfU/iMh74P8Efg/8J+B/UtWfxUb8D8D/CJyAf6eq//Ebo9C5YgMxpJKyptgDbpahlL4TYqgceWIuy5asJJM9FnFi2WHK4c7ElmJHyAHQWhhi6z+lMEvaBVeWOK7iyGCXtHBAVjnEcH6+hApKopsJl9rhsRDjlCyUgWSqo0IUXXb7X4XPlBQXak4el8tl5UFbWn0JU1JiyPGly1mu/o5uDSy1N+f8bH1xxeWMSoXTWQAejTMRcl5mVZETwXdru7shpzjb3hFhwiRcW0/FaVonM1PgvJ8JGBmpSmGiigotGZPmsto1RAtbiWV/qnfLfESFKU7zHFV1k+mYpeh5f5Z+ZlhjgSnNKsXTpUI4+bOFMMxdmybGZyZDXf6wZOXBsg+hWTKquP4ypnjE7RExYpvoCdoT2RFlB71DekdykYhwHJXTZeIyWSxtjJa8JOZcwKevv3B+/Mrl9MD58WfC5YhOAy5NIIkpDsQUrKScRm5u9ty/fsVvf/MjP/zwmdubAyFM/P3f/x2kkBFZrFeMJguhgcXjGIOCxeGxOpdWyqudAtvn5rNyJtnGnJmJFI3gaspl+wScJ7kd0R9IsiPIgZQEwQq9x2mcnTad86jZTVaqVd97kkJQi00X50kIp/OZ//Q3/y8f3t/T9Y7bG0c8OLqi4UiazSzOiAOK67LWK62lvpbYtv4YMxxWhLH2xZimuCLcrfNmTWwvl8uTK7ClSSvnmVI0rVeKhPAU94gIISjn82nlwNX2V+brSLhsvyuZqRJa5Bdm84MT/K4npc5iyXURQkjmAJdiVvenxP6wm/1USoY/25spMzmFMOTohoIjK0cz79e1v/9LSLYB+J9V9T+KyGvg/xGR/wv4d8D/rar/q4j8e+DfA/8L8D8Af5F//nvgf8u/rzbvhfu7V6jm0B4RUylm++xut6dInL3vGGs9f0oGpEXd49QC+YutRqoQHedmJGueyslqeKouaqH6R43bdh6cT3S+N4k3RlTMyQLpcJK9bYuzTHURFpWk2VALkTH1ac5ig1vyZ9S/S9rFijNMMXKzP9ihe7/KYlRaWYemyH5/gIyoy5xKK4i/kAuVhGZiVEu75Y0ue2u7zhiZEBdnttyhXYbKhiwi8znW4+rCOgJFUxCZkmXFSQ0ymYE5A/z0/1P3Lr22JUme18/cfe19zrmveEdmZFd3VXWBQEgIJkyYIPEBesYMIYTUExgw5hMw4gMgMQAJCSGBBAPGDBjADIlBq4uCruysyozMiLiv89iP5e7GwMx8+d73ZmQigRS1Uifj3HPO3ns93O3xt7/9rdbRfgGbDKOq+max98+leDYYKEgEUA45Bzw2wWQBi8vGrtvO3YMM9XXbxjNywpZnyuIQ99wHqg4ZjxR3YBF+D8Sc8LkaI1scAQlpkYTB7wUQyXEhdttxkRNJhk6woBRQGwJfsS9lh2iiNxsCfzidOZyMFHVw9m9tlXU9cXi6590P33F4eM/5cM96eI/WM/QKbUV7ZbcI53Pj6emJm93Cl199xS+++Rl/8Wf/gM8+e0UqYj23gqsnKSHRkwcEa06PZEiBZmGRbE44EJcICj2j0BjErtbOE2vj2liHnKnd32Q1W23+1b2XcwtWWqpUqVQWznpEbl/ac81zV4Ht27VvbSMRZJdSaCogZ0sWpCBk6tr5/nff85tvf0tOyou7hbs9oBXtDelKluIBvXBuld3O2vZG69tk8MM5xP64JpLOnIfrLHi3u+H6uMx+LwPu65rkHKDPWfHgKMz7ZQoC5iDhesRk/D6uaV1Xel0pJbHkzCA0TXvq+r3nmvCGPGwoVjj3WitStmu4Hu/aHFVVD6xfvnz5EWe6oZNxnX+odvsHna2q/gb4jX9/LyL/BPgF8I+Af8v/7L8E/mfM2f4j4L9S++T/VUQ+EZGf+/t89Egp8/zuzjaV/yzYicmhP9zplJzZB2vW6f0OjNrrvK4DwpKz1UUCmpgIBuoOdjwgj5LCwVSX/wsoqywLxYlMH1soc3T4sUV6zeL7ABaaXmuJ1+ViCkij94C1t40R8PRWV0kjMNnv9gwd4Y8siHjf+HH0jY1zEBmZm7E9bVMtuRjED3Tf+LK94ajNAhd1tvl6xwJ359WbnUenG1IxDCyuSmPOrzt0r2JZbbwGh91trngIAyQTZHCUYlJfvNhgc1AUa8Gcp/diB/RO1FOV1aFQQ283ULj1bX3gdeRU8iS8scFpF/cBC8jLaG8DUSNXFbLfe8hjPow5nh4Zm1rbgy//kekihZxvIN/S8w0dDzC10RrUtbGuZ46HI8fjE+t6Yj0feXx4z9P9W9bTE209maBFPUFboVeSw8JCZ9llXr16wZdffsZXX33B559/yu3djcPdVh/tEWX4/Y8eyi4gOaNiM3XNwVYPBDfIPpaUoLgKpT2PbTWPgG/s68FLm5CSKMt0NaY13T9LaKnSJaMpIWmhVyvniHpAp2ZrVIwcJaKoWJYDVrsVEXa7PR3hXFezI2Xh/uGRx8cnTuczL57tOJyOaFtBO/tc6Kyjh/xUV5d1lYv1aLblEoGZM8Ox7K5Qq/hb2xOni7/9mPO8fr/Ztv3ezLb3Czt2/ffXmfb1z+eA3Ox4pbdEz2k85bFPR8kuTnCyu0Fc4lJKMQJ88YC3q7LWSjqf3ckaA78rpFJIkskl++zk0EtYxnkEp2OGk3/s+H9VsxWRPwX+deB/A76eHOi3GMwM5oh/Nb3sb/xnF85WRP4x8I8BvvzyS253uwEvqiqSt7qdTPd0KcWzjqil6GC6de+lw2HBXS7jPYIF658O4DVHd3pebxBhY+n1hog1vudsEom1WQP+5rTcCMRC0Yim+iYWQdiATu9KqL+4nwNgV8omlXgdHV58Y4tCYgOmND5zNk64IV5yyARu7LnIXMfbDmeD164ZkOy2oKfgwEU6kgg9Ja9P+XMjIk2LrLtrKotDgkF4IZx5V5o0g22S3x9Vyzwk+f3PY6hBnK9IOOCZNW53qizlYhOfdHvOpM0492nTxvNsU/A2WpqGlfc76xu51WqwX/o4mnERXOSEKSVuLW1RZx7s5zj/ku1+NLufRZIxtN3ZSvfSiQeSqpZpNRW0J7pYhmj4ekFlQfKevNyiaWdZYTOiSW3KeV05Ho8cnh55eLhnPR9YTwceH95zenwP/Yz0SqLTmo3LozckC7WvpATP7m746qsv+OrrL/jii0958eIZuyUbBNobgtJawIF+/52noIqzha20U32PzJBoBEkzZH/dTob62kGZQYmxN4NLENKdISUYrTWAaqanBrKQUzZOgE4iNhMakTwJSKmTKYCVLLJklmVHPRskqa2TS+HxcOBwPHJeK5IL67HRayWh3JSdIVm9e8LdWamkLCOwttuxOZ35CGh+c3L9o3937ZxnB/iHstnf54iHfWlttLBd//2cAYtsXQTX0PilMzeIfxVhDqm2a74kf84Z/9xGdJ2UhO0xzoaXEnVuR3IyZTGI+Xw+u83MJJcTtqDc6vKS0rB3P3b80c5WRJ4D/x3wH6vq+/mGq6rKrA32Rxyq+p8D/znAX/zDP9f18XDRt+X51fz39pD2++1hqxpTdWLHNdc0TghkUwmJqT1StnYBiQ2MMdy6rsh+z7IsiGRaCVgicH9FW2eXErtlv2XFU4ZqN8oX6kSh/0Pwwlj8cW5XCzoWwqhjXD3U6yw4Fl1OedxDe4/wGZHebQQOXIZh28yg6k6QaFNYTHEH5VzPVi2cegDj8z+6Gf1NZ2d/vbmaGnGo1s15x70Z1xTEqInBGMd1NB3vv1uWTfRB9eJ1QcqJv72+jmvySDxj6PT++8fkXSMZsRY+JvE5v63gPdcWtVim0xRom8Y1xmXo2s0xCZ6JZSMQpls6C51CY2eQaMNq0iXTgHVtHI4r79+/583bN9w/PHB//46nx3tqPdPWE+fDPefDPdJXMo1FYJ+Nx9tRel1p9cTz58/55ptv+Ff+5X+Jr7/6khfP7xCxLCEyW7SzrifLNuZbJTK533FzyfNYRoxwNN/rEcROa2x+zwg8Ga81VCbL5Z/Zi6dPVjVoOTVElCLCrmT2S2G/37PsOtKMpNj61jJjz9ycZENJ0tDWqc2C3AzUBk/HM49PB9bTiro0pGxce8umshUM1m61w/QR0xoOK76/hpHHvdNAu/pH7ZCIjDr09Wvj9/N/5/edyVFJhJulmEW5ymY/5qjn97/OlLfP6vRqNf6PTd+cr09Vubm5uYCE4/2uM+aOItklXFNC5HwRJEOitU7ORlIDaLVT105dA7WSYRs/lpl/7PijnK2ILJij/a9V9b/3H/9WHB4WkZ8Dv/Of/y3wJ9PL/57/7Pce2hqnh4cLokFsprj5YXSXgInixa1/4GxVlYywFFNP6vGAYUBAsak76plZZe8PS5ILFEQt0l/f1UgLkjc93mtjPy/KuRc0fj8bXI1MtXdub+9sw4hpMG9x+VZDMONt2fb1Ih1OEqEn+xtNlUzyrBdCxnJztp7Najjx7JcqbgTZ5oNio+ikG4SZJeQynXGYL07DvtXNikXgstXPthpcUO+rdqpaDb5nxwk9owhZyeQsxXo17CCycVs3hjaEU49WGtQyABstqIPcNUYoBrtS8PeIOjEX7iACh+YIR9xfG821PfNQQeu9s9vtLpx8LhYIzc7fUBiHSVWRhnX3NBBn5ifwntzgHjR6Enou9GQTfM7sOTehNeFwgsPaaLnTs1LXM6f1zOF45PHxke+++443b17z9PTI4emB9XxkPT/SYuh7PZJp1seYhaTNJt20Rl+PvHh2x9dffc6f/+mf8Bd/9qfc3OwQMTJRGuKyIVIf6w423p5MzPWPB5FzpjLvow/3AB+8fvuvredSiqNiHtz6UPqQIg20S5spjKUilJRZSmFXFkpZrYYq0XLmwWFfB2HT9l4e16SaaGRab+5sj5xbY5cyIn1D7iIaZnOmqpalkyMMC+RsWDN6V08StvsQvalJkqNGHoAoYzbs9X362HEtnjHf07l2qiLoYB9fiuHM9vsPQa2Xn7W1aIUTZ/qvHZ7zilCrjTLc7O1sk+N+Oks8ua2c7GB4iE3jOY12QnGUTaZ1C1OJMtbSjxx/DBtZgP8C+Ceq+p9Nv/ofgX8P+E/9v//D9PP/SET+G4wY9U5/pF4LhrG309kgtugLjUxPBFIaY490XYdBj4yTiNp6Q2rg8oK1ReBQVUCiGvMygKgb2b+rnGmrRatNzSjLNMsWEXqrkLbZtBtuH2zd7abL9NkQvW+JZdl5FGSvra2TSWNixhga7ddXXcpuzpau4e1AmDqb0opgKj5xvz5moAbJwudBGtFLhkQi071b46JErMbGHBJcXq/E6+wNxvm4V7QNKA4qij2nhlq9zmstUafNyShCVpNtFvTAqA8NDOTiM5iuW0ZPr6krXdZ9hoNOBhWFdx0G2d/swiSpBXFzFH3dRlEkDZGMUgpatqArGLdjzaNjWpP2ag5BxZ2tomsLBIwsOGNZ6XRaTrSU6alQZaHrwroapLpq59RwyqtwOp+5f7jn4fGR9+/f8fr199y/f8fxdKSej8YYPp+sRttXCsqSrVsg0239N4P3bnYLv/j5z/jFL37OL77+ms9evUDERANWbZSc3MZ3Vu2UZUcAgg72uil1JAUZzyzLVs8fPAe/77MRDSMXQaIAY1AH2/qzPmV/PupBTSA6gv1eFdVERmjC4JDE3g4WqvEsZRC9JNWxE5StlCKuyR1ErN7hfDKt59Y6UhJ01xBwDkpo6A8nxlbKiRU4O7r498fad+a9i5m+D47LgOTHj+u//Vhi8cce1xnux89hyzZFLp34eI9pu3dPBqZPmd576p9XpdcgybIxj2NdEdcSzt2f9/TvcL7pYyn37zn+mMz23wT+XeD/EJH/3X/2n2BO9r8Vkf8A+CXw7/jv/ies7eevsNaff/8PfYCqOduI7sZiDbhNcCYmZnT8EDBZQHU91m7KRaqu9sTlgtwciw5yhmKM47IsJsTezMmu60pzLdRSCmW/s5m3rdNXJ1DFpBLPSnSGB0UGMaj5NaWcIWcKyVi/OKxRK+fGGJs3ZMlUh6Zrn7Kx9XS2cX0ls192lm27d269bQELUEoaWV92Jzl6WMOYTZDQrDQzZB8nxKF368W9ubsb/azA+H44Ww0OJf5A3Gl6+5DKPDtzayXYAAAgAElEQVS3u7SmZ6DJWKM5JyRbn5zNRLWotLaV3bIbzNDNOdr30Yc9oLmlGGzkGTISgY7Vmwfru+lwgpcLdPt23lpJo5LkUby57MHKNJGMYsHfVBdLKY2BGpHZGhRoRJBaV6tvhy5yU3o2WBK1sWCSTa6uAy1naso0yUjaUXshqWVmVVZWbUS18XA68ubtW96/f8fbt294++YHDk9PpkndG0uyHlT76ixF2C+ZJYGuR9a6IqosOfH8+Uv+xb/4h/y9b77hqy8/58XtLa2ttIZBzvvF9mxvHER59uyZrzuLm1rswe4NTI44x3zWMd2lde9ttbUU0qDhCZNizzfQiJS2eEvwopzD1eqIjPo+a+ra004+tDQSIVHRUbMPp271+WxZV06IdGqTcW5xDma3MiU3U7RrZtRPp5Xj6WTtabKzdkWXOmytkYbzj5LL5HivbNmPQcMXy/fKocmP/O73vcf8szlTtRdi0pd5I7J+6Nm30DzmeMd7DOd98WEAyW2Zwezj8+P7EQjH+V8GO5GwxadvAYyXrLwE2dt2rpZsMOr52z3fzICItymmQspWdYgW0B87/hg28v9yfR+m49/+yN8r8B/+ofe9ehFSqzW4+zEcbs6k7rJ4CH3dGowdK3RVMycHxfPXTqtXrOFkD3rjtjEIMxqLvCumStVwu08uwrJkdmWh1zr6OAue3YjY8Hd3ZKOX0xfUcLYpkUthn9L43XiAtfrGsog6goGhnuRZTRIoHsGlBki1leGuTlTJ4+LUMn0ioRRobRC3FJDWNmH+br2oJAsGFLbMwn/fVa3O0ZrJYbpBrL0jMUtSPOhxI5VFhjyhZZnJSD5hbJs527IsJmUngqZKS+Z8K4laV2/0t7aUZ8+em6QdStSaDV7Dn5/dy45S9nvImZBNDDaxtj4IMJg95nZ/QyRYoe+Mfz+MvB9LSmSZCT+X/Y6zbN1AOHy9ELKcamQlkeh7xuf1JhP3wIlVa3VlIpMY7AmT8QVqSbS8o5cdfdmzpmIwfAH2DdFK7cp6OPL69ff89ttf8+7dO+7v33E+HmjtDNo8URNulwJZaefOzWI1y0zn2CrttPLs9obPP/uEf+Ev/ox/41/91/ji809YipG4dEmgCwIsOxcJ6Z12s7fnJZGRi/U+dgvUWiBMfn93U2+1KLbW/Dk19da2eD6t2/oSl8V0aVDmteifd1ytLznTSWqTjETrIFmuXaiycNbCSRda2bFbqj/LCKbNcVQ1hCkCJrqVYkopLGVBNNFqpkVg2SuH04mn44mmUHZ7kmtUp+6IgUrk5yxlgfRhPTCCs9lRnc/nzc59BG69cKrt4+Sp+TXxPnPwee2MN1SIMa7UAo7LjHw4PZnW/5xqX51HZJWC/W0kJoNw+nuIWs1VB6PXPU1O/4N2Idca7/GHfp4StlvUg8JhoRnBQgo+TgE6Kt0U2tqH93M+fhoKUqqkNsMeU2YizYYIp2Q9sRMT1xZgVDImxtoUhmxs0g8Xn33Z4j3XlbIs42ZHtphL8b5FX+RdPe5N9FSuIM8JSlEmtuOWhUtTujSgjaxVayWXXeAVdo0WHlrUKAx4VESQ/c0EoUjQ6QCrpWYfrB6Q3ryYE6b0M9aY2P0XMVJK6Mpq86zds2QBH0fmxILWSB6Ro53Ut78bW0WsF7W4ZKJqcxGRS9gmp0SWQpFMUTFmZVWQ0EVKJDqLmmrWblnYIZTmLUCqBIphpbdwtrZpkvfMdbXeyNramDSz1ZKsVNAcLlI3BlvcoheRtACabDQbWJBWm/X+xgjG3bKQp8lKfarZRrCjnq0jrp6TsFobtp6SJqQLWnVMxAF1vXyhZ6HmTFuUXoTeV85l4ViFY4NTVQ7nxul04nB44s3b19zfv+N4eKTV1eQCA5LoFmSmLI7ENnS1kgqiaGvc7BZevXzB119+xZ//gz/l+c2e3BVZV18b6nBs53w6DKOYc6IejiMYUxJtbFWHJSZHY/dax7rP9iKitmpZsCFaSbJDw44q6IYujLKCCNkWHB0l00iakZ5Imkf2VDTRZGHRQtbCmvfslpWlZNcxLl5+MKdtCFfz9jIf9i4GN9OdTKbWIieKZ1OGIN3c3JClk7SRtdF2Z5KKIznKqGhMEG049mvnMUupxvq6tnVxRAZ2/fN4VjM7OWYHX9rMy0xbwq6ktHU8TJ8d/50Z+3L1HtfnsDnVsCW/n90crwuORHzWfG/GeWB2IeRsR2SNrT/1ddbdtm2SrRGEZPc/YXO61YqvOCQfO34SzhY8N1HPJhTbTe4MInnR+KU4AUaDULDV1Yj32Yo7WxQ4st6tZte7mtZmD6ECp3D7Bk0lj7FduBE1CDDRU790guHu1ckrajWB7FGa4GL9rQ/DYUQMRSU2iw7n6bmnZ6VMEGX0fvoV963AL35vRL2bQjcIZXvvDYLRyJJVkWzQWkC7tDZqIGbIGO/fvL3KcsotCo0jMuns54zXR3R2ymnLRqIuK72TepDkMGcpMeTbo87i2slcXlsET4MAJ9a3mfC6jNe/1QUxenXVq2TqYtkubAQMwxBM9xa2QMLG4U0BYq1o8zFxInQVpCuSLNpudR3krNl4DgZ0xurGOVqG3XH4JBpiXeNZbRY6iYZQXQy/987aYG3KqcJxbRzOK8fDgafHB56eHjmdjtS6InS7pd33Ft3kC1V8XB7O4LUJOTc3N9wumS8+/5wvv/ySzz/7zAZOnM9Y7dMzGLUeyebiHDknKIVa24WzjZq9xpAGjezNaqbbOpr3re+bSfBFiv9RD2EP20+GLsUbWbA+CH2BZnjwF2WY7EF9IlE0G9owaXinnEjdjO1wfG0TaAlxG3EEJQ51h9FaMO3NkS05G19Di61VFbL3QYezDRsWdiv0va+PH3O2F/+9Kq/NDu+a1zF/7lyKu3DSjqjZfjSy1MYtucyUfyzrvv69PZN4Vzf9bL5ic4Fh+cM2ekIQ58N8X2wtBBpmjnvLXrfPx39+OYwhyKk2wjI4AWGl/z9q/fn/8zBaimcTImN+Z9zRYKQl3xAje+qeDeB7HHvNeHhB9hnQgLPr3Bk2h0cVq9Xtdjt2+73JpPkmFZ8WApaVFhI7SUjeFkgcW6ZyJXzBZVQW6jf0PhydrnXAghf3JrJX3RZWa/WDxcvYPDZxJuR0UwQlQRAAc1rT0T2wuW4ByHDhQNOISMH0iEOmLBlM+/sOjeDBLmi0YzksV0oxBnKrRsDpzbLZZLBzKTLac4wxHUZXR5Rq+Xp3rWI/JyzA6iTaWEf2P2M8M6Lk7BB/5vJ5bt9d9iImvz84CiPNvLyKyfhJBBodc2Bd6edKdxH7JGI1fC63aFLT9B4qNg0Dd2QZ5Lnk8Hry65b4kmQZowprV05r5/F05uFw4PD0xPHhkdPxQG0r0MgZck/UZNkXYi0qdNNbXkpmXwpLsZF4d/tXfP7pS7784gt+9tXXvHr+gnY6czo2ctIRVGnvaFvp2vw5Cy0n1tqHsyWcrRtHxDSyYp3XgOcj+LteT76WAJJP0ZmPa8OtkugpU8uOLp3UK6JWp87UsTYlqcG+IqgUX5MWQEms2wQpeWCz1uFUAloMGb82TWJKSShSqK1yOp9pzj2x8YyZIrZ3E4kcBj4bejKuQYMstLXCxTWOf8d1jMBwum2xxpJc9JdfZqkyggtb3hskHPyOD7JhDzZ7rWhLF0TO2ZGGslokJ/GeETDPz2t0B6wGDatnk2Ix1VCFm69OcrH+/7kLREHSRIT0967NUbBkNuT62O6LTF0n9qzmzB81fWWRPjntjx8/CWcLOMRjBrKnZpGv2g0uZWf1EhFa7X7Tg4odhlDN8GEXrhh0kwQjLvm8y5ysfajrltG21li9FzJuIM1bMtyTq6q1GUmmS7Cjt/Bb1ETxY05qq20sqiHzZmc54NkesKc6dd+Dg4xYXXNa9PNxOByGk7K5l1tP4rquJmXoNdbnd3tbzB7MqDJUbuIwsqRJ7i3LQlkKu2VnNSM26KrVRu82QiDlYgvZGdjz5AzYWgZqrZzXdestdSczjENkqKrUdWU9nSgCOS9EXYXeDIXQTfYynO+1sQjyxTBEOXE+Hq1VNSXPogWSaTAD03kYfD6CkmkTWpAiA9ISbAB5JwwXLBFA5DwUrKIuq2Ds167eUlIoKU9BRAqMH0mwslJ79TGR9vOUTdEmFXtdxTR4SYVUCrIU0i7Tk3Cms9RGkTOFI6kf0H4g6ZElVVI28RftBmMKHUmwLwu0lSKJF3fPeHG742ZfuLvZ88Wnn/D3vvk5n7x8wctnd+wKZDKpC6LNJFarzQjOKXGz2w/GeK2NEgF13+B3m9ESOUod9zqVPBytTkYbJta3Pzt1Y3i9Fua/VxEago1P0FGrFa1kmiMtQkoLbXxVGpV+eLLRgW2liPE0mmdOVgJIpLJHtI06fWSfVkIWJFvQcjodef/+gfuHJx7uD7Qls2ToovTzOZaAtU6VMgagoNGN69n8QGRsvdXT6k4W72rwveaExA0hMK1y1TT4Asad6ETRJF9F/JszMq33ULUinKJHRW2ttLZeONtQlgsuy1ZWuBwl2qYASvyZkRK7PeO8khS/bohpaeKBG6jZJ1VDa7zlUVXRaqW7hJHWTM3NCXdzqDv2vW424MoORABvixPPZn48o43jJ+NsW2SsYmy/0XQsajdObEHm/R4dNQex0UlR49VumQ5qEx9USN1ILKZBvMGYYQQDeliMb286q8OJTr1hnhmbefAWG//L+K571KVeSzMHZOSY8xTBKerPJ64Ta4sQH+OnjOh0yACG0dZO9rFXXYRz78h53eB2BEoxBEqg52KyZ727CDvD6Q1lHYc1l9vbYSyklAkOUqpD1QGHmTzdVEMhomiPXPPkyMIJ+2Y3nYaYdOJwscOJy35Pycb0s9c66Wp8yWB/m/OULdZSRbsrfDlxq6Es2ZjkRpCKeo2OKF0dXreEfVO2iczTTZwbBB3/ri7jJ1hpYa6thapWi77eCAZKJi9bHVdFaD7MQNQDnxowemJZbCyaTSYxw1k9UKwoq8JhrSwlW+2xn3n/7h33pzOPp5XTw5G3v/sdh4cnTscj/XQgN5de9IAsR91WxGFkpaTE3X7Pn/z8az775CWvnt/x6tkdr14842ZX2GWln0+27lujrmf6aizqnK0vNWFEOFWvuU5qX5HRRL92DH2PfZd9jTSHpC0zSR4wJ3Le5Du3xSXDgMe6Ncg5MA0X/ldvEVF77pYlKdIFpLnTFTSttm7OR6Se2KfOk1baWi142C30R0Ayy5KQ3m3d4j3iDtOnLEgXL+1k6tr49te/5c+/+Zm1/zTr2V8PRxImpCHa0bVZRpwTSLaBD37/UjYRE0ToUgfqpxj5rPh4zw1OjdskrGehEcF+H07G7qB3RPg+Nl5JSG6aox58A1V62uxIq9V611WNIa42S9ba2DDj6HYpkK7sjmrroAmETowpLvFcbV0YeOkByLB5htylqNU7fLKVHVyjOoKPDtHek8RlVzyCuQgEvB4rbAG0iLAOUqUiY4zqRxCYq+Mn4mwjqwUTUochfzVo2B7/5jxuoKoapZ7A5uO/W+0uLt824RYla7hImaA5NXKSn9FFf+ZoWBZ1B++wWThF0nC0uMpSxxaFdu8fnaO3bFGWRL0yLyPD0z7Vv/wzos4Sup1htJpOer7IkA4Lg2GBgf23KptmccquBgXBEtzlTeawI1Qf5h7wkTgMFEzZcS3hCYmNFNHvZd1ndm6zUpNlyOKwsZOKhmG+JB44gm33r2S/Hr+30UIRYuXdtLNvl5shj5iZhtOp5VXdA7TxAXGLgmSmXDjaWLMeEzGLjIzn0hprrUNjW5IYxBWbNm2RN34uSdIQTYeALLPzBop/psl1nrVSFSq2+XdiGVSn8Xj/A/ePjzyeThyPK49vf8PpcKaeG7p2pDf7ao3eNikJARMtadWQpdZ4dnPLF598wpefveLF7Z59tn5bobH2itW0Km1dTXpwWQaS4xbZ6tbhDENqMn7m+tajM92zBkGNyKPNdZJBkpLIZFFjgU8Gd8CejjL5SmHMO/Y/zAhJ1TkhttfC2foNsLYpbaAVlUrqldwrRdT7ZQ3alLyjuWNhEkJQjcEmhm6lJC7SYhmZNuXt63e0taPFSj69Kn01hEFTsnPyLoxcMmRDn8Rb1WTnTsydhaQ8JRJAjjKPwhTsqUOow9nG/fFbn3DUJ4JkVaS2YV83n6hD2pRsGW9ogo9byWaAg4Q5HvPsmESGs3Xkd9j7cPPWrrmRY3UQ+9QD7U5M5xmiZSOYwGyyJ0vq1ymyKYrFPOiUEosk4z+0GNepFPDpQol5vrAlLf4eP86P+mk4W0nCfndzAQFFzQ38YjTgqLoRnQByGVEG6nCJR024s1Sxvqp4KIHDWPbnDjGgCoJOr6YGM5hrG11+iKtFBqRpLNaR6eXM8Xi+oOlHNFrygpR8MSQ9CDzaN2ePv1840pTcoXtWMFbv9uGjVtvxqFTbiPLDyQQr0xwaPolFuNntx4ip0+lE9TarlBK73Y79/oalFESFejqNe60iF5NZTDgAd1riAZKCCxO0eaOxBQCRuVmk6f2VrQ0kI+pDHRv4vuwWh7frkG8MRyVJKMuOJWX2u900+9dr05NvHfIcyeuGESgQfdIW1MQ9F8+qd3kZ2dHchxzGtjr8DbDf33xEinOYrrG2QAeTNjkygmIQrWLRNmYyGgYj72/3vHj5nOXmhkOtHB/e8vaH73n/+Mi5NfR8D2u3aKupqVF5Vkvrm84y5s5PxwOntqKnJ15/8oLPn98gr55xt9yR2krSRqKxLJmnk0+tkalHO8WcIjf8/rzrum77m+Bb2CcLzv7E+xUrtF5RNXlE2wNmsKUND2v3rffBdZgz53D0273ezkdbtLJVc/QJSD4DO9ka7bWCntmJtSKlbm1U1r2WOHnJhlqpArf7HWBroNZK66vd05TIS0FXg6t7F06nMw8PB4rC7ZK4KYm825G1k8X2iqixrVFFa0WC44EaizptdkydeMeQEFREt3ZGejgnD0DSAITGsHvbBYIsydElI4dWNj0B2rS+mwsABSksb9liOLuZgV8kDTnF7vs0EqIxdUu3unAHajdpzO6P6HL/+OHXPCYdxdPuW1nh+nX7YkGhTTWO7N1LDrVt1+izf7UUm6HtgkbxvmlNrvj3dySzFRhiFK17pOfGO01QpTKReCaItUz1sfEFw/HMv9tEM5iyVoxuj3rBPJz+ZYHf3yiGYvp5KEhHchjoaIkHTdngcV+MKbJoTKhAMEcyJoiwnWssPo0Uncu86vr+DecRUWPEA67CZKSaDQ6x7JRRr+mqnI5PYzJNEmW/Wyi5bEpVQKvrIItMsIE57BH5+eKeosuqHydN4M8Bf+bdo/l4rf1761kt0/vHuV5T71OyOZWlFNtUhFG3603J4BLLkwIyczgsFUcSfMP3Np6pykSmCujIA6RNxHx7JiVnujv53X53weScUY44IuLeeXZojlZovbG2SXwkJ5ZilOVaG/208vD2HY13fP/+LX/1T/8p37/5gafjkbzf0zVZlN6N1pWkW/uZWqDSWnc41Q1Cb9Ab9/fvePvuNYfDF/YcEM6n0xiztyxGl00peekiSEKGegRMjV/v3As6tHz9+jtuaHuzmbejvcZhfVxIwJ+j07VtnzuCcd12MiW+I5Ah7qGTBmNfRTBrSl9WIuk9sYIRJ3dGbGu1UfLCIomH04EkPqWoddhb5tha41QrrVaWnZF2hMT5fCalgqbMsTYeD0f2JZFl4fluR9nvLJDpnaomw1nxDFJk9Ffrdtu2oDxF/7LdzO5GIVjmYSAUy0A3lSTG2E/tHRUbMsKk5W0QK8NBNpdVnW2UaCd1K5N0P79wVvb7DZGL10TiEjBu9+c4uBlYKVAZCtsD/bs4+vaeUZ4JEZc4aq3jekWEyuZ825Spxt/iKFWt1vPee7eyUpKLfZxSIqjzfyecbVzUMMRu1HAYdDR0+34ZaBNsdcePHTJvtN//2ZGNfUCymJzCRcQ2ZdYBmaSuvuDjMw2W1RmSmU7q8rOgBAQyQZHgcx97nKvVrYN1qDBqjaOfWGUw9wKeUfu/kXmneH23GmcoM9l0HkMVlrKw87GCIcrQPHs0w5y3k4qbkTyK9rp2wKqt1g0ynY3hBDODDKeP39ftPmzsxHhO63oerOw0ZVX4ehkqWOLj/zx7i2eRPIMVCYgzecDk/AA14lNkfNbvywgyFGWt60AjYu1eEEBkW6jDuMx/61H4tr51wGTjc1S3/lp//5JMBSvvMrt94vXDPT989z33T4/8+vvf8et//ivePT6wtsrNs2ekvIAsiNhIuGjnsck4nd7WLTNSWHIilULzrM9aO6ykUOtKO59tzB4LUhZHbGRwDYwRH2u3XxjDec9JSsbEF/vZhg5s/doQfaumPmY1ubgf9kdZkguQbIx7225TCYOtdWRwMJwUZ5mqK3i50hiS0VSgbVKI59OZ4+mIFqFLsYk+wH6/Z5cz+12heZaUUqKXZYwOBBNn6AkaQutQHbnpweB15S7tFgh1h1IDBtcEip23JhkOFQwdMgU2RZM5W3HWuoa/9fU4pFgnFGCeLx3reR40sBGZpj0ahCdPNKIGHA6x18vBMrUL0gwFjFbLoGUNJzt/DXx7k+ud7cewPzOiFvtvkpv9mLZ2OO7498XvfH31q8+KvfixBOzH3awdPxlnG9MVYLoZc+E5EoHx5f+LhWzL0B64yPRQwhnoeP38uaPGwWV90Xolt1uYPJuZ25I2SMzBMMVIRZgxnhm6Ok5B6d0M0uZ74pspe77K0sf5is879Xc1+CcMTGRnowK2XYJwuWD9GlsIPHgUuuRsjO1SDH51FnUNqM5fGzXuzRhgjkfCLTHg5aDuhzOJzTG+/BT77GCvnO21szqdTrRmyj67ZaGUfLHZxjpSr8PrJSPSYPRNEIUIdPw1El/2Ro68GCyp4iS5tV08q9nRZo+CIwVZQyRkyoDTdA/8hIk+2k3JjFF3CoMaTM2y7Fhubvj+7Rt++O47fvvD9/zqN7/md7/5lsN6sjnDrZOXHbnckJc9pSgimexBWBLLG7SbHGRHycueJdtovt2SKUlAzSnXau1LtErNVoe2ik8acGQDb//x+uK0/8be8/VsNdX0QSAyQ4ZZouXLg0RlBJkAZUk0v9VhvKOeqUDSbT2i0z7xlVpcTCRE5SPYL5LBA7oI8E6nM0l2aMoDhbm7veXF3S3aKsfzycl1xbrhIgBXoBSDySURM4XHV2/UakpeitWpm6oNUVFDpkYbojtbne+rgSAbopd8/3lQFedxPZZSowbsLxS/wdot+G4erHZvKWwRAAiDDR38g1arlYrivQNt8r3ReodWL5KWLRBy3QM8241sYtofyfdIrJVtz1wG7rPjDbs5nGj8bZjFSD6mv71Anvj9TvUDOPsPHD8JZwtc3rC5HcJXakQ6EeEO0lJkuopFxAo4jb1twe8WKQ/RcockuhFk+sgo5KKeN85PZBjrNPUA+y/tfWc4G1OKGXJ/8fmEkS3jWlV8io1uU4Q2GPOSHIRaJN+1G+TuurHjPIsNsk6us7ueVyI1TpErTNFbIAoAtzc3FNlmZ9b1RD3p2FxZEje7HajQq2V90TIQ5zaChNYJQfhx/3Mezme+KFXPhJ1EBJgxVYO413WLTNVbq0A3eLnkARvDFskaPKZQvZ4cDGkCGZjvNa5y1cczAy7IX4pla5FpRu07Nvf11zB+uk2kmjPgyMAv9Ji70tc6plmZPKYYgc7rYojVtZdcuLu5pa5n3nz/Hd/++m/5za//lod3b02GUoSHtaIpsdzcstvfsez27PY3RrwSYbcYi7knsXmkwK7ALgv7mztevXjOzW4haaeeT0hvlGSsWrCeb9tDjEk54QASssn4gemPT4bMDPEWGG/NJ44WSXbRE4OrxfDGIdEYmU9eMiRTGevd4NYQhvFdbmUiEZoHWClnp3Q4H9YftMm8Vstwl82wD1KM2Douy467Z8+4vYMvPvuUT1++4LvvvuPxdDRSnK/61bP6lBL7uxfQToam5Oz9/Ea4qecT/fhEobLzfs0mQnMEKSPG9cgba3vO2FJvw+4kfB9KdxLndk8FWJbFss5qrGqjbBg6UQIlqNbqpx7A9CtHS0qbHoHv8+72JAL4OO8kZnmszus64IHmyNYZcH3o5OTGv8fz2NZRnpKy+GrKRb/tPHErUNPhlHMaqFj8bXUy2mgHhdHCZ6e92bE5T/qx4yfhbJMkbm9vx78HzONHaz7AGb2MJiIDig60eBCb+bcWHY31kQZMN16PGfta+2iJiayqOfFjZB8pfsfGuBuR8OxIlEqfFJzCqI8r3LIa//dxNXWhEOEYznmqUca9Gc5rS3m3KDDC6K5G9FjPDh0JTNlBkI0kF0jehoFH0ABq0PI2hUmRvHOiYjLyBdtzEr//84VGQzzusDQIG/GspmxVVSm7xQxy2qJQEOubi6zGN9B+v7MBEaUMUf/r/r7IRHNylaopeo3/hsB9ZAQ5LROyIg4SWHZR6daW4ySTvbdgxXvNcnS1VtZpUlOQKMIARPab8tQk7zdPk7GSJVip2YaRS7ZWMQUqytPxid+9ec1vf/tbXr95zf37e87HkwlorJW1NQ6HA1IW8uFIXp7Y39xxc3tnwYm3b5UELIIsC1mVjJIzPLvb8eLZLTe7Yq04dR2wq2CZyno60z0fj5alhGmF73bWzpbc4EW9fR58cR3QSgLtafxGfQ9vwZeObCme0RhogGXr2vqFaIOJ2ujYd5qiB1Uw3kQw1xut+XSr3MhqLScpJW5ubvj6668pLzvp5jkst3zRQCWRtdPXM4fDE+/fv+NwWqldjbwp1i6z3y3sb29JfccijbzLqGe3ajEDJcOCjEy7qvdxC1arzUGytLrwLDAxl+GS2ydytjUfpCm//qTZRXU25CZ6vqM/eKAwBqn4FraWM3N6nexOcpQBtLO2avUUqywAACAASURBVE460JuyROR0wbTvYePFV75426R/TqCDBHFLtkw+HGJck6ZNnnHA1ikPuxkT2ub9F+un9z66MgYSNmXjccz3YxYUiQDngyTiI8dPwtnixofJMcXNvai3asCgW+Zn/7zMrGAONAIm9hvrZJz5Zo03nz/K8DuPWsTh4eRO9jIK2x6KZ0gazdwR1U+/Z3NMUZ8GhqZu1FOSv87WtY5zDhhlZIyyieuPT/JgIaA0Q54iM9/OVySRFY+FLaoPdoMJSuCOz+6r9uZMYnM+Gwjr57m5i/H5sDENg2kdbONIGmfnN+oiU0YfxJXkm0RE2O0uoWNgbLQPlGtkQ0PmzxmZgd/Xcb9g1OVlvM4KYS2aBj0qvlgv03tbdLwNuC9pGec6RE6uzieenS8AYnScJO/59awm4PbTeubtu7c8Pj5wPBw4n0/0Vq2oop3ezOFmNdSnuhHUVlmXHUsxtaNAdOL+KmoGuS0MBrCft0qwhz2D1QhtN6hfZaqbe+ZoAg/Wf5p6H1mLCKO2HZ0AIrbWXFV0IA+zTGMYaUnihB/flXMWEupeOEQ8arEbgUYVY5P3RuuVWjurKpqVTIG8R5Kw2+/55LNP0aOyslBlQbqwts7x4Z7H9295fHzkeDqzrpWGtTDmksllYbe7Ybe/JfdM0pWmlafjkZvU2JHR/Y6lJBZgl4ybUcjOHTCS0JXZGY5SFFYXkwipUO2TQpduThWSkZZqcC9kBPgR5I81ff2BsV/dVsY9Dv3gEJwZdfMPXr0dXSNrsYwknp9OnxElpGvHd30TxtqcfMX19/O/c85b8Ia1WM17cSBK/rezn7n46OFs+fFz9OMn4WwFgwJGRDPfnMloAoOFiDD+9mPvhxhxxgiRW3SURBBNFxAD7lhn7F5kYtOGMXEpizmKGeIiEbHHomvGWhw6y35O5ghlkz7zTDx6ZWGLvgZ8wVafiCgyzjFfbRAiW1ZFO97croQGscnQBgPXCPXiVud0Xj0qDFUoGZl179CrsSQt2C0esMqoAxGGcTK8KKNd5wNd1REIJAKOHb24fWN8D0nHbIZ7m8ByGXle11sG9O9w5AhyerT0XNZ9UoqWlW3dMQIWD7gCkZg2+Me+AkqbHX8YtKEwdO30CbRCvffaarOSxDI2wWtnxqBca+V4OnBez6z1bOSl3oLcbSunV1L3Gb6totV6YnMpLKVQljIgZWP7Wm2sl8KpZNb1PDoDcs5oywNaz1i2L+NxTmztbNB+RkZr1LxGR6Ai4u15877fkKkIdIM8FxD/EGYRobr629iXydj+AfuZJkRGckFS2Rj7ITTvym+1Vda1sQLaoXKmPLshkVgk88nujv7UePe0cjo1aoPHpwNvf/iBtz98x/39vdXmPRvMJbPb77m52XN7e8f+9oZUE7rC+Xjk3f17St9RdEd7Vigls5PEIsraGzllsiaak4ndTBkM7fcbtf7qc/NsUvGardudyfzEgl5P59GxMFjevlcuDwHciTiaIZPSFJjT/NhghGFr41Onn1/a7Eu3PJxX/L8GgTHO5voML3kPWxLDR49t37atNahO5TvVwUYekpHDGW/3YyZrxrP4O+FsgfHAQpAAthszH6Peo/rhjZ+i5flmz4sgMpyAl+z9FdEPhQk+XBjTTQ1b7E4f3epya12prbEsPh919J+ZU6E73NV9XJrtGJLIgEaHo/UHvQUFl9l/GMHr64wa067IkHzbEvC5Ktk8wBSe3ey359BWeo+s0GAmXdTqms2YhghozhcBUWyMRr+4f6KWEfar886lmKJSKdTWWFsd/ak6egYZRK3I7G2NfHyBXxAlPA+L+xOBUHfC14Uucs6cTisxNzgCNCOd5eFE4/Wr941eO/lxzSldCLnFNY8arZ/PPK3E1qhQ3FFFPHFcz1bzmtigy82Ov/9nf8rjeuL7t2/Z3d/7azN7LSCWdSxLxiaYdLSeOJ1OAYtsvYlxz9Ta8HYlsz4+8PrnX/CzLz8F+Zz9fo8mrM1DMGGR05mq1vPbVxOfyCLsl539fdtGXV4zQnEWcyzMC5g4zyYXm3CEbJnqUsb+jRr+4ECg9GYj9QBrY1kKpewgFQv8WqPToNn4vuYO14JCC/ulWTbeq51XWQrn04Fvv/0tv/7uDW8fDnz7u++opwP0yu3+hpv93ghpy8Jy+5zbZ3fsb8zh7jMc3p85nk/cv33Nr3/TOT/f017e8uWzzPNnC12g0jidz6S7WxbJA55nBOTJenA7jkgYQhWIVsLEWzKJaCic98ThcLzgC2QfDXq1iaxu3burJHkQ5mmHeiAuYMGgQl0Nqs0RCBHL3PcDG/N+rIWhGrYhdWFPIujt3vo0txpt2aYpB1wfYTev7fmw3+K1YiMbbGUN3+NDt9zvU+yRqn1T2Yv3j/P/u+Bse++c1/PIbkbtCz6oTXRhE0G4ulhg/Nxu2vbw7VfJxppGNugbVzVqd1vLgYgN/xaP6OJobNmrRXOgYgxPQZAi5LJzhRQfQB0Eph4n6iBWAklWD8vqUBkW1VqdC2cpmmyb9Y/uDGLr03logC8wz1o0wf6zhcMKKtMA7ggiZoe229t1O0lpZIIjS/V+xJzZL4t9hrMRw+GPeo/Pnw3nNrK6q6wdNSb66Xw2CUJnPopu8PGylPFMt0h6DjiumMZ+3sayVnpyR9237HpeK0zXuSmIjfTQBwJsBqPkjOZMXdcLUlw43+jz3e9u3PhDdeZ0nOO4ZieUxLVKctWaJZPyQkqZRqc1qwGvvVo5PptgfU7CL/7Bn7Dc3fKzP/mGX/7yl/zV//1/cX5zorWVlE3uLxWDEx8fn+jVPi8vC1lgXc/jntzsFsCm0zw93fPdD9/zw+vP+eyTT/jk5Uu7Hr+PS7G2llYb51Zp59Va2LL1U57PZ0MRaqP2Zm0+sW8EH19pDre54IkZ70RtAe9PhmIKuFoykpioQik2h3ns5U4TQSNoLQVyoWEZpSRx5Md10c/WRqbaybmQbxZUCk0WO++ykDRzXlcOpyNNO7lkyrLw1VdfQa+INrIIu5tbyn5P2e05t8b5fOZ0sKEHLz59xUk62lfQxusfvueGV3x6u1Bbo+pi9d/WQCyI6C47m1OyNjwxCcx1rQOGlQy7ZLpeuA0zScqGoI5c+D2ckpkLZIarrNPt3rIsNEesYu/MiIyIeK++OykMAmfs9a3lcGruuLDxM0Iu+DW51ZVi0H+sj0hIlmUZ9jpKb7MDzMiwParq/AHZgjPnovRuRM75tYMToFsNuIZwDlvNdvT05jTO6ceOn4SzBbwWZMeAEvXSOFoNZ4Mc5WozhsrInIsGADFHOXaDE7Q2YNKxeHSGCeTCMUc2rWwZadSTRJRQxLFI3aHX6DHcrnQ4iM1RJCcCWL2S1rYpOnGNEWAkMSW5keleQq4B7aaxcKYaSL9kNwNsgypMxSqg2cHXHR/TB/wsngkK6SIrif/OwchMhJnh13jOPYhYvbM2lwB0hx9/Oztaxnub9otFnmmIaYy7PAUI5ryj3Wr7G4n7ott9mWGoeHb+ALZzFxmkkXhNZLsRVMSACI33ZIuOwwhcC3GkbIo9jtN7z6Zl+6dax+AMHFbuvjDvnj3jq5zY35lK1cPT41gPT8eTkdnUauhLSqQcgZbVRRN9lEN6q0PF67w2Hh8feHh62pyMB7e9d/Cgp6kbNazXPEZSRg1RxeZC1/Nq0o5eJ1csaBBNm7P1tVvVSzZMUGGsobTZCjSIaVu9v8MYOE4y6L+qtbic6zoIW5Z1Gwo1y/VJzmjKKJlza1SS1WZPhkKICMtu4aYLt88KbT3R1pNlm8nYxa2u9FbRXh2mVbJ0Wj2zng/0eubYVs6nvbUUnc+c1oxkM8pG8ImWRldk66BiLVW9dW+PwvumfcCGguBTpRhIcmA7W3lk2rPX+9eyQMaaF/Qi4Rn3WmHMhfUgHkcOh5BMwM9sRwRM473G+c0/j8DLesqNA8MHNiEua84qo4tl9h/X3I5o5Yt9MpeFruu3471FRokkst0RgEy27vcdPwlnK97C0bvR7mNqzQwnR9vDsiwb3MCm/rFVeXx5CUMabL7p6vNGoj4X3+fsN9sjGasxOdwsspUWxAyvZkF9yIAtHhvJbj1jQdQhvMx4rYjBLxsIroj6BJbWh1Ob63tz8T/kCWenMIsjbAFF4EoBl4RTq9gmimtevOZq984EBfx1GveAsfniUDEqv7YrCJUt+5yhm9kpDyLTjBKoiUSc60pZFlLZAp6ILM23xLVUQJ1V+yH5KWo9ETyM9eGBUPysRT1/nNeWndcea8XaqQa8L1Zj3O92rLUOiUuwNXdzc8Pt7S1VO2fPXve3N2MdhqNNIoi/ZylltIJItjrkej6xrpVzXY2Y5s+6lB1kk+7svbErO54/f85uv2e326GqvHzxgt/85jf85je/4eHhgbY2pMPz29uRdR5PJ2pb2e/35FzoCKfDI7Isllm1ztPpwNPpiafTidoaKSeaKmvrnOrRBwU4rF0Wdnvr0c3iY+K8nWQpC2+eDqx13do8BNPwmggpoT27BrlJtoA3vhLbMxzPtl8GTYRDTsK5mdShqqknaVf6akSx2s7unGJri2uTQ86JtVYO68rjCg/HNpztbr/nxXKL5IXH+3ecj0+oKqenJ1sPrbLb7Xn56gXPbm548WxP6iunp/c83b9lPTyyL3A+HY3FfP/ATer0/cLtrnBzszfhGDVXKV3HgPrucqN2b8Q1e/Mgb5rmeiQYfpMmYZEZTo3AyTLPuRRi98P+rRsatpkt+5kPChFV74dOQ7KzODkr/v7CuTH/ezavl0S3SDIuOjSmfc60RoaMojvm5qIa80D5jSuQBnQeQe7IatnOx/b/xhmRkrm9vb1gP6+r2YBQSPt9x0/C2fbeeTwciGHqMVZsrnEF5X1AewFd4I3x9oLxH/EoZMbrB0PY/mp8hpGHxCdqsLFmFTSZhFn2AQjWcO0ZbiCh+KLVfmFQxUddWYS21WyDYhDsSnof48e6Klm2yTZR96ueBZ3X1foAIxrD5oVeQN2j/teRdEnSweHuUOXBhxYgQlubBwrYIk5MTN74MmbkeV2p9TJDmyPEEHX4AKb1ntoZjhq1ypTYLTtrAXLItTWbGRpZapo2VhiDi2k7fj7Dyafoo5zW22brh/GKXuRSdr6MTBe7OGO3lGULCP35Ho9b7evZs2fbZ4JBysLIckVkQFFDEvOqbhb1/1qVp5PVVk/nM7W10RZVdgspx7Qo8ejaxoftSuHLzz5jSYkvPv2Uv/+LX/C7b3/L0+MjTw9PPD088vbNG96+f0fSzq64ElFbObcVVaGUhIjSe+W8nnj95jW//e47Xr58xeeffcqL2ztDeZqJLzx79owiQvFsIZ4b3dtRhqE7cXKyVTzrWBcf2IM5MIrugZwGCW8+lE0wZF5HUWoKCL816+ldsik/1ZONA0Q6+6VQisP4udA8ICbZvbA1agHY+Xzm/v6RH94/8tu373l4PLDLiV1JNoyhd5alcPfslm+++TmvXt6RRDkeHvnbv/013/7ql7x/8wO6HlizIOs969Nbzk/veP3ZJ3zx6Sd8+ekn/Oz2BcvujpgZ3d2gVx9hmMRg5ZLz1ssaMf3kEWM4QZS8bJBJ9v5++8uGQuuX2Wc4vd4HgufveBHQzvrDwHCym0oV4xy25+u2Od5zApA0kpNxHmxIpv/xKCm6U9ULZgTjPWfbH0nLaLPTyJy3udofIKn++qenp/Gzst9dqNXFZK8/5viJOFvltJ6AaDif5NmK1SmCsbjWdTJqMePxEjoGRjYU30NEVJOoxci6nM06ZdL+LsOJRRZpC9ZVcqYxD6ppQIbd645FCiFugGfBATsPwW0XDzdYdmLwic9JbVvdtrdJaB+HzN0YdIwYsbECPUtOYdwgpWJQ94B6/P5bOjcMo6KOZE7EmdECY9lvXc2AzVDoYIS62k1AuxobVqfNajdtu99J2C1TUDVlmK2FgTEjuLXO+GunTXLt+O3isztmY3bHZ4ta4jBoTNO6iA0Vzjb0fmOaz9rMaZZlYXHm7UzGqLUOYhzghnJzCoHWzNByR6m983g8ca4rtVk2vywL+/3enO2yQDZDlTwIPB1PrI6IlFJ4fnNL+uwLXtze8fWnn6OtczocuX93z1/+5V/y17/8a+6fHjmvKz1hTFZfLzb8PPtUFeFwOvL96x+4vb1hv9vx8tmzUTtcSuZrEW72ew+Erfe2u8RoPI9aK+fzmZLyQAesJWYjAja//q4dumddkW46khA9810gFKQUI+t1X7Oxd2KqTLxnZEEtasaWEhE1txwQ/hS0rfWESja0oCT6Ihx0x0kzpy68eTqSDkcLBkTY7XY8f/6MV69e8Nlnr/jk1QvOx0ce79/z5nff8uZ3f8vh/jX1eA/1zCl13umRenzg9HjP4f49h+ORjnD36lP2ug1Dx8sJrTZa7ZCUimWUipDzAIqNMaymxTTKOeEcRUjLbiA00cOMTvdvso2uL7a524GYTUiCB869NW+R3CD/HojdsK24DdmGR+CZrW1SmRDAgKJdf/qaYMdkjyckbfxiuo4ZJQTrCZ+2/Hj91qe72Zmw/6o6kI1BmKp1tE5diNN85PhJOFvYgD2uxPLHRAUMGq1OJgljBWwQpWzvo2pTRkZENG56vGTKBn3aiEGP2/vNdQBHVoejiIWs0+/DGY+NHBJr2O+6L2hbIOF0LiUMER1CGK0b7N2aiyk4BDZnBZEh2mv6yMzNqZncgEGpMvo1IwrGSVZzdKpxsuKhj2zgTUSLvXXWepkxh3MdztIzkrjWQCKAoTM8bybElICS97W1dSNXBYFoPDcxEZFwthEsXEemwMgg47mM2lPcM436OV6HVTeeMeg+jQwpHEd1RztH4NfrpYfT8WOM/dONExAZ+RagKbVVzqeTjy+Dkgtlt7Df7a1NJ5vQe/xe3Mj1gKVT4qYslGeJ5/sb+otXlJxp58rjwyPr8cjTwwMpCe8fHzj3xoJF+i2E/5MgYobpXCvvHx749nffISSe3d2xKwtLsYHypWRevnjB7e0t+93OZppWM64lbYZqXVeW2815ZGcT2/YzaUyrt1otVUpmM4Xe6x2Bqp3seJ60bgpwbBlZvGf3vSme79WYuSp4e5sH875YRxmk27xilmwtPLLjZsk8a5nnFY5deHVacW0qdjlxs1v44otP+eSTl3z6yQtoZx7ePPLw9gfevf4dp8d36PmJ1M+I2rSk07HSzyfOhwPaqgmY7O949dkjz5s58FIKRWzCUw9DEzYvvlQD9/Us3MVXejOCn/8daRJqEV/v83Qc3WBege2ZsAXK/oF4ROzfdpfoVKsri2y2qPcNxh5ooG5OFg+g5NIeINaIFwhUa2084+se9xgYYJ8R92FzuNftlCKMD59rrjPyEgH3siwjgerAdfabJV1ku7/v+Ek425SS17QmI+yQUZtuxOiL9CwnecRrD2nL8GzspOnnDolFv3nReqJ96w80h+dGUNL0MHU8FHvg2BpVnLCgWwSFPWQRb5Mhsi7GwtSx+YPIlEZUbOexwWsBVUY2tMEeYhAiQWFiM+oX8IcZTpMUTF5fTt4gz+iV3PaOWB+iP5N5wStQQ8qwWztJQCdR6wgodGQh83NrNVKOkfnykQ0Ak0Nb64hkx+g2n/pjP7OAIVpnNizqsk95OGP4cENFwCUbJ6CGtKM/ulYrUDE+UJsgeri7uxsBweFwGIYxWIrn82nUbAManwckhJGcx/M1FxwoOQ/YeHezt6jZUZjWjfDVe6euZ1JvFDEI7yYZtKgpoTkjXc1h3xX05SdjcPo/++e/5K//5le8eXjP7X5PT7D2xvuHe3OEpVD2OxTh/dMTp7Xy/es3Vn9dFsty7265v7/nm5/9jF9883O+/OILq1eeztS18uLu2QWRZCnTPVhcWlN1qA1Z6591H5SybMGwClo3hxBtYRE4iYKU5AGSQdgje3WINWcrSRxOB1+CQsqF4vax92aERq1UMZnEPgLmrYxSdjuev8ywv2P3/BXH09nY3SifffqSLz59xVKgrkd++Vd/za/+2V/y9vV3HB/ecrOALrDricyCaKZVkwY8n4/m1PKCpj3L7XO++OIznt3ecrvfcXdza+jUUsiLEd2Kf2VJ1PW07X882+v23mbHZOimD1LTcHVz9m/hg7gnvIR/pwzXPOmmWOc20RxuZMTYiMPtLS6yZyKActOAKOp8G0ni9tXtgnMjBC4y1HlfD36LO/dwih9zgrPtvewu0YFoLcvCbrfj9vZ2/H7tW9ksylVpQsF+7PhJOFuSnbDh3x2tSk+bxuyA29xhzZltPPxwGl01huWN/rHxPleZyAXJSKZoxuskMUdVLT1D1HvIsiBOUuhO5EiSR01ZxAUQ+gazRNZoPsw/I2210+PxaM62ZJIyWkJqrW4YtqHjeYa2owCpenFtoT5kFPlLAfxx232zRnAxC+OLyOZc+iVcLG5wZ4hGykbk6t0EF2bHZM51g06v+6cROByPHA4HgBEtGoRqRlr8OuO+6MgWLcsLKGd2tgqsrV3U0wPBCAlHFR0KXIaOeMTeN9KU6uX72zD6OTCzY/W63boa2at7xjHzD2JT1tnJ+rMpufDq7vnIYpMHML0GzKqxZei1cj4dWUpmyYUimdQUah2TcbR1VirVs8ObvPCLb75h2e948fIlv/z13/D6/TseTwdaayz7PbV36CbzacQp6/N9PDzRaydLZimF97c3HA8HHu7v2S2Fzz/7zMlTjafHR1JKPL+9Y7/bsSwL9bxe3K/QoB2ziEf2oNyW3YCO1RnPI6tykYcYy6lAUhmawHSGcAmqpFJsf3u+lnNm8cBNkkKr9N5o2tBu7OWOWB/uZCu24Nec183NDaXsKC7H+Or5HdqOvP7hNd99+2v+5p/9nzzdvyG3M3eLoOsTN6nD3oZ9iOCchMbhCY7nyvdv3nOuicfTyp/8yTe8eP6M25uFT1694vnNraEKKbEk08belcLNfk91FCsCCfWBtZLZbGbKiCccI3PwNd8dtRM2VGC2keEQA40L2B4YE7WSB+uWEUf3whbUxvuYnHIyJEXF13Xc6EvAyParMdiNuHapfaDTvp5V2ZAtcZnZwwFtz/6g90vN8mXxiWc+6nK2Vxm9cLYGOcvoy/2x4yfhbHvvHE+nsUEGxJbS2CiRBdRaN0ij942NPJyZDEc8M5c3+ODS+Pu3pp9bbBZnisymbdKIsdiCeEFy6TkNibmt3hPeX2IwAngGZd+NWijbeQ2Is5tRHKOskljvXywWwq/aZomeQdg+az50+moudRdQEUAPhIBgHQdEzcjmurfmjOAguwi5X1dMygnIKOpigUTETN2NjBDBzFb3mesuyf9u3iRjww/Hv6m+RMYfa+miZisyoMMtmpcBYUWdNCnOimWL6D2Lx83G2HjuaNd1HZs2oufqEfjpdAK/hrIsvra2hv5Yy/PAewsMs82zdfUocJTAmerdEQtEoDakdZs5rIK0TlubQ1syxtG1rqy1cV4Nor67veXrL7/i7tlzys2O9Le/Qt6+Yb1/T5LCuZpxGySZWEPi02bENHvPrfHu/T1v7t7www8/8O7du2HM4r8hFpFSGuuwa4emnJzhPHgIya4/EQ7DXtC1W4bkcGfqkbMy9ly0sEmPbNcGr6viWslm0GMg+jCgMvXzjkzL+BK1QZ54HFvABEXw/lN7LqfTife9cnh8y/s33/P6t9/y9PAe2pksNrf6dDpQRMmT41e3PWUptC6cm/JwOCJv35F3hdv3JuP4yYsXPP9/2nubWNuW7SzsG6NqzrXW3ufcd/2ejf2CibGRpYhGRCwUGQnRIOLPHScSDbdCAwmJHwkaNIwsRaSZSEkDKQoKAskgBCQQBB0kfmIprZiQxDbmx/AAS2BsDO/6vnt+9lpzVtWgMb5RVWvfc68b4dx9/M6qp/3uPmuvvdecNatqjPGNb3zj7g6HZUEWgdSCdVlwXFY8u7/Hl57dY8m+b7wFI6gvTKRJAVGDSgg56NVx1c+LgIcx9tNILw1VrghP4xkInNUb9asWOfWoceehEnljSTw7Ou9lChoa4B4VNaAR54/24Onq2uyRVGIgVrhWe5rJmsAw2rPx7nlaGfyXbdsmZGCkfQZM/Wmn+03j3TG257MbKBEs69ojlZSnBDXdn5nFWh9NeCKEpiLIkv0B83O6Z8y9FQ9AlYX/kwfTH0CENYgjl16aDqazv0+vHl4nGTFXNEeM14bZvbtY4jCSDcyjLZWJdo7I+04ygxLXhTd2K4osTyAy1l3U8d6AfKzfqxtwr/GsvRnBkhZoKM6k1HPWBo+g+r1PXx7pD3QiaRp5+GrdyEb3mMTocUnezSdToapvrEfwemIj9XkjObwT6McwtsGOVsLYgYRYq6hB17DpudLTV02DP6CjlKqUcsVy9JzriNQyuxGt69o/O64viFYzdCVEGg4UlghnoNXGSLu5oAnIwqxuhDJCQchz3dYqkRAvB9lpZB+2DaUWnI4n3N8/w7d85cvQQ8alFhgl/y61+ExMZLl+IKojAZHLr81wPp/x4sULfPTRR/joo49wd3eHrIMwNkftAUJGadi2bX0OcnaHJIQQ+t4Lgk2tn3m4+p6VEeYajYC5s2HVpRUN0h29eP6Px9j2fUdG/Mf1wOgxnpAVdxq2C15bxatPPsLLb3wdn3z8EbbzKyS7QNoG1Ata2aBZWSURBfC+d1PO7mjD9ZZfPZzx9V/6JeSXniL7xjc+xrO7e6w5Q6yhXi445IzT4YAPP/gAv+7XfheOx4Orhy2rxwI9SHHGsSKcWw86bEpGjfNnnByAk1eN997TYDEpPYjhGapUKuO+dkn30NP2OW1U5UIIi8SZwfNS4NUfcVVNKoqN5xxcHqNDHLXw7jjJ9drgc56DLaPzFl2rZsPZ897zPuU+j892/YMpx63i5WvTZ3zWeCeMrbWGy+sHaFIclrVv1oUM3SCblFI8CRLyNQAAIABJREFUD2Ej9xbEkplB2r2f6LE34fGAdThTsjh1PiWqFAFA1E/tMCqkgRFoiKd3GlGf3OlBBqmny3oFpHltEGbjYQAWg28H8wWuhKoy+8oCjNr2MqAZQa9t60SwmFMuhstl657orJIyL8iINupekNKQWWzFRdVbMyQFcj6xJjN1hGHWRX08Qi0qSChhUKKfZm1O/Nq3Dfu+4XhY8cH9XYeQY562ickbI8qBVB2+6k5SbdhLA0CoKKF36hlKMeg1dv6sW9+4xnwfMNXXqZO3ROA1r3QO7g53XWqxteb5tJSQDyvyYe2tuyTpSJPU2utyZxb3bLRjnXrNtnUjElyB6D9s5h1eEktAzAy11F7K1eA9Rl+8eoWHbUO1hmcfPMez5x9Ac0ITYDkdsZ4O+NZf+Aru/8XP4p/886/h/nBw6Phywfl8ISog7mzpAsAj/m13ZbOXL1/i5//1v8bzZ8/wH33HV/Hhl76E58+fY0kZCvIPOt8CaNWbIjxsTjZrreGYFyxpcT3llLBt2xVBbk5jxN4LjkU+LOP52Th8Rbiuizs2JkC+O1H2sk79nV2U3xpQ4dBuWlbcffAMLR/xYA2lvMbDqwtevrzg9dbwUAyvt4LztuFyvqCcL4AVtO0B7fwKyc7YXn2Mhxcfw+qGJTV86f5IYcEJioRDvqrZjWRakNKCtCyo1lDOFfu+4fXr13hxeIUkgrJvePXJJ1hTwt3hgK98+Vvw4Ze/jOfNsC4L7CRYltRRsIbmgaIYRBoEC5wTZkg2zjCjIOM4Q9ARL/fxR+DicyyUmVUoFAkJ0YSlUXFNraHx7GyFzTBS2CwB9Va6IXegocFSgtdbe3knkroMJp9rrV7r7WdAwrIk1Op7WZPLG0UgAktAc82A1pys1xLRE2vwzpBO21RyIWogQvsFIglqnspAM5S6k1TqvZQBF96YFILeON4JY6uq+PLzD7AsC46HA/KydtGE/XLBtm8dbtooe5dyLM7UWzPBrEOtPoPjkNJIzCJy8a7EVFuD7Ya6sZ9srDWxITfWsf2JvSvjgJ7xewBkOSrW1Q8PVUGtQ/IrPKXImaoIWC3nXr0ZavYDqrSK+nDpHteacs9dhNHgbzqjtDW0UtDY57a1BqSJuY0p+oRDS0Hk2vYLpI48bM6C03Lq6jRe/uI5pvN26fnq/hwZNQaTN/6ub76GVrauYlWbt2JTVTxbF6yno89XSqN7jTgZbNEFZzPsZi7jp4LD4UBoUlGaeE8FCMTY+5TQuFTgsHgzhmiIEOVWTjTDtWyfBYzNUhA1lLajboXwlBvdtCS8fHjpjkZ419LQkKFw49+iv+u2I+XEDRolNtqbKSQdteQAcKn+/sac8cPDA877BWas2z2sWI+H7hRdasHDfunrb0nJ52rf8erlS7x48RLPnj/Dl55/iIaGFw8vXRqzFjxcNpTLGRnA89MJv+rDD/GNFy9wvpyxtNbbzTp1pUIt4HlAtWHRhCzwaGsvuJzPeMV6ZN+L2tMlXrpXO9QOcUnUdV2xQ1AvO+TiZDdrhf+NnHbrOV0Ak+MmeNjK1XkSMZtH5Q4ENTEXAXl4jbQQZYn1WRwNQGNte0potaC8+gRFXuHltuHl+YKvf/ISv/TqFc57wXkrePHwgBcvXnmbwa2gleI9oLcN+3ZB2V5h0QZNCWtaOvwu4vWagzkd+Uyv64V6zfJ+ofhL9SYh24O3OHQ43TWb93rGy/Mv4P4ffw3f9R9/J776Hd+BoyVcXpyxLAtOxyNW7ilrBqiitNKJojl5Qwo/Hhq2Uj39RUe5NGDJqxtWQ6/7NgO0AakR5heDJXIcIFCWPToBztCsIkNxPN6zraRLgnoI7kZMA6ymw1tgaFlhS0ZL/vmlNU/xQWDZtQ8Kn2EtzLs2QOBnlZnB6hmjBkKgYlDd/e8QWRQVJ9Fx3zQ2qShlY62zr61aGrb94nl7CNY1I2c/n01+BShIqQgOi5cRJCFsWL3kpdJwwHwjrMvSReNDOMERpAmSMOa5SvWtLsOAAHNESkMAABVo7GgDcXq85wIxIBA0VDQXtUg0UowixAKSAaI0BTC4rKAyCq/USXYoKtEoJwi0om+kZq0vQOF99aJYG6U/6C+FRy/MbQUNvzGXqf3arqFufuZVxC4kMJBIEjlsAK0OI76z9GXOZY0evQFvR2ThZCavt5sg/5yxpIRjXnE4eATpVxtGXPr6SCpoSXsOynV108ixciMBmNijfuQKCtRC7MCZ6rE+Yi0kVWBZAMoVBiLh8zJB7GwH5uS42p+NsPl2GKKAqCPlsVEBK5ZM1oSUZvk36Ru6CWgMWaNad5ci7f1MpTs6c82ocT1v28Ubg9eK3RrycYUsCU0Cvt27Wtf5smHfXD/7kJOLVtSKNSW/hn0frF8NhCYihob7fMCz4wmnwwFonrtMqi68EsaWc1Ob9frkWho0J+SlYK8NuVb0ym9rAI1tT6vUUXoBBBs9xBOEa2Dsh7E5wINQ0BRoGdBK3V7ul1ZLryzIGucKBWhU3OF/eMDlxcd49cnHeNgckn/5+gGvXr6C7e5Utb124Ymy72h1J4omqJYgQu1lTUN6NvagARFVRqVDiSloBrOJbBgpjvAkYPi3X/86nj1/htOdi47UbcNx9Tldcsbl7I6uJu3dowCgakVbgg3u+UlYECbVa3qh3di6s1S74+fazX5Nm1AgRqSXzUX6r5mhqoe0SudtJr71dexHkCOaSVBaQ90NtQkUrZ8rPmsNY1sGvwLQ5ue3X1Yw16nMF2dJrQjej/sgglQVpfn3EUjVWrDkcN6NNeOhguav7TXO1M8Xt3hHjO3Iu7VaUcveoafSvLYqqRNGlsMaWXkAg60Y/4P5ayFvFptHJrHp/qDb1GbJrD9kzxcoqsGNV+Q60FBR0UiqyClDkiDDlZh6ThguODCTdWAhJefNzHPyAz2pQhvzF82Ve0Lw2nMWXLScq2aGhZDhgKOBkN+IVlwRcoYykTsEzIN0iUu+b7ICQR5JKXrIMtIuFfv5Qii/8boSc4NCoQNai4CFaGgLIUFrnqcKVaWV+cwDI1qz6nqykc8i7GMg8UMECOawZs+D8rwJHV1IkOsIXUtDuWyOVKTshsDgOUBS91NO0Jxd6Wl3ybVOiOAcdYMbfpp1sIH56Cj5cQewq5HZyE+qUvUnj6YMKQQVWNtl/Oytli6EURtTEnmUFxQa01IL1sMBic5drQUvX79y2NRczvLug+dQAc77BSCMve07LvuG7XxGLR5NHpaMD+7vsGZPExQ+v86LiIMunCoDPjiccFoPOB6OUFGUbceDAfu2MzfvOV5j7ry26H/Ked8LLmmDpMXzwbGGygYel3QibDwHiRRFgsjc5nCkcmKEk+1dagCsAtu1Q8iR947SuiWN0i0TQHNG3c6o59fYH17g/MlHeH1+wMN2wfn8gP3hAdIEqSmsVNhegVqAsntE5zkfmHpOFqtAUuyTiL5psNDcAIsCUJTdy5F84h9zIvzs8nXY8PHLl/j6xx/jeDqhVU9D7Qc3ilkT9rMjHylnpFVH+o1nRPztUgpgg79i1WH1zuzfNu5JfwY74uxq7ozTqEVJDDDO15wyinmg0Qjbwgb3pjXWjqs7CEgZ+15xsYoawc+jvKhZ1OGOnw/Rm0AM/HqVK6rBc/lewti6Ip+qQtmkI66rtdZZ1uB11qgyAVBUIW3v1/J5450wtgCosdk8b8KWR1F8Dh58klxOrrJYu9SKOmURJIWcm58Ky3EZ0mECmLQOR0fuLJiSh8Ohl+F4NMgkfx35SM8Eev4vSwLE5R+7NNzksUXZQC9RMs+vCT9jWZYuaWYAkDzHViprubhJNXtSXiaoHCp0FlpXQolINHnI7FPQJgYdRtRvhH5i5oItfGTXH4c2SRJo1SU09x3b5cKSG0NaF8/TCFjvx4OyeTRfp9Klwm44EQGva8bpeOj5uWYND1tBqy7eHgpJoaAlyXWDM3NDLshvnfTVNCaHUTWfoctYetP1KBEYtbKtP4e0TC2zcuo56NhQMxEu1oOZTVFpRsoLYW1v7t5axV7GZ14uFz5zjw6dpZx6Rypv9l55T87qDNZ4kKyCKLezKb2KYM0LymXDqynVAsAZzcGcBpx80IKf2lyPuxaINRxSwnJ3h/t1xYcfPMcgEA2SiBvcQcyDCFZN+OB0j6UzTq/rpl0AYBymldCxz1vuRDmgweqOYgNF2h9eIXiEGmwfSDe2TaJO29d31H+3yufGc0NVe4oGEMgO2Nawt4EcqZH7IAosAAhZl1KQjiusVmipWJohN+v8irwe8SwfsF02bJcdntQQtCxoS/IIMXHPS0LKgst5w3nb+Hov4gOYLw1+h6p6BAmh8R0oRoM3lXO+iSLnhPsP7rEcPf221QKFeUro4poC5bxBAKzrCt2FEpZDba2fw2aImmLVqLgNMtnQDu5OjMm05jKK1c5DQRmcjkgrBBej1npl5KNcLs6Iw+GAZT+iwHWym14bs7ny4rEBvir1GXjJVS/qcOQjrTefT3OZEAC8fjh3w12JuHaklJK8iLP5c8Y7YWwNrpwThAdNyRu8m3mi2rjIWsXD+ezlBEF6YsSqEzEqgNMM9VKRKa9aqcRUCYfCzKOgfD3JZujyY4FoipgznMVRJkVErBM0Sy8PQD8cFUR+xCO2pK5PbMxlltLYa1OhGUiMmMCoSZJDgLSYftiSNGa1EaqKdk/Ja5RbA7pcZWQruK3FZ8gkiFbCaHNxY0JpOD+g+QfaqFsWEaRl8WiWcJNyvhprJ8ORgdm1KAWLxZfspJZt2yjiffGDNfl1RGu6Cj8QoxQMUJS6+zPtkebUW5IRSQVr72DOaG+jLCei2cPhgNPpBIgjBvu+UxoUV4YWGBs6Nl2MIKYFTN94UFfWY/Y8Kmv3liWP6AmjfKHWvbcELMW8xi8p1pz63+hkNFx3MXl4eMB29jIaSYq7u7srPebz5QGLKNbk2FoTQVbFmhLSeugOpteG16u0QuE+qVQiivKclBLWvOCUVzdUPhkAhnLQLABQmuH+dPK9ljKFN0btJXhoxz5dlc0BNBjE2nFi6w61dtGJZkGQ8vkX37A84HPYK3dqWqxtj2izes1tUmfLd6zSDJITzvsGbQUPKeMAwc5cunf1ATIEkjOqAJU9hKklwfVpEFRYMWQF0jJ0jPv/mfV5Z+yFdWHapBs5j9FUBKfDAafTEcfjAXenE77y5a/g/tk90pJQzZ9hqRWXfXM1tlJ8Hq0CW70ygo9Jk/5f/3lSHevYxpy6fzs4KyZAVWc6N4kSPD+z++dYg7QBWSuj3GAplyAmklS1s1WfCek3QcQ0TNc56mmvbIpZP5sMeHRvgYAMu3BdFjRGJ4u24WRH1D8L1Lzpdx+Pd8PYmm8SVzoyauOS4tCcLRYPpBrZn0aZwi7IziiGK9zMUKx0Xc7eB5WGGwpCb0DOFHan1GAs+S5dZjR6iumQG/BIeHJd5UkGCzeJdvg25DYc+uS9legkkiDqB5BIQgRr/hVQcSzw1qE9Xhzm/HHgJSFb1j0uicU2miKoDmM74G4SHaq3HPS6R0IzOXsUTV3bvtBoaIOgZRTDUBEsFHLIS+6RYDhYpRSPDPYLUk5YNHvPYkpMIp6dueFvRsEMsgERNbyiUIlUgissAZ5XXZWzyDpVJfwYhr8SAqu1QlhqNLcj/BSDGxgEoMCSbSbLDcgcNMaHw2EIx2uIf8CfKOes8nf3vQ0HUnX8TbTpQOZnEdno5WHJO+zMB4ALFPB6JiOTRJCWPDX6IJTfYr02lGKordDYGjQJUl7oPKxYIDS20h0kZ7I3pLqj1sTnR0A5ea9lVR0NB+BLdBAIgZTv3KEN5zucXovyEx1GUZUpV161DdnVHinS6FndYVXdgTN3NheWdiUdncAcTSOUDMBqwf3hgC/d3yOr4Lwu2MuOQoSlmTNtZzGa+YDukORyTVQc559d/5uKdia8HzGo+v2JCJY14XhccXd3wv39PZbV+1eXVqDVa6EBgxVPAVmrSABSrbC6T47g5EyKn139+kBSWZeB9fM2cb95dUbrc36p4WC2YYQDQVMSFmN6c/w+jydhXjiuJclU5ig8L5lK6JAc56i16QzTri4YFRsBa89zXqt1By2IOaPZCqF8zomq9ryv1zNJ54V0NJPOwOeNd8LYxnklwkUGG7ApdQVD73Mve/fuDYBqhrPOhDWI0nMx2+VyJeAAgPKC10IEDrcJ+hzHe3OXqO+eTFch4cZyqvu1J3VVYsNDBsHcjYPMIqp1wgokI2VzWIJShO5gVJQyPUSZmg0AQ10rHj74e4h89tQHUuiRssZsOBDS76nSaLbihKZEAx053NTvcahFNUZysyISaKRzSjgEBMrm6AB6+cu+u+B+4/uhDuWK5tiFLtlZKhoKSjU8XM4AfMMLoq46Do4oqeLh0Cp0USdQmHvKQlGO3jIv5qy13mYsWLCjxIQbVkcBe0T2golQEYgL4bjwgnvzah4AgxDCVEUNLdsQ+TBHJ0R6nWlAqHG927bhfD5jPXqEHuvO53X0v80pQwnto1aXR2wuMZjygnXxfLBKcmGFvaBW34cauXaiNwnAKs6KPywLrESDcq4JML+qDclGGzNEEwIdedbeas8XI7ZNUQTYrOL56a6ztVXz0CUn2gVGfBCwGiGwm2mO0E2Jv7s12A4kc1QqgaV/kT5iLs8YZUpSVM6T4Ij2wQdISXDeN2zRjKIWVHid+rYVZ+uWKd8+pa1KKX3NzeIvEV3N5YyVzk4Dfeh+LvleXJeEw5pxOCxY14xWC87b2X9ncT5EQ+7RJbgnZCZuTU626HVXHJvmIWLqcCwjKDEARsChNsN+uVw9J+NpHEI24ZT2fDCfzkxiBc+qcKzi78C6Kejnc3wvfO9KSdT4G4+d5Nmp8VSlw/fhzEXaJchxBBKxLoerFJRMZ0E1I1r65vLHebwTxlZFsTLCqKXiYvvVzx30xPBwCR8GPBDRqMOy9H5qxX7ZnFGbcxd0zxH2xyEGPoQu1s0HpN6OC4+8Ixfhv/Ze/UBzPWTQgIuIkwkqG4rb8Kq8SkWGSDcEl71AqpcJaB41plHu1A995hkjYoqFCgC1Fve048BvLK+ZjMWsJ90nl3NwOW8wc0Ja1gTNCxYyplWVJVRc9G0wnultuGoRiWwB6Ybkoogwl9t6F5iYp8PhgLwuHpTrUHxpRhWg5gzbwgYIW9mxLCtSciKDNDcM4QWX6lGYoxoFKMCafY0dDoc+X70Tj5GtSEPVoc3ho01r1e/LG7FH1SRYEuZ51q5Yk71b0JyrAg2qTTnUvsbVnYDT3aGvyygpyxOSUErBpew9EnyWn+H+dIe8LDAYXrx44Wtndzqr5uRIR/XoZuFzaUmRk2JJIcbvh1rclcGVklQUxtzGSAMkrCLOMOX1W23dwHsez1GNFAhCDbamw8q273QYWQKUvGwDKrg7HftaiMN3HJToz8iEBMLpWXSZR35abXCDWQrqDqzqKks5JawpX9Vce0/p4ehKqz5fxwPuTkd8x7d/mxsaRr3VGi6l4LwXXPYN+x4QbfEAgKVelaznUpjCqjvfW3zfVkPZty5hWUmUNDBAyCtV2ASSUicXLsuCZT36nmWd8v3dnXMRJLmGdq2jkUktuLz2sqCQHo2I8LFhCoSwO0bma6evdxuiQtwcHREPmJZAml83qHVv0VKUR5B4ZYYEyVKYB67DVdIw9pCuf0+4op8jwW24Eql4NOJ14boRjCBqhqNn49lTIcztzvP2OOf9eeOdMLYAmEetKGQiRzQm6iSAkYMJKxvHVMBKBrSGBDpQKUHYezBTTUezl9l0BmCrvXtKyMOJTdAT/3prbrxrtRHB1fEwA4IxEX+9VQgq9s1VkbqIPHwRhq0LctWSgB3jcK0tmiAHZX14cCFsMHKFGPWbYWT5QWJDtLv3rxUqIMUc1EAO4l4SkjjEmHPGIiM6Cfk9GI1bxBOCXpfHJ9GH60Ub5e/Cyy8wik5oUs9jrot/hlmHi7sZsmGcBE7+yXnxHFTMf2yubsiMX6174uHIwIaK0eztxvzHM9Xp3jvE92jdxkEUqQ4EjJUSiW3XMnHuoFReYzSn14EgqOKwrv1Aa1SastZ6owvAn89h8XwpAG94EMasOXnLKKTRSkGC59/WJBDJ3ZlDX4uMMgRYExsZwGB5cgYeiW944/KJDVw9L6cg3Kh58BZyIvvbPzA1877VPNQVZFuL4KDqtbuAw710sFuPlsaGEAGWJbtwgqHrR8/HX1LpqEmXR8wTMjE5wkLnelTq9kphJBV3pmXwAgyClWmSZUkoO9sVwpB0YZBEOdRWe4RX646yR3ceNkGoo21lQPexPkK4JTgc8SyEP7Pm7RFzChEcQq/FNZNrrShUEtsvFxzW1SsBDoexNoFueOM1JwMNqHdd144IttYgxXOqiwDHPMrPanXjJDKcTzOH2uM14YMUGXs4HL6OcknUhwzf18/pgWD055y85AeGTqJEN9LhBDjk68/ZGe2zhOy0s3vZZQRX8TwSHKFLOUOtdVi591X/jPFOGFszQw0lHsr2gQtL4Z1rek4BGNFYfz6cQEy6ygI2M5DBNAQQkiVG44yYLEYrwjrKkGML9SpXOfLNEKULnZDFB8d10qPKWtwwNbUuWNDf1CNNN9JB+JlVsWJoCpGIAXX5WSNTRF97LWIs0Gj8HoY2+gJXzkGPgFmr16EUGtvu8U4erhs0v68gsERZlhvzaQ76syJDORiQRqINy580a9/Q0c3GYP1Qi2mLiNvbswUc6QvhipzGXDM4h5H7FL3WQ51zaTOUFx6u0uDOnnwfMuD8KIDvKEhE+JMsZzhPkQv2nq+tAwwpkUkdh3si6QceyUYpDyaUwhEbL+2qjHLBuY9I2QU8ao8elmhUP8Fi3dCAzz3ReYn1x8MkjNO8b0EItfIZCx9UyG4msjWF+6nXxqqvn0oHScVTDpISLKdemhMGt8Xv2zgDgqeQOvEr+BDhqAVC4TlaTM8mREvUL2J6rv5+d0B9fasxp6cK6y0/x/u15y9dKz1+Gmx7nzOPcpdlhaqitnLFbPcPDnJVY2Q8HD+wlG02tnGGhLxhpFVySig7SwilUl2soewFZxFs5wOOR+9PfDwex5nDz3Jj6gvT0ZNExM+NbayBWitqNncCVaCZCBv30tz7Ndbinhy1jKYqsb3j7KMl7DXrcc5B0PPpJpOxtf6Ue/mhv34dRHxqzBG3TjXynIPZ+apRkxuv8Xe8jlggjTW89mmi1jzeCWPbmje37glolW4kF5Ip4hCve+lRVNSUDjjCod85LzIbvzblPiMiylNezSNc0sXDCyoVZdvw+tUrPFw2p/Cn7DJlvLa5k8tgPQ86OVS6Zxcf3sX5xe9zbd4FZivXjZC9Q8mALdxH4GHKO3fFqKFhrFEScBWFXOdJ4joDGgGAZ8/u+rx2QolRLq0NY+ZGoyJlZ296y7QoffGotBR2UQEAG7lMYERI4ZlXM7R978IgZXf4TEj4SRAagYykGaf7OzLMjU6Nja4gtYZ9p2qYMmfMCJDt+OZ8TszF5XLpz3HAa6Mu+4owBemQvR+YgbxoFwFBrCGhYYp1SKPuRpCoQWz0UrGdLzjcnVxrlo7O69evuzE9nU5eW5umhvY7a9NtzDNAQ5kzkjWoGJaU2QnKUKTgIaJsDKckHKXYI72vZ3ImfhCzaqswSYxYSofUNMWeoAPanQvrQi4Kr1HsKQgARxonEcH51ctubHnc0oHsu53GhoaGDmQc9ANmBkQan4l17kFOI2dvIWZjwxh7qZKnOhKbQqSUYHkQZ5pPMEp11KaJomFqkBFIQ+x7M1S7eFehaS2peN29aObbiI6FU0ynCwAFV7wuXJRGXtRZ9ca6dEpJBu9iXVYs+YCaKzIAaQ3HO5deDdi1Pz8SGMOglu7ESY9s4yyrRPvCKTarXB++L/daXH2OlR5ohq0WT1VMBs6aYSvemjGiw8xzvHMpJEp4pMPHM1TcMODd4M/gERokMqQno8dvrK45TTefDaranYaOKk0s5CsSXPsMw87xThjbgEBzSlgOy2B5xmDUAPG8UCuVUa6TaRYdVGwRATp8gJ5THPlRHpY6RK2JVLpnTfhlu3i7tyA5iAjuT3dYj0csh6PDhuGJwSXD5vrdtu/I2Us9Ul6RF9c3DmIEQOo5c7IP57MvKkYQkV9eEmX8WIJj8G4kCMjCDAsEkhbIMjzFMBDLkrzt2QSFROcOdxQWlle48xBKNZUbphCOhgEqHlHnlHC4O7lDwhPRUd5gJrqxLa31DjjHk7cjg4grUO2uHNQPDxpHNQErpDzibs60zevSQ5q27aD8NxwuK16fWyuSKk7rwTvhaIahQhaW83ij00G4mnLu4dwcDoMMse97P1wWTdhpZGL+0rJeRSbO6s297s4sCveBbbv4HOrILVmrnYkMawOBUMXrFy9JHvNUx3E9IJ3uRt9g1paGAY5ctKo6aYekDVHF8bAAdQfKBmsu/zhH8nFgFTaT8Igsj9ptGuFM5aPWmqNFVfHq9ZlVARnruvQctW+rYG1GhBAHlqHVHUtWnA4nZ08ndUZ2LVcHXo+kI5phZGtp8AIul0v/3kl5gujbbCK9+XoWxeH+HsIypiD00Z3yPYkG1Gj/V3A6nZxPoF7fX2rpDr7njxtUnRfiKBx6icrM8A+nH0St2vSecDpTOAitucIWjLlKAOL5/Hg/JPXmIbU1yFbIyPbrP+WEU7rraTFnIwt0PeL5/TNPJNEjzCpYDgf0UqpulBpKIZM+544ogc/Bz5IAr3zPnM9naHXX4Hg8IUFYs+ziIXfUN1bRTuA0MeRFofnQoeM8Nywxb/ARpMS0uGZ+nGmtVjQZEeljkpdOhtHZ/oVw+IKUl64r3tNIZr3r2JIXvH71CjAXPFlWOoQGdziZ4sEvY2iBd8TYqmjXuv0UQ/QRfBeeS8DKTtlPnV2HWHBv+P3HDLUwTALqYtZw61nHAAAbw0lEQVQhwnDZNpQowk/JyQiHI5AXh5mUvv+gh/ZrjCbNeV2wrAdvlJ2o2iID9nDT6SO8uNhMkWdO4oY2NrCTcCgZSGhrPpzCc3CjF0SR+X/oc3EF18iYjRkyCfg2SGNK6TYRRYiO+19l/RxhnW7A1LV887qSwTzysWZkiJqTnBIUCcoTVUe+xkCWqP9tb/9G3jmfY8DsSUh+US+xaXD2qguNDLi4z+cU5caaiXU28kylq0DF3C1cp4n1ykK2beDCHrmMsrSVhlkEyEmpPsY6cFW0WnpEfFVoD4fOlzz1twV66Rg4x0YnYobCO+oSJT061qvFGpkjrMlpDcc1mkj03HXz3GyrbhAqIwTVEIQPZ/l6Hz7eg1kTo8VM5qwhVJICoeoQfeTvfSH6OhLtWy/WJ0BpCDOECFkgSN6nOp6NQ84upBOG0w2tz5/XqabDAl0zJJNJ28ypz+BjNnFyHtEg7wqTAbXIFBHNDOb1CCBi/0aaJ4l0kpqpQtWwdISkOYzbolLDoMnTAgb1Ol86xdqYq4VQ+IGkLwYdag1Lco3m3jA+5pDXZpNqns57g2I9kWqP+lrw85O5VnIcHdninoAgL2aol+VFoMIHpfFZ/J0ciQSe80A0XUm9ZDMpCZLgXBAKT+pkyIDZo0wxzncRYFmPngdPCQlem+zoi7KvcYMVoAhgpcGPJQ8EvMUWouoSyRSmvp4+b7wTxlZUsE6eOTDlXRolz5ivGTkj6ZBV9If1Xwz2XJTHuCcdXnZfPCJ9Mwij5FLcM9u2Ddu+u5e8rOy8c8ByOGA3YK8t9ty0f9yzBiEyM0NeVyzr4kITMPaonSnifm8mcs0w7lCk9PsJ4+DlKej54sdqJ8A4SBXAbjaYmf2+pUPZ8ZpPtbvsYTCFxiGK2WfDbHAmZjQ7uCIQxeYUhybz4jW2wg0u/TMnclKNfI2RkTggNph5Yxb3xwkrhdKN9JyiQbqRjfkTkAWNRw3k26cdsHnEnEaEu20btsulM2sjBx71kEIpyAaH8iplRjW5g3I4HBwhgecnk7pjgOQOVm9CZy6JF4Z2FgOJZ9WhfDoRSdFRhDOjvIhGljxv8el5i3RDE8YqmOODnTrSKiEt2HoZS2jkmucMH0XBwIR20GjGuamiUF5XN+zNBWrAPS6qPXKI6F1TgmQ/cE1GymKqjPc7akAPuYxOnLqT2GpFz+gG2bKBesFwicpakdiUPWV3iozWU6aUlgBD9pFQZ05pvpJe4482aqTHHqGalobBjXywAQosiWIxgb40d4VBYytgCY6oM43DkWLqoZ8dZPa6QfZyvjCv4exLXBjPAGP42q/J/NmHbPtMNIr7UgMShJIcgJLX4qerp7ASJy/K7LojDUeH1fjF3/JzRPp+ccfGrgICoaNS0Sbjm7ycjWsaIqi1YN/dgT4ejyPv3dyRqVw7zap/BhGG7rlB+L10m2G+oGEmMP0VQJASUWjArCA0gshVxIv+XtVRWhPs2mDPVeZlK6Mtz5f676gokBRZxmbx9eTNw7ftgvO+oZQGg2I5HHFcVuTVGx+oCLZScKkVWzU3qlFPy/swHtCaEnRZkNYVSA4/lgny6AcKYY8GsMWf9AUYnnbshsg7o1kvW5gPx3iP1+ihOwHh7TVzIoVSCrEbW59MJ7mUnZbWekRrcI/N5SnH3O2TUP7c/k7ZTi4O7Dg4nb3tzkZprlN8PRqselmH1/FSaCEMe6vekaMFacQ9/IjcQDZhgke2bmz93l3nt3yKLSg6ouFeDxqDhqzupX/5GSjsgkRpTHUilEwMzUIGsaAh02M/rgfOE0lEGIxMf+7+7PbdazTDwEbz+fkZF9ZORh48mefDgsiXUoIej1SsWrBvF1j1vLIfxA6zVj8pHMLMGQsZquAeDIMBOhDBTvUGIf7s07J4Lp0QOkT7YT/y6rxfc+djSdFjDV0jvFaD0YNNSaCSOwchjO2SErJm5LzS2XMnTBWDLOMqDE6SEycgZvXyJgiw7RvcUWe5YFjM1rwbPMVSdFmxnu6mPert8Gjl+hoRFVdoqgXL1Mc3nLeKaKVn3oAgDAX3XmKkFsIaMfcGIGNURFRpvWRPJfWvOPu20nxPw53i4BgYYVEnlhlLGp142sznfWwI9N44BkETh+T9detrYCY/ujPmYiBJgSVJl0VckqM6porKqC9n6hS0CWEJpBIDUeo5UX52xqzURM3usiPaq5omZ3BXPydEpMvjphT7LHk4CsH9/Z2Xv7UGq0CpgtYSamrINZAjoFpBpvxt4npKMtjuSdDh+M83te+IsYUK7JC78WvWYFm4SIxEF8CfeuuRWodq+CDNgJqEMnBCNSZB44GoKijdqxsEiloaLmX3+q11waJejrIuKz+y4fW2ezF7NRQAmjMWtlILuFMEnaWWVBltMBJg2yZw0+WIFH3FooRhtagbHfWxKaJywiZc5a75K05zD4nAvZJc5BfDXpIY88dhaFRhso77NKu9zEHpTXYIUf3LDZ+5ek4JhrEfiq7z65sPNM4NcCOKqekDppKkMPjJYIUaqiGAwWvfa+moQEQlCnRnS3MwXoXn5oheixVs1Xu5+rRdkx+CGDecOe0Et8KeuSkl3N/fX0Vunj/yVnKVBtYAlDpIOpDhfUf/WmNo4CQjRirNYJXEmjY0ZMPYhn7ynBLxUjXpc+rQ9oK70x2WdcHxeERmq7t927ze2Bpq23vXI1+rXjObcvZyqpw62Szq1keUBIejm+MmkjKePX/ujc/hMFtrQ3M3iHxCFGko9MyEQYW1QRgC3x/pCa/BzRDmyzJlQpsZUBtZwJ5PHSpD6OTAtCweETWPzCtVsFRH44zG8pakvpaOcDlPCeGWDgNzBMwaIiZUW4MOkZw5fxhRf+QEZ47AldMdc+AhOzWOSfQj6THK5UzZvo6O7s40hOf98ziLRFj+xnWvTA3QeKZwVHzi6bRIR7cA9PO2GZij1v7+lHRwLcwgOXfnKmvqnX8SmfnBQu5zP50/AAj7a2cIN34+1O/Dnb2CneIhRocn1migDMGsFlGUtJNM6M9jWQWH1fPPrTU0NeTMI6AJqi2wBkpIFl67kbeQua/B86V1BAH2KyCyhSry3Wl4Oe36osPYGoC67dykPKQmL1IAJxmE98jfD6jDIuzv70bHg5IA2kaupWlybU7j2lcBcva+P9UPbo9Rog7Pf1G5WEwd2vEaTEab6uZAcu6evUsq+kMdhs+Gwg0Sc6WRv4n8oz/cvihI6CjsYBHF7w2py6IB6GowZg49tjaxJzWgLQziknopkCJgR3eGthKlRu4FgzWIwi8o2x9akEPQPeOeW2aU1UfkJNVZlk08etlbsGwDNvIgu4lBFWiKzlINQ+ceK7s0IcQUpK+HmW0cOTWPEoeCky9NJ2UslCgMwk+gE700rNRAJAdXgn/rSsSDs+hlDiPq0AleX5eFuVJ/5jPjsV+XOOkLZHnG9RwPBzdKyfvnzobPwilrLFVI6gSRaMSgqTcPaMzN1hAt4dX33D0nIS8rUsreRKPUXt7cm9vzHoQOm9Dx9emhRhJZtK15tywYhUkAiCYsq0DTMkqJhCEY3SuV6dA2z+1l5uNy9vjQCx1swNh0IrsDw1AtRDg8fYErA94PFH7vCmV+zcI8fFxf4F0d92IUGB3Kxpk1PqcfSeaT2OXQ+xxGrlq5zsKxoxAHN4bbBk9rhQxuIvkpKga6tCwPwJ4eItavdo3GS+w7Sp4wjEbUKYsBRiIphbK7gz9t96tjtw86Y8AkH8u90OFkXpcxqrziAPD6kxDB5H2ERGyeUinRYs/7c/vlaPPoGxBoVjSod2xqDXsTV0XhtSfJzFuTAxJEdnl0T28Y74SxFVUsz+4Quprh6Ah/5s/OvZfLw9mNjDHPB4wIcTK8fji1vpEM4wH1z+UiTli6UlFlMbS392MdpAiwZCyHBWXbsW+7EyF6gbv0aNL6l6KJH/OVMEfkWTVnRokjwq6bw8aNryZwk6n1NJuTHigWz4NcaFz26lFtV6wShZp/rnlyBcCAg5oZRSYGBOzGhPngCQ524gLQWukbfCvRb0kGmzkv1Nh1ghh4dxaf2a3QoODHCrV41oxWK9yLLq1iq5WpAfQ8orv8hioNAs/b+TVWbGWjYg6jozzlZGWgBBFd+T2F8s/YNT1fSlb4ulxrDs8lEPu++5NUN1oSzp2Nrj8Ryasw0i07zDwHv6bRQWhlSsUfmHkP5UeRn+eJUy9NCA8/ugNFjs07LmGsafYU9utIyHx/EFlczShIZLXnrNxIRW2qH96uYU3niIhUI0TdohgyHD9GNG4JpvaT3LcuBgOX/zNgK8VTNWTg5hSOjsxuNEILtwvhmOtKr8vokhRsVjNnUSeQ5wFGQZMTmFPGujojfefchXFV0e4guEEEpKGXvy1TyQwQqZ++S/p/O2mI/+4GNwKFMCTBJOb3Zn3Z+7oKx8YMEs9BlU49EVOSd1Ri7Sn2LsjjDrufg6kbLZjByCZvZZyBYagEYdB4D3QOXDRsRs9GdBzvbXxGV5aJ53AYWASSFk4GImBS79wWxjWQLXVhDz9/Ddrc4Xdj62dSr5UFI+4QOoE7B8E7yOQDNPXzVatBDwSJBVAklAY0Gek5MOD4lWFskyI9u/MuP0G9fkMezcxwOh2uvXXClzM0eEUWIpsx3h+R7EyMmSGceF/kWAF0GCgvK5bLjuWy0euaDfvYVI7ECJBTF28IRmRc37h+QKBomd012nA2jO5nQ3OyQXiZvTGJH9S7sAUV9CrCRHK5tkcOOckg1qNGIxSSGuss4TnzxM0YZU6tlc7mZTWr562Z88u9hZxvWDC3uG07+2T6hsrZN3cQr+J5mAgKHM6O1m4dQvbJ7WUlTVxIITVvkB6RSN13r9mOtZESDnm9etaPvzoLvRTszXCgss5xdXWdqGE+n89XTN0wsvvmGs8BM4V4iHWnwnC5XDwfak6qanvBvm8wwsaLuoJWMIhnTd3ao7wRkWsQa1K6EqeYocrBTE4o1UutDPDDmM6UqKcaGqzD58HWjpRNjyySl4oFFAhNuOzs4cpo33NkwaPwulrtv574mUKSDfdPwJVEFDw10pBVO8M5s3lFNJI37oUkDjUm8gk0KdKSqTLmxq/s3lJQIcj5AGAIx3jur3Tn5dGBMxAr7vcwchUetWuehSvG+dH3ySQaAmCUJ2KcQW84EQEIdMkAIvoGrFDTOiUIpfIkOTkvnNRu1Ogge+ttmVCXRtGMiajpxHlADDIJMxjRw7B4EdQk9imOAGYuZWqBMvCzInfeR52cRoxUWrRBlY5++H+jkYyEnjtcG+G4rBT3GKVTO8vkFoGnURYnp5bmxNdQ5hM+Sw1LPhGfIWE2G7zCwrCsOt4EQFtCa4KqAuW+9Vv+fHP7ThhbA7BxAyJqq5hvnA9IgLmYSoYYDWR4ZKG/GX5kJyREPoeQ5ryBIFGvuPeIEELP8fGiVMFpOWC988UfZIoeOs93ZBOLEGREkjltMOz76AoiSZBsRTP3vjFQCxd0iBKDgMm42B2CNEK1MUfS4UgRpbElYBTRR8hUqh+MlQhAypn0+sE2bo0PaIoADH4wyXTg55y90J63Hw5OrY1t2qzPt6RB7DBz1qJkRUHDZs03Tdt7jtY8QUv2tEPMlXWzpUUe1j+31OL5bzGP0leX6QzoKSINM+ou2zXUuuiIZsPoxfvjedVSAAnB/x072+mNBhS4MrR9VRhF4TGkIt/E4h3db8p4nzIXDiesVeaIwd8HIcNWKoylCZ1RTWfFALKmPQ8sSV2QgQ5e5Gk98HCSkpeY6FCECuY/AYDaGmHziM5C/Yt+VDgGmQecet7WNHpBK7IqDLs3SbCGWsGaZb+vZoJ9ciZas/67nvNxRbJg2WpOSJIBE1BnwecXzhbe9q0rLFnzFowpOlNpdn31ZlAoWeXjXGmV+utNkMVJZcCofpiN7bje8VogD3Ng8GmDKx6lIrFEh+eMEn5OCkt+yrkONIiQ8NyxQC4YiXJvBMoX9qU739zfiJ7ilMtpcOZ8mMdIcw3NY7m61+ja8vjMfvxarPk54PG97Qa+waFvQUNoMARxHGD53OK197F3GgyogtScSKbqyEptFdt2weVyhiGUzRIDaEFK5nDKdIAHcohmHtBI6oYYbeLaGKUtLZwnfO54Z4xtBTrRqRsLskUxRyKqY4FM0GAcPFG+EmiEH0I6/jZoirkxB2kgHnzUCBqQWq8DpR1DyopVUs9phZ2NQzYuLoTpO7Ows+IcQtO0dShHsjqBiIvLH7JDR8kcNpJmQAsIMGrXfEEkBGHM+ssGA8zzGIJoBRXRQ4W26uUVLerthtxZGPqYX4GzJxUuTwbzAz+gQSVs3A+NOGR475q8SUOH0acoIOZWJKGIQ6bFancAjNGKxOYkocnnCj3aETofFcbG4v5Ml3W5WkOjFGUQPWbiUW9VN0GdsSZTSl2UpNaK8+WCaPcYMFTst0iHxHnTERQDgiAFA0LuMiD7gC/njjGejxrP5XFkPtRspBvnmOfWGvV6jZBbGjlJYW407t/suoxGdRhaOh8xz+G4Rc6sXc2vz1lKjFAi+rCxZsS0O8QppZ5Hjn2T15WpiEcqPZzQpEN32hB7gudFpDDaYG7MBJ3WGuruWsEi3lB9zU6+Sqp0IGxYozhvYKxZ9R+oJifJTc58POsZYZtTDzGuDM301d+vCVvPB07BRE+12Ij0e+Dh16zWoEjIOmRDpQcE7vR66dS1LOzVffLfLjNrfS0/NqL9uQA95Rf581gH85KyRmJe7iyUHlkEHwRNen5d2sjRRiQNDC5FRLVmDUtKaDS8gR7W1nC5XLCRpZ+pmaDx9zHm3bhm+oMX641cwl6YWkcLVOzq5qbswBvHO2FsAXiNFCaDOMEJEcXBDKXLNMAh0/5bQFRbBwvys24uvJqYVE2KvAxpsFjAnoPr5hkAkBMJIY2wDsbm6tT9K81TH0n1Cn7M2zK8vEVJ7ecCrUZUR5DMpi47Rijp+uCJhdgY3Ube2ZphSatHRDbgHS+jqUi1omKop+Qgn5gN1KCXAg3Ptc0/j/zs5NaFPGEzbwJwYIQYDGJVZY4nCskNaIqaFU0D4mZ4r25oU85XB1htXkYTxITQ5IUAkl0kYMkZ6+EATFKWc+4z5A4xPaeVfWcB9AYADj96NOK51oLL5YLXr1/z+SsSW+hFhNehP/7dzr41A1rta1QJwUcqpDVvnTdDkAEtx+aY70Naw93dXY/C4xmH01BKQb24FKoJnMjDe3EWayXETzZ5d7gou8hG99GLF0BvCeiGfoFCUJo3ESl7ZYlVg4jnnr2UawHadfeqgMLD4Erf5g05ewej2uyqtCzmcuxl6a/5+vBrLG3MxYDeCRAWz2Xv29alVleWPZkZ2rZ1h4ILvjuPHtmyhjozQiMkbm8wnJ0RPukEx3XPRnl+PQzkuRbvA8w9EH2HQfZtqY7+lFphE8FSYVjEHdhozOJ5VncANbmxdn6Cz2sYdW4IhD5DSgmdiGkgrOyO2+P+rX5mJz+rzDqv7poM5tyClCdpShvEv26g+flZWK45vbfP34Q5xFyLKjYy+ys7hD08PFypwR0PB9Rtg1G1Lfaw5+ONufLgyoSIT0Tm/qyls8KADudN1/KmIbNBeKohIv8WwCsA/+6pr+UdGt+K23zM4zYf1+M2H9fjNh/X4zYf1+OLmo/vMrNve9MP3gljCwAi8vfM7Dc+9XW8K+M2H9fjNh/X4zYf1+M2H9fjNh/X412Yj18GZb6N27iN27iN27iN/7/jZmxv4zZu4zZu4zbe8niXjO3/8tQX8I6N23xcj9t8XI/bfFyP23xcj9t8XI8nn493Jmd7G7dxG7dxG7fxzTrepcj2Nm7jNm7jNm7jm3LcjO1t3MZt3MZt3MZbHk9ubEXkd4rIz4jI10Tkh5/6ep5iiMjPisjfF5GfEJG/x9e+LCJ/S0T+Kf/7LU99nW9riMifEZFfFJGfnl574/2Ljz/B9fJTIvJ9T3flb2d8xnz8cRH5Oa6RnxCRH5h+9sc4Hz8jIr/jaa767Q0R+TUi8mMi8g9F5B+IyB/m6+/lGvmc+Xgv14iIHEXk74rIT3I+/lu+/t0i8uO8778kVFkRkQP//TX+/Nd+IRf6JmH2L+oL3tzmnwH4HgArgJ8E8Ouf8pqeaB5+FsC3Pnrtvwfww/z+hwH8d099nW/x/n8LgO8D8NO/3P0D+AEAfwMu1/L9AH78qa//C5qPPw7gj77hvb+e++YA4Lu5n9JT38N/4Pn4KoDv4/fPAfwT3vd7uUY+Zz7eyzXC5/yM3y8AfpzP/X8F8EN8/U8C+P38/g8A+JP8/ocA/KUv4jqfOrL9zwF8zcz+uZltAP4igB984mt6V8YPAvhRfv+jAP7LJ7yWtzrM7P8E8NGjlz/r/n8QwJ81H/8XgA9F5KtfzJV+MeMz5uOzxg8C+ItmdjGzfwHga/B99U0zzOznzez/5fcvAPwjAL8a7+ka+Zz5+KzxTb1G+Jxf8p8LvwzAbwXwl/n64/UR6+YvA/gvROTztRb/A4ynNra/GsC/nP79r/D5i+abdRiAvyki/4+I/D6+9u1m9vP8/hcAfPvTXNqTjc+6//d5zfwhwqJ/ZkorvFfzQcjvP4NHL+/9Gnk0H8B7ukZEJInITwD4RQB/Cx69f2xmhW+Z77nPB3/+DQBfedvX+NTG9jZ8/GYz+z4AvwvAHxSR3zL/0BzveG9rtN73++f4nwH8OgC/AcDPA/gfnvZyvvghIs8A/BUAf8TMPpl/9j6ukTfMx3u7RsysmtlvAPCd8Kj9P3niS/rUeGpj+3MAfs307+/ka+/VMLOf439/EcBfhS+WfxPQF//7i093hU8yPuv+38s1Y2b/hgdKA/CnMGDA92I+RGSBG5Y/b2b/O19+b9fIm+bjfV8jAGBmHwP4MQC/CZ4+iOZv8z33+eDPvwTg62/72p7a2P7fAL6XrLEVnqz+6098TV/oEJF7EXke3wP47QB+Gj4Pv4dv+z0A/trTXOGTjc+6/78O4L8m4/T7AXxjghK/acejnON/BV8jgM/HD5Fh+d0AvhfA3/2ir+9tDubT/jSAf2Rm/+P0o/dyjXzWfLyva0REvk1EPuT3JwC/DZ7H/jEAv5tve7w+Yt38bgD/B5GRtzveASbZD8DZdP8MwI889fU8wf1/D5wp+JMA/kHMATyH8HcA/FMAfxvAl5/6Wt/iHPwFOOy1w3Mrv/ez7h/OPPyfuF7+PoDf+NTX/wXNx5/j/f4U/LD46vT+H+F8/AyA3/XU1/8W5uM3wyHinwLwE/z6gfd1jXzOfLyXawTAfwrg/+N9/zSA/4avfw/cqfgagP8NwIGvH/nvr/Hn3/NFXOdNrvE2buM2buM2buMtj6eGkW/jNm7jNm7jNr7px83Y3sZt3MZt3MZtvOVxM7a3cRu3cRu3cRtvedyM7W3cxm3cxm3cxlseN2N7G7dxG7dxG7fxlsfN2N7GbdzGbdzGbbzlcTO2t3Ebt3Ebt3Ebb3n8e7ih/rRkeokKAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "L5mNQuc2GsVE",
+ "colab_type": "text"
+ },
+ "source": [
+ "We need to convert the annotation into semantic map format as an image."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "WnGZfribFHCx",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "import os.path as osp\n",
+ "import numpy as np\n",
+ "from PIL import Image\n",
+ "# convert dataset annotation to semantic segmentation map\n",
+ "data_root = 'iccv09Data'\n",
+ "img_dir = 'images'\n",
+ "ann_dir = 'labels'\n",
+ "# define class and plaette for better visualization\n",
+ "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n",
+ "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n",
+ " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n",
+ "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n",
+ " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n",
+ " seg_img = Image.fromarray(seg_map).convert('P')\n",
+ " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n",
+ " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n",
+ " '.png')))"
+ ],
+ "execution_count": 13,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "5MCSS9ABfSks",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 377
+ },
+ "outputId": "d093e054-8db3-40e5-a800-061de844597f"
+ },
+ "source": [
+ "# Let's take a look at the segmentation map we got\n",
+ "import matplotlib.patches as mpatches\n",
+ "img = Image.open('iccv09Data/labels/6000124.png')\n",
+ "plt.figure(figsize=(8, 6))\n",
+ "im = plt.imshow(np.array(img.convert('RGB')))\n",
+ "\n",
+ "# create a patch (proxy artist) for every color \n",
+ "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n",
+ " label=classes[i]) for i in range(8)]\n",
+ "# put those patched as legend-handles into the legend\n",
+ "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n",
+ " fontsize='large')\n",
+ "\n",
+ "plt.show()"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "WbeLYCp2k5hl",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "# split train/val set randomly\n",
+ "split_dir = 'splits'\n",
+ "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n",
+ "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n",
+ " osp.join(data_root, ann_dir), suffix='.png')]\n",
+ "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n",
+ " # select first 4/5 as train set\n",
+ " train_length = int(len(filename_list)*4/5)\n",
+ " f.writelines(line + '\\n' for line in filename_list[:train_length])\n",
+ "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n",
+ " # select last 1/5 as train set\n",
+ " f.writelines(line + '\\n' for line in filename_list[train_length:])"
+ ],
+ "execution_count": 15,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HchvmGYB_rrO",
+ "colab_type": "text"
+ },
+ "source": [
+ "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "LbsWOw62_o-X",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "from mmseg.datasets.builder import DATASETS\n",
+ "from mmseg.datasets.custom import CustomDataset\n",
+ "\n",
+ "@DATASETS.register_module()\n",
+ "class StandfordBackgroundDataset(CustomDataset):\n",
+ " CLASSES = classes\n",
+ " PALETTE = palette\n",
+ " def __init__(self, split, **kwargs):\n",
+ " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n",
+ " split=split, **kwargs)\n",
+ " assert osp.exists(self.img_dir) and self.split is not None\n",
+ "\n",
+ " "
+ ],
+ "execution_count": 16,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "yUVtmn3Iq3WA",
+ "colab_type": "text"
+ },
+ "source": [
+ "### Create a config file\n",
+ "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Wwnj9tRzqX_A",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "from mmcv import Config\n",
+ "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')"
+ ],
+ "execution_count": 17,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "1y2oV5w97jQo",
+ "colab_type": "text"
+ },
+ "source": [
+ "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "eyKnYC1Z7iCV",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "outputId": "a25241e2-431c-4944-b0b8-b9c792d5aadd"
+ },
+ "source": [
+ "from mmseg.apis import set_random_seed\n",
+ "\n",
+ "# Since we use ony one GPU, BN is used instead of SyncBN\n",
+ "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n",
+ "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n",
+ "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n",
+ "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n",
+ "# modify num classes of the model in decode/auxiliary head\n",
+ "cfg.model.decode_head.num_classes = 8\n",
+ "cfg.model.auxiliary_head.num_classes = 8\n",
+ "\n",
+ "# Modify dataset type and path\n",
+ "cfg.dataset_type = 'StandfordBackgroundDataset'\n",
+ "cfg.data_root = data_root\n",
+ "\n",
+ "cfg.data.samples_per_gpu = 8\n",
+ "cfg.data.workers_per_gpu=8\n",
+ "\n",
+ "cfg.img_norm_cfg = dict(\n",
+ " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n",
+ "cfg.crop_size = (256, 256)\n",
+ "cfg.train_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(type='LoadAnnotations'),\n",
+ " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n",
+ " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n",
+ " dict(type='RandomFlip', flip_ratio=0.5),\n",
+ " dict(type='PhotoMetricDistortion'),\n",
+ " dict(type='Normalize', **cfg.img_norm_cfg),\n",
+ " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n",
+ " dict(type='DefaultFormatBundle'),\n",
+ " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n",
+ "]\n",
+ "\n",
+ "cfg.test_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(type='Normalize', **cfg.img_norm_cfg),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img']),\n",
+ " ])\n",
+ "]\n",
+ "\n",
+ "\n",
+ "cfg.data.train.type = cfg.dataset_type\n",
+ "cfg.data.train.data_root = cfg.data_root\n",
+ "cfg.data.train.img_dir = img_dir\n",
+ "cfg.data.train.ann_dir = ann_dir\n",
+ "cfg.data.train.pipeline = cfg.train_pipeline\n",
+ "cfg.data.train.split = 'splits/train.txt'\n",
+ "\n",
+ "cfg.data.val.type = cfg.dataset_type\n",
+ "cfg.data.val.data_root = cfg.data_root\n",
+ "cfg.data.val.img_dir = img_dir\n",
+ "cfg.data.val.ann_dir = ann_dir\n",
+ "cfg.data.val.pipeline = cfg.test_pipeline\n",
+ "cfg.data.val.split = 'splits/val.txt'\n",
+ "\n",
+ "cfg.data.test.type = cfg.dataset_type\n",
+ "cfg.data.test.data_root = cfg.data_root\n",
+ "cfg.data.test.img_dir = img_dir\n",
+ "cfg.data.test.ann_dir = ann_dir\n",
+ "cfg.data.test.pipeline = cfg.test_pipeline\n",
+ "cfg.data.test.split = 'splits/val.txt'\n",
+ "\n",
+ "# We can still use the pre-trained Mask RCNN model though we do not need to\n",
+ "# use the mask branch\n",
+ "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n",
+ "\n",
+ "# Set up working dir to save files and logs.\n",
+ "cfg.work_dir = './work_dirs/tutorial'\n",
+ "\n",
+ "cfg.total_iters = 200\n",
+ "cfg.log_config.interval = 10\n",
+ "cfg.evaluation.interval = 200\n",
+ "cfg.checkpoint_config.interval = 200\n",
+ "\n",
+ "# Set seed to facitate reproducing the result\n",
+ "cfg.seed = 0\n",
+ "set_random_seed(0, deterministic=False)\n",
+ "cfg.gpu_ids = range(1)\n",
+ "\n",
+ "# Let's have a look at the final config used for training\n",
+ "print(f'Config:\\n{cfg.pretty_text}')"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Config:\n",
+ "norm_cfg = dict(type='BN', requires_grad=True)\n",
+ "model = dict(\n",
+ " type='EncoderDecoder',\n",
+ " pretrained='open-mmlab://resnet50_v1c',\n",
+ " backbone=dict(\n",
+ " type='ResNetV1c',\n",
+ " depth=50,\n",
+ " num_stages=4,\n",
+ " out_indices=(0, 1, 2, 3),\n",
+ " dilations=(1, 1, 2, 4),\n",
+ " strides=(1, 2, 1, 1),\n",
+ " norm_cfg=dict(type='BN', requires_grad=True),\n",
+ " norm_eval=False,\n",
+ " style='pytorch',\n",
+ " contract_dilation=True),\n",
+ " decode_head=dict(\n",
+ " type='PSPHead',\n",
+ " in_channels=2048,\n",
+ " in_index=3,\n",
+ " channels=512,\n",
+ " pool_scales=(1, 2, 3, 6),\n",
+ " dropout_ratio=0.1,\n",
+ " num_classes=8,\n",
+ " norm_cfg=dict(type='BN', requires_grad=True),\n",
+ " align_corners=False,\n",
+ " loss_decode=dict(\n",
+ " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n",
+ " auxiliary_head=dict(\n",
+ " type='FCNHead',\n",
+ " in_channels=1024,\n",
+ " in_index=2,\n",
+ " channels=256,\n",
+ " num_convs=1,\n",
+ " concat_input=False,\n",
+ " dropout_ratio=0.1,\n",
+ " num_classes=8,\n",
+ " norm_cfg=dict(type='BN', requires_grad=True),\n",
+ " align_corners=False,\n",
+ " loss_decode=dict(\n",
+ " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))\n",
+ "train_cfg = dict()\n",
+ "test_cfg = dict(mode='whole')\n",
+ "dataset_type = 'StandfordBackgroundDataset'\n",
+ "data_root = 'iccv09Data'\n",
+ "img_norm_cfg = dict(\n",
+ " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n",
+ "crop_size = (256, 256)\n",
+ "train_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(type='LoadAnnotations'),\n",
+ " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n",
+ " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n",
+ " dict(type='RandomFlip', flip_ratio=0.5),\n",
+ " dict(type='PhotoMetricDistortion'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n",
+ " dict(type='DefaultFormatBundle'),\n",
+ " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n",
+ "]\n",
+ "test_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img'])\n",
+ " ])\n",
+ "]\n",
+ "data = dict(\n",
+ " samples_per_gpu=8,\n",
+ " workers_per_gpu=8,\n",
+ " train=dict(\n",
+ " type='StandfordBackgroundDataset',\n",
+ " data_root='iccv09Data',\n",
+ " img_dir='images',\n",
+ " ann_dir='labels',\n",
+ " pipeline=[\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(type='LoadAnnotations'),\n",
+ " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n",
+ " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n",
+ " dict(type='RandomFlip', flip_ratio=0.5),\n",
+ " dict(type='PhotoMetricDistortion'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n",
+ " dict(type='DefaultFormatBundle'),\n",
+ " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n",
+ " ],\n",
+ " split='splits/train.txt'),\n",
+ " val=dict(\n",
+ " type='StandfordBackgroundDataset',\n",
+ " data_root='iccv09Data',\n",
+ " img_dir='images',\n",
+ " ann_dir='labels',\n",
+ " pipeline=[\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img'])\n",
+ " ])\n",
+ " ],\n",
+ " split='splits/val.txt'),\n",
+ " test=dict(\n",
+ " type='StandfordBackgroundDataset',\n",
+ " data_root='iccv09Data',\n",
+ " img_dir='images',\n",
+ " ann_dir='labels',\n",
+ " pipeline=[\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img'])\n",
+ " ])\n",
+ " ],\n",
+ " split='splits/val.txt'))\n",
+ "log_config = dict(\n",
+ " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n",
+ "dist_params = dict(backend='nccl')\n",
+ "log_level = 'INFO'\n",
+ "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n",
+ "resume_from = None\n",
+ "workflow = [('train', 1)]\n",
+ "cudnn_benchmark = True\n",
+ "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
+ "optimizer_config = dict()\n",
+ "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n",
+ "total_iters = 200\n",
+ "checkpoint_config = dict(by_epoch=False, interval=200)\n",
+ "evaluation = dict(interval=200, metric='mIoU')\n",
+ "work_dir = './work_dirs/tutorial'\n",
+ "seed = 0\n",
+ "gpu_ids = range(0, 1)\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "QWuH14LYF2gQ",
+ "colab_type": "text"
+ },
+ "source": [
+ "### Train and Evaluation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "jYKoSfdMF12B",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 953,
+ "referenced_widgets": [
+ "40a3c0b2c7a44085b69b9c741df20b3e",
+ "ec96fb4251ea4b8ea268a2bc62b9c75b",
+ "dae4b284c5a944639991d29f4e79fac5",
+ "c78567afd0a6418781118ac9f4ecdea9",
+ "32b7d27a143c41b5bb90f1d8e66a1c67",
+ "55d75951f51c4ab89e32045c3d6db8a4",
+ "9d29e2d02731416d9852e9c7c08d1665",
+ "1bb2b93526cd421aa5d5b86d678932ab"
+ ]
+ },
+ "outputId": "1c0b5a11-434b-4c96-a4aa-9d685fff0856"
+ },
+ "source": [
+ "from mmseg.datasets import build_dataset\n",
+ "from mmseg.models import build_segmentor\n",
+ "from mmseg.apis import train_segmentor\n",
+ "\n",
+ "\n",
+ "# Build the dataset\n",
+ "datasets = [build_dataset(cfg.data.train)]\n",
+ "\n",
+ "# Build the detector\n",
+ "model = build_segmentor(\n",
+ " cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)\n",
+ "# Add an attribute for visualization convenience\n",
+ "model.CLASSES = datasets[0].CLASSES\n",
+ "\n",
+ "# Create work_dir\n",
+ "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n",
+ "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n",
+ " meta=dict())"
+ ],
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:14:27,264 - mmseg - INFO - Loaded 572 images\n",
+ "Downloading: \"https://open-mmlab.s3.ap-northeast-2.amazonaws.com/pretrain/third_party/resnet50_v1c-2cccc1ad.pth\" to /root/.cache/torch/checkpoints/resnet50_v1c-2cccc1ad.pth\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "40a3c0b2c7a44085b69b9c741df20b3e",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, max=102567401.0), HTML(value='')))"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:14:39,770 - mmseg - WARNING - The model and loaded state dict do not match exactly\n",
+ "\n",
+ "unexpected key in source state_dict: fc.weight, fc.bias\n",
+ "\n",
+ "2020-07-09 19:14:39,836 - mmseg - INFO - Loaded 143 images\n",
+ "2020-07-09 19:14:39,837 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:14:39,990 - mmseg - WARNING - The model and loaded state dict do not match exactly\n",
+ "\n",
+ "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n",
+ "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n",
+ "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n",
+ "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n",
+ "2020-07-09 19:14:39,994 - mmseg - INFO - Start running, host: root@71c6cf9b06c5, work_dir: /content/mmsegmentation/work_dirs/tutorial\n",
+ "2020-07-09 19:14:39,995 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n",
+ "2020-07-09 19:14:54,192 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:04:21, time: 1.379, data_time: 0.002, memory: 3772, decode.loss_seg: 1.5616, decode.acc_seg: 46.9241, aux.loss_seg: 0.6853, aux.acc_seg: 38.7292, loss: 2.2469\n",
+ "2020-07-09 19:15:07,556 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:04:04, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.8215, decode.acc_seg: 68.8879, aux.loss_seg: 0.5371, aux.acc_seg: 67.9098, loss: 1.3586\n",
+ "2020-07-09 19:15:20,914 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:03:49, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5890, decode.acc_seg: 66.6747, aux.loss_seg: 0.3591, aux.acc_seg: 65.8590, loss: 0.9481\n",
+ "2020-07-09 19:15:34,235 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:03:35, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 71.6006, aux.loss_seg: 0.3192, aux.acc_seg: 66.5800, loss: 0.9079\n",
+ "2020-07-09 19:15:47,580 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:03:21, time: 1.335, data_time: 0.016, memory: 3772, decode.loss_seg: 0.7011, decode.acc_seg: 65.8105, aux.loss_seg: 0.3223, aux.acc_seg: 62.9866, loss: 1.0235\n",
+ "2020-07-09 19:16:00,900 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:03:07, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5531, decode.acc_seg: 66.3968, aux.loss_seg: 0.2624, aux.acc_seg: 63.4624, loss: 0.8156\n",
+ "2020-07-09 19:16:14,199 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:02:54, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 66.5814, aux.loss_seg: 0.2905, aux.acc_seg: 62.6161, loss: 0.8792\n",
+ "2020-07-09 19:16:28,148 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:02:41, time: 1.395, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4988, decode.acc_seg: 69.7736, aux.loss_seg: 0.2388, aux.acc_seg: 68.5068, loss: 0.7376\n",
+ "2020-07-09 19:16:41,440 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:02:27, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5177, decode.acc_seg: 72.9874, aux.loss_seg: 0.2512, aux.acc_seg: 71.1549, loss: 0.7690\n",
+ "2020-07-09 19:16:54,703 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:02:14, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5794, decode.acc_seg: 65.9114, aux.loss_seg: 0.2557, aux.acc_seg: 65.2695, loss: 0.8351\n",
+ "2020-07-09 19:17:07,972 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:02:00, time: 1.327, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5395, decode.acc_seg: 69.2955, aux.loss_seg: 0.2443, aux.acc_seg: 68.5840, loss: 0.7838\n",
+ "2020-07-09 19:17:21,227 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:01:47, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5568, decode.acc_seg: 70.1717, aux.loss_seg: 0.2490, aux.acc_seg: 69.4707, loss: 0.8058\n",
+ "2020-07-09 19:17:34,513 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:01:33, time: 1.328, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5222, decode.acc_seg: 72.1791, aux.loss_seg: 0.2446, aux.acc_seg: 71.0046, loss: 0.7668\n",
+ "2020-07-09 19:17:47,812 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:01:20, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5178, decode.acc_seg: 72.7657, aux.loss_seg: 0.2552, aux.acc_seg: 70.8837, loss: 0.7730\n",
+ "2020-07-09 19:18:01,667 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:01:07, time: 1.386, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4719, decode.acc_seg: 72.4819, aux.loss_seg: 0.2263, aux.acc_seg: 69.9169, loss: 0.6982\n",
+ "2020-07-09 19:18:14,904 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:53, time: 1.324, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4494, decode.acc_seg: 75.4808, aux.loss_seg: 0.2228, aux.acc_seg: 73.2249, loss: 0.6723\n",
+ "2020-07-09 19:18:28,151 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:40, time: 1.325, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4412, decode.acc_seg: 72.4503, aux.loss_seg: 0.2177, aux.acc_seg: 69.9681, loss: 0.6589\n",
+ "2020-07-09 19:18:41,413 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:26, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4127, decode.acc_seg: 74.4395, aux.loss_seg: 0.1955, aux.acc_seg: 72.5129, loss: 0.6082\n",
+ "2020-07-09 19:18:54,678 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:13, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4733, decode.acc_seg: 74.7937, aux.loss_seg: 0.2285, aux.acc_seg: 72.0337, loss: 0.7019\n",
+ "2020-07-09 19:19:07,808 - mmseg - INFO - Saving checkpoint at 200 iterations\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 10.9 task/s, elapsed: 13s, ETA: 0s"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:19:22,647 - mmseg - INFO - per class results:\n",
+ "Class IoU Acc\n",
+ "sky 88.67 94.28\n",
+ "tree 68.95 86.73\n",
+ "road 86.23 94.42\n",
+ "grass 70.01 91.35\n",
+ "water 62.08 68.32\n",
+ "bldg 81.11 88.89\n",
+ "mntn 0.00 0.00\n",
+ "fg obj 70.39 82.49\n",
+ "Summary:\n",
+ "Scope mIoU mAcc aAcc\n",
+ "global 65.93 75.81 87.48\n",
+ "\n",
+ "2020-07-09 19:19:22,660 - mmseg - INFO - Iter [200/200]\tlr: 1.841e-04, mIoU: 0.6593, mAcc: 0.7581, aAcc: 0.8748\n"
+ ],
+ "name": "stderr"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "DEkWOP-NMbc_",
+ "colab_type": "text"
+ },
+ "source": [
+ "Inference with trained model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ekG__UfaH_OU",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 645
+ },
+ "outputId": "ac1eb835-19ed-48e6-8f77-e6d325b915c4"
+ },
+ "source": [
+ "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n",
+ "\n",
+ "model.cfg = cfg\n",
+ "result = inference_segmentor(model, img)\n",
+ "plt.figure(figsize=(8, 6))\n",
+ "show_result_pyplot(model, img, result, palette)"
+ ],
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n",
+ " warnings.warn('show==False and out_file is not specified, only '\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/demo.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e82d7a0773cea14b36f0021fea603de0961b5d8
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/demo.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/image_demo.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/image_demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..183f23871b7ff4607066b4e29727313e575b14e4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/image_demo.py
@@ -0,0 +1,29 @@
+from argparse import ArgumentParser
+
+from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
+from mmseg.core.evaluation import get_palette
+
+
+def main():
+ parser = ArgumentParser()
+ parser.add_argument('img', help='Image file')
+ parser.add_argument('config', help='Config file')
+ parser.add_argument('checkpoint', help='Checkpoint file')
+ parser.add_argument(
+ '--device', default='cuda:0', help='Device used for inference')
+ parser.add_argument(
+ '--palette',
+ default='cityscapes',
+ help='Color palette used for segmentation map')
+ args = parser.parse_args()
+
+ # build the model from a config file and a checkpoint file
+ model = init_segmentor(args.config, args.checkpoint, device=args.device)
+ # test a single image
+ result = inference_segmentor(model, args.img)
+ # show the results
+ show_result_pyplot(model, args.img, result, get_palette(args.palette))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/inference_demo.ipynb b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/inference_demo.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..e47d964e3c41d1db5e348d22d8ec01641c8aa88b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/demo/inference_demo.ipynb
@@ -0,0 +1,150 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mkdir: cannot create directory ‘../checkpoints’: File exists\n",
+ "--2020-07-07 08:54:25-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n",
+ "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.58.55\n",
+ "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.58.55|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n",
+ "Saving to: ‘../checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth.1’\n",
+ "\n",
+ "pspnet_r50-d8_512x1 100%[===================>] 187.12M 16.5MB/s in 13s \n",
+ "\n",
+ "2020-07-07 08:54:38 (14.8 MB/s) - ‘../checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth.1’ saved [196205945/196205945]\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "!mkdir ../checkpoints\n",
+ "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P ../checkpoints"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "pycharm": {
+ "is_executing": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from mmseg.apis import init_segmentor, inference_segmentor, show_result_pyplot\n",
+ "from mmseg.core.evaluation import get_palette"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "pycharm": {
+ "is_executing": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "config_file = '../configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n",
+ "checkpoint_file = '../checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# build the model from a config file and a checkpoint file\n",
+ "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# test a single image\n",
+ "img = 'demo.png'\n",
+ "result = inference_segmentor(model, img)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/mnt/v-liubin/code/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n",
+ " warnings.warn('show==False and out_file is not specified, only '\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# show the results\n",
+ "show_result_pyplot(model, img, result, get_palette('cityscapes'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "open-mmlab",
+ "language": "python",
+ "name": "open-mmlab"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.7"
+ },
+ "pycharm": {
+ "stem_cell": {
+ "cell_type": "raw",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": []
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docker/Dockerfile b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..8e090f73a9e5b8aa09eee256e7876c8b4401f055
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docker/Dockerfile
@@ -0,0 +1,22 @@
+ARG PYTORCH="1.6.0"
+ARG CUDA="10.1"
+ARG CUDNN="7"
+
+FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
+
+ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
+ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
+ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"
+
+RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+# Install mmsegmentation
+RUN conda clean --all
+
+RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html
+RUN git clone https://github.com/open-mmlab/mmsegmenation.git /mmsegmentation
+WORKDIR /mmsegmentation
+RUN pip install -r requirements/build.txt
+RUN pip install --no-cache-dir -e .
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/Makefile b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d4bb2cbb9eddb1bb1b4f366623044af8e4830919
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS ?=
+SPHINXBUILD ?= sphinx-build
+SOURCEDIR = .
+BUILDDIR = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/api.rst b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/api.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9c14a67564029b83900001ab565954539bb7c081
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/api.rst
@@ -0,0 +1,61 @@
+API Reference
+==============
+
+mmseg.apis
+--------------
+.. automodule:: mmseg.apis
+ :members:
+
+mmseg.core
+--------------
+
+seg
+^^^^^^^^^^
+.. automodule:: mmseg.core.seg
+ :members:
+
+evaluation
+^^^^^^^^^^
+.. automodule:: mmseg.core.evaluation
+ :members:
+
+utils
+^^^^^^^^^^
+.. automodule:: mmseg.core.utils
+ :members:
+
+mmseg.datasets
+--------------
+
+datasets
+^^^^^^^^^^
+.. automodule:: mmseg.datasets
+ :members:
+
+pipelines
+^^^^^^^^^^
+.. automodule:: mmseg.datasets.pipelines
+ :members:
+
+mmseg.models
+--------------
+
+segmentors
+^^^^^^^^^^
+.. automodule:: mmseg.models.segmentors
+ :members:
+
+backbones
+^^^^^^^^^^
+.. automodule:: mmseg.models.backbones
+ :members:
+
+decode_heads
+^^^^^^^^^^^^
+.. automodule:: mmseg.models.decode_heads
+ :members:
+
+losses
+^^^^^^^^^^
+.. automodule:: mmseg.models.losses
+ :members:
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/changelog.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/changelog.md
new file mode 100644
index 0000000000000000000000000000000000000000..faf1df3d217d728ea84f8c4685722018ae523a72
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/changelog.md
@@ -0,0 +1,157 @@
+## Changelog
+
+### V0.11 (02/02/2021)
+
+**Highlights**
+
+- Support memory efficient test, add more UNet models.
+
+**Bug Fixes**
+
+- Fixed TTA resize scale ([#334](https://github.com/open-mmlab/mmsegmentation/pull/334))
+- Fixed CI for pip 20.3 ([#307](https://github.com/open-mmlab/mmsegmentation/pull/307))
+- Fixed ADE20k test ([#359](https://github.com/open-mmlab/mmsegmentation/pull/359))
+
+**New Features**
+
+- Support memory efficient test ([#330](https://github.com/open-mmlab/mmsegmentation/pull/330))
+- Add more UNet benchmarks ([#324](https://github.com/open-mmlab/mmsegmentation/pull/324))
+- Support Lovasz Loss ([#351](https://github.com/open-mmlab/mmsegmentation/pull/351))
+
+**Improvements**
+
+- Move train_cfg/test_cfg inside model ([#341](https://github.com/open-mmlab/mmsegmentation/pull/341))
+
+### V0.10 (01/01/2021)
+
+**Highlights**
+
+- Support MobileNetV3, DMNet, APCNet. Add models of ResNet18V1b, ResNet18V1c, ResNet50V1b.
+
+**Bug Fixes**
+
+- Fixed CPU TTA ([#276](https://github.com/open-mmlab/mmsegmentation/pull/276))
+- Fixed CI for pip 20.3 ([#307](https://github.com/open-mmlab/mmsegmentation/pull/307))
+
+**New Features**
+
+- Add ResNet18V1b, ResNet18V1c, ResNet50V1b, ResNet101V1b models ([#316](https://github.com/open-mmlab/mmsegmentation/pull/316))
+- Support MobileNetV3 ([#268](https://github.com/open-mmlab/mmsegmentation/pull/268))
+- Add 4 retinal vessel segmentation benchmark ([#315](https://github.com/open-mmlab/mmsegmentation/pull/315))
+- Support DMNet ([#313](https://github.com/open-mmlab/mmsegmentation/pull/313))
+- Support APCNet ([#299](https://github.com/open-mmlab/mmsegmentation/pull/299))
+
+**Improvements**
+
+- Refactor Documentation page ([#311](https://github.com/open-mmlab/mmsegmentation/pull/311))
+- Support resize data augmentation according to original image size ([#291](https://github.com/open-mmlab/mmsegmentation/pull/291))
+
+### V0.9 (30/11/2020)
+
+**Highlights**
+
+- Support 4 medical dataset, UNet and CGNet.
+
+**New Features**
+
+- Support RandomRotate transform ([#215](https://github.com/open-mmlab/mmsegmentation/pull/215), [#260](https://github.com/open-mmlab/mmsegmentation/pull/260))
+- Support RGB2Gray transform ([#227](https://github.com/open-mmlab/mmsegmentation/pull/227))
+- Support Rerange transform ([#228](https://github.com/open-mmlab/mmsegmentation/pull/228))
+- Support ignore_index for BCE loss ([#210](https://github.com/open-mmlab/mmsegmentation/pull/210))
+- Add modelzoo statistics ([#263](https://github.com/open-mmlab/mmsegmentation/pull/263))
+- Support Dice evaluation metric ([#225](https://github.com/open-mmlab/mmsegmentation/pull/225))
+- Support Adjust Gamma transform ([#232](https://github.com/open-mmlab/mmsegmentation/pull/232))
+- Support CLAHE transform ([#229](https://github.com/open-mmlab/mmsegmentation/pull/229))
+
+**Bug Fixes**
+
+- Fixed detail API link ([#267](https://github.com/open-mmlab/mmsegmentation/pull/267))
+
+### V0.8 (03/11/2020)
+
+**Highlights**
+
+- Support 4 medical dataset, UNet and CGNet.
+
+**New Features**
+
+- Support customize runner ([#118](https://github.com/open-mmlab/mmsegmentation/pull/118))
+- Support UNet ([#161](https://github.com/open-mmlab/mmsegmentation/pull/162))
+- Support CHASE_DB1, DRIVE, STARE, HRD ([#203](https://github.com/open-mmlab/mmsegmentation/pull/203))
+- Support CGNet ([#223](https://github.com/open-mmlab/mmsegmentation/pull/223))
+
+### V0.7 (07/10/2020)
+
+**Highlights**
+
+- Support Pascal Context dataset and customizing class dataset.
+
+**Bug Fixes**
+
+- Fixed CPU inference ([#153](https://github.com/open-mmlab/mmsegmentation/pull/153))
+
+**New Features**
+
+- Add DeepLab OS16 models ([#154](https://github.com/open-mmlab/mmsegmentation/pull/154))
+- Support Pascal Context dataset ([#133](https://github.com/open-mmlab/mmsegmentation/pull/133))
+- Support customizing dataset classes ([#71](https://github.com/open-mmlab/mmsegmentation/pull/71))
+- Support customizing dataset palette ([#157](https://github.com/open-mmlab/mmsegmentation/pull/157))
+
+**Improvements**
+
+- Support 4D tensor output in ONNX ([#150](https://github.com/open-mmlab/mmsegmentation/pull/150))
+- Remove redundancies in ONNX export ([#160](https://github.com/open-mmlab/mmsegmentation/pull/160))
+- Migrate to MMCV DepthwiseSeparableConv ([#158](https://github.com/open-mmlab/mmsegmentation/pull/158))
+- Migrate to MMCV collect_env ([#137](https://github.com/open-mmlab/mmsegmentation/pull/137))
+- Use img_prefix and seg_prefix for loading ([#153](https://github.com/open-mmlab/mmsegmentation/pull/153))
+
+### V0.6 (10/09/2020)
+
+**Highlights**
+
+- Support new methods i.e. MobileNetV2, EMANet, DNL, PointRend, Semantic FPN, Fast-SCNN, ResNeSt.
+
+**Bug Fixes**
+
+- Fixed sliding inference ONNX export ([#90](https://github.com/open-mmlab/mmsegmentation/pull/90))
+
+**New Features**
+
+- Support MobileNet v2 ([#86](https://github.com/open-mmlab/mmsegmentation/pull/86))
+- Support EMANet ([#34](https://github.com/open-mmlab/mmsegmentation/pull/34))
+- Support DNL ([#37](https://github.com/open-mmlab/mmsegmentation/pull/37))
+- Support PointRend ([#109](https://github.com/open-mmlab/mmsegmentation/pull/109))
+- Support Semantic FPN ([#94](https://github.com/open-mmlab/mmsegmentation/pull/94))
+- Support Fast-SCNN ([#58](https://github.com/open-mmlab/mmsegmentation/pull/58))
+- Support ResNeSt backbone ([#47](https://github.com/open-mmlab/mmsegmentation/pull/47))
+- Support ONNX export (experimental) ([#12](https://github.com/open-mmlab/mmsegmentation/pull/12))
+
+**Improvements**
+
+- Support Upsample in ONNX ([#100](https://github.com/open-mmlab/mmsegmentation/pull/100))
+- Support Windows install (experimental) ([#75](https://github.com/open-mmlab/mmsegmentation/pull/75))
+- Add more OCRNet results ([#20](https://github.com/open-mmlab/mmsegmentation/pull/20))
+- Add PyTorch 1.6 CI ([#64](https://github.com/open-mmlab/mmsegmentation/pull/64))
+- Get version and githash automatically ([#55](https://github.com/open-mmlab/mmsegmentation/pull/55))
+
+### v0.5.1 (11/08/2020)
+
+**Highlights**
+
+- Support FP16 and more generalized OHEM
+
+**Bug Fixes**
+
+- Fixed Pascal VOC conversion script (#19)
+- Fixed OHEM weight assign bug (#54)
+- Fixed palette type when palette is not given (#27)
+
+**New Features**
+
+- Support FP16 (#21)
+- Generalized OHEM (#54)
+
+**Improvements**
+
+- Add load-from flag (#33)
+- Fixed training tricks doc about different learning rates of model (#26)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/conf.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..f472acb30abdbcf5191926a8d89f478c1210744c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/conf.py
@@ -0,0 +1,88 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import subprocess
+import sys
+
+sys.path.insert(0, os.path.abspath('..'))
+
+# -- Project information -----------------------------------------------------
+
+project = 'MMSegmentation'
+copyright = '2020-2020, OpenMMLab'
+author = 'MMSegmentation Authors'
+version_file = '../mmseg/version.py'
+
+
+def get_version():
+ with open(version_file, 'r') as f:
+ exec(compile(f.read(), version_file, 'exec'))
+ return locals()['__version__']
+
+
+# The full version, including alpha/beta/rc tags
+release = get_version()
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.viewcode',
+ 'recommonmark',
+ 'sphinx_markdown_tables',
+]
+
+autodoc_mock_imports = ['matplotlib', 'pycocotools', 'mmseg.version']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+source_suffix = {
+ '.rst': 'restructuredtext',
+ '.md': 'markdown',
+}
+
+# The master toctree document.
+master_doc = 'index'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+
+def builder_inited_handler(app):
+ subprocess.run(['./stat.py'])
+
+
+def setup(app):
+ app.connect('builder-inited', builder_inited_handler)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/dataset_prepare.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/dataset_prepare.md
new file mode 100644
index 0000000000000000000000000000000000000000..5407339f13909c3bf32556dc273076d8bb351ba6
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/dataset_prepare.md
@@ -0,0 +1,165 @@
+## Prepare datasets
+
+It is recommended to symlink the dataset root to `$MMSEGMENTATION/data`.
+If your folder structure is different, you may need to change the corresponding paths in config files.
+
+```none
+mmsegmentation
+├── mmseg
+├── tools
+├── configs
+├── data
+│ ├── cityscapes
+│ │ ├── leftImg8bit
+│ │ │ ├── train
+│ │ │ ├── val
+│ │ ├── gtFine
+│ │ │ ├── train
+│ │ │ ├── val
+│ ├── VOCdevkit
+│ │ ├── VOC2012
+│ │ │ ├── JPEGImages
+│ │ │ ├── SegmentationClass
+│ │ │ ├── ImageSets
+│ │ │ │ ├── Segmentation
+│ │ ├── VOC2010
+│ │ │ ├── JPEGImages
+│ │ │ ├── SegmentationClassContext
+│ │ │ ├── ImageSets
+│ │ │ │ ├── SegmentationContext
+│ │ │ │ │ ├── train.txt
+│ │ │ │ │ ├── val.txt
+│ │ │ ├── trainval_merged.json
+│ │ ├── VOCaug
+│ │ │ ├── dataset
+│ │ │ │ ├── cls
+│ ├── ade
+│ │ ├── ADEChallengeData2016
+│ │ │ ├── annotations
+│ │ │ │ ├── training
+│ │ │ │ ├── validation
+│ │ │ ├── images
+│ │ │ │ ├── training
+│ │ │ │ ├── validation
+│ ├── CHASE_DB1
+│ │ ├── images
+│ │ │ ├── training
+│ │ │ ├── validation
+│ │ ├── annotations
+│ │ │ ├── training
+│ │ │ ├── validation
+│ ├── DRIVE
+│ │ ├── images
+│ │ │ ├── training
+│ │ │ ├── validation
+│ │ ├── annotations
+│ │ │ ├── training
+│ │ │ ├── validation
+│ ├── HRF
+│ │ ├── images
+│ │ │ ├── training
+│ │ │ ├── validation
+│ │ ├── annotations
+│ │ │ ├── training
+│ │ │ ├── validation
+│ ├── STARE
+│ │ ├── images
+│ │ │ ├── training
+│ │ │ ├── validation
+│ │ ├── annotations
+│ │ │ ├── training
+│ │ │ ├── validation
+
+```
+
+### Cityscapes
+
+The data could be found [here](https://www.cityscapes-dataset.com/downloads/) after registration.
+
+By convention, `**labelTrainIds.png` are used for cityscapes training.
+We provided a [scripts](https://github.com/open-mmlab/mmsegmentation/blob/master/tools/convert_datasets/cityscapes.py) based on [cityscapesscripts](https://github.com/mcordts/cityscapesScripts)
+to generate `**labelTrainIds.png`.
+
+```shell
+# --nproc means 8 process for conversion, which could be omitted as well.
+python tools/convert_datasets/cityscapes.py data/cityscapes --nproc 8
+```
+
+### Pascal VOC
+
+Pascal VOC 2012 could be downloaded from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar).
+Beside, most recent works on Pascal VOC dataset usually exploit extra augmentation data, which could be found [here](http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz).
+
+If you would like to use augmented VOC dataset, please run following command to convert augmentation annotations into proper format.
+
+```shell
+# --nproc means 8 process for conversion, which could be omitted as well.
+python tools/convert_datasets/voc_aug.py data/VOCdevkit data/VOCdevkit/VOCaug --nproc 8
+```
+
+Please refer to [concat dataset](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/tutorials/new_dataset.md#concatenate-dataset) for details about how to concatenate them and train them together.
+
+### ADE20K
+
+The training and validation set of ADE20K could be download from this [link](http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip).
+We may also download test set from [here](http://data.csail.mit.edu/places/ADEchallenge/release_test.zip).
+
+### Pascal Context
+
+The training and validation set of Pascal Context could be download from [here](http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar). You may also download test set from [here](http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2010test.tar) after registration.
+
+To split the training and validation set from original dataset, you may download trainval_merged.json from [here](https://codalabuser.blob.core.windows.net/public/trainval_merged.json).
+
+If you would like to use Pascal Context dataset, please install [Detail](https://github.com/zhanghang1989/detail-api) and then run the following command to convert annotations into proper format.
+
+```shell
+python tools/convert_datasets/pascal_context.py data/VOCdevkit data/VOCdevkit/VOC2010/trainval_merged.json
+```
+
+### CHASE DB1
+
+The training and validation set of CHASE DB1 could be download from [here](https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip).
+
+To convert CHASE DB1 dataset to MMSegmentation format, you should run the following command:
+
+```shell
+python tools/convert_datasets/chase_db1.py /path/to/CHASEDB1.zip
+```
+
+The script will make directory structure automatically.
+
+### DRIVE
+
+The training and validation set of DRIVE could be download from [here](https://drive.grand-challenge.org/). Before that, you should register an account. Currently '1st_manual' is not provided officially.
+
+To convert DRIVE dataset to MMSegmentation format, you should run the following command:
+
+```shell
+python tools/convert_datasets/drive.py /path/to/training.zip /path/to/test.zip
+```
+
+The script will make directory structure automatically.
+
+### HRF
+
+First, download [healthy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy.zip), [glaucoma.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma.zip), [diabetic_retinopathy.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy.zip), [healthy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/healthy_manualsegm.zip), [glaucoma_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/glaucoma_manualsegm.zip) and [diabetic_retinopathy_manualsegm.zip](https://www5.cs.fau.de/fileadmin/research/datasets/fundus-images/diabetic_retinopathy_manualsegm.zip).
+
+To convert HRF dataset to MMSegmentation format, you should run the following command:
+
+```shell
+python tools/convert_datasets/hrf.py /path/to/healthy.zip /path/to/healthy_manualsegm.zip /path/to/glaucoma.zip /path/to/glaucoma_manualsegm.zip /path/to/diabetic_retinopathy.zip /path/to/diabetic_retinopathy_manualsegm.zip
+```
+
+The script will make directory structure automatically.
+
+### STARE
+
+First, download [stare-images.tar](http://cecas.clemson.edu/~ahoover/stare/probing/stare-images.tar), [labels-ah.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-ah.tar) and [labels-vk.tar](http://cecas.clemson.edu/~ahoover/stare/probing/labels-vk.tar).
+
+To convert STARE dataset to MMSegmentation format, you should run the following command:
+
+```shell
+python tools/convert_datasets/stare.py /path/to/stare-images.tar /path/to/labels-ah.tar /path/to/labels-vk.tar
+```
+
+The script will make directory structure automatically.
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/get_started.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/get_started.md
new file mode 100644
index 0000000000000000000000000000000000000000..3182c53451dae3024a4e99aace1c766856773d66
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/get_started.md
@@ -0,0 +1,193 @@
+## Prerequisites
+
+- Linux or macOS (Windows is in experimental support)
+- Python 3.6+
+- PyTorch 1.3+
+- CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible)
+- GCC 5+
+- [MMCV](https://mmcv.readthedocs.io/en/latest/#installation)
+
+Note: You need to run `pip uninstall mmcv` first if you have mmcv installed.
+If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`.
+
+## Installation
+
+a. Create a conda virtual environment and activate it.
+
+```shell
+conda create -n open-mmlab python=3.7 -y
+conda activate open-mmlab
+```
+
+b. Install PyTorch and torchvision following the [official instructions](https://pytorch.org/).
+Here we use PyTorch 1.6.0 and CUDA 10.1.
+You may also switch to other version by specifying the version number.
+
+```shell
+conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch
+```
+
+c. Install [MMCV](https://mmcv.readthedocs.io/en/latest/) following the [official instructions](https://mmcv.readthedocs.io/en/latest/#installation).
+Either `mmcv` or `mmcv-full` is compatible with MMSegmentation, but for methods like CCNet and PSANet, CUDA ops in `mmcv-full` is required.
+
+**Install mmcv for Linux:**
+
+The pre-build mmcv-full (with PyTorch 1.5 and CUDA 10.1) can be installed by running: (other available versions could be found [here](https://mmcv.readthedocs.io/en/latest/#install-with-pip))
+
+```shell
+pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html
+```
+
+**Install mmcv for Windows (Experimental):**
+
+For Windows, the installation of MMCV requires native C++ compilers, such as cl.exe. Please add the compiler to %PATH%.
+
+A typical path for cl.exe looks like the following if you have Windows SDK and Visual Studio installed on your computer:
+
+```shell
+C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.26.28801\bin\Hostx86\x64
+```
+
+Or you should download the cl compiler from web and then set up the path.
+
+Then, clone mmcv from github and install mmcv via pip:
+
+```shell
+git clone https://github.com/open-mmlab/mmcv.git
+cd mmcv
+pip install -e .
+```
+
+Or simply:
+
+```shell
+pip install mmcv
+```
+
+Currently, mmcv-full is not supported on Windows.
+
+d. Install MMSegmentation.
+
+```shell
+pip install mmsegmentation # install the latest release
+```
+
+or
+
+```shell
+pip install git+https://github.com/open-mmlab/mmsegmentation.git # install the master branch
+```
+
+Instead, if you would like to install MMSegmentation in `dev` mode, run following
+
+```shell
+git clone https://github.com/open-mmlab/mmsegmentation.git
+cd mmsegmentation
+pip install -e . # or "python setup.py develop"
+```
+
+Note:
+
+1. When training or testing models on Windows, please ensure that all the '\\' in paths are replaced with '/'. Add .replace('\\', '/') to your python code wherever path strings occur.
+2. The `version+git_hash` will also be saved in trained models meta, e.g. 0.5.0+c415a2e.
+3. When MMsegmentation is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it.
+4. If you would like to use `opencv-python-headless` instead of `opencv-python`,
+ you can install it before installing MMCV.
+5. Some dependencies are optional. Simply running `pip install -e .` will only install the minimum runtime requirements.
+ To use optional dependencies like `cityscapessripts` either install them manually with `pip install -r requirements/optional.txt` or specify desired extras when calling `pip` (e.g. `pip install -e .[optional]`). Valid keys for the extras field are: `all`, `tests`, `build`, and `optional`.
+
+### A from-scratch setup script
+
+#### Linux
+
+Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is $DATA_ROOT).
+
+```shell
+conda create -n open-mmlab python=3.7 -y
+conda activate open-mmlab
+
+conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch
+pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html
+git clone https://github.com/open-mmlab/mmsegmentation.git
+cd mmsegmentation
+pip install -e . # or "python setup.py develop"
+
+mkdir data
+ln -s $DATA_ROOT data
+```
+
+#### Windows(Experimental)
+
+Here is a full script for setting up mmsegmentation with conda and link the dataset path (supposing that your dataset path is
+%DATA_ROOT%. Notice: It must be an absolute path).
+
+```shell
+conda create -n open-mmlab python=3.7 -y
+conda activate open-mmlab
+
+conda install pytorch=1.6.0 torchvision cudatoolkit=10.1 -c pytorch
+set PATH=full\path\to\your\cpp\compiler;%PATH%
+pip install mmcv
+
+git clone https://github.com/open-mmlab/mmsegmentation.git
+cd mmsegmentation
+pip install -e . # or "python setup.py develop"
+
+mklink /D data %DATA_ROOT%
+```
+
+#### Developing with multiple MMSegmentation versions
+
+The train and test scripts already modify the `PYTHONPATH` to ensure the script use the MMSegmentation in the current directory.
+
+To use the default MMSegmentation installed in the environment rather than that you are working with, you can remove the following line in those scripts
+
+```shell
+PYTHONPATH="$(dirname $0)/..":$PYTHONPATH
+```
+
+## Verification
+
+To verify whether MMSegmentation and the required environment are installed correctly, we can run sample python codes to initialize a detector and inference a demo image:
+
+```python
+from mmseg.apis import inference_segmentor, init_segmentor
+import mmcv
+
+config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'
+checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'
+
+# build the model from a config file and a checkpoint file
+model = init_segmentor(config_file, checkpoint_file, device='cuda:0')
+
+# test a single image and show the results
+img = 'test.jpg' # or img = mmcv.imread(img), which will only load it once
+result = inference_segmentor(model, img)
+# visualize the results in a new window
+model.show_result(img, result, show=True)
+# or save the visualization results to image files
+model.show_result(img, result, out_file='result.jpg')
+
+# test a video and show the results
+video = mmcv.VideoReader('video.mp4')
+for frame in video:
+ result = inference_segmentor(model, frame)
+ model.show_result(frame, result, wait_time=1)
+```
+
+The above code is supposed to run successfully upon you finish the installation.
+
+We also provide a demo script to test a single image.
+
+```shell
+python demo/image_demo.py ${IMAGE_FILE} ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${DEVICE_NAME}] [--palette-thr ${PALETTE}]
+```
+
+Examples:
+
+```shell
+python demo/image_demo.py demo/demo.jpg configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \
+ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --palette cityscapes
+```
+
+A notebook demo can be found in [demo/inference_demo.ipynb](../demo/inference_demo.ipynb).
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/index.rst b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..94db9026574e36dbaa668023e9783ccb669b5b3a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/index.rst
@@ -0,0 +1,57 @@
+Welcome to MMSegmenation's documentation!
+=======================================
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Get Started
+
+ get_started.md
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Dataset Preparation
+
+ dataset_prepare.md
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Model Zoo
+
+ model_zoo.md
+ modelzoo_statistics.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Quick Run
+
+ train.md
+ inference.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Tutorials
+
+ tutorials/index.rst
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Useful Tools and Scripts
+
+ useful_tools.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Notes
+
+ changelog.md
+
+.. toctree::
+ :caption: API Reference
+
+ api.rst
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/inference.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/inference.md
new file mode 100644
index 0000000000000000000000000000000000000000..d7bc21b65acb9da4a38ade92be6ccf3c56574982
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/inference.md
@@ -0,0 +1,101 @@
+## Inference with pretrained models
+
+We provide testing scripts to evaluate a whole dataset (Cityscapes, PASCAL VOC, ADE20k, etc.),
+and also some high-level apis for easier integration to other projects.
+
+### Test a dataset
+
+- single GPU
+- single node multiple GPU
+- multiple node
+
+You can use the following commands to test a dataset.
+
+```shell
+# single-gpu testing
+python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show]
+
+# multi-gpu testing
+./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]
+```
+
+Optional arguments:
+
+- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file.
+- `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `mIoU` is available for all dataset. Cityscapes could be evaluated by `cityscapes` as well as standard `mIoU` metrics.
+- `--show`: If specified, segmentation results will be plotted on the images and shown in a new window. It is only applicable to single GPU testing and used for debugging and visualization. Please make sure that GUI is available in your environment, otherwise you may encounter the error like `cannot connect to X server`.
+- `--show-dir`: If specified, segmentation results will be plotted on the images and saved to the specified directory. It is only applicable to single GPU testing and used for debugging and visualization. You do NOT need a GUI available in your environment for using this option.
+- `--eval-options`: Optional parameters during evaluation. When `efficient_test=True`, it will save intermediate results to local files to save CPU memory. Make sure that you have enough local storage space (more than 20GB).
+
+Examples:
+
+Assume that you have already downloaded the checkpoints to the directory `checkpoints/`.
+
+1. Test PSPNet and visualize the results. Press any key for the next image.
+
+ ```shell
+ python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \
+ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \
+ --show
+ ```
+
+2. Test PSPNet and save the painted images for latter visualization.
+
+ ```shell
+ python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \
+ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \
+ --show-dir psp_r50_512x1024_40ki_cityscapes_results
+ ```
+
+3. Test PSPNet on PASCAL VOC (without saving the test results) and evaluate the mIoU.
+
+ ```shell
+ python tools/test.py configs/pspnet/pspnet_r50-d8_512x1024_20k_voc12aug.py \
+ checkpoints/pspnet_r50-d8_512x1024_20k_voc12aug_20200605_003338-c57ef100.pth \
+ --eval mAP
+ ```
+
+4. Test PSPNet with 4 GPUs, and evaluate the standard mIoU and cityscapes metric.
+
+ ```shell
+ ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \
+ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \
+ 4 --out results.pkl --eval mIoU cityscapes
+ ```
+
+ Note: There is some gap (~0.1%) between cityscapes mIoU and our mIoU. The reason is that cityscapes average each class with class size by default.
+ We use the simple version without average for all datasets.
+
+5. Test PSPNet on cityscapes test split with 4 GPUs, and generate the png files to be submit to the official evaluation server.
+
+ First, add following to config file `configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py`,
+
+ ```python
+ data = dict(
+ test=dict(
+ img_dir='leftImg8bit/test',
+ ann_dir='gtFine/test'))
+ ```
+
+ Then run test.
+
+ ```shell
+ ./tools/dist_test.sh configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py \
+ checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth \
+ 4 --format-only --eval-options "imgfile_prefix=./pspnet_test_results"
+ ```
+
+ You will get png files under `./pspnet_test_results` directory.
+ You may run `zip -r results.zip pspnet_test_results/` and submit the zip file to [evaluation server](https://www.cityscapes-dataset.com/submit/).
+
+6. CPU memory efficient test DeeplabV3+ on Cityscapes (without saving the test results) and evaluate the mIoU.
+
+ ```shell
+ python tools/test.py \
+ configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py \
+ deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth \
+ --eval-options efficient_test=True \
+ --eval mIoU
+ ```
+
+ Using ```pmap``` to view CPU memory footprint, it used 2.25GB CPU memory with ```efficient_test=True``` and 11.06GB CPU memory with ```efficient_test=False``` . This optional parameter can save a lot of memory.
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/make.bat b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/make.bat
new file mode 100644
index 0000000000000000000000000000000000000000..922152e96a04a242e6fc40f124261d74890617d8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=.
+set BUILDDIR=_build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/model_zoo.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/model_zoo.md
new file mode 100644
index 0000000000000000000000000000000000000000..2d4c1c2ac999c771e7048c36bd94d316457f0e50
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/model_zoo.md
@@ -0,0 +1,163 @@
+# Benchmark and Model Zoo
+
+## Common settings
+
+* We use distributed training with 4 GPUs by default.
+* All pytorch-style pretrained backbones on ImageNet are train by ourselves, with the same procedure in the [paper](https://arxiv.org/pdf/1812.01187.pdf).
+ Our ResNet style backbone are based on ResNetV1c variant, where the 7x7 conv in the input stem is replaced with three 3x3 convs.
+* For the consistency across different hardwares, we report the GPU memory as the maximum value of `torch.cuda.max_memory_allocated()` for all 4 GPUs with `torch.backends.cudnn.benchmark=False`.
+ Note that this value is usually less than what `nvidia-smi` shows.
+* We report the inference time as the total time of network forwarding and post-processing, excluding the data loading time.
+ Results are obtained with the script `tools/benchmark.py` which computes the average time on 200 images with `torch.backends.cudnn.benchmark=False`.
+* There are two inference modes in this framework.
+
+ * `slide` mode: The `test_cfg` will be like `dict(mode='slide', crop_size=(769, 769), stride=(513, 513))`.
+
+ In this mode, multiple patches will be cropped from input image, passed into network individually.
+ The crop size and stride between patches are specified by `crop_size` and `stride`.
+ The overlapping area will be merged by average
+
+ * `whole` mode: The `test_cfg` will be like `dict(mode='whole')`.
+
+ In this mode, the whole imaged will be passed into network directly.
+
+ By default, we use `slide` inference for 769x769 trained model, `whole` inference for the rest.
+* For input size of 8x+1 (e.g. 769), `align_corner=True` is adopted as a traditional practice.
+ Otherwise, for input size of 8x (e.g. 512, 1024), `align_corner=False` is adopted.
+
+## Baselines
+
+### FCN
+
+Please refer to [FCN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fcn) for details.
+
+### PSPNet
+
+Please refer to [PSPNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/pspnet) for details.
+
+### DeepLabV3
+
+Please refer to [DeepLabV3](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3) for details.
+
+### PSANet
+
+Please refer to [PSANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/psanet) for details.
+
+### DeepLabV3+
+
+Please refer to [DeepLabV3+](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/deeplabv3plus) for details.
+
+### UPerNet
+
+Please refer to [UPerNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/upernet) for details.
+
+### NonLocal Net
+
+Please refer to [NonLocal Net](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/nlnet) for details.
+
+### EncNet
+
+Please refer to [EncNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/encnet) for details.
+
+### CCNet
+
+Please refer to [CCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ccnet) for details.
+
+### DANet
+
+Please refer to [DANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/danet) for details.
+
+### APCNet
+
+Please refer to [APCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/apcnet) for details.
+
+### HRNet
+
+Please refer to [HRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/hrnet) for details.
+
+### GCNet
+
+Please refer to [GCNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/gcnet) for details.
+
+### DMNet
+
+Please refer to [DMNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dmnet) for details.
+
+### ANN
+
+Please refer to [ANN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ann) for details.
+
+### OCRNet
+
+Please refer to [OCRNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/ocrnet) for details.
+
+### Fast-SCNN
+
+Please refer to [Fast-SCNN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fastscnn) for details.
+
+### ResNeSt
+
+Please refer to [ResNeSt](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/resnest) for details.
+
+### Semantic FPN
+
+Please refer to [Semantic FPN](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/semfpn) for details.
+
+### PointRend
+
+Please refer to [PointRend](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/point_rend) for details.
+
+### MobileNetV2
+
+Please refer to [MobileNetV2](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v2) for details.
+
+### MobileNetV3
+
+Please refer to [MobileNetV3](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/mobilenet_v3) for details.
+
+### EMANet
+
+Please refer to [EMANet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/emanet) for details.
+
+### DNLNet
+
+Please refer to [DNLNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/dnlnet) for details.
+
+### CGNet
+
+Please refer to [CGNet](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/cgnet) for details.
+
+### Mixed Precision (FP16) Training
+
+Please refer [Mixed Precision (FP16) Training](https://github.com/open-mmlab/mmsegmentation/blob/master/configs/fp16/README.md) for details.
+
+## Speed benchmark
+
+### Hardware
+
+* 8 NVIDIA Tesla V100 (32G) GPUs
+* Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
+
+### Software environment
+
+* Python 3.7
+* PyTorch 1.5
+* CUDA 10.1
+* CUDNN 7.6.03
+* NCCL 2.4.08
+
+### Training speed
+
+For fair comparison, we benchmark all implementations with ResNet-101V1c.
+The input size is fixed to 1024x512 with batch size 2.
+
+The training speed is reported as followed, in terms of second per iter (s/iter). The lower, the better.
+
+| Implementation | PSPNet (s/iter) | DeepLabV3+ (s/iter) |
+|----------------|-----------------|---------------------|
+| [MMSegmentation](https://github.com/open-mmlab/mmsegmentation) | **0.83** | **0.85** |
+| [SegmenTron](https://github.com/LikeLy-Journey/SegmenTron) | 0.84 | 0.85 |
+| [CASILVision](https://github.com/CSAILVision/semantic-segmentation-pytorch) | 1.15 | N/A |
+| [vedaseg](https://github.com/Media-Smart/vedaseg) | 0.95 | 1.25 |
+
+Note: The output stride of DeepLabV3+ is 8.
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/stat.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/stat.py
new file mode 100644
index 0000000000000000000000000000000000000000..3aaf0607004e1aa9d92001da78521afe51057034
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/stat.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+import functools as func
+import glob
+import os.path as osp
+import re
+
+import numpy as np
+
+url_prefix = 'https://github.com/open-mmlab/mmsegmentation/blob/master/'
+
+files = sorted(glob.glob('../configs/*/README.md'))
+
+stats = []
+titles = []
+num_ckpts = 0
+
+for f in files:
+ url = osp.dirname(f.replace('../', url_prefix))
+
+ with open(f, 'r') as content_file:
+ content = content_file.read()
+
+ title = content.split('\n')[0].replace('#', '').strip()
+ ckpts = set(x.lower().strip()
+ for x in re.findall(r'https?://download.*\.pth', content)
+ if 'mmsegmentation' in x)
+ if len(ckpts) == 0:
+ continue
+
+ _papertype = [x for x in re.findall(r'\[([A-Z]+)\]', content)]
+ assert len(_papertype) > 0
+ papertype = _papertype[0]
+
+ paper = set([(papertype, title)])
+
+ titles.append(title)
+ num_ckpts += len(ckpts)
+ statsmsg = f"""
+\t* [{papertype}] [{title}]({url}) ({len(ckpts)} ckpts)
+"""
+ stats.append((paper, ckpts, statsmsg))
+
+allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats])
+msglist = '\n'.join(x for _, _, x in stats)
+
+papertypes, papercounts = np.unique([t for t, _ in allpapers],
+ return_counts=True)
+countstr = '\n'.join(
+ [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)])
+
+modelzoo = f"""
+# Model Zoo Statistics
+
+* Number of papers: {len(set(titles))}
+{countstr}
+
+* Number of checkpoints: {num_ckpts}
+{msglist}
+"""
+
+with open('modelzoo_statistics.md', 'w') as f:
+ f.write(modelzoo)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/train.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/train.md
new file mode 100644
index 0000000000000000000000000000000000000000..1deac95f7d18185ff0586f81095587471eac46c4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/train.md
@@ -0,0 +1,83 @@
+## Train a model
+
+MMSegmentation implements distributed training and non-distributed training,
+which uses `MMDistributedDataParallel` and `MMDataParallel` respectively.
+
+All outputs (log files and checkpoints) will be saved to the working directory,
+which is specified by `work_dir` in the config file.
+
+By default we evaluate the model on the validation set after some iterations, you can change the evaluation interval by adding the interval argument in the training config.
+
+```python
+evaluation = dict(interval=4000) # This evaluate the model per 4000 iterations.
+```
+
+**\*Important\***: The default learning rate in config files is for 4 GPUs and 2 img/gpu (batch size = 4x2 = 8).
+Equivalently, you may also use 8 GPUs and 1 imgs/gpu since all models using cross-GPU SyncBN.
+
+To trade speed with GPU memory, you may pass in `--options model.backbone.with_cp=True` to enable checkpoint in backbone.
+
+### Train with a single GPU
+
+```shell
+python tools/train.py ${CONFIG_FILE} [optional arguments]
+```
+
+If you want to specify the working directory in the command, you can add an argument `--work-dir ${YOUR_WORK_DIR}`.
+
+### Train with multiple GPUs
+
+```shell
+./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
+```
+
+Optional arguments are:
+
+- `--no-validate` (**not suggested**): By default, the codebase will perform evaluation at every k iterations during the training. To disable this behavior, use `--no-validate`.
+- `--work-dir ${WORK_DIR}`: Override the working directory specified in the config file.
+- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file (to continue the training process).
+- `--load-from ${CHECKPOINT_FILE}`: Load weights from a checkpoint file (to start finetuning for another task).
+
+Difference between `resume-from` and `load-from`:
+
+- `resume-from` loads both the model weights and optimizer state including the iteration number.
+- `load-from` loads only the model weights, starts the training from iteration 0.
+
+### Train with multiple machines
+
+If you run MMSegmentation on a cluster managed with [slurm](https://slurm.schedmd.com/), you can use the script `slurm_train.sh`. (This script also supports single machine training.)
+
+```shell
+[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} --work-dir ${WORK_DIR}
+```
+
+Here is an example of using 16 GPUs to train PSPNet on the dev partition.
+
+```shell
+GPUS=16 ./tools/slurm_train.sh dev pspr50 configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py /nfs/xxxx/psp_r50_512x1024_40ki_cityscapes
+```
+
+You can check [slurm_train.sh](../tools/slurm_train.sh) for full arguments and environment variables.
+
+If you have just multiple machines connected with ethernet, you can refer to
+PyTorch [launch utility](https://pytorch.org/docs/stable/distributed_deprecated.html#launch-utility).
+Usually it is slow if you do not have high speed networking like InfiniBand.
+
+### Launch multiple jobs on a single machine
+
+If you launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs,
+you need to specify different ports (29500 by default) for each job to avoid communication conflict. Otherwise, there will be error message saying `RuntimeError: Address already in use`.
+
+If you use `dist_train.sh` to launch training jobs, you can set the port in commands with environment variable `PORT`.
+
+```shell
+CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4
+CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4
+```
+
+If you use `slurm_train.sh` to launch training jobs, you can set the port in commands with environment variable `MASTER_PORT`.
+
+```shell
+MASTER_PORT=29500 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE}
+MASTER_PORT=29501 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE}
+```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/config.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/config.md
new file mode 100644
index 0000000000000000000000000000000000000000..b243c06d5b60fc09135b227235241c6583325a6b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/config.md
@@ -0,0 +1,381 @@
+# Tutorial 1: Learn about Configs
+
+We incorporate modular and inheritance design into our config system, which is convenient to conduct various experiments.
+If you wish to inspect the config file, you may run `python tools/print_config.py /PATH/TO/CONFIG` to see the complete config.
+You may also pass `--options xxx.yyy=zzz` to see updated config.
+
+## Config File Structure
+
+There are 4 basic component types under `config/_base_`, dataset, model, schedule, default_runtime.
+Many methods could be easily constructed with one of each like DeepLabV3, PSPNet.
+The configs that are composed by components from `_base_` are called _primitive_.
+
+For all configs under the same folder, it is recommended to have only **one** _primitive_ config. All other configs should inherit from the _primitive_ config. In this way, the maximum of inheritance level is 3.
+
+For easy understanding, we recommend contributors to inherit from exiting methods.
+For example, if some modification is made base on DeepLabV3, user may first inherit the basic DeepLabV3 structure by specifying `_base_ = ../deeplabv3/deeplabv3_r50_512x1024_40ki_cityscapes.py`, then modify the necessary fields in the config files.
+
+If you are building an entirely new method that does not share the structure with any of the existing methods, you may create a folder `xxxnet` under `configs`,
+
+Please refer to [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#config) for detailed documentation.
+
+## Config Name Style
+
+We follow the below style to name config files. Contributors are advised to follow the same style.
+
+```
+{model}_{backbone}_[misc]_[gpu x batch_per_gpu]_{resolution}_{schedule}_{dataset}
+```
+
+`{xxx}` is required field and `[yyy]` is optional.
+
+- `{model}`: model type like `psp`, `deeplabv3`, etc.
+- `{backbone}`: backbone type like `r50` (ResNet-50), `x101` (ResNeXt-101).
+- `[misc]`: miscellaneous setting/plugins of model, e.g. `dconv`, `gcb`, `attention`, `mstrain`.
+- `[gpu x batch_per_gpu]`: GPUs and samples per GPU, `8x2` is used by default.
+- `{schedule}`: training schedule, `20ki` means 20k iterations.
+- `{dataset}`: dataset like `cityscapes`, `voc12aug`, `ade`.
+
+## An Example of PSPNet
+
+To help the users have a basic idea of a complete config and the modules in a modern semantic segmentation system,
+we make brief comments on the config of PSPNet using ResNet50V1c as the following.
+For more detailed usage and the corresponding alternative for each modules, please refer to the API documentation.
+
+```python
+norm_cfg = dict(type='SyncBN', requires_grad=True) # Segmentation usually uses SyncBN
+model = dict(
+ type='EncoderDecoder', # Name of segmentor
+ pretrained='open-mmlab://resnet50_v1c', # The ImageNet pretrained backbone to be loaded
+ backbone=dict(
+ type='ResNetV1c', # The type of backbone. Please refer to mmseg/backbone/resnet.py for details.
+ depth=50, # Depth of backbone. Normally 50, 101 are used.
+ num_stages=4, # Number of stages of backbone.
+ out_indices=(0, 1, 2, 3), # The index of output feature maps produced in each stages.
+ dilations=(1, 1, 2, 4), # The dilation rate of each layer.
+ strides=(1, 2, 1, 1), # The stride of each layer.
+ norm_cfg=dict( # The configuration of norm layer.
+ type='SyncBN', # Type of norm layer. Usually it is SyncBN.
+ requires_grad=True), # Whether to train the gamma and beta in norm
+ norm_eval=False, # Whether to freeze the statistics in BN
+ style='pytorch', # The style of backbone, 'pytorch' means that stride 2 layers are in 3x3 conv, 'caffe' means stride 2 layers are in 1x1 convs.
+ contract_dilation=True), # When dilation > 1, whether contract first layer of dilation.
+ decode_head=dict(
+ type='PSPHead', # Type of decode head. Please refer to mmseg/models/decode_heads for available options.
+ in_channels=2048, # Input channel of decode head.
+ in_index=3, # The index of feature map to select.
+ channels=512, # The intermediate channels of decode head.
+ pool_scales=(1, 2, 3, 6), # The avg pooling scales of PSPHead. Please refer to paper for details.
+ dropout_ratio=0.1, # The dropout ratio before final classification layer.
+ num_classes=19, # Number of segmentation classs. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k.
+ norm_cfg=dict(type='SyncBN', requires_grad=True), # The configuration of norm layer.
+ align_corners=False, # The align_corners argument for resize in decoding.
+ loss_decode=dict( # Config of loss function for the decode_head.
+ type='CrossEntropyLoss', # Type of loss used for segmentation.
+ use_sigmoid=False, # Whether use sigmoid activation for segmentation.
+ loss_weight=1.0)), # Loss weight of decode head.
+ auxiliary_head=dict(
+ type='FCNHead', # Type of auxiliary head. Please refer to mmseg/models/decode_heads for available options.
+ in_channels=1024, # Input channel of auxiliary head.
+ in_index=2, # The index of feature map to select.
+ channels=256, # The intermediate channels of decode head.
+ num_convs=1, # Number of convs in FCNHead. It is usually 1 in auxiliary head.
+ concat_input=False, # Whether concat output of convs with input before classification layer.
+ dropout_ratio=0.1, # The dropout ratio before final classification layer.
+ num_classes=19, # Number of segmentation classs. Usually 19 for cityscapes, 21 for VOC, 150 for ADE20k.
+ norm_cfg=dict(type='SyncBN', requires_grad=True), # The configuration of norm layer.
+ align_corners=False, # The align_corners argument for resize in decoding.
+ loss_decode=dict( # Config of loss function for the decode_head.
+ type='CrossEntropyLoss', # Type of loss used for segmentation.
+ use_sigmoid=False, # Whether use sigmoid activation for segmentation.
+ loss_weight=0.4))) # Loss weight of auxiliary head, which is usually 0.4 of decode head.
+train_cfg = dict() # train_cfg is just a place holder for now.
+test_cfg = dict(mode='whole') # The test mode, options are 'whole' and 'sliding'. 'whole': whole image fully-convolutional test. 'sliding': sliding crop window on the image.
+dataset_type = 'CityscapesDataset' # Dataset type, this will be used to define the dataset.
+data_root = 'data/cityscapes/' # Root path of data.
+img_norm_cfg = dict( # Image normalization config to normalize the input images.
+ mean=[123.675, 116.28, 103.53], # Mean values used to pre-training the pre-trained backbone models.
+ std=[58.395, 57.12, 57.375], # Standard variance used to pre-training the pre-trained backbone models.
+ to_rgb=True) # The channel orders of image used to pre-training the pre-trained backbone models.
+crop_size = (512, 1024) # The crop size during training.
+train_pipeline = [ # Training pipeline.
+ dict(type='LoadImageFromFile'), # First pipeline to load images from file path.
+ dict(type='LoadAnnotations'), # Second pipeline to load annotations for current image.
+ dict(type='Resize', # Augmentation pipeline that resize the images and their annotations.
+ img_scale=(2048, 1024), # The largest scale of image.
+ ratio_range=(0.5, 2.0)), # The augmented scale range as ratio.
+ dict(type='RandomCrop', # Augmentation pipeline that randomly crop a patch from current image.
+ crop_size=(512, 1024), # The crop size of patch.
+ cat_max_ratio=0.75), # The max area ratio that could be occupied by single category.
+ dict(
+ type='RandomFlip', # Augmentation pipeline that flip the images and their annotations
+ flip_ratio=0.5), # The ratio or probability to flip
+ dict(type='PhotoMetricDistortion'), # Augmentation pipeline that distort current image with several photo metric methods.
+ dict(
+ type='Normalize', # Augmentation pipeline that normalize the input images
+ mean=[123.675, 116.28, 103.53], # These keys are the same of img_norm_cfg since the
+ std=[58.395, 57.12, 57.375], # keys of img_norm_cfg are used here as arguments
+ to_rgb=True),
+ dict(type='Pad', # Augmentation pipeline that pad the image to specified size.
+ size=(512, 1024), # The output size of padding.
+ pad_val=0, # The padding value for image.
+ seg_pad_val=255), # The padding value of 'gt_semantic_seg'.
+ dict(type='DefaultFormatBundle'), # Default format bundle to gather data in the pipeline
+ dict(type='Collect', # Pipeline that decides which keys in the data should be passed to the segmentor
+ keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'), # First pipeline to load images from file path
+ dict(
+ type='MultiScaleFlipAug', # An encapsulation that encapsulates the test time augmentations
+ img_scale=(2048, 1024), # Decides the largest scale for testing, used for the Resize pipeline
+ flip=False, # Whether to flip images during testing
+ transforms=[
+ dict(type='Resize', # Use resize augmentation
+ keep_ratio=True), # Whether to keep the ratio between height and width, the img_scale set here will be supressed by the img_scale set above.
+ dict(type='RandomFlip'), # Thought RandomFlip is added in pipeline, it is not used when flip=False
+ dict(
+ type='Normalize', # Normalization config, the values are from img_norm_cfg
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', # Convert image to tensor
+ keys=['img']),
+ dict(type='Collect', # Collect pipeline that collect necessary keys for testing.
+ keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2, # Batch size of a single GPU
+ workers_per_gpu=2, # Worker to pre-fetch data for each single GPU
+ train=dict( # Train dataset config
+ type='CityscapesDataset', # Type of dataset, refer to mmseg/datasets/ for details.
+ data_root='data/cityscapes/', # The root of dataset.
+ img_dir='leftImg8bit/train', # The image directory of dataset.
+ ann_dir='gtFine/train', # The annotation directory of dataset.
+ pipeline=[ # pipeline, this is passed by the train_pipeline created before.
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict( # Validation dataset config
+ type='CityscapesDataset',
+ data_root='data/cityscapes/',
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=[ # Pipeline is passed by test_pipeline created before
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CityscapesDataset',
+ data_root='data/cityscapes/',
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict( # config to register logger hook
+ interval=50, # Interval to print the log
+ hooks=[
+ # dict(type='TensorboardLoggerHook') # The Tensorboard logger is also supported
+ dict(type='TextLoggerHook', by_epoch=False)
+ ])
+dist_params = dict(backend='nccl') # Parameters to setup distributed training, the port can also be set.
+log_level = 'INFO' # The level of logging.
+load_from = None # load models as a pre-trained model from a given path. This will not resume training.
+resume_from = None # Resume checkpoints from a given path, the training will be resumed from the iteration when the checkpoint's is saved.
+workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once. The workflow trains the model by 40000 iterations according to the `runner.max_iters`.
+cudnn_benchmark = True # Whether use cudnn_benchmark to speed up, which is fast for fixed input size.
+optimizer = dict( # Config used to build optimizer, support all the optimizers in PyTorch whose arguments are also the same as those in PyTorch
+ type='SGD', # Type of optimizers, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details
+ lr=0.01, # Learning rate of optimizers, see detail usages of the parameters in the documentation of PyTorch
+ momentum=0.9, # Momentum
+ weight_decay=0.0005) # Weight decay of SGD
+optimizer_config = dict() # Config used to build the optimizer hook, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/optimizer.py#L8 for implementation details.
+lr_config = dict(
+ policy='poly', # The policy of scheduler, also support Step, CosineAnnealing, Cyclic, etc. Refer to details of supported LrUpdater from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9.
+ power=0.9, # The power of polynomial decay.
+ min_lr=0.0001, # The minimum learning rate to stable the training.
+ by_epoch=False) # Whethe count by epoch or not.
+runner = dict(
+ type='IterBasedRunner', # Type of runner to use (i.e. IterBasedRunner or EpochBasedRunner)
+ max_iters=40000) # Total number of iterations. For EpochBasedRunner use `max_epochs`
+checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation.
+ by_epoch=False, # Whethe count by epoch or not.
+ interval=4000) # The save interval.
+evaluation = dict( # The config to build the evaluation hook. Please refer to mmseg/core/evaulation/eval_hook.py for details.
+ interval=4000, # The interval of evaluation.
+ metric='mIoU') # The evaluation metric.
+
+
+```
+
+## FAQ
+
+### Ignore some fields in the base configs
+
+Sometimes, you may set `_delete_=True` to ignore some of fields in base configs.
+You may refer to [mmcv](https://mmcv.readthedocs.io/en/latest/utils.html#inherit-from-base-config-with-ignored-fields) for simple inllustration.
+
+In MMSegmentation, for example, to change the backbone of PSPNet with the following config.
+
+```python
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='MaskRCNN',
+ pretrained='torchvision://resnet50',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(...),
+ auxiliary_head=dict(...))
+```
+
+`ResNet` and `HRNet` use different keywords to construct.
+
+```python
+_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscpaes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w32',
+ backbone=dict(
+ _delete_=True,
+ type='HRNet',
+ norm_cfg=norm_cfg,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(32, 64)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(32, 64, 128)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(32, 64, 128, 256)))),
+ decode_head=dict(...),
+ auxiliary_head=dict(...))
+```
+
+The `_delete_=True` would replace all old keys in `backbone` field with new keys new keys.
+
+### Use intermediate variables in configs
+
+Some intermediate variables are used in the configs files, like `train_pipeline`/`test_pipeline` in datasets.
+It's worth noting that when modifying intermediate variables in the children configs, user need to pass the intermediate variables into corresponding fields again.
+For example, we would like to change multi scale strategy to train/test a PSPNet. `train_pipeline`/`test_pipeline` are intermediate variable we would like modify.
+
+```python
+_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscapes.py'
+crop_size = (512, 1024)
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(1.0, 2.0)), # change to [1., 2.]
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75], # change to multi scale testing
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ train=dict(pipeline=train_pipeline),
+ val=dict(pipeline=test_pipeline),
+ test=dict(pipeline=test_pipeline))
+```
+
+We first define the new `train_pipeline`/`test_pipeline` and pass them into `data`.
+
+Similarly, if we would like to switch from `SyncBN` to `BN` or `MMSyncBN`, we need to substitute every `norm_cfg` in the config.
+
+```python
+_base_ = '../pspnet/psp_r50_512x1024_40ki_cityscpaes.py'
+norm_cfg = dict(type='BN', requires_grad=True)
+model = dict(
+ backbone=dict(norm_cfg=norm_cfg),
+ decode_head=dict(norm_cfg=norm_cfg),
+ auxiliary_head=dict(norm_cfg=norm_cfg))
+```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_datasets.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_datasets.md
new file mode 100644
index 0000000000000000000000000000000000000000..020d51316e15a7f6926f49d81dcd2509f5170e07
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_datasets.md
@@ -0,0 +1,172 @@
+# Tutorial 2: Customize Datasets
+
+## Customize datasets by reorganizing data
+
+The simplest way is to convert your dataset to organize your data into folders.
+
+An example of file structure is as followed.
+
+```none
+├── data
+│ ├── my_dataset
+│ │ ├── img_dir
+│ │ │ ├── train
+│ │ │ │ ├── xxx{img_suffix}
+│ │ │ │ ├── yyy{img_suffix}
+│ │ │ │ ├── zzz{img_suffix}
+│ │ │ ├── val
+│ │ ├── ann_dir
+│ │ │ ├── train
+│ │ │ │ ├── xxx{seg_map_suffix}
+│ │ │ │ ├── yyy{seg_map_suffix}
+│ │ │ │ ├── zzz{seg_map_suffix}
+│ │ │ ├── val
+
+```
+
+A training pair will consist of the files with same suffix in img_dir/ann_dir.
+
+If `split` argument is given, only part of the files in img_dir/ann_dir will be loaded.
+We may specify the prefix of files we would like to be included in the split txt.
+
+More specifically, for a split txt like following,
+
+```none
+xxx
+zzz
+```
+
+Only
+`data/my_dataset/img_dir/train/xxx{img_suffix}`,
+`data/my_dataset/img_dir/train/zzz{img_suffix}`,
+`data/my_dataset/ann_dir/train/xxx{seg_map_suffix}`,
+`data/my_dataset/ann_dir/train/zzz{seg_map_suffix}` will be loaded.
+
+Note: The annotations are images of shape (H, W), the value pixel should fall in range `[0, num_classes - 1]`.
+You may use `'P'` mode of [pillow](https://pillow.readthedocs.io/en/stable/handbook/concepts.html#palette) to create your annotation image with color.
+
+## Customize datasets by mixing dataset
+
+MMSegmentation also supports to mix dataset for training.
+Currently it supports to concat and repeat datasets.
+
+### Repeat dataset
+
+We use `RepeatDataset` as wrapper to repeat the dataset.
+For example, suppose the original dataset is `Dataset_A`, to repeat it, the config looks like the following
+
+```python
+dataset_A_train = dict(
+ type='RepeatDataset',
+ times=N,
+ dataset=dict( # This is the original config of Dataset_A
+ type='Dataset_A',
+ ...
+ pipeline=train_pipeline
+ )
+ )
+```
+
+### Concatenate dataset
+
+There 2 ways to concatenate the dataset.
+
+1. If the datasets you want to concatenate are in the same type with different annotation files,
+ you can concatenate the dataset configs like the following.
+
+ 1. You may concatenate two `ann_dir`.
+
+ ```python
+ dataset_A_train = dict(
+ type='Dataset_A',
+ img_dir = 'img_dir',
+ ann_dir = ['anno_dir_1', 'anno_dir_2'],
+ pipeline=train_pipeline
+ )
+ ```
+
+ 2. You may concatenate two `split`.
+
+ ```python
+ dataset_A_train = dict(
+ type='Dataset_A',
+ img_dir = 'img_dir',
+ ann_dir = 'anno_dir',
+ split = ['split_1.txt', 'split_2.txt'],
+ pipeline=train_pipeline
+ )
+ ```
+
+ 3. You may concatenate two `ann_dir` and `split` simultaneously.
+
+ ```python
+ dataset_A_train = dict(
+ type='Dataset_A',
+ img_dir = 'img_dir',
+ ann_dir = ['anno_dir_1', 'anno_dir_2'],
+ split = ['split_1.txt', 'split_2.txt'],
+ pipeline=train_pipeline
+ )
+ ```
+
+ In this case, `ann_dir_1` and `ann_dir_2` are corresponding to `split_1.txt` and `split_2.txt`.
+
+2. In case the dataset you want to concatenate is different, you can concatenate the dataset configs like the following.
+
+ ```python
+ dataset_A_train = dict()
+ dataset_B_train = dict()
+
+ data = dict(
+ imgs_per_gpu=2,
+ workers_per_gpu=2,
+ train = [
+ dataset_A_train,
+ dataset_B_train
+ ],
+ val = dataset_A_val,
+ test = dataset_A_test
+ )
+ ```
+
+A more complex example that repeats `Dataset_A` and `Dataset_B` by N and M times, respectively, and then concatenates the repeated datasets is as the following.
+
+```python
+dataset_A_train = dict(
+ type='RepeatDataset',
+ times=N,
+ dataset=dict(
+ type='Dataset_A',
+ ...
+ pipeline=train_pipeline
+ )
+)
+dataset_A_val = dict(
+ ...
+ pipeline=test_pipeline
+)
+dataset_A_test = dict(
+ ...
+ pipeline=test_pipeline
+)
+dataset_B_train = dict(
+ type='RepeatDataset',
+ times=M,
+ dataset=dict(
+ type='Dataset_B',
+ ...
+ pipeline=train_pipeline
+ )
+)
+data = dict(
+ imgs_per_gpu=2,
+ workers_per_gpu=2,
+ train = [
+ dataset_A_train,
+ dataset_B_train
+ ],
+ val = dataset_A_val,
+ test = dataset_A_test
+)
+
+```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_models.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_models.md
new file mode 100644
index 0000000000000000000000000000000000000000..f637fd6f0431ea0de748e39806be51d1b4849c8e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_models.md
@@ -0,0 +1,234 @@
+# Tutorial 4: Customize Models
+
+## Customize optimizer
+
+Assume you want to add a optimizer named as `MyOptimizer`, which has arguments `a`, `b`, and `c`.
+You need to first implement the new optimizer in a file, e.g., in `mmseg/core/optimizer/my_optimizer.py`:
+
+```python
+from mmcv.runner import OPTIMIZERS
+from torch.optim import Optimizer
+
+
+@OPTIMIZERS.register_module
+class MyOptimizer(Optimizer):
+
+ def __init__(self, a, b, c)
+
+```
+
+Then add this module in `mmseg/core/optimizer/__init__.py` thus the registry will
+find the new module and add it:
+
+```python
+from .my_optimizer import MyOptimizer
+```
+
+Then you can use `MyOptimizer` in `optimizer` field of config files.
+In the configs, the optimizers are defined by the field `optimizer` like the following:
+
+```python
+optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)
+```
+
+To use your own optimizer, the field can be changed as
+
+```python
+optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value)
+```
+
+We already support to use all the optimizers implemented by PyTorch, and the only modification is to change the `optimizer` field of config files.
+For example, if you want to use `ADAM`, though the performance will drop a lot, the modification could be as the following.
+
+```python
+optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001)
+```
+
+The users can directly set arguments following the [API doc](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) of PyTorch.
+
+## Customize optimizer constructor
+
+Some models may have some parameter-specific settings for optimization, e.g. weight decay for BatchNoarm layers.
+The users can do those fine-grained parameter tuning through customizing optimizer constructor.
+
+```
+from mmcv.utils import build_from_cfg
+
+from mmcv.runner import OPTIMIZER_BUILDERS
+from .cocktail_optimizer import CocktailOptimizer
+
+
+@OPTIMIZER_BUILDERS.register_module
+class CocktailOptimizerConstructor(object):
+
+ def __init__(self, optimizer_cfg, paramwise_cfg=None):
+
+ def __call__(self, model):
+
+ return my_optimizer
+
+```
+
+## Develop new components
+
+There are mainly 2 types of components in MMSegmentation.
+
+- backbone: usually stacks of convolutional network to extract feature maps, e.g., ResNet, HRNet.
+- head: the component for semantic segmentation map decoding.
+
+### Add new backbones
+
+Here we show how to develop new components with an example of MobileNet.
+
+1. Create a new file `mmseg/models/backbones/mobilenet.py`.
+
+```python
+import torch.nn as nn
+
+from ..registry import BACKBONES
+
+
+@BACKBONES.register_module
+class MobileNet(nn.Module):
+
+ def __init__(self, arg1, arg2):
+ pass
+
+ def forward(self, x): # should return a tuple
+ pass
+
+ def init_weights(self, pretrained=None):
+ pass
+```
+
+2. Import the module in `mmseg/models/backbones/__init__.py`.
+
+```python
+from .mobilenet import MobileNet
+```
+
+3. Use it in your config file.
+
+```python
+model = dict(
+ ...
+ backbone=dict(
+ type='MobileNet',
+ arg1=xxx,
+ arg2=xxx),
+ ...
+```
+
+### Add new heads
+
+In MMSegmentation, we provide a base [BaseDecodeHead](https://github.com/open-mmlab/mmsegmentation/blob/master/mmseg/models/decode_heads/decode_head.py) for all segmentation head.
+All newly implemented decode heads should be derived from it.
+Here we show how to develop a new head with the example of [PSPNet](https://arxiv.org/abs/1612.01105) as the following.
+
+First, add a new decode head in `mmseg/models/decode_heads/psp_head.py`.
+PSPNet implements a decode head for segmentation decode.
+To implement a decode head, basically we need to implement three functions of the new module as the following.
+
+```python
+@HEADS.register_module()
+class PSPHead(BaseDecodeHead):
+
+ def __init__(self, pool_scales=(1, 2, 3, 6), **kwargs):
+ super(PSPHead, self).__init__(**kwargs)
+
+ def init_weights(self):
+
+ def forward(self, inputs):
+
+```
+
+Next, the users need to add the module in the `mmseg/models/decode_heads/__init__.py` thus the corresponding registry could find and load them.
+
+To config file of PSPNet is as the following
+
+```python
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='pretrain_model/resnet50_v1c_trick-2cccc1ad.pth',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='PSPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
+
+```
+
+### Add new loss
+
+Assume you want to add a new loss as `MyLoss` for segmentation decode.
+To add a new loss function, the users need implement it in `mmseg/models/losses/my_loss.py`.
+The decorator `weighted_loss` enable the loss to be weighted for each element.
+
+```python
+import torch
+import torch.nn as nn
+
+from ..builder import LOSSES
+from .utils import weighted_loss
+
+@weighted_loss
+def my_loss(pred, target):
+ assert pred.size() == target.size() and target.numel() > 0
+ loss = torch.abs(pred - target)
+ return loss
+
+@LOSSES.register_module
+class MyLoss(nn.Module):
+
+ def __init__(self, reduction='mean', loss_weight=1.0):
+ super(MyLoss, self).__init__()
+ self.reduction = reduction
+ self.loss_weight = loss_weight
+
+ def forward(self,
+ pred,
+ target,
+ weight=None,
+ avg_factor=None,
+ reduction_override=None):
+ assert reduction_override in (None, 'none', 'mean', 'sum')
+ reduction = (
+ reduction_override if reduction_override else self.reduction)
+ loss = self.loss_weight * my_loss(
+ pred, target, weight, reduction=reduction, avg_factor=avg_factor)
+ return loss
+```
+
+Then the users need to add it in the `mmseg/models/losses/__init__.py`.
+
+```python
+from .my_loss import MyLoss, my_loss
+
+```
+
+To use it, modify the `loss_xxx` field.
+Then you need to modify the `loss_decode` field in the head.
+`loss_weight` could be used to balance multiple losses.
+
+```python
+loss_decode=dict(type='MyLoss', loss_weight=1.0))
+```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_runtime.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_runtime.md
new file mode 100644
index 0000000000000000000000000000000000000000..dd67ef54f639fa0b3b9a01727d16352752d30899
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/customize_runtime.md
@@ -0,0 +1,243 @@
+# Tutorial 6: Customize Runtime Settings
+
+## Customize optimization settings
+
+### Customize optimizer supported by Pytorch
+
+We already support to use all the optimizers implemented by PyTorch, and the only modification is to change the `optimizer` field of config files.
+For example, if you want to use `ADAM` (note that the performance could drop a lot), the modification could be as the following.
+
+```python
+optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001)
+```
+
+To modify the learning rate of the model, the users only need to modify the `lr` in the config of optimizer. The users can directly set arguments following the [API doc](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) of PyTorch.
+
+### Customize self-implemented optimizer
+
+#### 1. Define a new optimizer
+
+A customized optimizer could be defined as following.
+
+Assume you want to add a optimizer named `MyOptimizer`, which has arguments `a`, `b`, and `c`.
+You need to create a new directory named `mmseg/core/optimizer`.
+And then implement the new optimizer in a file, e.g., in `mmseg/core/optimizer/my_optimizer.py`:
+
+```python
+from .registry import OPTIMIZERS
+from torch.optim import Optimizer
+
+
+@OPTIMIZERS.register_module()
+class MyOptimizer(Optimizer):
+
+ def __init__(self, a, b, c)
+
+```
+
+#### 2. Add the optimizer to registry
+
+To find the above module defined above, this module should be imported into the main namespace at first. There are two options to achieve it.
+
+- Modify `mmseg/core/optimizer/__init__.py` to import it.
+
+ The newly defined module should be imported in `mmseg/core/optimizer/__init__.py` so that the registry will
+ find the new module and add it:
+
+```python
+from .my_optimizer import MyOptimizer
+```
+
+- Use `custom_imports` in the config to manually import it
+
+```python
+custom_imports = dict(imports=['mmseg.core.optimizer.my_optimizer'], allow_failed_imports=False)
+```
+
+The module `mmseg.core.optimizer.my_optimizer` will be imported at the beginning of the program and the class `MyOptimizer` is then automatically registered.
+Note that only the package containing the class `MyOptimizer` should be imported.
+`mmseg.core.optimizer.my_optimizer.MyOptimizer` **cannot** be imported directly.
+
+Actually users can use a totally different file directory structure using this importing method, as long as the module root can be located in `PYTHONPATH`.
+
+#### 3. Specify the optimizer in the config file
+
+Then you can use `MyOptimizer` in `optimizer` field of config files.
+In the configs, the optimizers are defined by the field `optimizer` like the following:
+
+```python
+optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001)
+```
+
+To use your own optimizer, the field can be changed to
+
+```python
+optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value)
+```
+
+### Customize optimizer constructor
+
+Some models may have some parameter-specific settings for optimization, e.g. weight decay for BatchNorm layers.
+The users can do those fine-grained parameter tuning through customizing optimizer constructor.
+
+```python
+from mmcv.utils import build_from_cfg
+
+from mmcv.runner.optimizer import OPTIMIZER_BUILDERS, OPTIMIZERS
+from mmseg.utils import get_root_logger
+from .my_optimizer import MyOptimizer
+
+
+@OPTIMIZER_BUILDERS.register_module()
+class MyOptimizerConstructor(object):
+
+ def __init__(self, optimizer_cfg, paramwise_cfg=None):
+
+ def __call__(self, model):
+
+ return my_optimizer
+
+```
+
+The default optimizer constructor is implemented [here](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/optimizer/default_constructor.py#L11), which could also serve as a template for new optimizer constructor.
+
+### Additional settings
+
+Tricks not implemented by the optimizer should be implemented through optimizer constructor (e.g., set parameter-wise learning rates) or hooks. We list some common settings that could stabilize the training or accelerate the training. Feel free to create PR, issue for more settings.
+
+- __Use gradient clip to stabilize training__:
+ Some models need gradient clip to clip the gradients to stabilize the training process. An example is as below:
+
+ ```python
+ optimizer_config = dict(
+ _delete_=True, grad_clip=dict(max_norm=35, norm_type=2))
+ ```
+
+ If your config inherits the base config which already sets the `optimizer_config`, you might need `_delete_=True` to overide the unnecessary settings. See the [config documenetation](https://mmsegmentation.readthedocs.io/en/latest/config.html) for more details.
+
+- __Use momentum schedule to accelerate model convergence__:
+ We support momentum scheduler to modify model's momentum according to learning rate, which could make the model converge in a faster way.
+ Momentum scheduler is usually used with LR scheduler, for example, the following config is used in 3D detection to accelerate convergence.
+ For more details, please refer to the implementation of [CyclicLrUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L327) and [CyclicMomentumUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/momentum_updater.py#L130).
+
+ ```python
+ lr_config = dict(
+ policy='cyclic',
+ target_ratio=(10, 1e-4),
+ cyclic_times=1,
+ step_ratio_up=0.4,
+ )
+ momentum_config = dict(
+ policy='cyclic',
+ target_ratio=(0.85 / 0.95, 1),
+ cyclic_times=1,
+ step_ratio_up=0.4,
+ )
+ ```
+
+## Customize training schedules
+
+By default we use step learning rate with 40k/80k schedule, this calls [`PolyLrUpdaterHook`](https://github.com/open-mmlab/mmcv/blob/826d3a7b68596c824fa1e2cb89b6ac274f52179c/mmcv/runner/hooks/lr_updater.py#L196) in MMCV.
+We support many other learning rate schedule [here](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py), such as `CosineAnnealing` and `Poly` schedule. Here are some examples
+
+- Step schedule:
+
+ ```python
+ lr_config = dict(policy='step', step=[9, 10])
+ ```
+
+- ConsineAnnealing schedule:
+
+ ```python
+ lr_config = dict(
+ policy='CosineAnnealing',
+ warmup='linear',
+ warmup_iters=1000,
+ warmup_ratio=1.0 / 10,
+ min_lr_ratio=1e-5)
+ ```
+
+## Customize workflow
+
+Workflow is a list of (phase, epochs) to specify the running order and epochs.
+By default it is set to be
+
+```python
+workflow = [('train', 1)]
+```
+
+which means running 1 epoch for training.
+Sometimes user may want to check some metrics (e.g. loss, accuracy) about the model on the validate set.
+In such case, we can set the workflow as
+
+```python
+[('train', 1), ('val', 1)]
+```
+
+so that 1 epoch for training and 1 epoch for validation will be run iteratively.
+
+**Note**:
+
+1. The parameters of model will not be updated during val epoch.
+2. Keyword `total_epochs` in the config only controls the number of training epochs and will not affect the validation workflow.
+3. Workflows `[('train', 1), ('val', 1)]` and `[('train', 1)]` will not change the behavior of `EvalHook` because `EvalHook` is called by `after_train_epoch` and validation workflow only affect hooks that are called through `after_val_epoch`. Therefore, the only difference between `[('train', 1), ('val', 1)]` and `[('train', 1)]` is that the runner will calculate losses on validation set after each training epoch.
+
+## Customize hooks
+
+### Use hooks implemented in MMCV
+
+If the hook is already implemented in MMCV, you can directly modify the config to use the hook as below
+
+```python
+custom_hooks = [
+ dict(type='MyHook', a=a_value, b=b_value, priority='NORMAL')
+]
+```
+
+### Modify default runtime hooks
+
+There are some common hooks that are not registerd through `custom_hooks`, they are
+
+- log_config
+- checkpoint_config
+- evaluation
+- lr_config
+- optimizer_config
+- momentum_config
+
+In those hooks, only the logger hook has the `VERY_LOW` priority, others' priority are `NORMAL`.
+The above-mentioned tutorials already covers how to modify `optimizer_config`, `momentum_config`, and `lr_config`.
+Here we reveals how what we can do with `log_config`, `checkpoint_config`, and `evaluation`.
+
+#### Checkpoint config
+
+The MMCV runner will use `checkpoint_config` to initialize [`CheckpointHook`](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/hooks/checkpoint.py#L9).
+
+```python
+checkpoint_config = dict(interval=1)
+```
+
+The users could set `max_keep_ckpts` to only save only small number of checkpoints or decide whether to store state dict of optimizer by `save_optimizer`. More details of the arguments are [here](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.CheckpointHook)
+
+#### Log config
+
+The `log_config` wraps multiple logger hooks and enables to set intervals. Now MMCV supports `WandbLoggerHook`, `MlflowLoggerHook`, and `TensorboardLoggerHook`.
+The detail usages can be found in the [doc](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.LoggerHook).
+
+```python
+log_config = dict(
+ interval=50,
+ hooks=[
+ dict(type='TextLoggerHook'),
+ dict(type='TensorboardLoggerHook')
+ ])
+```
+
+#### Evaluation config
+
+The config of `evaluation` will be used to initialize the [`EvalHook`](https://github.com/open-mmlab/mmsegmentation/blob/e3f6f655d69b777341aec2fe8829871cc0beadcb/mmseg/core/evaluation/eval_hooks.py#L7).
+Except the key `interval`, other arguments such as `metric` will be passed to the `dataset.evaluate()`
+
+```python
+evaluation = dict(interval=1, metric='mIoU')
+```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/data_pipeline.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/data_pipeline.md
new file mode 100644
index 0000000000000000000000000000000000000000..1eecfe91d433ca897ae47a5ae9b8c5f406a3fe2b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/data_pipeline.md
@@ -0,0 +1,171 @@
+# Tutorial 3: Customize Data Pipelines
+
+## Design of Data pipelines
+
+Following typical conventions, we use `Dataset` and `DataLoader` for data loading
+with multiple workers. `Dataset` returns a dict of data items corresponding
+the arguments of models' forward method.
+Since the data in semantic segmentation may not be the same size,
+we introduce a new `DataContainer` type in MMCV to help collect and distribute
+data of different size.
+See [here](https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py) for more details.
+
+The data preparation pipeline and the dataset is decomposed. Usually a dataset
+defines how to process the annotations and a data pipeline defines all the steps to prepare a data dict.
+A pipeline consists of a sequence of operations. Each operation takes a dict as input and also output a dict for the next transform.
+
+The operations are categorized into data loading, pre-processing, formatting and test-time augmentation.
+
+Here is an pipeline example for PSPNet.
+
+```python
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+```
+
+For each operation, we list the related dict fields that are added/updated/removed.
+
+### Data loading
+
+`LoadImageFromFile`
+
+- add: img, img_shape, ori_shape
+
+`LoadAnnotations`
+
+- add: gt_semantic_seg, seg_fields
+
+### Pre-processing
+
+`Resize`
+
+- add: scale, scale_idx, pad_shape, scale_factor, keep_ratio
+- update: img, img_shape, *seg_fields
+
+`RandomFlip`
+
+- add: flip
+- update: img, *seg_fields
+
+`Pad`
+
+- add: pad_fixed_size, pad_size_divisor
+- update: img, pad_shape, *seg_fields
+
+`RandomCrop`
+
+- update: img, pad_shape, *seg_fields
+
+`Normalize`
+
+- add: img_norm_cfg
+- update: img
+
+`SegRescale`
+
+- update: gt_semantic_seg
+
+`PhotoMetricDistortion`
+
+- update: img
+
+### Formatting
+
+`ToTensor`
+
+- update: specified by `keys`.
+
+`ImageToTensor`
+
+- update: specified by `keys`.
+
+`Transpose`
+
+- update: specified by `keys`.
+
+`ToDataContainer`
+
+- update: specified by `fields`.
+
+`DefaultFormatBundle`
+
+- update: img, gt_semantic_seg
+
+`Collect`
+
+- add: img_meta (the keys of img_meta is specified by `meta_keys`)
+- remove: all other keys except for those specified by `keys`
+
+### Test time augmentation
+
+`MultiScaleFlipAug`
+
+## Extend and use custom pipelines
+
+1. Write a new pipeline in any file, e.g., `my_pipeline.py`. It takes a dict as input and return a dict.
+
+ ```python
+ from mmseg.datasets import PIPELINES
+
+ @PIPELINES.register_module()
+ class MyTransform:
+
+ def __call__(self, results):
+ results['dummy'] = True
+ return results
+ ```
+
+2. Import the new class.
+
+ ```python
+ from .my_pipeline import MyTransform
+ ```
+
+3. Use it in config files.
+
+ ```python
+ img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+ crop_size = (512, 1024)
+ train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='MyTransform'),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+ ]
+ ```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/index.rst b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..e1a67a8b44a9ac3c2bbee59304c2043467ac3f30
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/index.rst
@@ -0,0 +1,9 @@
+.. toctree::
+ :maxdepth: 2
+
+ config.md
+ customize_datasets.md
+ data_pipeline.md
+ customize_models.md
+ training_tricks.md
+ customize_runtime.md
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/training_tricks.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/training_tricks.md
new file mode 100644
index 0000000000000000000000000000000000000000..98a201fa649d94525facd8237d32effd6560c658
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/tutorials/training_tricks.md
@@ -0,0 +1,52 @@
+# Tutorial 5: Training Tricks
+
+MMSegmentation support following training tricks out of box.
+
+## Different Learning Rate(LR) for Backbone and Heads
+
+In semantic segmentation, some methods make the LR of heads larger than backbone to achieve better performance or faster convergence.
+
+In MMSegmentation, you may add following lines to config to make the LR of heads 10 times of backbone.
+
+```python
+optimizer=dict(
+ paramwise_cfg = dict(
+ custom_keys={
+ 'head': dict(lr_mult=10.)}))
+```
+
+With this modification, the LR of any parameter group with `'head'` in name will be multiplied by 10.
+You may refer to [MMCV doc](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.DefaultOptimizerConstructor) for further details.
+
+## Online Hard Example Mining (OHEM)
+
+We implement pixel sampler [here](https://github.com/open-mmlab/mmsegmentation/tree/master/mmseg/core/seg/sampler) for training sampling.
+Here is an example config of training PSPNet with OHEM enabled.
+
+```python
+_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py'
+model=dict(
+ decode_head=dict(
+ sampler=dict(type='OHEMPixelSampler', thresh=0.7, min_kept=100000)) )
+```
+
+In this way, only pixels with confidence score under 0.7 are used to train. And we keep at least 100000 pixels during training. If `thresh` is not specified, pixels of top ``min_kept`` loss will be selected.
+
+## Class Balanced Loss
+
+For dataset that is not balanced in classes distribution, you may change the loss weight of each class.
+Here is an example for cityscapes dataset.
+
+```python
+_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py'
+model=dict(
+ decode_head=dict(
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0,
+ # DeepLab used this class weight for cityscapes
+ class_weight=[0.8373, 0.9180, 0.8660, 1.0345, 1.0166, 0.9969, 0.9754,
+ 1.0489, 0.8786, 1.0023, 0.9539, 0.9843, 1.1116, 0.9037,
+ 1.0865, 1.0955, 1.0865, 1.1529, 1.0507])))
+```
+
+`class_weight` will be passed into `CrossEntropyLoss` as `weight` argument. Please refer to [PyTorch Doc](https://pytorch.org/docs/stable/nn.html?highlight=crossentropy#torch.nn.CrossEntropyLoss) for details.
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/useful_tools.md b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/useful_tools.md
new file mode 100644
index 0000000000000000000000000000000000000000..514b5680ee4eff351affd3bfa169c11d5dee9b9f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/docs/useful_tools.md
@@ -0,0 +1,64 @@
+Apart from training/testing scripts, We provide lots of useful tools under the
+ `tools/` directory.
+
+### Get the FLOPs and params (experimental)
+
+We provide a script adapted from [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) to compute the FLOPs and params of a given model.
+
+```shell
+python tools/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}]
+```
+
+You will get the result like this.
+
+```none
+==============================
+Input shape: (3, 2048, 1024)
+Flops: 1429.68 GMac
+Params: 48.98 M
+==============================
+```
+
+**Note**: This tool is still experimental and we do not guarantee that the number is correct. You may well use the result for simple comparisons, but double check it before you adopt it in technical reports or papers.
+
+(1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 1280, 800).
+(2) Some operators are not counted into FLOPs like GN and custom operators.
+
+### Publish a model
+
+Before you upload a model to AWS, you may want to
+(1) convert model weights to CPU tensors, (2) delete the optimizer states and
+(3) compute the hash of the checkpoint file and append the hash id to the filename.
+
+```shell
+python tools/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME}
+```
+
+E.g.,
+
+```shell
+python tools/publish_model.py work_dirs/pspnet/latest.pth psp_r50_hszhao_200ep.pth
+```
+
+The final output filename will be `psp_r50_512x1024_40ki_cityscapes-{hash id}.pth`.
+
+### Convert to ONNX (experimental)
+
+We provide a script to convert model to [ONNX](https://github.com/onnx/onnx) format. The converted model could be visualized by tools like [Netron](https://github.com/lutzroeder/netron). Besides, we also support comparing the output results between Pytorch and ONNX model.
+
+```shell
+python tools/pytorch2onnx.py ${CONFIG_FILE} --checkpoint ${CHECKPOINT_FILE} --output-file ${ONNX_FILE} [--shape ${INPUT_SHAPE} --verify]
+```
+
+**Note**: This tool is still experimental. Some customized operators are not supported for now.
+
+## Miscellaneous
+
+### Print the entire config
+
+`tools/print_config.py` prints the whole config verbatim, expanding all its
+ imports.
+
+```shell
+python tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}]
+```
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/pytest.ini b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/pytest.ini
new file mode 100644
index 0000000000000000000000000000000000000000..9796e871e70c7c67345b1d6bcf708c0c82377a98
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/pytest.ini
@@ -0,0 +1,7 @@
+[pytest]
+addopts = --xdoctest --xdoctest-style=auto
+norecursedirs = .git ignore build __pycache__ data docker docs .eggs
+
+filterwarnings= default
+ ignore:.*No cfgstr given in Cacher constructor or call.*:Warning
+ ignore:.*Define the __nice__ method for.*:Warning
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6da5adea757ffc79ac35e544d4afe85c5f44a90d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements.txt
@@ -0,0 +1,3 @@
+-r requirements/optional.txt
+-r requirements/runtime.txt
+-r requirements/tests.txt
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/docs.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/docs.txt
new file mode 100644
index 0000000000000000000000000000000000000000..89fbf86c01cb29f10f7e99c910248c4d5229da58
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/docs.txt
@@ -0,0 +1,4 @@
+recommonmark
+sphinx
+sphinx_markdown_tables
+sphinx_rtd_theme
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/optional.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/optional.txt
new file mode 100644
index 0000000000000000000000000000000000000000..47fa5933159eb068640f6b45281d36ab4af294cb
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/optional.txt
@@ -0,0 +1 @@
+cityscapesscripts
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/readthedocs.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/readthedocs.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0542bfce6dff3b002a1d33e53c0be975e7feed4a
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/readthedocs.txt
@@ -0,0 +1,3 @@
+mmcv
+torch
+torchvision
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/runtime.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/runtime.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4ba146c5647eb631374b845bf65b772341c6ae11
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/runtime.txt
@@ -0,0 +1,4 @@
+matplotlib
+numpy
+terminaltables
+timm
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/tests.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/tests.txt
new file mode 100644
index 0000000000000000000000000000000000000000..991fd711d4eed749f8f3440f9c4b448e3973575f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/requirements/tests.txt
@@ -0,0 +1,7 @@
+codecov
+flake8
+interrogate
+isort==4.3.21
+pytest
+xdoctest>=0.10.0
+yapf
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/resources/mmseg-logo.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/resources/mmseg-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..009083a9e80599a1893591ff362da377c94a0975
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/resources/mmseg-logo.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/resources/seg_demo.gif b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/resources/seg_demo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2f0760fe7a86912c07f9873eec3909ad41fe2acb
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/resources/seg_demo.gif differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/setup.cfg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/setup.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..708fb4ce33fcf55bd448bc2234f38c1891ae0356
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/setup.cfg
@@ -0,0 +1,13 @@
+[yapf]
+based_on_style = pep8
+blank_line_before_nested_class_or_def = true
+split_before_expression_after_opening_paren = true
+
+[isort]
+line_length = 79
+multi_line_output = 0
+known_standard_library = setuptools
+known_first_party = mmseg
+known_third_party = PIL,cityscapesscripts,cv2,detail,matplotlib,mmcv,numpy,onnxruntime,oss2,pytest,scipy,terminaltables,torch
+no_lines_before = STDLIB,LOCALFOLDER
+default_section = THIRDPARTY
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/setup.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e69551b8f1b221f2fc645e52c6baf020bf5d5e8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/setup.py
@@ -0,0 +1,126 @@
+from setuptools import find_packages, setup
+
+
+def readme():
+ with open('README.md', encoding='utf-8') as f:
+ content = f.read()
+ return content
+
+
+version_file = 'mmseg/version.py'
+
+
+def get_version():
+ with open(version_file, 'r') as f:
+ exec(compile(f.read(), version_file, 'exec'))
+ return locals()['__version__']
+
+
+def parse_requirements(fname='requirements.txt', with_version=True):
+ """Parse the package dependencies listed in a requirements file but strips
+ specific versioning information.
+
+ Args:
+ fname (str): path to requirements file
+ with_version (bool, default=False): if True include version specs
+
+ Returns:
+ List[str]: list of requirements items
+
+ CommandLine:
+ python -c "import setup; print(setup.parse_requirements())"
+ """
+ import sys
+ from os.path import exists
+ import re
+ require_fpath = fname
+
+ def parse_line(line):
+ """Parse information from a line in a requirements text file."""
+ if line.startswith('-r '):
+ # Allow specifying requirements in other files
+ target = line.split(' ')[1]
+ for info in parse_require_file(target):
+ yield info
+ else:
+ info = {'line': line}
+ if line.startswith('-e '):
+ info['package'] = line.split('#egg=')[1]
+ else:
+ # Remove versioning from the package
+ pat = '(' + '|'.join(['>=', '==', '>']) + ')'
+ parts = re.split(pat, line, maxsplit=1)
+ parts = [p.strip() for p in parts]
+
+ info['package'] = parts[0]
+ if len(parts) > 1:
+ op, rest = parts[1:]
+ if ';' in rest:
+ # Handle platform specific dependencies
+ # http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies
+ version, platform_deps = map(str.strip,
+ rest.split(';'))
+ info['platform_deps'] = platform_deps
+ else:
+ version = rest # NOQA
+ info['version'] = (op, version)
+ yield info
+
+ def parse_require_file(fpath):
+ with open(fpath, 'r') as f:
+ for line in f.readlines():
+ line = line.strip()
+ if line and not line.startswith('#'):
+ for info in parse_line(line):
+ yield info
+
+ def gen_packages_items():
+ if exists(require_fpath):
+ for info in parse_require_file(require_fpath):
+ parts = [info['package']]
+ if with_version and 'version' in info:
+ parts.extend(info['version'])
+ if not sys.version.startswith('3.4'):
+ # apparently package_deps are broken in 3.4
+ platform_deps = info.get('platform_deps')
+ if platform_deps is not None:
+ parts.append(';' + platform_deps)
+ item = ''.join(parts)
+ yield item
+
+ packages = list(gen_packages_items())
+ return packages
+
+
+if __name__ == '__main__':
+ setup(
+ name='mmsegmentation',
+ version=get_version(),
+ description='Open MMLab Semantic Segmentation Toolbox and Benchmark',
+ long_description=readme(),
+ long_description_content_type='text/markdown',
+ author='MMSegmentation Authors',
+ author_email='openmmlab@gmail.com',
+ keywords='computer vision, semantic segmentation',
+ url='http://github.com/open-mmlab/mmsegmentation',
+ packages=find_packages(exclude=('configs', 'tools', 'demo')),
+ classifiers=[
+ 'Development Status :: 4 - Beta',
+ 'License :: OSI Approved :: Apache Software License',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
+ ],
+ license='Apache License 2.0',
+ setup_requires=parse_requirements('requirements/build.txt'),
+ tests_require=parse_requirements('requirements/tests.txt'),
+ install_requires=parse_requirements('requirements/runtime.txt'),
+ extras_require={
+ 'all': parse_requirements('requirements.txt'),
+ 'tests': parse_requirements('requirements/tests.txt'),
+ 'build': parse_requirements('requirements/build.txt'),
+ 'optional': parse_requirements('requirements/optional.txt'),
+ },
+ ext_modules=[],
+ zip_safe=False)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/color.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/color.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..05d62b850a70ea53948b6a687f2c14967f882cf2
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/color.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/gray.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/gray.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..94edd7326f2fdcf311c11f4ad6a8edc62a9ac2a5
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/gray.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00000_gt.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00000_gt.png
new file mode 100644
index 0000000000000000000000000000000000000000..48fc125a0522fd06ce03d3e35f03f10b6302ff90
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00000_gt.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00001_gt.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00001_gt.png
new file mode 100644
index 0000000000000000000000000000000000000000..ccb49b05f2bdaafe355ff45f2224027038ca1a52
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00001_gt.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00002_gt.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00002_gt.png
new file mode 100644
index 0000000000000000000000000000000000000000..db7250cf0d9233694ec40eca96a5acb5b17fa150
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00002_gt.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00003_gt.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00003_gt.png
new file mode 100644
index 0000000000000000000000000000000000000000..f96a1be1b282e61f4f8611b9e04f3f9174fbe3ff
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00003_gt.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00004_gt.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00004_gt.png
new file mode 100644
index 0000000000000000000000000000000000000000..35b1cadfcda9e7a5d96d8b6f72c2054212b7688d
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/gts/00004_gt.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00000_img.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00000_img.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..33ab8e29f15a96983b9280a71920bac15db1d23f
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00000_img.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00001_img.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00001_img.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..49c222901cdeca4937b353060a458af0f018ff70
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00001_img.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00002_img.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00002_img.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6baeb5fdedad34ab66f31430eb172f27739e1d0e
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00002_img.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00003_img.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00003_img.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e889d759d741291324669ee45876cba1c1e30f1
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00003_img.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00004_img.jpg b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00004_img.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..474c915d8c375db85f5f56469ffc101bec2ee97e
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/imgs/00004_img.jpg differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/splits/train.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/splits/train.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9e25ab0266ec1191b5eba9a2c1b353cfd7541524
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/splits/train.txt
@@ -0,0 +1,4 @@
+00000
+00001
+00002
+00003
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/splits/val.txt b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/splits/val.txt
new file mode 100644
index 0000000000000000000000000000000000000000..59dd536625d36884256d1e6f24cbae2a96579396
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/pseudo_dataset/splits/val.txt
@@ -0,0 +1 @@
+00004
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/seg.png b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/seg.png
new file mode 100644
index 0000000000000000000000000000000000000000..f23a499cefac5d91e6924d7e192ff219727d6f9d
Binary files /dev/null and b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/data/seg.png differ
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_config.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_config.py
new file mode 100644
index 0000000000000000000000000000000000000000..b991fbfd31233b113a92e927ca6072b54457f73e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_config.py
@@ -0,0 +1,160 @@
+import glob
+import os
+from os.path import dirname, exists, isdir, join, relpath
+
+from mmcv import Config
+from torch import nn
+
+from mmseg.models import build_segmentor
+
+
+def _get_config_directory():
+ """Find the predefined segmentor config directory."""
+ try:
+ # Assume we are running in the source mmsegmentation repo
+ repo_dpath = dirname(dirname(__file__))
+ except NameError:
+ # For IPython development when this __file__ is not defined
+ import mmseg
+ repo_dpath = dirname(dirname(mmseg.__file__))
+ config_dpath = join(repo_dpath, 'configs')
+ if not exists(config_dpath):
+ raise Exception('Cannot find config path')
+ return config_dpath
+
+
+def test_config_build_segmentor():
+ """Test that all segmentation models defined in the configs can be
+ initialized."""
+ config_dpath = _get_config_directory()
+ print('Found config_dpath = {!r}'.format(config_dpath))
+
+ config_fpaths = []
+ # one config each sub folder
+ for sub_folder in os.listdir(config_dpath):
+ if isdir(sub_folder):
+ config_fpaths.append(
+ list(glob.glob(join(config_dpath, sub_folder, '*.py')))[0])
+ config_fpaths = [p for p in config_fpaths if p.find('_base_') == -1]
+ config_names = [relpath(p, config_dpath) for p in config_fpaths]
+
+ print('Using {} config files'.format(len(config_names)))
+
+ for config_fname in config_names:
+ config_fpath = join(config_dpath, config_fname)
+ config_mod = Config.fromfile(config_fpath)
+
+ config_mod.model
+ print('Building segmentor, config_fpath = {!r}'.format(config_fpath))
+
+ # Remove pretrained keys to allow for testing in an offline environment
+ if 'pretrained' in config_mod.model:
+ config_mod.model['pretrained'] = None
+
+ print('building {}'.format(config_fname))
+ segmentor = build_segmentor(config_mod.model)
+ assert segmentor is not None
+
+ head_config = config_mod.model['decode_head']
+ _check_decode_head(head_config, segmentor.decode_head)
+
+
+def test_config_data_pipeline():
+ """Test whether the data pipeline is valid and can process corner cases.
+
+ CommandLine:
+ xdoctest -m tests/test_config.py test_config_build_data_pipeline
+ """
+ from mmcv import Config
+ from mmseg.datasets.pipelines import Compose
+ import numpy as np
+
+ config_dpath = _get_config_directory()
+ print('Found config_dpath = {!r}'.format(config_dpath))
+
+ import glob
+ config_fpaths = list(glob.glob(join(config_dpath, '**', '*.py')))
+ config_fpaths = [p for p in config_fpaths if p.find('_base_') == -1]
+ config_names = [relpath(p, config_dpath) for p in config_fpaths]
+
+ print('Using {} config files'.format(len(config_names)))
+
+ for config_fname in config_names:
+ config_fpath = join(config_dpath, config_fname)
+ print(
+ 'Building data pipeline, config_fpath = {!r}'.format(config_fpath))
+ config_mod = Config.fromfile(config_fpath)
+
+ # remove loading pipeline
+ load_img_pipeline = config_mod.train_pipeline.pop(0)
+ to_float32 = load_img_pipeline.get('to_float32', False)
+ config_mod.train_pipeline.pop(0)
+ config_mod.test_pipeline.pop(0)
+
+ train_pipeline = Compose(config_mod.train_pipeline)
+ test_pipeline = Compose(config_mod.test_pipeline)
+
+ img = np.random.randint(0, 255, size=(1024, 2048, 3), dtype=np.uint8)
+ if to_float32:
+ img = img.astype(np.float32)
+ seg = np.random.randint(0, 255, size=(1024, 2048, 1), dtype=np.uint8)
+
+ results = dict(
+ filename='test_img.png',
+ ori_filename='test_img.png',
+ img=img,
+ img_shape=img.shape,
+ ori_shape=img.shape,
+ gt_semantic_seg=seg)
+ results['seg_fields'] = ['gt_semantic_seg']
+
+ print('Test training data pipeline: \n{!r}'.format(train_pipeline))
+ output_results = train_pipeline(results)
+ assert output_results is not None
+
+ results = dict(
+ filename='test_img.png',
+ ori_filename='test_img.png',
+ img=img,
+ img_shape=img.shape,
+ ori_shape=img.shape,
+ )
+ print('Test testing data pipeline: \n{!r}'.format(test_pipeline))
+ output_results = test_pipeline(results)
+ assert output_results is not None
+
+
+def _check_decode_head(decode_head_cfg, decode_head):
+ if isinstance(decode_head_cfg, list):
+ assert isinstance(decode_head, nn.ModuleList)
+ assert len(decode_head_cfg) == len(decode_head)
+ num_heads = len(decode_head)
+ for i in range(num_heads):
+ _check_decode_head(decode_head_cfg[i], decode_head[i])
+ return
+ # check consistency between head_config and roi_head
+ assert decode_head_cfg['type'] == decode_head.__class__.__name__
+
+ assert decode_head_cfg['type'] == decode_head.__class__.__name__
+
+ in_channels = decode_head_cfg.in_channels
+ input_transform = decode_head.input_transform
+ assert input_transform in ['resize_concat', 'multiple_select', None]
+ if input_transform is not None:
+ assert isinstance(in_channels, (list, tuple))
+ assert isinstance(decode_head.in_index, (list, tuple))
+ assert len(in_channels) == len(decode_head.in_index)
+ elif input_transform == 'resize_concat':
+ assert sum(in_channels) == decode_head.in_channels
+ else:
+ assert isinstance(in_channels, int)
+ assert in_channels == decode_head.in_channels
+ assert isinstance(decode_head.in_index, int)
+
+ if decode_head_cfg['type'] == 'PointHead':
+ assert decode_head_cfg.channels+decode_head_cfg.num_classes == \
+ decode_head.fc_seg.in_channels
+ assert decode_head.fc_seg.out_channels == decode_head_cfg.num_classes
+ else:
+ assert decode_head_cfg.channels == decode_head.conv_seg.in_channels
+ assert decode_head.conv_seg.out_channels == decode_head_cfg.num_classes
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_dataset.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e19c30f084aefd5a7567f3b05aa3a64e25db4bf
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_dataset.py
@@ -0,0 +1,291 @@
+import os.path as osp
+from unittest.mock import MagicMock, patch
+
+import numpy as np
+import pytest
+
+from mmseg.core.evaluation import get_classes, get_palette
+from mmseg.datasets import (DATASETS, ADE20KDataset, CityscapesDataset,
+ ConcatDataset, CustomDataset, PascalVOCDataset,
+ RepeatDataset)
+
+
+def test_classes():
+ assert list(CityscapesDataset.CLASSES) == get_classes('cityscapes')
+ assert list(PascalVOCDataset.CLASSES) == get_classes('voc') == get_classes(
+ 'pascal_voc')
+ assert list(
+ ADE20KDataset.CLASSES) == get_classes('ade') == get_classes('ade20k')
+
+ with pytest.raises(ValueError):
+ get_classes('unsupported')
+
+
+def test_palette():
+ assert CityscapesDataset.PALETTE == get_palette('cityscapes')
+ assert PascalVOCDataset.PALETTE == get_palette('voc') == get_palette(
+ 'pascal_voc')
+ assert ADE20KDataset.PALETTE == get_palette('ade') == get_palette('ade20k')
+
+ with pytest.raises(ValueError):
+ get_palette('unsupported')
+
+
+@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock)
+@patch('mmseg.datasets.CustomDataset.__getitem__',
+ MagicMock(side_effect=lambda idx: idx))
+def test_dataset_wrapper():
+ # CustomDataset.load_annotations = MagicMock()
+ # CustomDataset.__getitem__ = MagicMock(side_effect=lambda idx: idx)
+ dataset_a = CustomDataset(img_dir=MagicMock(), pipeline=[])
+ len_a = 10
+ dataset_a.img_infos = MagicMock()
+ dataset_a.img_infos.__len__.return_value = len_a
+ dataset_b = CustomDataset(img_dir=MagicMock(), pipeline=[])
+ len_b = 20
+ dataset_b.img_infos = MagicMock()
+ dataset_b.img_infos.__len__.return_value = len_b
+
+ concat_dataset = ConcatDataset([dataset_a, dataset_b])
+ assert concat_dataset[5] == 5
+ assert concat_dataset[25] == 15
+ assert len(concat_dataset) == len(dataset_a) + len(dataset_b)
+
+ repeat_dataset = RepeatDataset(dataset_a, 10)
+ assert repeat_dataset[5] == 5
+ assert repeat_dataset[15] == 5
+ assert repeat_dataset[27] == 7
+ assert len(repeat_dataset) == 10 * len(dataset_a)
+
+
+def test_custom_dataset():
+ img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True)
+ crop_size = (512, 1024)
+ train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(128, 256), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+ ]
+ test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(128, 256),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+ ]
+
+ # with img_dir and ann_dir
+ train_dataset = CustomDataset(
+ train_pipeline,
+ data_root=osp.join(osp.dirname(__file__), '../data/pseudo_dataset'),
+ img_dir='imgs/',
+ ann_dir='gts/',
+ img_suffix='img.jpg',
+ seg_map_suffix='gt.png')
+ assert len(train_dataset) == 5
+
+ # with img_dir, ann_dir, split
+ train_dataset = CustomDataset(
+ train_pipeline,
+ data_root=osp.join(osp.dirname(__file__), '../data/pseudo_dataset'),
+ img_dir='imgs/',
+ ann_dir='gts/',
+ img_suffix='img.jpg',
+ seg_map_suffix='gt.png',
+ split='splits/train.txt')
+ assert len(train_dataset) == 4
+
+ # no data_root
+ train_dataset = CustomDataset(
+ train_pipeline,
+ img_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs'),
+ ann_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/gts'),
+ img_suffix='img.jpg',
+ seg_map_suffix='gt.png')
+ assert len(train_dataset) == 5
+
+ # with data_root but img_dir/ann_dir are abs path
+ train_dataset = CustomDataset(
+ train_pipeline,
+ data_root=osp.join(osp.dirname(__file__), '../data/pseudo_dataset'),
+ img_dir=osp.abspath(
+ osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs')),
+ ann_dir=osp.abspath(
+ osp.join(osp.dirname(__file__), '../data/pseudo_dataset/gts')),
+ img_suffix='img.jpg',
+ seg_map_suffix='gt.png')
+ assert len(train_dataset) == 5
+
+ # test_mode=True
+ test_dataset = CustomDataset(
+ test_pipeline,
+ img_dir=osp.join(osp.dirname(__file__), '../data/pseudo_dataset/imgs'),
+ img_suffix='img.jpg',
+ test_mode=True)
+ assert len(test_dataset) == 5
+
+ # training data get
+ train_data = train_dataset[0]
+ assert isinstance(train_data, dict)
+
+ # test data get
+ test_data = test_dataset[0]
+ assert isinstance(test_data, dict)
+
+ # get gt seg map
+ gt_seg_maps = train_dataset.get_gt_seg_maps()
+ assert len(gt_seg_maps) == 5
+
+ # evaluation
+ pseudo_results = []
+ for gt_seg_map in gt_seg_maps:
+ h, w = gt_seg_map.shape
+ pseudo_results.append(np.random.randint(low=0, high=7, size=(h, w)))
+ eval_results = train_dataset.evaluate(pseudo_results, metric='mIoU')
+ assert isinstance(eval_results, dict)
+ assert 'mIoU' in eval_results
+ assert 'mAcc' in eval_results
+ assert 'aAcc' in eval_results
+
+ eval_results = train_dataset.evaluate(pseudo_results, metric='mDice')
+ assert isinstance(eval_results, dict)
+ assert 'mDice' in eval_results
+ assert 'mAcc' in eval_results
+ assert 'aAcc' in eval_results
+
+ eval_results = train_dataset.evaluate(
+ pseudo_results, metric=['mDice', 'mIoU'])
+ assert isinstance(eval_results, dict)
+ assert 'mIoU' in eval_results
+ assert 'mDice' in eval_results
+ assert 'mAcc' in eval_results
+ assert 'aAcc' in eval_results
+
+ # evaluation with CLASSES
+ train_dataset.CLASSES = tuple(['a'] * 7)
+ eval_results = train_dataset.evaluate(pseudo_results, metric='mIoU')
+ assert isinstance(eval_results, dict)
+ assert 'mIoU' in eval_results
+ assert 'mAcc' in eval_results
+ assert 'aAcc' in eval_results
+
+ eval_results = train_dataset.evaluate(pseudo_results, metric='mDice')
+ assert isinstance(eval_results, dict)
+ assert 'mDice' in eval_results
+ assert 'mAcc' in eval_results
+ assert 'aAcc' in eval_results
+
+ eval_results = train_dataset.evaluate(
+ pseudo_results, metric=['mIoU', 'mDice'])
+ assert isinstance(eval_results, dict)
+ assert 'mIoU' in eval_results
+ assert 'mDice' in eval_results
+ assert 'mAcc' in eval_results
+ assert 'aAcc' in eval_results
+
+
+@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock)
+@patch('mmseg.datasets.CustomDataset.__getitem__',
+ MagicMock(side_effect=lambda idx: idx))
+@pytest.mark.parametrize('dataset, classes', [
+ ('ADE20KDataset', ('wall', 'building')),
+ ('CityscapesDataset', ('road', 'sidewalk')),
+ ('CustomDataset', ('bus', 'car')),
+ ('PascalVOCDataset', ('aeroplane', 'bicycle')),
+])
+def test_custom_classes_override_default(dataset, classes):
+
+ dataset_class = DATASETS.get(dataset)
+
+ original_classes = dataset_class.CLASSES
+
+ # Test setting classes as a tuple
+ custom_dataset = dataset_class(
+ pipeline=[],
+ img_dir=MagicMock(),
+ split=MagicMock(),
+ classes=classes,
+ test_mode=True)
+
+ assert custom_dataset.CLASSES != original_classes
+ assert custom_dataset.CLASSES == classes
+
+ # Test setting classes as a list
+ custom_dataset = dataset_class(
+ pipeline=[],
+ img_dir=MagicMock(),
+ split=MagicMock(),
+ classes=list(classes),
+ test_mode=True)
+
+ assert custom_dataset.CLASSES != original_classes
+ assert custom_dataset.CLASSES == list(classes)
+
+ # Test overriding not a subset
+ custom_dataset = dataset_class(
+ pipeline=[],
+ img_dir=MagicMock(),
+ split=MagicMock(),
+ classes=[classes[0]],
+ test_mode=True)
+
+ assert custom_dataset.CLASSES != original_classes
+ assert custom_dataset.CLASSES == [classes[0]]
+
+ # Test default behavior
+ custom_dataset = dataset_class(
+ pipeline=[],
+ img_dir=MagicMock(),
+ split=MagicMock(),
+ classes=None,
+ test_mode=True)
+
+ assert custom_dataset.CLASSES == original_classes
+
+
+@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock)
+@patch('mmseg.datasets.CustomDataset.__getitem__',
+ MagicMock(side_effect=lambda idx: idx))
+def test_custom_dataset_random_palette_is_generated():
+ dataset = CustomDataset(
+ pipeline=[],
+ img_dir=MagicMock(),
+ split=MagicMock(),
+ classes=('bus', 'car'),
+ test_mode=True)
+ assert len(dataset.PALETTE) == 2
+ for class_color in dataset.PALETTE:
+ assert len(class_color) == 3
+ assert all(x >= 0 and x <= 255 for x in class_color)
+
+
+@patch('mmseg.datasets.CustomDataset.load_annotations', MagicMock)
+@patch('mmseg.datasets.CustomDataset.__getitem__',
+ MagicMock(side_effect=lambda idx: idx))
+def test_custom_dataset_custom_palette():
+ dataset = CustomDataset(
+ pipeline=[],
+ img_dir=MagicMock(),
+ split=MagicMock(),
+ classes=('bus', 'car'),
+ palette=[[100, 100, 100], [200, 200, 200]],
+ test_mode=True)
+ assert tuple(dataset.PALETTE) == tuple([[100, 100, 100], [200, 200, 200]])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_dataset_builder.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_dataset_builder.py
new file mode 100644
index 0000000000000000000000000000000000000000..c6827e4d1758aa43716aceab793bb33da85a2398
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_dataset_builder.py
@@ -0,0 +1,192 @@
+import math
+import os.path as osp
+
+import pytest
+from torch.utils.data import (DistributedSampler, RandomSampler,
+ SequentialSampler)
+
+from mmseg.datasets import (DATASETS, ConcatDataset, build_dataloader,
+ build_dataset)
+
+
+@DATASETS.register_module()
+class ToyDataset(object):
+
+ def __init__(self, cnt=0):
+ self.cnt = cnt
+
+ def __item__(self, idx):
+ return idx
+
+ def __len__(self):
+ return 100
+
+
+def test_build_dataset():
+ cfg = dict(type='ToyDataset')
+ dataset = build_dataset(cfg)
+ assert isinstance(dataset, ToyDataset)
+ assert dataset.cnt == 0
+ dataset = build_dataset(cfg, default_args=dict(cnt=1))
+ assert isinstance(dataset, ToyDataset)
+ assert dataset.cnt == 1
+
+ data_root = osp.join(osp.dirname(__file__), '../data/pseudo_dataset')
+ img_dir = 'imgs/'
+ ann_dir = 'gts/'
+
+ # We use same dir twice for simplicity
+ # with ann_dir
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=[img_dir, img_dir],
+ ann_dir=[ann_dir, ann_dir])
+ dataset = build_dataset(cfg)
+ assert isinstance(dataset, ConcatDataset)
+ assert len(dataset) == 10
+
+ # with ann_dir, split
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=img_dir,
+ ann_dir=ann_dir,
+ split=['splits/train.txt', 'splits/val.txt'])
+ dataset = build_dataset(cfg)
+ assert isinstance(dataset, ConcatDataset)
+ assert len(dataset) == 5
+
+ # with ann_dir, split
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=img_dir,
+ ann_dir=[ann_dir, ann_dir],
+ split=['splits/train.txt', 'splits/val.txt'])
+ dataset = build_dataset(cfg)
+ assert isinstance(dataset, ConcatDataset)
+ assert len(dataset) == 5
+
+ # test mode
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=[img_dir, img_dir],
+ test_mode=True)
+ dataset = build_dataset(cfg)
+ assert isinstance(dataset, ConcatDataset)
+ assert len(dataset) == 10
+
+ # test mode with splits
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=[img_dir, img_dir],
+ split=['splits/val.txt', 'splits/val.txt'],
+ test_mode=True)
+ dataset = build_dataset(cfg)
+ assert isinstance(dataset, ConcatDataset)
+ assert len(dataset) == 2
+
+ # len(ann_dir) should be zero or len(img_dir) when len(img_dir) > 1
+ with pytest.raises(AssertionError):
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=[img_dir, img_dir],
+ ann_dir=[ann_dir, ann_dir, ann_dir])
+ build_dataset(cfg)
+
+ # len(splits) should be zero or len(img_dir) when len(img_dir) > 1
+ with pytest.raises(AssertionError):
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=[img_dir, img_dir],
+ split=['splits/val.txt', 'splits/val.txt', 'splits/val.txt'])
+ build_dataset(cfg)
+
+ # len(splits) == len(ann_dir) when only len(img_dir) == 1 and len(
+ # ann_dir) > 1
+ with pytest.raises(AssertionError):
+ cfg = dict(
+ type='CustomDataset',
+ pipeline=[],
+ data_root=data_root,
+ img_dir=img_dir,
+ ann_dir=[ann_dir, ann_dir],
+ split=['splits/val.txt', 'splits/val.txt', 'splits/val.txt'])
+ build_dataset(cfg)
+
+
+def test_build_dataloader():
+ dataset = ToyDataset()
+ samples_per_gpu = 3
+ # dist=True, shuffle=True, 1GPU
+ dataloader = build_dataloader(
+ dataset, samples_per_gpu=samples_per_gpu, workers_per_gpu=2)
+ assert dataloader.batch_size == samples_per_gpu
+ assert len(dataloader) == int(math.ceil(len(dataset) / samples_per_gpu))
+ assert isinstance(dataloader.sampler, DistributedSampler)
+ assert dataloader.sampler.shuffle
+
+ # dist=True, shuffle=False, 1GPU
+ dataloader = build_dataloader(
+ dataset,
+ samples_per_gpu=samples_per_gpu,
+ workers_per_gpu=2,
+ shuffle=False)
+ assert dataloader.batch_size == samples_per_gpu
+ assert len(dataloader) == int(math.ceil(len(dataset) / samples_per_gpu))
+ assert isinstance(dataloader.sampler, DistributedSampler)
+ assert not dataloader.sampler.shuffle
+
+ # dist=True, shuffle=True, 8GPU
+ dataloader = build_dataloader(
+ dataset,
+ samples_per_gpu=samples_per_gpu,
+ workers_per_gpu=2,
+ num_gpus=8)
+ assert dataloader.batch_size == samples_per_gpu
+ assert len(dataloader) == int(math.ceil(len(dataset) / samples_per_gpu))
+ assert dataloader.num_workers == 2
+
+ # dist=False, shuffle=True, 1GPU
+ dataloader = build_dataloader(
+ dataset,
+ samples_per_gpu=samples_per_gpu,
+ workers_per_gpu=2,
+ dist=False)
+ assert dataloader.batch_size == samples_per_gpu
+ assert len(dataloader) == int(math.ceil(len(dataset) / samples_per_gpu))
+ assert isinstance(dataloader.sampler, RandomSampler)
+ assert dataloader.num_workers == 2
+
+ # dist=False, shuffle=False, 1GPU
+ dataloader = build_dataloader(
+ dataset,
+ samples_per_gpu=3,
+ workers_per_gpu=2,
+ shuffle=False,
+ dist=False)
+ assert dataloader.batch_size == samples_per_gpu
+ assert len(dataloader) == int(math.ceil(len(dataset) / samples_per_gpu))
+ assert isinstance(dataloader.sampler, SequentialSampler)
+ assert dataloader.num_workers == 2
+
+ # dist=False, shuffle=True, 8GPU
+ dataloader = build_dataloader(
+ dataset, samples_per_gpu=3, workers_per_gpu=2, num_gpus=8, dist=False)
+ assert dataloader.batch_size == samples_per_gpu * 8
+ assert len(dataloader) == int(
+ math.ceil(len(dataset) / samples_per_gpu / 8))
+ assert isinstance(dataloader.sampler, RandomSampler)
+ assert dataloader.num_workers == 16
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_loading.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_loading.py
new file mode 100644
index 0000000000000000000000000000000000000000..e8aa5d31301caa9a40dfa8ebd8f39ee72d4f6a8f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_loading.py
@@ -0,0 +1,198 @@
+import copy
+import os.path as osp
+import tempfile
+
+import mmcv
+import numpy as np
+
+from mmseg.datasets.pipelines import LoadAnnotations, LoadImageFromFile
+
+
+class TestLoading(object):
+
+ @classmethod
+ def setup_class(cls):
+ cls.data_prefix = osp.join(osp.dirname(__file__), '../data')
+
+ def test_load_img(self):
+ results = dict(
+ img_prefix=self.data_prefix, img_info=dict(filename='color.jpg'))
+ transform = LoadImageFromFile()
+ results = transform(copy.deepcopy(results))
+ assert results['filename'] == osp.join(self.data_prefix, 'color.jpg')
+ assert results['ori_filename'] == 'color.jpg'
+ assert results['img'].shape == (288, 512, 3)
+ assert results['img'].dtype == np.uint8
+ assert results['img_shape'] == (288, 512, 3)
+ assert results['ori_shape'] == (288, 512, 3)
+ assert results['pad_shape'] == (288, 512, 3)
+ assert results['scale_factor'] == 1.0
+ np.testing.assert_equal(results['img_norm_cfg']['mean'],
+ np.zeros(3, dtype=np.float32))
+ assert repr(transform) == transform.__class__.__name__ + \
+ "(to_float32=False,color_type='color',imdecode_backend='cv2')"
+
+ # no img_prefix
+ results = dict(
+ img_prefix=None, img_info=dict(filename='tests/data/color.jpg'))
+ transform = LoadImageFromFile()
+ results = transform(copy.deepcopy(results))
+ assert results['filename'] == 'tests/data/color.jpg'
+ assert results['ori_filename'] == 'tests/data/color.jpg'
+ assert results['img'].shape == (288, 512, 3)
+
+ # to_float32
+ transform = LoadImageFromFile(to_float32=True)
+ results = transform(copy.deepcopy(results))
+ assert results['img'].dtype == np.float32
+
+ # gray image
+ results = dict(
+ img_prefix=self.data_prefix, img_info=dict(filename='gray.jpg'))
+ transform = LoadImageFromFile()
+ results = transform(copy.deepcopy(results))
+ assert results['img'].shape == (288, 512, 3)
+ assert results['img'].dtype == np.uint8
+
+ transform = LoadImageFromFile(color_type='unchanged')
+ results = transform(copy.deepcopy(results))
+ assert results['img'].shape == (288, 512)
+ assert results['img'].dtype == np.uint8
+ np.testing.assert_equal(results['img_norm_cfg']['mean'],
+ np.zeros(1, dtype=np.float32))
+
+ def test_load_seg(self):
+ results = dict(
+ seg_prefix=self.data_prefix,
+ ann_info=dict(seg_map='seg.png'),
+ seg_fields=[])
+ transform = LoadAnnotations()
+ results = transform(copy.deepcopy(results))
+ assert results['seg_fields'] == ['gt_semantic_seg']
+ assert results['gt_semantic_seg'].shape == (288, 512)
+ assert results['gt_semantic_seg'].dtype == np.uint8
+ assert repr(transform) == transform.__class__.__name__ + \
+ "(reduce_zero_label=False,imdecode_backend='pillow')"
+
+ # no img_prefix
+ results = dict(
+ seg_prefix=None,
+ ann_info=dict(seg_map='tests/data/seg.png'),
+ seg_fields=[])
+ transform = LoadAnnotations()
+ results = transform(copy.deepcopy(results))
+ assert results['gt_semantic_seg'].shape == (288, 512)
+ assert results['gt_semantic_seg'].dtype == np.uint8
+
+ # reduce_zero_label
+ transform = LoadAnnotations(reduce_zero_label=True)
+ results = transform(copy.deepcopy(results))
+ assert results['gt_semantic_seg'].shape == (288, 512)
+ assert results['gt_semantic_seg'].dtype == np.uint8
+
+ # mmcv backend
+ results = dict(
+ seg_prefix=self.data_prefix,
+ ann_info=dict(seg_map='seg.png'),
+ seg_fields=[])
+ transform = LoadAnnotations(imdecode_backend='pillow')
+ results = transform(copy.deepcopy(results))
+ # this image is saved by PIL
+ assert results['gt_semantic_seg'].shape == (288, 512)
+ assert results['gt_semantic_seg'].dtype == np.uint8
+
+ def test_load_seg_custom_classes(self):
+
+ test_img = np.random.rand(10, 10)
+ test_gt = np.zeros_like(test_img)
+ test_gt[2:4, 2:4] = 1
+ test_gt[2:4, 6:8] = 2
+ test_gt[6:8, 2:4] = 3
+ test_gt[6:8, 6:8] = 4
+
+ tmp_dir = tempfile.TemporaryDirectory()
+ img_path = osp.join(tmp_dir.name, 'img.jpg')
+ gt_path = osp.join(tmp_dir.name, 'gt.png')
+
+ mmcv.imwrite(test_img, img_path)
+ mmcv.imwrite(test_gt, gt_path)
+
+ # test only train with label with id 3
+ results = dict(
+ img_info=dict(filename=img_path),
+ ann_info=dict(seg_map=gt_path),
+ label_map={
+ 0: 0,
+ 1: 0,
+ 2: 0,
+ 3: 1,
+ 4: 0
+ },
+ seg_fields=[])
+
+ load_imgs = LoadImageFromFile()
+ results = load_imgs(copy.deepcopy(results))
+
+ load_anns = LoadAnnotations()
+ results = load_anns(copy.deepcopy(results))
+
+ gt_array = results['gt_semantic_seg']
+
+ true_mask = np.zeros_like(gt_array)
+ true_mask[6:8, 2:4] = 1
+
+ assert results['seg_fields'] == ['gt_semantic_seg']
+ assert gt_array.shape == (10, 10)
+ assert gt_array.dtype == np.uint8
+ np.testing.assert_array_equal(gt_array, true_mask)
+
+ # test only train with label with id 4 and 3
+ results = dict(
+ img_info=dict(filename=img_path),
+ ann_info=dict(seg_map=gt_path),
+ label_map={
+ 0: 0,
+ 1: 0,
+ 2: 0,
+ 3: 2,
+ 4: 1
+ },
+ seg_fields=[])
+
+ load_imgs = LoadImageFromFile()
+ results = load_imgs(copy.deepcopy(results))
+
+ load_anns = LoadAnnotations()
+ results = load_anns(copy.deepcopy(results))
+
+ gt_array = results['gt_semantic_seg']
+
+ true_mask = np.zeros_like(gt_array)
+ true_mask[6:8, 2:4] = 2
+ true_mask[6:8, 6:8] = 1
+
+ assert results['seg_fields'] == ['gt_semantic_seg']
+ assert gt_array.shape == (10, 10)
+ assert gt_array.dtype == np.uint8
+ np.testing.assert_array_equal(gt_array, true_mask)
+
+ # test no custom classes
+ results = dict(
+ img_info=dict(filename=img_path),
+ ann_info=dict(seg_map=gt_path),
+ seg_fields=[])
+
+ load_imgs = LoadImageFromFile()
+ results = load_imgs(copy.deepcopy(results))
+
+ load_anns = LoadAnnotations()
+ results = load_anns(copy.deepcopy(results))
+
+ gt_array = results['gt_semantic_seg']
+
+ assert results['seg_fields'] == ['gt_semantic_seg']
+ assert gt_array.shape == (10, 10)
+ assert gt_array.dtype == np.uint8
+ np.testing.assert_array_equal(gt_array, test_gt)
+
+ tmp_dir.cleanup()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_transform.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_transform.py
new file mode 100644
index 0000000000000000000000000000000000000000..a6417575c39e76607a522b6d1345e5ed2e19999e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_transform.py
@@ -0,0 +1,478 @@
+import copy
+import os.path as osp
+
+import mmcv
+import numpy as np
+import pytest
+from mmcv.utils import build_from_cfg
+from PIL import Image
+
+from mmseg.datasets.builder import PIPELINES
+
+
+def test_resize():
+ # test assertion if img_scale is a list
+ with pytest.raises(AssertionError):
+ transform = dict(type='Resize', img_scale=[1333, 800], keep_ratio=True)
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion if len(img_scale) while ratio_range is not None
+ with pytest.raises(AssertionError):
+ transform = dict(
+ type='Resize',
+ img_scale=[(1333, 800), (1333, 600)],
+ ratio_range=(0.9, 1.1),
+ keep_ratio=True)
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion for invalid multiscale_mode
+ with pytest.raises(AssertionError):
+ transform = dict(
+ type='Resize',
+ img_scale=[(1333, 800), (1333, 600)],
+ keep_ratio=True,
+ multiscale_mode='2333')
+ build_from_cfg(transform, PIPELINES)
+
+ transform = dict(type='Resize', img_scale=(1333, 800), keep_ratio=True)
+ resize_module = build_from_cfg(transform, PIPELINES)
+
+ results = dict()
+ # (288, 512, 3)
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ resized_results = resize_module(results.copy())
+ assert resized_results['img_shape'] == (750, 1333, 3)
+
+ # test keep_ratio=False
+ transform = dict(
+ type='Resize',
+ img_scale=(1280, 800),
+ multiscale_mode='value',
+ keep_ratio=False)
+ resize_module = build_from_cfg(transform, PIPELINES)
+ resized_results = resize_module(results.copy())
+ assert resized_results['img_shape'] == (800, 1280, 3)
+
+ # test multiscale_mode='range'
+ transform = dict(
+ type='Resize',
+ img_scale=[(1333, 400), (1333, 1200)],
+ multiscale_mode='range',
+ keep_ratio=True)
+ resize_module = build_from_cfg(transform, PIPELINES)
+ resized_results = resize_module(results.copy())
+ assert max(resized_results['img_shape'][:2]) <= 1333
+ assert min(resized_results['img_shape'][:2]) >= 400
+ assert min(resized_results['img_shape'][:2]) <= 1200
+
+ # test multiscale_mode='value'
+ transform = dict(
+ type='Resize',
+ img_scale=[(1333, 800), (1333, 400)],
+ multiscale_mode='value',
+ keep_ratio=True)
+ resize_module = build_from_cfg(transform, PIPELINES)
+ resized_results = resize_module(results.copy())
+ assert resized_results['img_shape'] in [(750, 1333, 3), (400, 711, 3)]
+
+ # test multiscale_mode='range'
+ transform = dict(
+ type='Resize',
+ img_scale=(1333, 800),
+ ratio_range=(0.9, 1.1),
+ keep_ratio=True)
+ resize_module = build_from_cfg(transform, PIPELINES)
+ resized_results = resize_module(results.copy())
+ assert max(resized_results['img_shape'][:2]) <= 1333 * 1.1
+
+ # test img_scale=None and ratio_range is tuple.
+ # img shape: (288, 512, 3)
+ transform = dict(
+ type='Resize', img_scale=None, ratio_range=(0.5, 2.0), keep_ratio=True)
+ resize_module = build_from_cfg(transform, PIPELINES)
+ resized_results = resize_module(results.copy())
+ assert int(288 * 0.5) <= resized_results['img_shape'][0] <= 288 * 2.0
+ assert int(512 * 0.5) <= resized_results['img_shape'][1] <= 512 * 2.0
+
+
+def test_flip():
+ # test assertion for invalid prob
+ with pytest.raises(AssertionError):
+ transform = dict(type='RandomFlip', prob=1.5)
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion for invalid direction
+ with pytest.raises(AssertionError):
+ transform = dict(type='RandomFlip', prob=1, direction='horizonta')
+ build_from_cfg(transform, PIPELINES)
+
+ transform = dict(type='RandomFlip', prob=1)
+ flip_module = build_from_cfg(transform, PIPELINES)
+
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ original_img = copy.deepcopy(img)
+ seg = np.array(
+ Image.open(osp.join(osp.dirname(__file__), '../data/seg.png')))
+ original_seg = copy.deepcopy(seg)
+ results['img'] = img
+ results['gt_semantic_seg'] = seg
+ results['seg_fields'] = ['gt_semantic_seg']
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = flip_module(results)
+
+ flip_module = build_from_cfg(transform, PIPELINES)
+ results = flip_module(results)
+ assert np.equal(original_img, results['img']).all()
+ assert np.equal(original_seg, results['gt_semantic_seg']).all()
+
+
+def test_random_crop():
+ # test assertion for invalid random crop
+ with pytest.raises(AssertionError):
+ transform = dict(type='RandomCrop', crop_size=(-1, 0))
+ build_from_cfg(transform, PIPELINES)
+
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ seg = np.array(
+ Image.open(osp.join(osp.dirname(__file__), '../data/seg.png')))
+ results['img'] = img
+ results['gt_semantic_seg'] = seg
+ results['seg_fields'] = ['gt_semantic_seg']
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ h, w, _ = img.shape
+ transform = dict(type='RandomCrop', crop_size=(h - 20, w - 20))
+ crop_module = build_from_cfg(transform, PIPELINES)
+ results = crop_module(results)
+ assert results['img'].shape[:2] == (h - 20, w - 20)
+ assert results['img_shape'][:2] == (h - 20, w - 20)
+ assert results['gt_semantic_seg'].shape[:2] == (h - 20, w - 20)
+
+
+def test_pad():
+ # test assertion if both size_divisor and size is None
+ with pytest.raises(AssertionError):
+ transform = dict(type='Pad')
+ build_from_cfg(transform, PIPELINES)
+
+ transform = dict(type='Pad', size_divisor=32)
+ transform = build_from_cfg(transform, PIPELINES)
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ original_img = copy.deepcopy(img)
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+ # original img already divisible by 32
+ assert np.equal(results['img'], original_img).all()
+ img_shape = results['img'].shape
+ assert img_shape[0] % 32 == 0
+ assert img_shape[1] % 32 == 0
+
+ resize_transform = dict(
+ type='Resize', img_scale=(1333, 800), keep_ratio=True)
+ resize_module = build_from_cfg(resize_transform, PIPELINES)
+ results = resize_module(results)
+ results = transform(results)
+ img_shape = results['img'].shape
+ assert img_shape[0] % 32 == 0
+ assert img_shape[1] % 32 == 0
+
+
+def test_rotate():
+ # test assertion degree should be tuple[float] or float
+ with pytest.raises(AssertionError):
+ transform = dict(type='RandomRotate', prob=0.5, degree=-10)
+ build_from_cfg(transform, PIPELINES)
+ # test assertion degree should be tuple[float] or float
+ with pytest.raises(AssertionError):
+ transform = dict(type='RandomRotate', prob=0.5, degree=(10., 20., 30.))
+ build_from_cfg(transform, PIPELINES)
+
+ transform = dict(type='RandomRotate', degree=10., prob=1.)
+ transform = build_from_cfg(transform, PIPELINES)
+
+ assert str(transform) == f'RandomRotate(' \
+ f'prob={1.}, ' \
+ f'degree=({-10.}, {10.}), ' \
+ f'pad_val={0}, ' \
+ f'seg_pad_val={255}, ' \
+ f'center={None}, ' \
+ f'auto_bound={False})'
+
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ h, w, _ = img.shape
+ seg = np.array(
+ Image.open(osp.join(osp.dirname(__file__), '../data/seg.png')))
+ results['img'] = img
+ results['gt_semantic_seg'] = seg
+ results['seg_fields'] = ['gt_semantic_seg']
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+ assert results['img'].shape[:2] == (h, w)
+ assert results['gt_semantic_seg'].shape[:2] == (h, w)
+
+
+def test_normalize():
+ img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True)
+ transform = dict(type='Normalize', **img_norm_cfg)
+ transform = build_from_cfg(transform, PIPELINES)
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ original_img = copy.deepcopy(img)
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+
+ mean = np.array(img_norm_cfg['mean'])
+ std = np.array(img_norm_cfg['std'])
+ converted_img = (original_img[..., ::-1] - mean) / std
+ assert np.allclose(results['img'], converted_img)
+
+
+def test_rgb2gray():
+ # test assertion out_channels should be greater than 0
+ with pytest.raises(AssertionError):
+ transform = dict(type='RGB2Gray', out_channels=-1)
+ build_from_cfg(transform, PIPELINES)
+ # test assertion weights should be tuple[float]
+ with pytest.raises(AssertionError):
+ transform = dict(type='RGB2Gray', out_channels=1, weights=1.1)
+ build_from_cfg(transform, PIPELINES)
+
+ # test out_channels is None
+ transform = dict(type='RGB2Gray')
+ transform = build_from_cfg(transform, PIPELINES)
+
+ assert str(transform) == f'RGB2Gray(' \
+ f'out_channels={None}, ' \
+ f'weights={(0.299, 0.587, 0.114)})'
+
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ h, w, c = img.shape
+ seg = np.array(
+ Image.open(osp.join(osp.dirname(__file__), '../data/seg.png')))
+ results['img'] = img
+ results['gt_semantic_seg'] = seg
+ results['seg_fields'] = ['gt_semantic_seg']
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+ assert results['img'].shape == (h, w, c)
+ assert results['img_shape'] == (h, w, c)
+ assert results['ori_shape'] == (h, w, c)
+
+ # test out_channels = 2
+ transform = dict(type='RGB2Gray', out_channels=2)
+ transform = build_from_cfg(transform, PIPELINES)
+
+ assert str(transform) == f'RGB2Gray(' \
+ f'out_channels={2}, ' \
+ f'weights={(0.299, 0.587, 0.114)})'
+
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ h, w, c = img.shape
+ seg = np.array(
+ Image.open(osp.join(osp.dirname(__file__), '../data/seg.png')))
+ results['img'] = img
+ results['gt_semantic_seg'] = seg
+ results['seg_fields'] = ['gt_semantic_seg']
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+ assert results['img'].shape == (h, w, 2)
+ assert results['img_shape'] == (h, w, 2)
+ assert results['ori_shape'] == (h, w, c)
+
+
+def test_adjust_gamma():
+ # test assertion if gamma <= 0
+ with pytest.raises(AssertionError):
+ transform = dict(type='AdjustGamma', gamma=0)
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion if gamma is list
+ with pytest.raises(AssertionError):
+ transform = dict(type='AdjustGamma', gamma=[1.2])
+ build_from_cfg(transform, PIPELINES)
+
+ # test with gamma = 1.2
+ transform = dict(type='AdjustGamma', gamma=1.2)
+ transform = build_from_cfg(transform, PIPELINES)
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ original_img = copy.deepcopy(img)
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+
+ inv_gamma = 1.0 / 1.2
+ table = np.array([((i / 255.0)**inv_gamma) * 255
+ for i in np.arange(0, 256)]).astype('uint8')
+ converted_img = mmcv.lut_transform(
+ np.array(original_img, dtype=np.uint8), table)
+ assert np.allclose(results['img'], converted_img)
+ assert str(transform) == f'AdjustGamma(gamma={1.2})'
+
+
+def test_rerange():
+ # test assertion if min_value or max_value is illegal
+ with pytest.raises(AssertionError):
+ transform = dict(type='Rerange', min_value=[0], max_value=[255])
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion if min_value >= max_value
+ with pytest.raises(AssertionError):
+ transform = dict(type='Rerange', min_value=1, max_value=1)
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion if img_min_value == img_max_value
+ with pytest.raises(AssertionError):
+ transform = dict(type='Rerange', min_value=0, max_value=1)
+ transform = build_from_cfg(transform, PIPELINES)
+ results = dict()
+ results['img'] = np.array([[1, 1], [1, 1]])
+ transform(results)
+
+ img_rerange_cfg = dict()
+ transform = dict(type='Rerange', **img_rerange_cfg)
+ transform = build_from_cfg(transform, PIPELINES)
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ original_img = copy.deepcopy(img)
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+
+ min_value = np.min(original_img)
+ max_value = np.max(original_img)
+ converted_img = (original_img - min_value) / (max_value - min_value) * 255
+
+ assert np.allclose(results['img'], converted_img)
+ assert str(transform) == f'Rerange(min_value={0}, max_value={255})'
+
+
+def test_CLAHE():
+ # test assertion if clip_limit is None
+ with pytest.raises(AssertionError):
+ transform = dict(type='CLAHE', clip_limit=None)
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion if tile_grid_size is illegal
+ with pytest.raises(AssertionError):
+ transform = dict(type='CLAHE', tile_grid_size=(8.0, 8.0))
+ build_from_cfg(transform, PIPELINES)
+
+ # test assertion if tile_grid_size is illegal
+ with pytest.raises(AssertionError):
+ transform = dict(type='CLAHE', tile_grid_size=(9, 9, 9))
+ build_from_cfg(transform, PIPELINES)
+
+ transform = dict(type='CLAHE', clip_limit=2)
+ transform = build_from_cfg(transform, PIPELINES)
+ results = dict()
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ original_img = copy.deepcopy(img)
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ results = transform(results)
+
+ converted_img = np.empty(original_img.shape)
+ for i in range(original_img.shape[2]):
+ converted_img[:, :, i] = mmcv.clahe(
+ np.array(original_img[:, :, i], dtype=np.uint8), 2, (8, 8))
+
+ assert np.allclose(results['img'], converted_img)
+ assert str(transform) == f'CLAHE(clip_limit={2}, tile_grid_size={(8, 8)})'
+
+
+def test_seg_rescale():
+ results = dict()
+ seg = np.array(
+ Image.open(osp.join(osp.dirname(__file__), '../data/seg.png')))
+ results['gt_semantic_seg'] = seg
+ results['seg_fields'] = ['gt_semantic_seg']
+ h, w = seg.shape
+
+ transform = dict(type='SegRescale', scale_factor=1. / 2)
+ rescale_module = build_from_cfg(transform, PIPELINES)
+ rescale_results = rescale_module(results.copy())
+ assert rescale_results['gt_semantic_seg'].shape == (h // 2, w // 2)
+
+ transform = dict(type='SegRescale', scale_factor=1)
+ rescale_module = build_from_cfg(transform, PIPELINES)
+ rescale_results = rescale_module(results.copy())
+ assert rescale_results['gt_semantic_seg'].shape == (h, w)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_tta.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_tta.py
new file mode 100644
index 0000000000000000000000000000000000000000..cc8c71e57c02d45a3f0587cd9e57caa7b467c5ab
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_data/test_tta.py
@@ -0,0 +1,150 @@
+import os.path as osp
+
+import mmcv
+import pytest
+from mmcv.utils import build_from_cfg
+
+from mmseg.datasets.builder import PIPELINES
+
+
+def test_multi_scale_flip_aug():
+ # test assertion if img_scale=None, img_ratios=1 (not float).
+ with pytest.raises(AssertionError):
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=None,
+ img_ratios=1,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ build_from_cfg(tta_transform, PIPELINES)
+
+ # test assertion if img_scale=None, img_ratios=None.
+ with pytest.raises(AssertionError):
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=None,
+ img_ratios=None,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ build_from_cfg(tta_transform, PIPELINES)
+
+ # test assertion if img_scale=(512, 512), img_ratios=1 (not float).
+ with pytest.raises(AssertionError):
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=(512, 512),
+ img_ratios=1,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ build_from_cfg(tta_transform, PIPELINES)
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=(512, 512),
+ img_ratios=[0.5, 1.0, 2.0],
+ flip=False,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+
+ results = dict()
+ # (288, 512, 3)
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), '../data/color.jpg'), 'color')
+ results['img'] = img
+ results['img_shape'] = img.shape
+ results['ori_shape'] = img.shape
+ # Set initial values for default meta_keys
+ results['pad_shape'] = img.shape
+ results['scale_factor'] = 1.0
+
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(256, 256), (512, 512), (1024, 1024)]
+ assert tta_results['flip'] == [False, False, False]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=(512, 512),
+ img_ratios=[0.5, 1.0, 2.0],
+ flip=True,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(256, 256), (256, 256), (512, 512),
+ (512, 512), (1024, 1024), (1024, 1024)]
+ assert tta_results['flip'] == [False, True, False, True, False, True]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=(512, 512),
+ img_ratios=1.0,
+ flip=False,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(512, 512)]
+ assert tta_results['flip'] == [False]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=(512, 512),
+ img_ratios=1.0,
+ flip=True,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(512, 512), (512, 512)]
+ assert tta_results['flip'] == [False, True]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=None,
+ img_ratios=[0.5, 1.0, 2.0],
+ flip=False,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(256, 144), (512, 288), (1024, 576)]
+ assert tta_results['flip'] == [False, False, False]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=None,
+ img_ratios=[0.5, 1.0, 2.0],
+ flip=True,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(256, 144), (256, 144), (512, 288),
+ (512, 288), (1024, 576), (1024, 576)]
+ assert tta_results['flip'] == [False, True, False, True, False, True]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=[(256, 256), (512, 512), (1024, 1024)],
+ img_ratios=None,
+ flip=False,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(256, 256), (512, 512), (1024, 1024)]
+ assert tta_results['flip'] == [False, False, False]
+
+ tta_transform = dict(
+ type='MultiScaleFlipAug',
+ img_scale=[(256, 256), (512, 512), (1024, 1024)],
+ img_ratios=None,
+ flip=True,
+ transforms=[dict(type='Resize', keep_ratio=False)],
+ )
+ tta_module = build_from_cfg(tta_transform, PIPELINES)
+ tta_results = tta_module(results.copy())
+ assert tta_results['scale'] == [(256, 256), (256, 256), (512, 512),
+ (512, 512), (1024, 1024), (1024, 1024)]
+ assert tta_results['flip'] == [False, True, False, True, False, True]
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_eval_hook.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_eval_hook.py
new file mode 100644
index 0000000000000000000000000000000000000000..a6a1352ea5419c1876551165edaf833f251e7151
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_eval_hook.py
@@ -0,0 +1,193 @@
+import logging
+import tempfile
+from unittest.mock import MagicMock, patch
+
+import mmcv.runner
+import pytest
+import torch
+import torch.nn as nn
+from mmcv.runner import obj_from_dict
+from torch.utils.data import DataLoader, Dataset
+
+from mmseg.apis import single_gpu_test
+from mmseg.core import DistEvalHook, EvalHook
+
+
+class ExampleDataset(Dataset):
+
+ def __getitem__(self, idx):
+ results = dict(img=torch.tensor([1]), img_metas=dict())
+ return results
+
+ def __len__(self):
+ return 1
+
+
+class ExampleModel(nn.Module):
+
+ def __init__(self):
+ super(ExampleModel, self).__init__()
+ self.test_cfg = None
+ self.conv = nn.Conv2d(3, 3, 3)
+
+ def forward(self, img, img_metas, test_mode=False, **kwargs):
+ return img
+
+ def train_step(self, data_batch, optimizer):
+ loss = self.forward(**data_batch)
+ return dict(loss=loss)
+
+
+def test_iter_eval_hook():
+ with pytest.raises(TypeError):
+ test_dataset = ExampleModel()
+ data_loader = [
+ DataLoader(
+ test_dataset,
+ batch_size=1,
+ sampler=None,
+ num_worker=0,
+ shuffle=False)
+ ]
+ EvalHook(data_loader)
+
+ test_dataset = ExampleDataset()
+ test_dataset.evaluate = MagicMock(return_value=dict(test='success'))
+ loader = DataLoader(test_dataset, batch_size=1)
+ model = ExampleModel()
+ data_loader = DataLoader(
+ test_dataset, batch_size=1, sampler=None, num_workers=0, shuffle=False)
+ optim_cfg = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+ optimizer = obj_from_dict(optim_cfg, torch.optim,
+ dict(params=model.parameters()))
+
+ # test EvalHook
+ with tempfile.TemporaryDirectory() as tmpdir:
+ eval_hook = EvalHook(data_loader)
+ runner = mmcv.runner.IterBasedRunner(
+ model=model,
+ optimizer=optimizer,
+ work_dir=tmpdir,
+ logger=logging.getLogger())
+ runner.register_hook(eval_hook)
+ runner.run([loader], [('train', 1)], 1)
+ test_dataset.evaluate.assert_called_with([torch.tensor([1])],
+ logger=runner.logger)
+
+
+def test_epoch_eval_hook():
+ with pytest.raises(TypeError):
+ test_dataset = ExampleModel()
+ data_loader = [
+ DataLoader(
+ test_dataset,
+ batch_size=1,
+ sampler=None,
+ num_worker=0,
+ shuffle=False)
+ ]
+ EvalHook(data_loader, by_epoch=True)
+
+ test_dataset = ExampleDataset()
+ test_dataset.evaluate = MagicMock(return_value=dict(test='success'))
+ loader = DataLoader(test_dataset, batch_size=1)
+ model = ExampleModel()
+ data_loader = DataLoader(
+ test_dataset, batch_size=1, sampler=None, num_workers=0, shuffle=False)
+ optim_cfg = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+ optimizer = obj_from_dict(optim_cfg, torch.optim,
+ dict(params=model.parameters()))
+
+ # test EvalHook with interval
+ with tempfile.TemporaryDirectory() as tmpdir:
+ eval_hook = EvalHook(data_loader, by_epoch=True, interval=2)
+ runner = mmcv.runner.EpochBasedRunner(
+ model=model,
+ optimizer=optimizer,
+ work_dir=tmpdir,
+ logger=logging.getLogger())
+ runner.register_hook(eval_hook)
+ runner.run([loader], [('train', 1)], 2)
+ test_dataset.evaluate.assert_called_once_with([torch.tensor([1])],
+ logger=runner.logger)
+
+
+def multi_gpu_test(model, data_loader, tmpdir=None, gpu_collect=False):
+ results = single_gpu_test(model, data_loader)
+ return results
+
+
+@patch('mmseg.apis.multi_gpu_test', multi_gpu_test)
+def test_dist_eval_hook():
+ with pytest.raises(TypeError):
+ test_dataset = ExampleModel()
+ data_loader = [
+ DataLoader(
+ test_dataset,
+ batch_size=1,
+ sampler=None,
+ num_worker=0,
+ shuffle=False)
+ ]
+ DistEvalHook(data_loader)
+
+ test_dataset = ExampleDataset()
+ test_dataset.evaluate = MagicMock(return_value=dict(test='success'))
+ loader = DataLoader(test_dataset, batch_size=1)
+ model = ExampleModel()
+ data_loader = DataLoader(
+ test_dataset, batch_size=1, sampler=None, num_workers=0, shuffle=False)
+ optim_cfg = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+ optimizer = obj_from_dict(optim_cfg, torch.optim,
+ dict(params=model.parameters()))
+
+ # test DistEvalHook
+ with tempfile.TemporaryDirectory() as tmpdir:
+ eval_hook = DistEvalHook(data_loader)
+ runner = mmcv.runner.IterBasedRunner(
+ model=model,
+ optimizer=optimizer,
+ work_dir=tmpdir,
+ logger=logging.getLogger())
+ runner.register_hook(eval_hook)
+ runner.run([loader], [('train', 1)], 1)
+ test_dataset.evaluate.assert_called_with([torch.tensor([1])],
+ logger=runner.logger)
+
+
+@patch('mmseg.apis.multi_gpu_test', multi_gpu_test)
+def test_dist_eval_hook_epoch():
+ with pytest.raises(TypeError):
+ test_dataset = ExampleModel()
+ data_loader = [
+ DataLoader(
+ test_dataset,
+ batch_size=1,
+ sampler=None,
+ num_worker=0,
+ shuffle=False)
+ ]
+ DistEvalHook(data_loader)
+
+ test_dataset = ExampleDataset()
+ test_dataset.evaluate = MagicMock(return_value=dict(test='success'))
+ loader = DataLoader(test_dataset, batch_size=1)
+ model = ExampleModel()
+ data_loader = DataLoader(
+ test_dataset, batch_size=1, sampler=None, num_workers=0, shuffle=False)
+ optim_cfg = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+ optimizer = obj_from_dict(optim_cfg, torch.optim,
+ dict(params=model.parameters()))
+
+ # test DistEvalHook
+ with tempfile.TemporaryDirectory() as tmpdir:
+ eval_hook = DistEvalHook(data_loader, by_epoch=True, interval=2)
+ runner = mmcv.runner.EpochBasedRunner(
+ model=model,
+ optimizer=optimizer,
+ work_dir=tmpdir,
+ logger=logging.getLogger())
+ runner.register_hook(eval_hook)
+ runner.run([loader], [('train', 1)], 2)
+ test_dataset.evaluate.assert_called_with([torch.tensor([1])],
+ logger=runner.logger)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_inference.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..046e036281db50ccc66e75d8e78c6eb63618cac7
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_inference.py
@@ -0,0 +1,29 @@
+import os.path as osp
+
+import mmcv
+
+from mmseg.apis import inference_segmentor, init_segmentor
+
+
+def test_test_time_augmentation_on_cpu():
+ config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'
+ config = mmcv.Config.fromfile(config_file)
+
+ # Remove pretrain model download for testing
+ config.model.pretrained = None
+ # Replace SyncBN with BN to inference on CPU
+ norm_cfg = dict(type='BN', requires_grad=True)
+ config.model.backbone.norm_cfg = norm_cfg
+ config.model.decode_head.norm_cfg = norm_cfg
+ config.model.auxiliary_head.norm_cfg = norm_cfg
+
+ # Enable test time augmentation
+ config.data.test.pipeline[1].flip = True
+
+ checkpoint_file = None
+ model = init_segmentor(config, checkpoint_file, device='cpu')
+
+ img = mmcv.imread(
+ osp.join(osp.dirname(__file__), 'data/color.jpg'), 'color')
+ result = inference_segmentor(model, img)
+ assert result[0].shape == (288, 512)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_metrics.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_metrics.py
new file mode 100644
index 0000000000000000000000000000000000000000..023bbb0a5563f36ae1902fab4edb8e5240f4ae02
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_metrics.py
@@ -0,0 +1,166 @@
+import numpy as np
+
+from mmseg.core.evaluation import eval_metrics, mean_dice, mean_iou
+
+
+def get_confusion_matrix(pred_label, label, num_classes, ignore_index):
+ """Intersection over Union
+ Args:
+ pred_label (np.ndarray): 2D predict map
+ label (np.ndarray): label 2D label map
+ num_classes (int): number of categories
+ ignore_index (int): index ignore in evaluation
+ """
+
+ mask = (label != ignore_index)
+ pred_label = pred_label[mask]
+ label = label[mask]
+
+ n = num_classes
+ inds = n * label + pred_label
+
+ mat = np.bincount(inds, minlength=n**2).reshape(n, n)
+
+ return mat
+
+
+# This func is deprecated since it's not memory efficient
+def legacy_mean_iou(results, gt_seg_maps, num_classes, ignore_index):
+ num_imgs = len(results)
+ assert len(gt_seg_maps) == num_imgs
+ total_mat = np.zeros((num_classes, num_classes), dtype=np.float)
+ for i in range(num_imgs):
+ mat = get_confusion_matrix(
+ results[i], gt_seg_maps[i], num_classes, ignore_index=ignore_index)
+ total_mat += mat
+ all_acc = np.diag(total_mat).sum() / total_mat.sum()
+ acc = np.diag(total_mat) / total_mat.sum(axis=1)
+ iou = np.diag(total_mat) / (
+ total_mat.sum(axis=1) + total_mat.sum(axis=0) - np.diag(total_mat))
+
+ return all_acc, acc, iou
+
+
+# This func is deprecated since it's not memory efficient
+def legacy_mean_dice(results, gt_seg_maps, num_classes, ignore_index):
+ num_imgs = len(results)
+ assert len(gt_seg_maps) == num_imgs
+ total_mat = np.zeros((num_classes, num_classes), dtype=np.float)
+ for i in range(num_imgs):
+ mat = get_confusion_matrix(
+ results[i], gt_seg_maps[i], num_classes, ignore_index=ignore_index)
+ total_mat += mat
+ all_acc = np.diag(total_mat).sum() / total_mat.sum()
+ acc = np.diag(total_mat) / total_mat.sum(axis=1)
+ dice = 2 * np.diag(total_mat) / (
+ total_mat.sum(axis=1) + total_mat.sum(axis=0))
+
+ return all_acc, acc, dice
+
+
+def test_metrics():
+ pred_size = (10, 30, 30)
+ num_classes = 19
+ ignore_index = 255
+ results = np.random.randint(0, num_classes, size=pred_size)
+ label = np.random.randint(0, num_classes, size=pred_size)
+ label[:, 2, 5:10] = ignore_index
+ all_acc, acc, iou = eval_metrics(
+ results, label, num_classes, ignore_index, metrics='mIoU')
+ all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes,
+ ignore_index)
+ assert all_acc == all_acc_l
+ assert np.allclose(acc, acc_l)
+ assert np.allclose(iou, iou_l)
+
+ all_acc, acc, dice = eval_metrics(
+ results, label, num_classes, ignore_index, metrics='mDice')
+ all_acc_l, acc_l, dice_l = legacy_mean_dice(results, label, num_classes,
+ ignore_index)
+ assert all_acc == all_acc_l
+ assert np.allclose(acc, acc_l)
+ assert np.allclose(dice, dice_l)
+
+ all_acc, acc, iou, dice = eval_metrics(
+ results, label, num_classes, ignore_index, metrics=['mIoU', 'mDice'])
+ assert all_acc == all_acc_l
+ assert np.allclose(acc, acc_l)
+ assert np.allclose(iou, iou_l)
+ assert np.allclose(dice, dice_l)
+
+ results = np.random.randint(0, 5, size=pred_size)
+ label = np.random.randint(0, 4, size=pred_size)
+ all_acc, acc, iou = eval_metrics(
+ results,
+ label,
+ num_classes,
+ ignore_index=255,
+ metrics='mIoU',
+ nan_to_num=-1)
+ assert acc[-1] == -1
+ assert iou[-1] == -1
+
+ all_acc, acc, dice = eval_metrics(
+ results,
+ label,
+ num_classes,
+ ignore_index=255,
+ metrics='mDice',
+ nan_to_num=-1)
+ assert acc[-1] == -1
+ assert dice[-1] == -1
+
+ all_acc, acc, dice, iou = eval_metrics(
+ results,
+ label,
+ num_classes,
+ ignore_index=255,
+ metrics=['mDice', 'mIoU'],
+ nan_to_num=-1)
+ assert acc[-1] == -1
+ assert dice[-1] == -1
+ assert iou[-1] == -1
+
+
+def test_mean_iou():
+ pred_size = (10, 30, 30)
+ num_classes = 19
+ ignore_index = 255
+ results = np.random.randint(0, num_classes, size=pred_size)
+ label = np.random.randint(0, num_classes, size=pred_size)
+ label[:, 2, 5:10] = ignore_index
+ all_acc, acc, iou = mean_iou(results, label, num_classes, ignore_index)
+ all_acc_l, acc_l, iou_l = legacy_mean_iou(results, label, num_classes,
+ ignore_index)
+ assert all_acc == all_acc_l
+ assert np.allclose(acc, acc_l)
+ assert np.allclose(iou, iou_l)
+
+ results = np.random.randint(0, 5, size=pred_size)
+ label = np.random.randint(0, 4, size=pred_size)
+ all_acc, acc, iou = mean_iou(
+ results, label, num_classes, ignore_index=255, nan_to_num=-1)
+ assert acc[-1] == -1
+ assert iou[-1] == -1
+
+
+def test_mean_dice():
+ pred_size = (10, 30, 30)
+ num_classes = 19
+ ignore_index = 255
+ results = np.random.randint(0, num_classes, size=pred_size)
+ label = np.random.randint(0, num_classes, size=pred_size)
+ label[:, 2, 5:10] = ignore_index
+ all_acc, acc, iou = mean_dice(results, label, num_classes, ignore_index)
+ all_acc_l, acc_l, iou_l = legacy_mean_dice(results, label, num_classes,
+ ignore_index)
+ assert all_acc == all_acc_l
+ assert np.allclose(acc, acc_l)
+ assert np.allclose(iou, iou_l)
+
+ results = np.random.randint(0, 5, size=pred_size)
+ label = np.random.randint(0, 4, size=pred_size)
+ all_acc, acc, iou = mean_dice(
+ results, label, num_classes, ignore_index=255, nan_to_num=-1)
+ assert acc[-1] == -1
+ assert iou[-1] == -1
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_backbone.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_backbone.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ed6ce222f0c4135c2227c55f60efa1f05e62cec
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_backbone.py
@@ -0,0 +1,939 @@
+import pytest
+import torch
+from mmcv.ops import DeformConv2dPack
+from mmcv.utils.parrots_wrapper import _BatchNorm
+from torch.nn.modules import AvgPool2d, GroupNorm
+
+from mmseg.models.backbones import (CGNet, FastSCNN, MobileNetV3, ResNeSt,
+ ResNet, ResNetV1d, ResNeXt)
+from mmseg.models.backbones.cgnet import (ContextGuidedBlock,
+ GlobalContextExtractor)
+from mmseg.models.backbones.resnest import Bottleneck as BottleneckS
+from mmseg.models.backbones.resnet import BasicBlock, Bottleneck
+from mmseg.models.backbones.resnext import Bottleneck as BottleneckX
+from mmseg.models.utils import ResLayer
+
+
+def is_block(modules):
+ """Check if is ResNet building block."""
+ if isinstance(modules, (BasicBlock, Bottleneck, BottleneckX)):
+ return True
+ return False
+
+
+def is_norm(modules):
+ """Check if is one of the norms."""
+ if isinstance(modules, (GroupNorm, _BatchNorm)):
+ return True
+ return False
+
+
+def all_zeros(modules):
+ """Check if the weight(and bias) is all zero."""
+ weight_zero = torch.allclose(modules.weight.data,
+ torch.zeros_like(modules.weight.data))
+ if hasattr(modules, 'bias'):
+ bias_zero = torch.allclose(modules.bias.data,
+ torch.zeros_like(modules.bias.data))
+ else:
+ bias_zero = True
+
+ return weight_zero and bias_zero
+
+
+def check_norm_state(modules, train_state):
+ """Check if norm layer is in correct train state."""
+ for mod in modules:
+ if isinstance(mod, _BatchNorm):
+ if mod.training != train_state:
+ return False
+ return True
+
+
+def test_resnet_basic_block():
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ BasicBlock(64, 64, dcn=dcn)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ BasicBlock(64, 64, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ position='after_conv2')
+ ]
+ BasicBlock(64, 64, plugins=plugins)
+
+ # Test BasicBlock with checkpoint forward
+ block = BasicBlock(16, 16, with_cp=True)
+ assert block.with_cp
+ x = torch.randn(1, 16, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 16, 56, 56])
+
+ # test BasicBlock structure and forward
+ block = BasicBlock(64, 64)
+ assert block.conv1.in_channels == 64
+ assert block.conv1.out_channels == 64
+ assert block.conv1.kernel_size == (3, 3)
+ assert block.conv2.in_channels == 64
+ assert block.conv2.out_channels == 64
+ assert block.conv2.kernel_size == (3, 3)
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+
+def test_resnet_bottleneck():
+ with pytest.raises(AssertionError):
+ # Style must be in ['pytorch', 'caffe']
+ Bottleneck(64, 64, style='tensorflow')
+
+ with pytest.raises(AssertionError):
+ # Allowed positions are 'after_conv1', 'after_conv2', 'after_conv3'
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv4')
+ ]
+ Bottleneck(64, 16, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # Need to specify different postfix to avoid duplicate plugin name
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3'),
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ Bottleneck(64, 16, plugins=plugins)
+
+ with pytest.raises(KeyError):
+ # Plugin type is not supported
+ plugins = [dict(cfg=dict(type='WrongPlugin'), position='after_conv3')]
+ Bottleneck(64, 16, plugins=plugins)
+
+ # Test Bottleneck with checkpoint forward
+ block = Bottleneck(64, 16, with_cp=True)
+ assert block.with_cp
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test Bottleneck style
+ block = Bottleneck(64, 64, stride=2, style='pytorch')
+ assert block.conv1.stride == (1, 1)
+ assert block.conv2.stride == (2, 2)
+ block = Bottleneck(64, 64, stride=2, style='caffe')
+ assert block.conv1.stride == (2, 2)
+ assert block.conv2.stride == (1, 1)
+
+ # Test Bottleneck DCN
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ with pytest.raises(AssertionError):
+ Bottleneck(64, 64, dcn=dcn, conv_cfg=dict(type='Conv'))
+ block = Bottleneck(64, 64, dcn=dcn)
+ assert isinstance(block.conv2, DeformConv2dPack)
+
+ # Test Bottleneck forward
+ block = Bottleneck(64, 16)
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test Bottleneck with 1 ContextBlock after conv3
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ block = Bottleneck(64, 16, plugins=plugins)
+ assert block.context_block.in_channels == 64
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test Bottleneck with 1 GeneralizedAttention after conv2
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ position='after_conv2')
+ ]
+ block = Bottleneck(64, 16, plugins=plugins)
+ assert block.gen_attention_block.in_channels == 16
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test Bottleneck with 1 GeneralizedAttention after conv2, 1 NonLocal2d
+ # after conv2, 1 ContextBlock after conv3
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ position='after_conv2'),
+ dict(cfg=dict(type='NonLocal2d'), position='after_conv2'),
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ block = Bottleneck(64, 16, plugins=plugins)
+ assert block.gen_attention_block.in_channels == 16
+ assert block.nonlocal_block.in_channels == 16
+ assert block.context_block.in_channels == 64
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test Bottleneck with 1 ContextBlock after conv2, 2 ContextBlock after
+ # conv3
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16, postfix=1),
+ position='after_conv2'),
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16, postfix=2),
+ position='after_conv3'),
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16, postfix=3),
+ position='after_conv3')
+ ]
+ block = Bottleneck(64, 16, plugins=plugins)
+ assert block.context_block1.in_channels == 16
+ assert block.context_block2.in_channels == 64
+ assert block.context_block3.in_channels == 64
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+
+def test_resnet_res_layer():
+ # Test ResLayer of 3 Bottleneck w\o downsample
+ layer = ResLayer(Bottleneck, 64, 16, 3)
+ assert len(layer) == 3
+ assert layer[0].conv1.in_channels == 64
+ assert layer[0].conv1.out_channels == 16
+ for i in range(1, len(layer)):
+ assert layer[i].conv1.in_channels == 64
+ assert layer[i].conv1.out_channels == 16
+ for i in range(len(layer)):
+ assert layer[i].downsample is None
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test ResLayer of 3 Bottleneck with downsample
+ layer = ResLayer(Bottleneck, 64, 64, 3)
+ assert layer[0].downsample[0].out_channels == 256
+ for i in range(1, len(layer)):
+ assert layer[i].downsample is None
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 256, 56, 56])
+
+ # Test ResLayer of 3 Bottleneck with stride=2
+ layer = ResLayer(Bottleneck, 64, 64, 3, stride=2)
+ assert layer[0].downsample[0].out_channels == 256
+ assert layer[0].downsample[0].stride == (2, 2)
+ for i in range(1, len(layer)):
+ assert layer[i].downsample is None
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 256, 28, 28])
+
+ # Test ResLayer of 3 Bottleneck with stride=2 and average downsample
+ layer = ResLayer(Bottleneck, 64, 64, 3, stride=2, avg_down=True)
+ assert isinstance(layer[0].downsample[0], AvgPool2d)
+ assert layer[0].downsample[1].out_channels == 256
+ assert layer[0].downsample[1].stride == (1, 1)
+ for i in range(1, len(layer)):
+ assert layer[i].downsample is None
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 256, 28, 28])
+
+ # Test ResLayer of 3 Bottleneck with dilation=2
+ layer = ResLayer(Bottleneck, 64, 16, 3, dilation=2)
+ for i in range(len(layer)):
+ assert layer[i].conv2.dilation == (2, 2)
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test ResLayer of 3 Bottleneck with dilation=2, contract_dilation=True
+ layer = ResLayer(Bottleneck, 64, 16, 3, dilation=2, contract_dilation=True)
+ assert layer[0].conv2.dilation == (1, 1)
+ for i in range(1, len(layer)):
+ assert layer[i].conv2.dilation == (2, 2)
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+ # Test ResLayer of 3 Bottleneck with dilation=2, multi_grid
+ layer = ResLayer(Bottleneck, 64, 16, 3, dilation=2, multi_grid=(1, 2, 4))
+ assert layer[0].conv2.dilation == (1, 1)
+ assert layer[1].conv2.dilation == (2, 2)
+ assert layer[2].conv2.dilation == (4, 4)
+ x = torch.randn(1, 64, 56, 56)
+ x_out = layer(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+
+def test_resnet_backbone():
+ """Test resnet backbone."""
+ with pytest.raises(KeyError):
+ # ResNet depth should be in [18, 34, 50, 101, 152]
+ ResNet(20)
+
+ with pytest.raises(AssertionError):
+ # In ResNet: 1 <= num_stages <= 4
+ ResNet(50, num_stages=0)
+
+ with pytest.raises(AssertionError):
+ # len(stage_with_dcn) == num_stages
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ ResNet(50, dcn=dcn, stage_with_dcn=(True, ))
+
+ with pytest.raises(AssertionError):
+ # len(stage_with_plugin) == num_stages
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ stages=(False, True, True),
+ position='after_conv3')
+ ]
+ ResNet(50, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # In ResNet: 1 <= num_stages <= 4
+ ResNet(50, num_stages=5)
+
+ with pytest.raises(AssertionError):
+ # len(strides) == len(dilations) == num_stages
+ ResNet(50, strides=(1, ), dilations=(1, 1), num_stages=3)
+
+ with pytest.raises(TypeError):
+ # pretrained must be a string path
+ model = ResNet(50)
+ model.init_weights(pretrained=0)
+
+ with pytest.raises(AssertionError):
+ # Style must be in ['pytorch', 'caffe']
+ ResNet(50, style='tensorflow')
+
+ # Test ResNet50 norm_eval=True
+ model = ResNet(50, norm_eval=True)
+ model.init_weights()
+ model.train()
+ assert check_norm_state(model.modules(), False)
+
+ # Test ResNet50 with torchvision pretrained weight
+ model = ResNet(depth=50, norm_eval=True)
+ model.init_weights('torchvision://resnet50')
+ model.train()
+ assert check_norm_state(model.modules(), False)
+
+ # Test ResNet50 with first stage frozen
+ frozen_stages = 1
+ model = ResNet(50, frozen_stages=frozen_stages)
+ model.init_weights()
+ model.train()
+ assert model.norm1.training is False
+ for layer in [model.conv1, model.norm1]:
+ for param in layer.parameters():
+ assert param.requires_grad is False
+ for i in range(1, frozen_stages + 1):
+ layer = getattr(model, 'layer{}'.format(i))
+ for mod in layer.modules():
+ if isinstance(mod, _BatchNorm):
+ assert mod.training is False
+ for param in layer.parameters():
+ assert param.requires_grad is False
+
+ # Test ResNet50V1d with first stage frozen
+ model = ResNetV1d(depth=50, frozen_stages=frozen_stages)
+ assert len(model.stem) == 9
+ model.init_weights()
+ model.train()
+ check_norm_state(model.stem, False)
+ for param in model.stem.parameters():
+ assert param.requires_grad is False
+ for i in range(1, frozen_stages + 1):
+ layer = getattr(model, 'layer{}'.format(i))
+ for mod in layer.modules():
+ if isinstance(mod, _BatchNorm):
+ assert mod.training is False
+ for param in layer.parameters():
+ assert param.requires_grad is False
+
+ # Test ResNet18 forward
+ model = ResNet(18)
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 64, 56, 56])
+ assert feat[1].shape == torch.Size([1, 128, 28, 28])
+ assert feat[2].shape == torch.Size([1, 256, 14, 14])
+ assert feat[3].shape == torch.Size([1, 512, 7, 7])
+
+ # Test ResNet50 with BatchNorm forward
+ model = ResNet(50)
+ for m in model.modules():
+ if is_norm(m):
+ assert isinstance(m, _BatchNorm)
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+ # Test ResNet50 with layers 1, 2, 3 out forward
+ model = ResNet(50, out_indices=(0, 1, 2))
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 3
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+
+ # Test ResNet18 with checkpoint forward
+ model = ResNet(18, with_cp=True)
+ for m in model.modules():
+ if is_block(m):
+ assert m.with_cp
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 64, 56, 56])
+ assert feat[1].shape == torch.Size([1, 128, 28, 28])
+ assert feat[2].shape == torch.Size([1, 256, 14, 14])
+ assert feat[3].shape == torch.Size([1, 512, 7, 7])
+
+ # Test ResNet50 with checkpoint forward
+ model = ResNet(50, with_cp=True)
+ for m in model.modules():
+ if is_block(m):
+ assert m.with_cp
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+ # Test ResNet50 with GroupNorm forward
+ model = ResNet(
+ 50, norm_cfg=dict(type='GN', num_groups=32, requires_grad=True))
+ for m in model.modules():
+ if is_norm(m):
+ assert isinstance(m, GroupNorm)
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+ # Test ResNet50 with 1 GeneralizedAttention after conv2, 1 NonLocal2d
+ # after conv2, 1 ContextBlock after conv3 in layers 2, 3, 4
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ stages=(False, True, True, True),
+ position='after_conv2'),
+ dict(cfg=dict(type='NonLocal2d'), position='after_conv2'),
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ stages=(False, True, True, False),
+ position='after_conv3')
+ ]
+ model = ResNet(50, plugins=plugins)
+ for m in model.layer1.modules():
+ if is_block(m):
+ assert not hasattr(m, 'context_block')
+ assert not hasattr(m, 'gen_attention_block')
+ assert m.nonlocal_block.in_channels == 64
+ for m in model.layer2.modules():
+ if is_block(m):
+ assert m.nonlocal_block.in_channels == 128
+ assert m.gen_attention_block.in_channels == 128
+ assert m.context_block.in_channels == 512
+
+ for m in model.layer3.modules():
+ if is_block(m):
+ assert m.nonlocal_block.in_channels == 256
+ assert m.gen_attention_block.in_channels == 256
+ assert m.context_block.in_channels == 1024
+
+ for m in model.layer4.modules():
+ if is_block(m):
+ assert m.nonlocal_block.in_channels == 512
+ assert m.gen_attention_block.in_channels == 512
+ assert not hasattr(m, 'context_block')
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+ # Test ResNet50 with 1 ContextBlock after conv2, 1 ContextBlock after
+ # conv3 in layers 2, 3, 4
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16, postfix=1),
+ stages=(False, True, True, False),
+ position='after_conv3'),
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16, postfix=2),
+ stages=(False, True, True, False),
+ position='after_conv3')
+ ]
+
+ model = ResNet(50, plugins=plugins)
+ for m in model.layer1.modules():
+ if is_block(m):
+ assert not hasattr(m, 'context_block')
+ assert not hasattr(m, 'context_block1')
+ assert not hasattr(m, 'context_block2')
+ for m in model.layer2.modules():
+ if is_block(m):
+ assert not hasattr(m, 'context_block')
+ assert m.context_block1.in_channels == 512
+ assert m.context_block2.in_channels == 512
+
+ for m in model.layer3.modules():
+ if is_block(m):
+ assert not hasattr(m, 'context_block')
+ assert m.context_block1.in_channels == 1024
+ assert m.context_block2.in_channels == 1024
+
+ for m in model.layer4.modules():
+ if is_block(m):
+ assert not hasattr(m, 'context_block')
+ assert not hasattr(m, 'context_block1')
+ assert not hasattr(m, 'context_block2')
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+ # Test ResNet50 zero initialization of residual
+ model = ResNet(50, zero_init_residual=True)
+ model.init_weights()
+ for m in model.modules():
+ if isinstance(m, Bottleneck):
+ assert all_zeros(m.norm3)
+ elif isinstance(m, BasicBlock):
+ assert all_zeros(m.norm2)
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+ # Test ResNetV1d forward
+ model = ResNetV1d(depth=50)
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+
+def test_renext_bottleneck():
+ with pytest.raises(AssertionError):
+ # Style must be in ['pytorch', 'caffe']
+ BottleneckX(64, 64, groups=32, base_width=4, style='tensorflow')
+
+ # Test ResNeXt Bottleneck structure
+ block = BottleneckX(
+ 64, 64, groups=32, base_width=4, stride=2, style='pytorch')
+ assert block.conv2.stride == (2, 2)
+ assert block.conv2.groups == 32
+ assert block.conv2.out_channels == 128
+
+ # Test ResNeXt Bottleneck with DCN
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ with pytest.raises(AssertionError):
+ # conv_cfg must be None if dcn is not None
+ BottleneckX(
+ 64,
+ 64,
+ groups=32,
+ base_width=4,
+ dcn=dcn,
+ conv_cfg=dict(type='Conv'))
+ BottleneckX(64, 64, dcn=dcn)
+
+ # Test ResNeXt Bottleneck forward
+ block = BottleneckX(64, 16, groups=32, base_width=4)
+ x = torch.randn(1, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 64, 56, 56])
+
+
+def test_resnext_backbone():
+ with pytest.raises(KeyError):
+ # ResNeXt depth should be in [50, 101, 152]
+ ResNeXt(depth=18)
+
+ # Test ResNeXt with group 32, base_width 4
+ model = ResNeXt(depth=50, groups=32, base_width=4)
+ print(model)
+ for m in model.modules():
+ if is_block(m):
+ assert m.conv2.groups == 32
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(1, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([1, 256, 56, 56])
+ assert feat[1].shape == torch.Size([1, 512, 28, 28])
+ assert feat[2].shape == torch.Size([1, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([1, 2048, 7, 7])
+
+
+def test_fastscnn_backbone():
+ with pytest.raises(AssertionError):
+ # Fast-SCNN channel constraints.
+ FastSCNN(
+ 3, (32, 48),
+ 64, (64, 96, 128), (2, 2, 1),
+ global_out_channels=127,
+ higher_in_channels=64,
+ lower_in_channels=128)
+
+ # Test FastSCNN Standard Forward
+ model = FastSCNN()
+ model.init_weights()
+ model.train()
+ batch_size = 4
+ imgs = torch.randn(batch_size, 3, 512, 1024)
+ feat = model(imgs)
+
+ assert len(feat) == 3
+ # higher-res
+ assert feat[0].shape == torch.Size([batch_size, 64, 64, 128])
+ # lower-res
+ assert feat[1].shape == torch.Size([batch_size, 128, 16, 32])
+ # FFM output
+ assert feat[2].shape == torch.Size([batch_size, 128, 64, 128])
+
+
+def test_resnest_bottleneck():
+ with pytest.raises(AssertionError):
+ # Style must be in ['pytorch', 'caffe']
+ BottleneckS(64, 64, radix=2, reduction_factor=4, style='tensorflow')
+
+ # Test ResNeSt Bottleneck structure
+ block = BottleneckS(
+ 64, 256, radix=2, reduction_factor=4, stride=2, style='pytorch')
+ assert block.avd_layer.stride == 2
+ assert block.conv2.channels == 256
+
+ # Test ResNeSt Bottleneck forward
+ block = BottleneckS(64, 16, radix=2, reduction_factor=4)
+ x = torch.randn(2, 64, 56, 56)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([2, 64, 56, 56])
+
+
+def test_resnest_backbone():
+ with pytest.raises(KeyError):
+ # ResNeSt depth should be in [50, 101, 152, 200]
+ ResNeSt(depth=18)
+
+ # Test ResNeSt with radix 2, reduction_factor 4
+ model = ResNeSt(
+ depth=50, radix=2, reduction_factor=4, out_indices=(0, 1, 2, 3))
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(2, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 4
+ assert feat[0].shape == torch.Size([2, 256, 56, 56])
+ assert feat[1].shape == torch.Size([2, 512, 28, 28])
+ assert feat[2].shape == torch.Size([2, 1024, 14, 14])
+ assert feat[3].shape == torch.Size([2, 2048, 7, 7])
+
+
+def test_cgnet_GlobalContextExtractor():
+ block = GlobalContextExtractor(16, 16, with_cp=True)
+ x = torch.randn(2, 16, 64, 64, requires_grad=True)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([2, 16, 64, 64])
+
+
+def test_cgnet_context_guided_block():
+ with pytest.raises(AssertionError):
+ # cgnet ContextGuidedBlock GlobalContextExtractor channel and reduction
+ # constraints.
+ ContextGuidedBlock(8, 8)
+
+ # test cgnet ContextGuidedBlock with checkpoint forward
+ block = ContextGuidedBlock(
+ 16, 16, act_cfg=dict(type='PReLU'), with_cp=True)
+ assert block.with_cp
+ x = torch.randn(2, 16, 64, 64, requires_grad=True)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([2, 16, 64, 64])
+
+ # test cgnet ContextGuidedBlock without checkpoint forward
+ block = ContextGuidedBlock(32, 32)
+ assert not block.with_cp
+ x = torch.randn(3, 32, 32, 32)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([3, 32, 32, 32])
+
+ # test cgnet ContextGuidedBlock with down sampling
+ block = ContextGuidedBlock(32, 32, downsample=True)
+ assert block.conv1x1.conv.in_channels == 32
+ assert block.conv1x1.conv.out_channels == 32
+ assert block.conv1x1.conv.kernel_size == (3, 3)
+ assert block.conv1x1.conv.stride == (2, 2)
+ assert block.conv1x1.conv.padding == (1, 1)
+
+ assert block.f_loc.in_channels == 32
+ assert block.f_loc.out_channels == 32
+ assert block.f_loc.kernel_size == (3, 3)
+ assert block.f_loc.stride == (1, 1)
+ assert block.f_loc.padding == (1, 1)
+ assert block.f_loc.groups == 32
+ assert block.f_loc.dilation == (1, 1)
+ assert block.f_loc.bias is None
+
+ assert block.f_sur.in_channels == 32
+ assert block.f_sur.out_channels == 32
+ assert block.f_sur.kernel_size == (3, 3)
+ assert block.f_sur.stride == (1, 1)
+ assert block.f_sur.padding == (2, 2)
+ assert block.f_sur.groups == 32
+ assert block.f_sur.dilation == (2, 2)
+ assert block.f_sur.bias is None
+
+ assert block.bottleneck.in_channels == 64
+ assert block.bottleneck.out_channels == 32
+ assert block.bottleneck.kernel_size == (1, 1)
+ assert block.bottleneck.stride == (1, 1)
+ assert block.bottleneck.bias is None
+
+ x = torch.randn(1, 32, 32, 32)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 16, 16])
+
+ # test cgnet ContextGuidedBlock without down sampling
+ block = ContextGuidedBlock(32, 32, downsample=False)
+ assert block.conv1x1.conv.in_channels == 32
+ assert block.conv1x1.conv.out_channels == 16
+ assert block.conv1x1.conv.kernel_size == (1, 1)
+ assert block.conv1x1.conv.stride == (1, 1)
+ assert block.conv1x1.conv.padding == (0, 0)
+
+ assert block.f_loc.in_channels == 16
+ assert block.f_loc.out_channels == 16
+ assert block.f_loc.kernel_size == (3, 3)
+ assert block.f_loc.stride == (1, 1)
+ assert block.f_loc.padding == (1, 1)
+ assert block.f_loc.groups == 16
+ assert block.f_loc.dilation == (1, 1)
+ assert block.f_loc.bias is None
+
+ assert block.f_sur.in_channels == 16
+ assert block.f_sur.out_channels == 16
+ assert block.f_sur.kernel_size == (3, 3)
+ assert block.f_sur.stride == (1, 1)
+ assert block.f_sur.padding == (2, 2)
+ assert block.f_sur.groups == 16
+ assert block.f_sur.dilation == (2, 2)
+ assert block.f_sur.bias is None
+
+ x = torch.randn(1, 32, 32, 32)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 32, 32])
+
+
+def test_cgnet_backbone():
+ with pytest.raises(AssertionError):
+ # check invalid num_channels
+ CGNet(num_channels=(32, 64, 128, 256))
+
+ with pytest.raises(AssertionError):
+ # check invalid num_blocks
+ CGNet(num_blocks=(3, 21, 3))
+
+ with pytest.raises(AssertionError):
+ # check invalid dilation
+ CGNet(num_blocks=2)
+
+ with pytest.raises(AssertionError):
+ # check invalid reduction
+ CGNet(reductions=16)
+
+ with pytest.raises(AssertionError):
+ # check invalid num_channels and reduction
+ CGNet(num_channels=(32, 64, 128), reductions=(64, 129))
+
+ # Test CGNet with default settings
+ model = CGNet()
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(2, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 3
+ assert feat[0].shape == torch.Size([2, 35, 112, 112])
+ assert feat[1].shape == torch.Size([2, 131, 56, 56])
+ assert feat[2].shape == torch.Size([2, 256, 28, 28])
+
+ # Test CGNet with norm_eval True and with_cp True
+ model = CGNet(norm_eval=True, with_cp=True)
+ with pytest.raises(TypeError):
+ # check invalid pretrained
+ model.init_weights(pretrained=8)
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(2, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 3
+ assert feat[0].shape == torch.Size([2, 35, 112, 112])
+ assert feat[1].shape == torch.Size([2, 131, 56, 56])
+ assert feat[2].shape == torch.Size([2, 256, 28, 28])
+
+
+def test_mobilenet_v3():
+ with pytest.raises(AssertionError):
+ # check invalid arch
+ MobileNetV3('big')
+
+ with pytest.raises(AssertionError):
+ # check invalid reduction_factor
+ MobileNetV3(reduction_factor=0)
+
+ with pytest.raises(ValueError):
+ # check invalid out_indices
+ MobileNetV3(out_indices=(0, 1, 15))
+
+ with pytest.raises(ValueError):
+ # check invalid frozen_stages
+ MobileNetV3(frozen_stages=15)
+
+ with pytest.raises(TypeError):
+ # check invalid pretrained
+ model = MobileNetV3()
+ model.init_weights(pretrained=8)
+
+ # Test MobileNetV3 with default settings
+ model = MobileNetV3()
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(2, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 3
+ assert feat[0].shape == (2, 16, 112, 112)
+ assert feat[1].shape == (2, 16, 56, 56)
+ assert feat[2].shape == (2, 576, 28, 28)
+
+ # Test MobileNetV3 with arch = 'large'
+ model = MobileNetV3(arch='large', out_indices=(1, 3, 16))
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(2, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 3
+ assert feat[0].shape == (2, 16, 112, 112)
+ assert feat[1].shape == (2, 24, 56, 56)
+ assert feat[2].shape == (2, 960, 28, 28)
+
+ # Test MobileNetV3 with norm_eval True, with_cp True and frozen_stages=5
+ model = MobileNetV3(norm_eval=True, with_cp=True, frozen_stages=5)
+ with pytest.raises(TypeError):
+ # check invalid pretrained
+ model.init_weights(pretrained=8)
+ model.init_weights()
+ model.train()
+
+ imgs = torch.randn(2, 3, 224, 224)
+ feat = model(imgs)
+ assert len(feat) == 3
+ assert feat[0].shape == (2, 16, 112, 112)
+ assert feat[1].shape == (2, 16, 56, 56)
+ assert feat[2].shape == (2, 576, 28, 28)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_forward.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_forward.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee8036246bd7df90d15158266cb5bdbfa3a5730f
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_forward.py
@@ -0,0 +1,250 @@
+"""pytest tests/test_forward.py."""
+import copy
+from os.path import dirname, exists, join
+from unittest.mock import patch
+
+import numpy as np
+import pytest
+import torch
+import torch.nn as nn
+from mmcv.utils.parrots_wrapper import SyncBatchNorm, _BatchNorm
+
+
+def _demo_mm_inputs(input_shape=(2, 3, 8, 16), num_classes=10):
+ """Create a superset of inputs needed to run test or train batches.
+
+ Args:
+ input_shape (tuple):
+ input batch dimensions
+
+ num_classes (int):
+ number of semantic classes
+ """
+ (N, C, H, W) = input_shape
+
+ rng = np.random.RandomState(0)
+
+ imgs = rng.rand(*input_shape)
+ segs = rng.randint(
+ low=0, high=num_classes - 1, size=(N, 1, H, W)).astype(np.uint8)
+
+ img_metas = [{
+ 'img_shape': (H, W, C),
+ 'ori_shape': (H, W, C),
+ 'pad_shape': (H, W, C),
+ 'filename': '.png',
+ 'scale_factor': 1.0,
+ 'flip': False,
+ 'flip_direction': 'horizontal'
+ } for _ in range(N)]
+
+ mm_inputs = {
+ 'imgs': torch.FloatTensor(imgs),
+ 'img_metas': img_metas,
+ 'gt_semantic_seg': torch.LongTensor(segs)
+ }
+ return mm_inputs
+
+
+def _get_config_directory():
+ """Find the predefined segmentor config directory."""
+ try:
+ # Assume we are running in the source mmsegmentation repo
+ repo_dpath = dirname(dirname(dirname(__file__)))
+ except NameError:
+ # For IPython development when this __file__ is not defined
+ import mmseg
+ repo_dpath = dirname(dirname(dirname(mmseg.__file__)))
+ config_dpath = join(repo_dpath, 'configs')
+ if not exists(config_dpath):
+ raise Exception('Cannot find config path')
+ return config_dpath
+
+
+def _get_config_module(fname):
+ """Load a configuration as a python module."""
+ from mmcv import Config
+ config_dpath = _get_config_directory()
+ config_fpath = join(config_dpath, fname)
+ config_mod = Config.fromfile(config_fpath)
+ return config_mod
+
+
+def _get_segmentor_cfg(fname):
+ """Grab configs necessary to create a segmentor.
+
+ These are deep copied to allow for safe modification of parameters without
+ influencing other tests.
+ """
+ config = _get_config_module(fname)
+ model = copy.deepcopy(config.model)
+ return model
+
+
+def test_pspnet_forward():
+ _test_encoder_decoder_forward(
+ 'pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_fcn_forward():
+ _test_encoder_decoder_forward('fcn/fcn_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_deeplabv3_forward():
+ _test_encoder_decoder_forward(
+ 'deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_deeplabv3plus_forward():
+ _test_encoder_decoder_forward(
+ 'deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_gcnet_forward():
+ _test_encoder_decoder_forward(
+ 'gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_ann_forward():
+ _test_encoder_decoder_forward('ann/ann_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_ccnet_forward():
+ if not torch.cuda.is_available():
+ pytest.skip('CCNet requires CUDA')
+ _test_encoder_decoder_forward(
+ 'ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_danet_forward():
+ _test_encoder_decoder_forward(
+ 'danet/danet_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_nonlocal_net_forward():
+ _test_encoder_decoder_forward(
+ 'nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_upernet_forward():
+ _test_encoder_decoder_forward(
+ 'upernet/upernet_r50_512x1024_40k_cityscapes.py')
+
+
+def test_hrnet_forward():
+ _test_encoder_decoder_forward('hrnet/fcn_hr18s_512x1024_40k_cityscapes.py')
+
+
+def test_ocrnet_forward():
+ _test_encoder_decoder_forward(
+ 'ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py')
+
+
+def test_psanet_forward():
+ _test_encoder_decoder_forward(
+ 'psanet/psanet_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_encnet_forward():
+ _test_encoder_decoder_forward(
+ 'encnet/encnet_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_sem_fpn_forward():
+ _test_encoder_decoder_forward('sem_fpn/fpn_r50_512x1024_80k_cityscapes.py')
+
+
+def test_point_rend_forward():
+ _test_encoder_decoder_forward(
+ 'point_rend/pointrend_r50_512x1024_80k_cityscapes.py')
+
+
+def test_mobilenet_v2_forward():
+ _test_encoder_decoder_forward(
+ 'mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py')
+
+
+def test_dnlnet_forward():
+ _test_encoder_decoder_forward(
+ 'dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py')
+
+
+def test_emanet_forward():
+ _test_encoder_decoder_forward(
+ 'emanet/emanet_r50-d8_512x1024_80k_cityscapes.py')
+
+
+def get_world_size(process_group):
+
+ return 1
+
+
+def _check_input_dim(self, inputs):
+ pass
+
+
+def _convert_batchnorm(module):
+ module_output = module
+ if isinstance(module, SyncBatchNorm):
+ # to be consistent with SyncBN, we hack dim check function in BN
+ module_output = _BatchNorm(module.num_features, module.eps,
+ module.momentum, module.affine,
+ module.track_running_stats)
+ if module.affine:
+ module_output.weight.data = module.weight.data.clone().detach()
+ module_output.bias.data = module.bias.data.clone().detach()
+ # keep requires_grad unchanged
+ module_output.weight.requires_grad = module.weight.requires_grad
+ module_output.bias.requires_grad = module.bias.requires_grad
+ module_output.running_mean = module.running_mean
+ module_output.running_var = module.running_var
+ module_output.num_batches_tracked = module.num_batches_tracked
+ for name, child in module.named_children():
+ module_output.add_module(name, _convert_batchnorm(child))
+ del module
+ return module_output
+
+
+@patch('torch.nn.modules.batchnorm._BatchNorm._check_input_dim',
+ _check_input_dim)
+@patch('torch.distributed.get_world_size', get_world_size)
+def _test_encoder_decoder_forward(cfg_file):
+ model = _get_segmentor_cfg(cfg_file)
+ model['pretrained'] = None
+ model['test_cfg']['mode'] = 'whole'
+
+ from mmseg.models import build_segmentor
+ segmentor = build_segmentor(model)
+
+ if isinstance(segmentor.decode_head, nn.ModuleList):
+ num_classes = segmentor.decode_head[-1].num_classes
+ else:
+ num_classes = segmentor.decode_head.num_classes
+ # batch_size=2 for BatchNorm
+ input_shape = (2, 3, 32, 32)
+ mm_inputs = _demo_mm_inputs(input_shape, num_classes=num_classes)
+
+ imgs = mm_inputs.pop('imgs')
+ img_metas = mm_inputs.pop('img_metas')
+ gt_semantic_seg = mm_inputs['gt_semantic_seg']
+
+ # convert to cuda Tensor if applicable
+ if torch.cuda.is_available():
+ segmentor = segmentor.cuda()
+ imgs = imgs.cuda()
+ gt_semantic_seg = gt_semantic_seg.cuda()
+ else:
+ segmentor = _convert_batchnorm(segmentor)
+
+ # Test forward train
+ losses = segmentor.forward(
+ imgs, img_metas, gt_semantic_seg=gt_semantic_seg, return_loss=True)
+ assert isinstance(losses, dict)
+
+ # Test forward test
+ with torch.no_grad():
+ segmentor.eval()
+ # pack into lists
+ img_list = [img[None, :] for img in imgs]
+ img_meta_list = [[img_meta] for img_meta in img_metas]
+ segmentor.forward(img_list, img_meta_list, return_loss=False)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_heads.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_heads.py
new file mode 100644
index 0000000000000000000000000000000000000000..e8a8493c160f11c2f51ab6dbca365b5312a6e46d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_heads.py
@@ -0,0 +1,834 @@
+from unittest.mock import patch
+
+import pytest
+import torch
+from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule
+from mmcv.utils import ConfigDict
+from mmcv.utils.parrots_wrapper import SyncBatchNorm
+
+from mmseg.models.decode_heads import (ANNHead, APCHead, ASPPHead, CCHead,
+ DAHead, DepthwiseSeparableASPPHead,
+ DepthwiseSeparableFCNHead, DMHead,
+ DNLHead, EMAHead, EncHead, FCNHead,
+ GCHead, LRASPPHead, NLHead, OCRHead,
+ PointHead, PSAHead, PSPHead, UPerHead)
+from mmseg.models.decode_heads.decode_head import BaseDecodeHead
+
+
+def _conv_has_norm(module, sync_bn):
+ for m in module.modules():
+ if isinstance(m, ConvModule):
+ if not m.with_norm:
+ return False
+ if sync_bn:
+ if not isinstance(m.bn, SyncBatchNorm):
+ return False
+ return True
+
+
+def to_cuda(module, data):
+ module = module.cuda()
+ if isinstance(data, list):
+ for i in range(len(data)):
+ data[i] = data[i].cuda()
+ return module, data
+
+
+@patch.multiple(BaseDecodeHead, __abstractmethods__=set())
+def test_decode_head():
+
+ with pytest.raises(AssertionError):
+ # default input_transform doesn't accept multiple inputs
+ BaseDecodeHead([32, 16], 16, num_classes=19)
+
+ with pytest.raises(AssertionError):
+ # default input_transform doesn't accept multiple inputs
+ BaseDecodeHead(32, 16, num_classes=19, in_index=[-1, -2])
+
+ with pytest.raises(AssertionError):
+ # supported mode is resize_concat only
+ BaseDecodeHead(32, 16, num_classes=19, input_transform='concat')
+
+ with pytest.raises(AssertionError):
+ # in_channels should be list|tuple
+ BaseDecodeHead(32, 16, num_classes=19, input_transform='resize_concat')
+
+ with pytest.raises(AssertionError):
+ # in_index should be list|tuple
+ BaseDecodeHead([32],
+ 16,
+ in_index=-1,
+ num_classes=19,
+ input_transform='resize_concat')
+
+ with pytest.raises(AssertionError):
+ # len(in_index) should equal len(in_channels)
+ BaseDecodeHead([32, 16],
+ 16,
+ num_classes=19,
+ in_index=[-1],
+ input_transform='resize_concat')
+
+ # test default dropout
+ head = BaseDecodeHead(32, 16, num_classes=19)
+ assert hasattr(head, 'dropout') and head.dropout.p == 0.1
+
+ # test set dropout
+ head = BaseDecodeHead(32, 16, num_classes=19, dropout_ratio=0.2)
+ assert hasattr(head, 'dropout') and head.dropout.p == 0.2
+
+ # test no input_transform
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = BaseDecodeHead(32, 16, num_classes=19)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.in_channels == 32
+ assert head.input_transform is None
+ transformed_inputs = head._transform_inputs(inputs)
+ assert transformed_inputs.shape == (1, 32, 45, 45)
+
+ # test input_transform = resize_concat
+ inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)]
+ head = BaseDecodeHead([32, 16],
+ 16,
+ num_classes=19,
+ in_index=[0, 1],
+ input_transform='resize_concat')
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.in_channels == 48
+ assert head.input_transform == 'resize_concat'
+ transformed_inputs = head._transform_inputs(inputs)
+ assert transformed_inputs.shape == (1, 48, 45, 45)
+
+
+def test_fcn_head():
+
+ with pytest.raises(AssertionError):
+ # num_convs must be not less than 0
+ FCNHead(num_classes=19, num_convs=-1)
+
+ # test no norm_cfg
+ head = FCNHead(in_channels=32, channels=16, num_classes=19)
+ for m in head.modules():
+ if isinstance(m, ConvModule):
+ assert not m.with_norm
+
+ # test with norm_cfg
+ head = FCNHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN'))
+ for m in head.modules():
+ if isinstance(m, ConvModule):
+ assert m.with_norm and isinstance(m.bn, SyncBatchNorm)
+
+ # test concat_input=False
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = FCNHead(
+ in_channels=32, channels=16, num_classes=19, concat_input=False)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert len(head.convs) == 2
+ assert not head.concat_input and not hasattr(head, 'conv_cat')
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # test concat_input=True
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = FCNHead(
+ in_channels=32, channels=16, num_classes=19, concat_input=True)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert len(head.convs) == 2
+ assert head.concat_input
+ assert head.conv_cat.in_channels == 48
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # test kernel_size=3
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = FCNHead(in_channels=32, channels=16, num_classes=19)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ for i in range(len(head.convs)):
+ assert head.convs[i].kernel_size == (3, 3)
+ assert head.convs[i].padding == 1
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # test kernel_size=1
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = FCNHead(in_channels=32, channels=16, num_classes=19, kernel_size=1)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ for i in range(len(head.convs)):
+ assert head.convs[i].kernel_size == (1, 1)
+ assert head.convs[i].padding == 0
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # test num_conv
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = FCNHead(in_channels=32, channels=16, num_classes=19, num_convs=1)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert len(head.convs) == 1
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # test num_conv = 0
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = FCNHead(
+ in_channels=32,
+ channels=32,
+ num_classes=19,
+ num_convs=0,
+ concat_input=False)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert isinstance(head.convs, torch.nn.Identity)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_psp_head():
+
+ with pytest.raises(AssertionError):
+ # pool_scales must be list|tuple
+ PSPHead(in_channels=32, channels=16, num_classes=19, pool_scales=1)
+
+ # test no norm_cfg
+ head = PSPHead(in_channels=32, channels=16, num_classes=19)
+ assert not _conv_has_norm(head, sync_bn=False)
+
+ # test with norm_cfg
+ head = PSPHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN'))
+ assert _conv_has_norm(head, sync_bn=True)
+
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = PSPHead(
+ in_channels=32, channels=16, num_classes=19, pool_scales=(1, 2, 3))
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.psp_modules[0][0].output_size == 1
+ assert head.psp_modules[1][0].output_size == 2
+ assert head.psp_modules[2][0].output_size == 3
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_apc_head():
+
+ with pytest.raises(AssertionError):
+ # pool_scales must be list|tuple
+ APCHead(in_channels=32, channels=16, num_classes=19, pool_scales=1)
+
+ # test no norm_cfg
+ head = APCHead(in_channels=32, channels=16, num_classes=19)
+ assert not _conv_has_norm(head, sync_bn=False)
+
+ # test with norm_cfg
+ head = APCHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN'))
+ assert _conv_has_norm(head, sync_bn=True)
+
+ # fusion=True
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = APCHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ pool_scales=(1, 2, 3),
+ fusion=True)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.fusion is True
+ assert head.acm_modules[0].pool_scale == 1
+ assert head.acm_modules[1].pool_scale == 2
+ assert head.acm_modules[2].pool_scale == 3
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # fusion=False
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = APCHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ pool_scales=(1, 2, 3),
+ fusion=False)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.fusion is False
+ assert head.acm_modules[0].pool_scale == 1
+ assert head.acm_modules[1].pool_scale == 2
+ assert head.acm_modules[2].pool_scale == 3
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_dm_head():
+
+ with pytest.raises(AssertionError):
+ # filter_sizes must be list|tuple
+ DMHead(in_channels=32, channels=16, num_classes=19, filter_sizes=1)
+
+ # test no norm_cfg
+ head = DMHead(in_channels=32, channels=16, num_classes=19)
+ assert not _conv_has_norm(head, sync_bn=False)
+
+ # test with norm_cfg
+ head = DMHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN'))
+ assert _conv_has_norm(head, sync_bn=True)
+
+ # fusion=True
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = DMHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ filter_sizes=(1, 3, 5),
+ fusion=True)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.fusion is True
+ assert head.dcm_modules[0].filter_size == 1
+ assert head.dcm_modules[1].filter_size == 3
+ assert head.dcm_modules[2].filter_size == 5
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # fusion=False
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = DMHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ filter_sizes=(1, 3, 5),
+ fusion=False)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.fusion is False
+ assert head.dcm_modules[0].filter_size == 1
+ assert head.dcm_modules[1].filter_size == 3
+ assert head.dcm_modules[2].filter_size == 5
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_aspp_head():
+
+ with pytest.raises(AssertionError):
+ # pool_scales must be list|tuple
+ ASPPHead(in_channels=32, channels=16, num_classes=19, dilations=1)
+
+ # test no norm_cfg
+ head = ASPPHead(in_channels=32, channels=16, num_classes=19)
+ assert not _conv_has_norm(head, sync_bn=False)
+
+ # test with norm_cfg
+ head = ASPPHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN'))
+ assert _conv_has_norm(head, sync_bn=True)
+
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = ASPPHead(
+ in_channels=32, channels=16, num_classes=19, dilations=(1, 12, 24))
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.aspp_modules[0].conv.dilation == (1, 1)
+ assert head.aspp_modules[1].conv.dilation == (12, 12)
+ assert head.aspp_modules[2].conv.dilation == (24, 24)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_psa_head():
+
+ with pytest.raises(AssertionError):
+ # psa_type must be in 'bi-direction', 'collect', 'distribute'
+ PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ psa_type='gather')
+
+ # test no norm_cfg
+ head = PSAHead(
+ in_channels=32, channels=16, num_classes=19, mask_size=(39, 39))
+ assert not _conv_has_norm(head, sync_bn=False)
+
+ # test with norm_cfg
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ norm_cfg=dict(type='SyncBN'))
+ assert _conv_has_norm(head, sync_bn=True)
+
+ # test 'bi-direction' psa_type
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32, channels=16, num_classes=19, mask_size=(39, 39))
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+ # test 'bi-direction' psa_type, shrink_factor=1
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ shrink_factor=1)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+ # test 'bi-direction' psa_type with soft_max
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ psa_softmax=True)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+ # test 'collect' psa_type
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ psa_type='collect')
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+ # test 'collect' psa_type, shrink_factor=1
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ shrink_factor=1,
+ psa_type='collect')
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+ # test 'collect' psa_type, shrink_factor=1, compact=True
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ psa_type='collect',
+ shrink_factor=1,
+ compact=True)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+ # test 'distribute' psa_type
+ inputs = [torch.randn(1, 32, 39, 39)]
+ head = PSAHead(
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ mask_size=(39, 39),
+ psa_type='distribute')
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 39, 39)
+
+
+def test_gc_head():
+ head = GCHead(in_channels=32, channels=16, num_classes=19)
+ assert len(head.convs) == 2
+ assert hasattr(head, 'gc_block')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_nl_head():
+ head = NLHead(in_channels=32, channels=16, num_classes=19)
+ assert len(head.convs) == 2
+ assert hasattr(head, 'nl_block')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_cc_head():
+ head = CCHead(in_channels=32, channels=16, num_classes=19)
+ assert len(head.convs) == 2
+ assert hasattr(head, 'cca')
+ if not torch.cuda.is_available():
+ pytest.skip('CCHead requires CUDA')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_uper_head():
+
+ with pytest.raises(AssertionError):
+ # fpn_in_channels must be list|tuple
+ UPerHead(in_channels=32, channels=16, num_classes=19)
+
+ # test no norm_cfg
+ head = UPerHead(
+ in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1])
+ assert not _conv_has_norm(head, sync_bn=False)
+
+ # test with norm_cfg
+ head = UPerHead(
+ in_channels=[32, 16],
+ channels=16,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN'),
+ in_index=[-2, -1])
+ assert _conv_has_norm(head, sync_bn=True)
+
+ inputs = [torch.randn(1, 32, 45, 45), torch.randn(1, 16, 21, 21)]
+ head = UPerHead(
+ in_channels=[32, 16], channels=16, num_classes=19, in_index=[-2, -1])
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_ann_head():
+
+ inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)]
+ head = ANNHead(
+ in_channels=[16, 32],
+ channels=16,
+ num_classes=19,
+ in_index=[-2, -1],
+ project_channels=8)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 21, 21)
+
+
+def test_da_head():
+
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = DAHead(in_channels=32, channels=16, num_classes=19, pam_channels=8)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert isinstance(outputs, tuple) and len(outputs) == 3
+ for output in outputs:
+ assert output.shape == (1, head.num_classes, 45, 45)
+ test_output = head.forward_test(inputs, None, None)
+ assert test_output.shape == (1, head.num_classes, 45, 45)
+
+
+def test_ocr_head():
+
+ inputs = [torch.randn(1, 32, 45, 45)]
+ ocr_head = OCRHead(
+ in_channels=32, channels=16, num_classes=19, ocr_channels=8)
+ fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(ocr_head, inputs)
+ head, inputs = to_cuda(fcn_head, inputs)
+ prev_output = fcn_head(inputs)
+ output = ocr_head(inputs, prev_output)
+ assert output.shape == (1, ocr_head.num_classes, 45, 45)
+
+
+def test_enc_head():
+ # with se_loss, w.o. lateral
+ inputs = [torch.randn(1, 32, 21, 21)]
+ head = EncHead(
+ in_channels=[32], channels=16, num_classes=19, in_index=[-1])
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert isinstance(outputs, tuple) and len(outputs) == 2
+ assert outputs[0].shape == (1, head.num_classes, 21, 21)
+ assert outputs[1].shape == (1, head.num_classes)
+
+ # w.o se_loss, w.o. lateral
+ inputs = [torch.randn(1, 32, 21, 21)]
+ head = EncHead(
+ in_channels=[32],
+ channels=16,
+ use_se_loss=False,
+ num_classes=19,
+ in_index=[-1])
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 21, 21)
+
+ # with se_loss, with lateral
+ inputs = [torch.randn(1, 16, 45, 45), torch.randn(1, 32, 21, 21)]
+ head = EncHead(
+ in_channels=[16, 32],
+ channels=16,
+ add_lateral=True,
+ num_classes=19,
+ in_index=[-2, -1])
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert isinstance(outputs, tuple) and len(outputs) == 2
+ assert outputs[0].shape == (1, head.num_classes, 21, 21)
+ assert outputs[1].shape == (1, head.num_classes)
+ test_output = head.forward_test(inputs, None, None)
+ assert test_output.shape == (1, head.num_classes, 21, 21)
+
+
+def test_dw_aspp_head():
+
+ # test w.o. c1
+ inputs = [torch.randn(1, 32, 45, 45)]
+ head = DepthwiseSeparableASPPHead(
+ c1_in_channels=0,
+ c1_channels=0,
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ dilations=(1, 12, 24))
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.c1_bottleneck is None
+ assert head.aspp_modules[0].conv.dilation == (1, 1)
+ assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12)
+ assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # test with c1
+ inputs = [torch.randn(1, 8, 45, 45), torch.randn(1, 32, 21, 21)]
+ head = DepthwiseSeparableASPPHead(
+ c1_in_channels=8,
+ c1_channels=4,
+ in_channels=32,
+ channels=16,
+ num_classes=19,
+ dilations=(1, 12, 24))
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ assert head.c1_bottleneck.in_channels == 8
+ assert head.c1_bottleneck.out_channels == 4
+ assert head.aspp_modules[0].conv.dilation == (1, 1)
+ assert head.aspp_modules[1].depthwise_conv.dilation == (12, 12)
+ assert head.aspp_modules[2].depthwise_conv.dilation == (24, 24)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_sep_fcn_head():
+ # test sep_fcn_head with concat_input=False
+ head = DepthwiseSeparableFCNHead(
+ in_channels=128,
+ channels=128,
+ concat_input=False,
+ num_classes=19,
+ in_index=-1,
+ norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01))
+ x = [torch.rand(2, 128, 32, 32)]
+ output = head(x)
+ assert output.shape == (2, head.num_classes, 32, 32)
+ assert not head.concat_input
+ assert isinstance(head.convs[0], DepthwiseSeparableConvModule)
+ assert isinstance(head.convs[1], DepthwiseSeparableConvModule)
+ assert head.conv_seg.kernel_size == (1, 1)
+
+ head = DepthwiseSeparableFCNHead(
+ in_channels=64,
+ channels=64,
+ concat_input=True,
+ num_classes=19,
+ in_index=-1,
+ norm_cfg=dict(type='BN', requires_grad=True, momentum=0.01))
+ x = [torch.rand(3, 64, 32, 32)]
+ output = head(x)
+ assert output.shape == (3, head.num_classes, 32, 32)
+ assert head.concat_input
+ assert isinstance(head.convs[0], DepthwiseSeparableConvModule)
+ assert isinstance(head.convs[1], DepthwiseSeparableConvModule)
+
+
+def test_dnl_head():
+ # DNL with 'embedded_gaussian' mode
+ head = DNLHead(in_channels=32, channels=16, num_classes=19)
+ assert len(head.convs) == 2
+ assert hasattr(head, 'dnl_block')
+ assert head.dnl_block.temperature == 0.05
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # NonLocal2d with 'dot_product' mode
+ head = DNLHead(
+ in_channels=32, channels=16, num_classes=19, mode='dot_product')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # NonLocal2d with 'gaussian' mode
+ head = DNLHead(
+ in_channels=32, channels=16, num_classes=19, mode='gaussian')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+ # NonLocal2d with 'concatenation' mode
+ head = DNLHead(
+ in_channels=32, channels=16, num_classes=19, mode='concatenation')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_emanet_head():
+ head = EMAHead(
+ in_channels=32,
+ ema_channels=24,
+ channels=16,
+ num_stages=3,
+ num_bases=16,
+ num_classes=19)
+ for param in head.ema_mid_conv.parameters():
+ assert not param.requires_grad
+ assert hasattr(head, 'ema_module')
+ inputs = [torch.randn(1, 32, 45, 45)]
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(head, inputs)
+ outputs = head(inputs)
+ assert outputs.shape == (1, head.num_classes, 45, 45)
+
+
+def test_point_head():
+
+ inputs = [torch.randn(1, 32, 45, 45)]
+ point_head = PointHead(
+ in_channels=[32], in_index=[0], channels=16, num_classes=19)
+ assert len(point_head.fcs) == 3
+ fcn_head = FCNHead(in_channels=32, channels=16, num_classes=19)
+ if torch.cuda.is_available():
+ head, inputs = to_cuda(point_head, inputs)
+ head, inputs = to_cuda(fcn_head, inputs)
+ prev_output = fcn_head(inputs)
+ test_cfg = ConfigDict(
+ subdivision_steps=2, subdivision_num_points=8196, scale_factor=2)
+ output = point_head.forward_test(inputs, prev_output, None, test_cfg)
+ assert output.shape == (1, point_head.num_classes, 180, 180)
+
+
+def test_lraspp_head():
+ with pytest.raises(ValueError):
+ # check invalid input_transform
+ LRASPPHead(
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='resize_concat',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='BN'),
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+
+ with pytest.raises(AssertionError):
+ # check invalid branch_channels
+ LRASPPHead(
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ branch_channels=64,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='BN'),
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+
+ # test with default settings
+ lraspp_head = LRASPPHead(
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='BN'),
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ inputs = [
+ torch.randn(2, 16, 45, 45),
+ torch.randn(2, 16, 28, 28),
+ torch.randn(2, 576, 14, 14)
+ ]
+ with pytest.raises(RuntimeError):
+ # check invalid inputs
+ output = lraspp_head(inputs)
+
+ inputs = [
+ torch.randn(2, 16, 111, 111),
+ torch.randn(2, 16, 77, 77),
+ torch.randn(2, 576, 55, 55)
+ ]
+ output = lraspp_head(inputs)
+ assert output.shape == (2, 19, 111, 111)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_losses.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_losses.py
new file mode 100644
index 0000000000000000000000000000000000000000..005d9391145dbc18766fb81633fb3eda16b825b0
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_losses.py
@@ -0,0 +1,204 @@
+import numpy as np
+import pytest
+import torch
+
+from mmseg.models.losses import Accuracy, reduce_loss, weight_reduce_loss
+
+
+def test_utils():
+ loss = torch.rand(1, 3, 4, 4)
+ weight = torch.zeros(1, 3, 4, 4)
+ weight[:, :, :2, :2] = 1
+
+ # test reduce_loss()
+ reduced = reduce_loss(loss, 'none')
+ assert reduced is loss
+
+ reduced = reduce_loss(loss, 'mean')
+ np.testing.assert_almost_equal(reduced.numpy(), loss.mean())
+
+ reduced = reduce_loss(loss, 'sum')
+ np.testing.assert_almost_equal(reduced.numpy(), loss.sum())
+
+ # test weight_reduce_loss()
+ reduced = weight_reduce_loss(loss, weight=None, reduction='none')
+ assert reduced is loss
+
+ reduced = weight_reduce_loss(loss, weight=weight, reduction='mean')
+ target = (loss * weight).mean()
+ np.testing.assert_almost_equal(reduced.numpy(), target)
+
+ reduced = weight_reduce_loss(loss, weight=weight, reduction='sum')
+ np.testing.assert_almost_equal(reduced.numpy(), (loss * weight).sum())
+
+ with pytest.raises(AssertionError):
+ weight_wrong = weight[0, 0, ...]
+ weight_reduce_loss(loss, weight=weight_wrong, reduction='mean')
+
+ with pytest.raises(AssertionError):
+ weight_wrong = weight[:, 0:2, ...]
+ weight_reduce_loss(loss, weight=weight_wrong, reduction='mean')
+
+
+def test_ce_loss():
+ from mmseg.models import build_loss
+
+ # use_mask and use_sigmoid cannot be true at the same time
+ with pytest.raises(AssertionError):
+ loss_cfg = dict(
+ type='CrossEntropyLoss',
+ use_mask=True,
+ use_sigmoid=True,
+ loss_weight=1.0)
+ build_loss(loss_cfg)
+
+ # test loss with class weights
+ loss_cls_cfg = dict(
+ type='CrossEntropyLoss',
+ use_sigmoid=False,
+ class_weight=[0.8, 0.2],
+ loss_weight=1.0)
+ loss_cls = build_loss(loss_cls_cfg)
+ fake_pred = torch.Tensor([[100, -100]])
+ fake_label = torch.Tensor([1]).long()
+ assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(40.))
+
+ loss_cls_cfg = dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)
+ loss_cls = build_loss(loss_cls_cfg)
+ assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(200.))
+
+ loss_cls_cfg = dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0)
+ loss_cls = build_loss(loss_cls_cfg)
+ assert torch.allclose(loss_cls(fake_pred, fake_label), torch.tensor(100.))
+
+ fake_pred = torch.full(size=(2, 21, 8, 8), fill_value=0.5)
+ fake_label = torch.ones(2, 8, 8).long()
+ assert torch.allclose(
+ loss_cls(fake_pred, fake_label), torch.tensor(0.9503), atol=1e-4)
+ fake_label[:, 0, 0] = 255
+ assert torch.allclose(
+ loss_cls(fake_pred, fake_label, ignore_index=255),
+ torch.tensor(0.9354),
+ atol=1e-4)
+
+ # TODO test use_mask
+
+
+def test_accuracy():
+ # test for empty pred
+ pred = torch.empty(0, 4)
+ label = torch.empty(0)
+ accuracy = Accuracy(topk=1)
+ acc = accuracy(pred, label)
+ assert acc.item() == 0
+
+ pred = torch.Tensor([[0.2, 0.3, 0.6, 0.5], [0.1, 0.1, 0.2, 0.6],
+ [0.9, 0.0, 0.0, 0.1], [0.4, 0.7, 0.1, 0.1],
+ [0.0, 0.0, 0.99, 0]])
+ # test for top1
+ true_label = torch.Tensor([2, 3, 0, 1, 2]).long()
+ accuracy = Accuracy(topk=1)
+ acc = accuracy(pred, true_label)
+ assert acc.item() == 100
+
+ # test for top1 with score thresh=0.8
+ true_label = torch.Tensor([2, 3, 0, 1, 2]).long()
+ accuracy = Accuracy(topk=1, thresh=0.8)
+ acc = accuracy(pred, true_label)
+ assert acc.item() == 40
+
+ # test for top2
+ accuracy = Accuracy(topk=2)
+ label = torch.Tensor([3, 2, 0, 0, 2]).long()
+ acc = accuracy(pred, label)
+ assert acc.item() == 100
+
+ # test for both top1 and top2
+ accuracy = Accuracy(topk=(1, 2))
+ true_label = torch.Tensor([2, 3, 0, 1, 2]).long()
+ acc = accuracy(pred, true_label)
+ for a in acc:
+ assert a.item() == 100
+
+ # topk is larger than pred class number
+ with pytest.raises(AssertionError):
+ accuracy = Accuracy(topk=5)
+ accuracy(pred, true_label)
+
+ # wrong topk type
+ with pytest.raises(AssertionError):
+ accuracy = Accuracy(topk='wrong type')
+ accuracy(pred, true_label)
+
+ # label size is larger than required
+ with pytest.raises(AssertionError):
+ label = torch.Tensor([2, 3, 0, 1, 2, 0]).long() # size mismatch
+ accuracy = Accuracy()
+ accuracy(pred, label)
+
+ # wrong pred dimension
+ with pytest.raises(AssertionError):
+ accuracy = Accuracy()
+ accuracy(pred[:, :, None], true_label)
+
+
+def test_lovasz_loss():
+ from mmseg.models import build_loss
+
+ # loss_type should be 'binary' or 'multi_class'
+ with pytest.raises(AssertionError):
+ loss_cfg = dict(
+ type='LovaszLoss',
+ loss_type='Binary',
+ reduction='none',
+ loss_weight=1.0)
+ build_loss(loss_cfg)
+
+ # reduction should be 'none' when per_image is False.
+ with pytest.raises(AssertionError):
+ loss_cfg = dict(type='LovaszLoss', loss_type='multi_class')
+ build_loss(loss_cfg)
+
+ # test lovasz loss with loss_type = 'multi_class' and per_image = False
+ loss_cfg = dict(type='LovaszLoss', reduction='none', loss_weight=1.0)
+ lovasz_loss = build_loss(loss_cfg)
+ logits = torch.rand(1, 3, 4, 4)
+ labels = (torch.rand(1, 4, 4) * 2).long()
+ lovasz_loss(logits, labels)
+
+ # test lovasz loss with loss_type = 'multi_class' and per_image = True
+ loss_cfg = dict(
+ type='LovaszLoss',
+ per_image=True,
+ reduction='mean',
+ class_weight=[1.0, 2.0, 3.0],
+ loss_weight=1.0)
+ lovasz_loss = build_loss(loss_cfg)
+ logits = torch.rand(1, 3, 4, 4)
+ labels = (torch.rand(1, 4, 4) * 2).long()
+ lovasz_loss(logits, labels, ignore_index=None)
+
+ # test lovasz loss with loss_type = 'binary' and per_image = False
+ loss_cfg = dict(
+ type='LovaszLoss',
+ loss_type='binary',
+ reduction='none',
+ loss_weight=1.0)
+ lovasz_loss = build_loss(loss_cfg)
+ logits = torch.rand(2, 4, 4)
+ labels = (torch.rand(2, 4, 4)).long()
+ lovasz_loss(logits, labels)
+
+ # test lovasz loss with loss_type = 'binary' and per_image = True
+ loss_cfg = dict(
+ type='LovaszLoss',
+ loss_type='binary',
+ per_image=True,
+ reduction='mean',
+ loss_weight=1.0)
+ lovasz_loss = build_loss(loss_cfg)
+ logits = torch.rand(2, 4, 4)
+ labels = (torch.rand(2, 4, 4)).long()
+ lovasz_loss(logits, labels, ignore_index=None)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_necks.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_necks.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fc968450f5e66c804bc7a4ac1cf28a0d635739c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_necks.py
@@ -0,0 +1,18 @@
+import torch
+
+from mmseg.models import FPN
+
+
+def test_fpn():
+ in_channels = [256, 512, 1024, 2048]
+ inputs = [
+ torch.randn(1, c, 56 // 2**i, 56 // 2**i)
+ for i, c in enumerate(in_channels)
+ ]
+
+ fpn = FPN(in_channels, 256, len(in_channels))
+ outputs = fpn(inputs)
+ assert outputs[0].shape == torch.Size([1, 256, 56, 56])
+ assert outputs[1].shape == torch.Size([1, 256, 28, 28])
+ assert outputs[2].shape == torch.Size([1, 256, 14, 14])
+ assert outputs[3].shape == torch.Size([1, 256, 7, 7])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_segmentor.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_segmentor.py
new file mode 100644
index 0000000000000000000000000000000000000000..90d3bf6314f03e11d9728890adc532732b05d14c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_segmentor.py
@@ -0,0 +1,214 @@
+import numpy as np
+import torch
+from mmcv import ConfigDict
+from torch import nn
+
+from mmseg.models import BACKBONES, HEADS, build_segmentor
+from mmseg.models.decode_heads.cascade_decode_head import BaseCascadeDecodeHead
+from mmseg.models.decode_heads.decode_head import BaseDecodeHead
+
+
+def _demo_mm_inputs(input_shape=(1, 3, 8, 16), num_classes=10):
+ """Create a superset of inputs needed to run test or train batches.
+
+ Args:
+ input_shape (tuple):
+ input batch dimensions
+
+ num_classes (int):
+ number of semantic classes
+ """
+ (N, C, H, W) = input_shape
+
+ rng = np.random.RandomState(0)
+
+ imgs = rng.rand(*input_shape)
+ segs = rng.randint(
+ low=0, high=num_classes - 1, size=(N, 1, H, W)).astype(np.uint8)
+
+ img_metas = [{
+ 'img_shape': (H, W, C),
+ 'ori_shape': (H, W, C),
+ 'pad_shape': (H, W, C),
+ 'filename': '.png',
+ 'scale_factor': 1.0,
+ 'flip': False,
+ 'flip_direction': 'horizontal'
+ } for _ in range(N)]
+
+ mm_inputs = {
+ 'imgs': torch.FloatTensor(imgs),
+ 'img_metas': img_metas,
+ 'gt_semantic_seg': torch.LongTensor(segs)
+ }
+ return mm_inputs
+
+
+@BACKBONES.register_module()
+class ExampleBackbone(nn.Module):
+
+ def __init__(self):
+ super(ExampleBackbone, self).__init__()
+ self.conv = nn.Conv2d(3, 3, 3)
+
+ def init_weights(self, pretrained=None):
+ pass
+
+ def forward(self, x):
+ return [self.conv(x)]
+
+
+@HEADS.register_module()
+class ExampleDecodeHead(BaseDecodeHead):
+
+ def __init__(self):
+ super(ExampleDecodeHead, self).__init__(3, 3, num_classes=19)
+
+ def forward(self, inputs):
+ return self.cls_seg(inputs[0])
+
+
+@HEADS.register_module()
+class ExampleCascadeDecodeHead(BaseCascadeDecodeHead):
+
+ def __init__(self):
+ super(ExampleCascadeDecodeHead, self).__init__(3, 3, num_classes=19)
+
+ def forward(self, inputs, prev_out):
+ return self.cls_seg(inputs[0])
+
+
+def _segmentor_forward_train_test(segmentor):
+ if isinstance(segmentor.decode_head, nn.ModuleList):
+ num_classes = segmentor.decode_head[-1].num_classes
+ else:
+ num_classes = segmentor.decode_head.num_classes
+ # batch_size=2 for BatchNorm
+ mm_inputs = _demo_mm_inputs(num_classes=num_classes)
+
+ imgs = mm_inputs.pop('imgs')
+ img_metas = mm_inputs.pop('img_metas')
+ gt_semantic_seg = mm_inputs['gt_semantic_seg']
+
+ # convert to cuda Tensor if applicable
+ if torch.cuda.is_available():
+ segmentor = segmentor.cuda()
+ imgs = imgs.cuda()
+ gt_semantic_seg = gt_semantic_seg.cuda()
+
+ # Test forward train
+ losses = segmentor.forward(
+ imgs, img_metas, gt_semantic_seg=gt_semantic_seg, return_loss=True)
+ assert isinstance(losses, dict)
+
+ # Test forward simple test
+ with torch.no_grad():
+ segmentor.eval()
+ # pack into lists
+ img_list = [img[None, :] for img in imgs]
+ img_meta_list = [[img_meta] for img_meta in img_metas]
+ segmentor.forward(img_list, img_meta_list, return_loss=False)
+
+ # Test forward aug test
+ with torch.no_grad():
+ segmentor.eval()
+ # pack into lists
+ img_list = [img[None, :] for img in imgs]
+ img_list = img_list + img_list
+ img_meta_list = [[img_meta] for img_meta in img_metas]
+ img_meta_list = img_meta_list + img_meta_list
+ segmentor.forward(img_list, img_meta_list, return_loss=False)
+
+
+def test_encoder_decoder():
+
+ # test 1 decode head, w.o. aux head
+
+ cfg = ConfigDict(
+ type='EncoderDecoder',
+ backbone=dict(type='ExampleBackbone'),
+ decode_head=dict(type='ExampleDecodeHead'),
+ train_cfg=None,
+ test_cfg=dict(mode='whole'))
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+ # test slide mode
+ cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2))
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+ # test 1 decode head, 1 aux head
+ cfg = ConfigDict(
+ type='EncoderDecoder',
+ backbone=dict(type='ExampleBackbone'),
+ decode_head=dict(type='ExampleDecodeHead'),
+ auxiliary_head=dict(type='ExampleDecodeHead'))
+ cfg.test_cfg = ConfigDict(mode='whole')
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+ # test 1 decode head, 2 aux head
+ cfg = ConfigDict(
+ type='EncoderDecoder',
+ backbone=dict(type='ExampleBackbone'),
+ decode_head=dict(type='ExampleDecodeHead'),
+ auxiliary_head=[
+ dict(type='ExampleDecodeHead'),
+ dict(type='ExampleDecodeHead')
+ ])
+ cfg.test_cfg = ConfigDict(mode='whole')
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+
+def test_cascade_encoder_decoder():
+
+ # test 1 decode head, w.o. aux head
+ cfg = ConfigDict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ backbone=dict(type='ExampleBackbone'),
+ decode_head=[
+ dict(type='ExampleDecodeHead'),
+ dict(type='ExampleCascadeDecodeHead')
+ ])
+ cfg.test_cfg = ConfigDict(mode='whole')
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+ # test slide mode
+ cfg.test_cfg = ConfigDict(mode='slide', crop_size=(3, 3), stride=(2, 2))
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+ # test 1 decode head, 1 aux head
+ cfg = ConfigDict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ backbone=dict(type='ExampleBackbone'),
+ decode_head=[
+ dict(type='ExampleDecodeHead'),
+ dict(type='ExampleCascadeDecodeHead')
+ ],
+ auxiliary_head=dict(type='ExampleDecodeHead'))
+ cfg.test_cfg = ConfigDict(mode='whole')
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
+
+ # test 1 decode head, 2 aux head
+ cfg = ConfigDict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ backbone=dict(type='ExampleBackbone'),
+ decode_head=[
+ dict(type='ExampleDecodeHead'),
+ dict(type='ExampleCascadeDecodeHead')
+ ],
+ auxiliary_head=[
+ dict(type='ExampleDecodeHead'),
+ dict(type='ExampleDecodeHead')
+ ])
+ cfg.test_cfg = ConfigDict(mode='whole')
+ segmentor = build_segmentor(cfg)
+ _segmentor_forward_train_test(segmentor)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_unet.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_unet.py
new file mode 100644
index 0000000000000000000000000000000000000000..febe4f0c970c3bc44bd9e8170c706df32122b9b4
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_models/test_unet.py
@@ -0,0 +1,833 @@
+import pytest
+import torch
+from mmcv.cnn import ConvModule
+from mmcv.utils.parrots_wrapper import _BatchNorm
+from torch import nn
+
+from mmseg.models.backbones.unet import (BasicConvBlock, DeconvModule,
+ InterpConv, UNet, UpConvBlock)
+
+
+def check_norm_state(modules, train_state):
+ """Check if norm layer is in correct train state."""
+ for mod in modules:
+ if isinstance(mod, _BatchNorm):
+ if mod.training != train_state:
+ return False
+ return True
+
+
+def test_unet_basic_conv_block():
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ BasicConvBlock(64, 64, dcn=dcn)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ BasicConvBlock(64, 64, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ position='after_conv2')
+ ]
+ BasicConvBlock(64, 64, plugins=plugins)
+
+ # test BasicConvBlock with checkpoint forward
+ block = BasicConvBlock(16, 16, with_cp=True)
+ assert block.with_cp
+ x = torch.randn(1, 16, 64, 64, requires_grad=True)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 16, 64, 64])
+
+ block = BasicConvBlock(16, 16, with_cp=False)
+ assert not block.with_cp
+ x = torch.randn(1, 16, 64, 64)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 16, 64, 64])
+
+ # test BasicConvBlock with stride convolution to downsample
+ block = BasicConvBlock(16, 16, stride=2)
+ x = torch.randn(1, 16, 64, 64)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 16, 32, 32])
+
+ # test BasicConvBlock structure and forward
+ block = BasicConvBlock(16, 64, num_convs=3, dilation=3)
+ assert block.convs[0].conv.in_channels == 16
+ assert block.convs[0].conv.out_channels == 64
+ assert block.convs[0].conv.kernel_size == (3, 3)
+ assert block.convs[0].conv.dilation == (1, 1)
+ assert block.convs[0].conv.padding == (1, 1)
+
+ assert block.convs[1].conv.in_channels == 64
+ assert block.convs[1].conv.out_channels == 64
+ assert block.convs[1].conv.kernel_size == (3, 3)
+ assert block.convs[1].conv.dilation == (3, 3)
+ assert block.convs[1].conv.padding == (3, 3)
+
+ assert block.convs[2].conv.in_channels == 64
+ assert block.convs[2].conv.out_channels == 64
+ assert block.convs[2].conv.kernel_size == (3, 3)
+ assert block.convs[2].conv.dilation == (3, 3)
+ assert block.convs[2].conv.padding == (3, 3)
+
+
+def test_deconv_module():
+ with pytest.raises(AssertionError):
+ # kernel_size should be greater than or equal to scale_factor and
+ # (kernel_size - scale_factor) should be even numbers
+ DeconvModule(64, 32, kernel_size=1, scale_factor=2)
+
+ with pytest.raises(AssertionError):
+ # kernel_size should be greater than or equal to scale_factor and
+ # (kernel_size - scale_factor) should be even numbers
+ DeconvModule(64, 32, kernel_size=3, scale_factor=2)
+
+ with pytest.raises(AssertionError):
+ # kernel_size should be greater than or equal to scale_factor and
+ # (kernel_size - scale_factor) should be even numbers
+ DeconvModule(64, 32, kernel_size=5, scale_factor=4)
+
+ # test DeconvModule with checkpoint forward and upsample 2X.
+ block = DeconvModule(64, 32, with_cp=True)
+ assert block.with_cp
+ x = torch.randn(1, 64, 128, 128, requires_grad=True)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ block = DeconvModule(64, 32, with_cp=False)
+ assert not block.with_cp
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test DeconvModule with different kernel size for upsample 2X.
+ x = torch.randn(1, 64, 64, 64)
+ block = DeconvModule(64, 32, kernel_size=2, scale_factor=2)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 128, 128])
+
+ block = DeconvModule(64, 32, kernel_size=6, scale_factor=2)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 128, 128])
+
+ # test DeconvModule with different kernel size for upsample 4X.
+ x = torch.randn(1, 64, 64, 64)
+ block = DeconvModule(64, 32, kernel_size=4, scale_factor=4)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ block = DeconvModule(64, 32, kernel_size=6, scale_factor=4)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+
+def test_interp_conv():
+ # test InterpConv with checkpoint forward and upsample 2X.
+ block = InterpConv(64, 32, with_cp=True)
+ assert block.with_cp
+ x = torch.randn(1, 64, 128, 128, requires_grad=True)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ block = InterpConv(64, 32, with_cp=False)
+ assert not block.with_cp
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test InterpConv with conv_first=False for upsample 2X.
+ block = InterpConv(64, 32, conv_first=False)
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(x)
+ assert isinstance(block.interp_upsample[0], nn.Upsample)
+ assert isinstance(block.interp_upsample[1], ConvModule)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test InterpConv with conv_first=True for upsample 2X.
+ block = InterpConv(64, 32, conv_first=True)
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(x)
+ assert isinstance(block.interp_upsample[0], ConvModule)
+ assert isinstance(block.interp_upsample[1], nn.Upsample)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test InterpConv with bilinear upsample for upsample 2X.
+ block = InterpConv(
+ 64,
+ 32,
+ conv_first=False,
+ upsampe_cfg=dict(scale_factor=2, mode='bilinear', align_corners=False))
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(x)
+ assert isinstance(block.interp_upsample[0], nn.Upsample)
+ assert isinstance(block.interp_upsample[1], ConvModule)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+ assert block.interp_upsample[0].mode == 'bilinear'
+
+ # test InterpConv with nearest upsample for upsample 2X.
+ block = InterpConv(
+ 64,
+ 32,
+ conv_first=False,
+ upsampe_cfg=dict(scale_factor=2, mode='nearest'))
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(x)
+ assert isinstance(block.interp_upsample[0], nn.Upsample)
+ assert isinstance(block.interp_upsample[1], ConvModule)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+ assert block.interp_upsample[0].mode == 'nearest'
+
+
+def test_up_conv_block():
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ UpConvBlock(BasicConvBlock, 64, 32, 32, dcn=dcn)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ UpConvBlock(BasicConvBlock, 64, 32, 32, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ position='after_conv2')
+ ]
+ UpConvBlock(BasicConvBlock, 64, 32, 32, plugins=plugins)
+
+ # test UpConvBlock with checkpoint forward and upsample 2X.
+ block = UpConvBlock(BasicConvBlock, 64, 32, 32, with_cp=True)
+ skip_x = torch.randn(1, 32, 256, 256, requires_grad=True)
+ x = torch.randn(1, 64, 128, 128, requires_grad=True)
+ x_out = block(skip_x, x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test UpConvBlock with upsample=True for upsample 2X. The spatial size of
+ # skip_x is 2X larger than x.
+ block = UpConvBlock(
+ BasicConvBlock, 64, 32, 32, upsample_cfg=dict(type='InterpConv'))
+ skip_x = torch.randn(1, 32, 256, 256)
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(skip_x, x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test UpConvBlock with upsample=False for upsample 2X. The spatial size of
+ # skip_x is the same as that of x.
+ block = UpConvBlock(BasicConvBlock, 64, 32, 32, upsample_cfg=None)
+ skip_x = torch.randn(1, 32, 256, 256)
+ x = torch.randn(1, 64, 256, 256)
+ x_out = block(skip_x, x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test UpConvBlock with different upsample method for upsample 2X.
+ # The upsample method is interpolation upsample (bilinear or nearest).
+ block = UpConvBlock(
+ BasicConvBlock,
+ 64,
+ 32,
+ 32,
+ upsample_cfg=dict(
+ type='InterpConv',
+ upsampe_cfg=dict(
+ scale_factor=2, mode='bilinear', align_corners=False)))
+ skip_x = torch.randn(1, 32, 256, 256)
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(skip_x, x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test UpConvBlock with different upsample method for upsample 2X.
+ # The upsample method is deconvolution upsample.
+ block = UpConvBlock(
+ BasicConvBlock,
+ 64,
+ 32,
+ 32,
+ upsample_cfg=dict(type='DeconvModule', kernel_size=4, scale_factor=2))
+ skip_x = torch.randn(1, 32, 256, 256)
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(skip_x, x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ # test BasicConvBlock structure and forward
+ block = UpConvBlock(
+ conv_block=BasicConvBlock,
+ in_channels=64,
+ skip_channels=32,
+ out_channels=32,
+ num_convs=3,
+ dilation=3,
+ upsample_cfg=dict(
+ type='InterpConv',
+ upsampe_cfg=dict(
+ scale_factor=2, mode='bilinear', align_corners=False)))
+ skip_x = torch.randn(1, 32, 256, 256)
+ x = torch.randn(1, 64, 128, 128)
+ x_out = block(skip_x, x)
+ assert x_out.shape == torch.Size([1, 32, 256, 256])
+
+ assert block.conv_block.convs[0].conv.in_channels == 64
+ assert block.conv_block.convs[0].conv.out_channels == 32
+ assert block.conv_block.convs[0].conv.kernel_size == (3, 3)
+ assert block.conv_block.convs[0].conv.dilation == (1, 1)
+ assert block.conv_block.convs[0].conv.padding == (1, 1)
+
+ assert block.conv_block.convs[1].conv.in_channels == 32
+ assert block.conv_block.convs[1].conv.out_channels == 32
+ assert block.conv_block.convs[1].conv.kernel_size == (3, 3)
+ assert block.conv_block.convs[1].conv.dilation == (3, 3)
+ assert block.conv_block.convs[1].conv.padding == (3, 3)
+
+ assert block.conv_block.convs[2].conv.in_channels == 32
+ assert block.conv_block.convs[2].conv.out_channels == 32
+ assert block.conv_block.convs[2].conv.kernel_size == (3, 3)
+ assert block.conv_block.convs[2].conv.dilation == (3, 3)
+ assert block.conv_block.convs[2].conv.padding == (3, 3)
+
+ assert block.upsample.interp_upsample[1].conv.in_channels == 64
+ assert block.upsample.interp_upsample[1].conv.out_channels == 32
+ assert block.upsample.interp_upsample[1].conv.kernel_size == (1, 1)
+ assert block.upsample.interp_upsample[1].conv.dilation == (1, 1)
+ assert block.upsample.interp_upsample[1].conv.padding == (0, 0)
+
+
+def test_unet():
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ dcn = dict(type='DCN', deform_groups=1, fallback_on_stride=False)
+ UNet(3, 64, 5, dcn=dcn)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet.
+ plugins = [
+ dict(
+ cfg=dict(type='ContextBlock', ratio=1. / 16),
+ position='after_conv3')
+ ]
+ UNet(3, 64, 5, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # Not implemented yet
+ plugins = [
+ dict(
+ cfg=dict(
+ type='GeneralizedAttention',
+ spatial_range=-1,
+ num_heads=8,
+ attention_type='0010',
+ kv_stride=2),
+ position='after_conv2')
+ ]
+ UNet(3, 64, 5, plugins=plugins)
+
+ with pytest.raises(AssertionError):
+ # Check whether the input image size can be devisible by the whole
+ # downsample rate of the encoder. The whole downsample rate of this
+ # case is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=4,
+ strides=(1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2),
+ downsamples=(True, True, True),
+ enc_dilations=(1, 1, 1, 1),
+ dec_dilations=(1, 1, 1))
+ x = torch.randn(2, 3, 65, 65)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check whether the input image size can be devisible by the whole
+ # downsample rate of the encoder. The whole downsample rate of this
+ # case is 16.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 65, 65)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check whether the input image size can be devisible by the whole
+ # downsample rate of the encoder. The whole downsample rate of this
+ # case is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 65, 65)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check whether the input image size can be devisible by the whole
+ # downsample rate of the encoder. The whole downsample rate of this
+ # case is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 2, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 65, 65)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check whether the input image size can be devisible by the whole
+ # downsample rate of the encoder. The whole downsample rate of this
+ # case is 32.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=6,
+ strides=(1, 1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2, 2),
+ downsamples=(True, True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1, 1))
+ x = torch.randn(2, 3, 65, 65)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check if num_stages matchs strides, len(strides)=num_stages
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 64, 64)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check if num_stages matchs strides, len(enc_num_convs)=num_stages
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 64, 64)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check if num_stages matchs strides, len(dec_num_convs)=num_stages-1
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 64, 64)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check if num_stages matchs strides, len(downsamples)=num_stages-1
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 64, 64)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check if num_stages matchs strides, len(enc_dilations)=num_stages
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ x = torch.randn(2, 3, 64, 64)
+ unet(x)
+
+ with pytest.raises(AssertionError):
+ # Check if num_stages matchs strides, len(dec_dilations)=num_stages-1
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1, 1))
+ x = torch.randn(2, 3, 64, 64)
+ unet(x)
+
+ # test UNet norm_eval=True
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ norm_eval=True)
+ unet.train()
+ assert check_norm_state(unet.modules(), False)
+
+ # test UNet norm_eval=False
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ norm_eval=False)
+ unet.train()
+ assert check_norm_state(unet.modules(), True)
+
+ # test UNet forward and outputs. The whole downsample rate is 16.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 8, 8])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 16, 16])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 2, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 16, 16])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 4.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 32, 32])
+ assert x_outs[1].shape == torch.Size([2, 512, 32, 32])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 4.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 32, 32])
+ assert x_outs[1].shape == torch.Size([2, 512, 32, 32])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 16, 16])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 4.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 32, 32])
+ assert x_outs[1].shape == torch.Size([2, 512, 32, 32])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 2.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, False, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 64, 64])
+ assert x_outs[1].shape == torch.Size([2, 512, 64, 64])
+ assert x_outs[2].shape == torch.Size([2, 256, 64, 64])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 1.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(False, False, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 128, 128])
+ assert x_outs[1].shape == torch.Size([2, 512, 128, 128])
+ assert x_outs[2].shape == torch.Size([2, 256, 128, 128])
+ assert x_outs[3].shape == torch.Size([2, 128, 128, 128])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 16.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ print(unet)
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 8, 8])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ print(unet)
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 16, 16])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 8.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 2, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ print(unet)
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 16, 16])
+ assert x_outs[1].shape == torch.Size([2, 512, 16, 16])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet forward and outputs. The whole downsample rate is 4.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ print(unet)
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 32, 32])
+ assert x_outs[1].shape == torch.Size([2, 512, 32, 32])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
+
+ # test UNet init_weights method.
+ unet = UNet(
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 2, 2, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, False, False),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1))
+ unet.init_weights(pretrained=None)
+ print(unet)
+ x = torch.randn(2, 3, 128, 128)
+ x_outs = unet(x)
+ assert x_outs[0].shape == torch.Size([2, 1024, 32, 32])
+ assert x_outs[1].shape == torch.Size([2, 512, 32, 32])
+ assert x_outs[2].shape == torch.Size([2, 256, 32, 32])
+ assert x_outs[3].shape == torch.Size([2, 128, 64, 64])
+ assert x_outs[4].shape == torch.Size([2, 64, 128, 128])
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_sampler.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_sampler.py
new file mode 100644
index 0000000000000000000000000000000000000000..3c79c16277511db4c470a5cbe7b5aa61b0b0b9bd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_sampler.py
@@ -0,0 +1,38 @@
+import pytest
+import torch
+
+from mmseg.core import OHEMPixelSampler
+from mmseg.models.decode_heads import FCNHead
+
+
+def _context_for_ohem():
+ return FCNHead(in_channels=32, channels=16, num_classes=19)
+
+
+def test_ohem_sampler():
+
+ with pytest.raises(AssertionError):
+ # seg_logit and seg_label must be of the same size
+ sampler = OHEMPixelSampler(context=_context_for_ohem())
+ seg_logit = torch.randn(1, 19, 45, 45)
+ seg_label = torch.randint(0, 19, size=(1, 1, 89, 89))
+ sampler.sample(seg_logit, seg_label)
+
+ # test with thresh
+ sampler = OHEMPixelSampler(
+ context=_context_for_ohem(), thresh=0.7, min_kept=200)
+ seg_logit = torch.randn(1, 19, 45, 45)
+ seg_label = torch.randint(0, 19, size=(1, 1, 45, 45))
+ seg_weight = sampler.sample(seg_logit, seg_label)
+ assert seg_weight.shape[0] == seg_logit.shape[0]
+ assert seg_weight.shape[1:] == seg_logit.shape[2:]
+ assert seg_weight.sum() > 200
+
+ # test w.o thresh
+ sampler = OHEMPixelSampler(context=_context_for_ohem(), min_kept=200)
+ seg_logit = torch.randn(1, 19, 45, 45)
+ seg_label = torch.randint(0, 19, size=(1, 1, 45, 45))
+ seg_weight = sampler.sample(seg_logit, seg_label)
+ assert seg_weight.shape[0] == seg_logit.shape[0]
+ assert seg_weight.shape[1:] == seg_logit.shape[2:]
+ assert seg_weight.sum() == 200
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_inverted_residual_module.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_inverted_residual_module.py
new file mode 100644
index 0000000000000000000000000000000000000000..8d5eecf15bf7d5f5ad54aa8e71d61cb40973fa8d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_inverted_residual_module.py
@@ -0,0 +1,120 @@
+import mmcv
+import pytest
+import torch
+
+from mmseg.models.utils import InvertedResidual, InvertedResidualV3
+
+
+def test_inv_residual():
+ with pytest.raises(AssertionError):
+ # test stride assertion.
+ InvertedResidual(32, 32, 3, 4)
+
+ # test default config with res connection.
+ # set expand_ratio = 4, stride = 1 and inp=oup.
+ inv_module = InvertedResidual(32, 32, 1, 4)
+ assert inv_module.use_res_connect
+ assert inv_module.conv[0].kernel_size == (1, 1)
+ assert inv_module.conv[0].padding == 0
+ assert inv_module.conv[1].kernel_size == (3, 3)
+ assert inv_module.conv[1].padding == 1
+ assert inv_module.conv[0].with_norm
+ assert inv_module.conv[1].with_norm
+ x = torch.rand(1, 32, 64, 64)
+ output = inv_module(x)
+ assert output.shape == (1, 32, 64, 64)
+
+ # test inv_residual module without res connection.
+ # set expand_ratio = 4, stride = 2.
+ inv_module = InvertedResidual(32, 32, 2, 4)
+ assert not inv_module.use_res_connect
+ assert inv_module.conv[0].kernel_size == (1, 1)
+ x = torch.rand(1, 32, 64, 64)
+ output = inv_module(x)
+ assert output.shape == (1, 32, 32, 32)
+
+ # test expand_ratio == 1
+ inv_module = InvertedResidual(32, 32, 1, 1)
+ assert inv_module.conv[0].kernel_size == (3, 3)
+ x = torch.rand(1, 32, 64, 64)
+ output = inv_module(x)
+ assert output.shape == (1, 32, 64, 64)
+
+ # test with checkpoint forward
+ inv_module = InvertedResidual(32, 32, 1, 1, with_cp=True)
+ assert inv_module.with_cp
+ x = torch.rand(1, 32, 64, 64, requires_grad=True)
+ output = inv_module(x)
+ assert output.shape == (1, 32, 64, 64)
+
+
+def test_inv_residualv3():
+ with pytest.raises(AssertionError):
+ # test stride assertion.
+ InvertedResidualV3(32, 32, 16, stride=3)
+
+ with pytest.raises(AssertionError):
+ # test assertion.
+ InvertedResidualV3(32, 32, 16, with_expand_conv=False)
+
+ # test with se_cfg=None, with_expand_conv=False
+ inv_module = InvertedResidualV3(32, 32, 32, with_expand_conv=False)
+
+ assert inv_module.with_res_shortcut is True
+ assert inv_module.with_se is False
+ assert inv_module.with_expand_conv is False
+ assert not hasattr(inv_module, 'expand_conv')
+ assert isinstance(inv_module.depthwise_conv.conv, torch.nn.Conv2d)
+ assert inv_module.depthwise_conv.conv.kernel_size == (3, 3)
+ assert inv_module.depthwise_conv.conv.stride == (1, 1)
+ assert inv_module.depthwise_conv.conv.padding == (1, 1)
+ assert isinstance(inv_module.depthwise_conv.bn, torch.nn.BatchNorm2d)
+ assert isinstance(inv_module.depthwise_conv.activate, torch.nn.ReLU)
+ assert inv_module.linear_conv.conv.kernel_size == (1, 1)
+ assert inv_module.linear_conv.conv.stride == (1, 1)
+ assert inv_module.linear_conv.conv.padding == (0, 0)
+ assert isinstance(inv_module.linear_conv.bn, torch.nn.BatchNorm2d)
+
+ x = torch.rand(1, 32, 64, 64)
+ output = inv_module(x)
+ assert output.shape == (1, 32, 64, 64)
+
+ # test with se_cfg and with_expand_conv
+ se_cfg = dict(
+ channels=16,
+ ratio=4,
+ act_cfg=(dict(type='ReLU'),
+ dict(type='HSigmoid', bias=3.0, divisor=6.0)))
+ act_cfg = dict(type='HSwish')
+ inv_module = InvertedResidualV3(
+ 32, 40, 16, 3, 2, se_cfg=se_cfg, act_cfg=act_cfg)
+ assert inv_module.with_res_shortcut is False
+ assert inv_module.with_se is True
+ assert inv_module.with_expand_conv is True
+ assert inv_module.expand_conv.conv.kernel_size == (1, 1)
+ assert inv_module.expand_conv.conv.stride == (1, 1)
+ assert inv_module.expand_conv.conv.padding == (0, 0)
+ assert isinstance(inv_module.expand_conv.activate, mmcv.cnn.HSwish)
+
+ assert isinstance(inv_module.depthwise_conv.conv,
+ mmcv.cnn.bricks.Conv2dAdaptivePadding)
+ assert inv_module.depthwise_conv.conv.kernel_size == (3, 3)
+ assert inv_module.depthwise_conv.conv.stride == (2, 2)
+ assert inv_module.depthwise_conv.conv.padding == (0, 0)
+ assert isinstance(inv_module.depthwise_conv.bn, torch.nn.BatchNorm2d)
+ assert isinstance(inv_module.depthwise_conv.activate, mmcv.cnn.HSwish)
+ assert inv_module.linear_conv.conv.kernel_size == (1, 1)
+ assert inv_module.linear_conv.conv.stride == (1, 1)
+ assert inv_module.linear_conv.conv.padding == (0, 0)
+ assert isinstance(inv_module.linear_conv.bn, torch.nn.BatchNorm2d)
+ x = torch.rand(1, 32, 64, 64)
+ output = inv_module(x)
+ assert output.shape == (1, 40, 32, 32)
+
+ # test with checkpoint forward
+ inv_module = InvertedResidualV3(
+ 32, 40, 16, 3, 2, se_cfg=se_cfg, act_cfg=act_cfg, with_cp=True)
+ assert inv_module.with_cp
+ x = torch.randn(2, 32, 64, 64, requires_grad=True)
+ output = inv_module(x)
+ assert output.shape == (2, 40, 32, 32)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_make_divisible.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_make_divisible.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e9d1062ffcbe3213a22701bad826ae48a52ecee
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_make_divisible.py
@@ -0,0 +1,13 @@
+from mmseg.models.utils import make_divisible
+
+
+def test_make_divisible():
+ # test with min_value = None
+ assert make_divisible(10, 4) == 12
+ assert make_divisible(9, 4) == 12
+ assert make_divisible(1, 4) == 4
+
+ # test with min_value = 8
+ assert make_divisible(10, 4, 8) == 12
+ assert make_divisible(9, 4, 8) == 12
+ assert make_divisible(1, 4, 8) == 8
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_se_layer.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_se_layer.py
new file mode 100644
index 0000000000000000000000000000000000000000..8bba7b33b93434a7021c69ee2053451cd4066d9d
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tests/test_utils/test_se_layer.py
@@ -0,0 +1,41 @@
+import mmcv
+import pytest
+import torch
+
+from mmseg.models.utils.se_layer import SELayer
+
+
+def test_se_layer():
+ with pytest.raises(AssertionError):
+ # test act_cfg assertion.
+ SELayer(32, act_cfg=(dict(type='ReLU'), ))
+
+ # test config with channels = 16.
+ se_layer = SELayer(16)
+ assert se_layer.conv1.conv.kernel_size == (1, 1)
+ assert se_layer.conv1.conv.stride == (1, 1)
+ assert se_layer.conv1.conv.padding == (0, 0)
+ assert isinstance(se_layer.conv1.activate, torch.nn.ReLU)
+ assert se_layer.conv2.conv.kernel_size == (1, 1)
+ assert se_layer.conv2.conv.stride == (1, 1)
+ assert se_layer.conv2.conv.padding == (0, 0)
+ assert isinstance(se_layer.conv2.activate, mmcv.cnn.HSigmoid)
+
+ x = torch.rand(1, 16, 64, 64)
+ output = se_layer(x)
+ assert output.shape == (1, 16, 64, 64)
+
+ # test config with channels = 16, act_cfg = dict(type='ReLU').
+ se_layer = SELayer(16, act_cfg=dict(type='ReLU'))
+ assert se_layer.conv1.conv.kernel_size == (1, 1)
+ assert se_layer.conv1.conv.stride == (1, 1)
+ assert se_layer.conv1.conv.padding == (0, 0)
+ assert isinstance(se_layer.conv1.activate, torch.nn.ReLU)
+ assert se_layer.conv2.conv.kernel_size == (1, 1)
+ assert se_layer.conv2.conv.stride == (1, 1)
+ assert se_layer.conv2.conv.padding == (0, 0)
+ assert isinstance(se_layer.conv2.activate, torch.nn.ReLU)
+
+ x = torch.rand(1, 16, 64, 64)
+ output = se_layer(x)
+ assert output.shape == (1, 16, 64, 64)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/benchmark.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/benchmark.py
new file mode 100644
index 0000000000000000000000000000000000000000..cb0df3bdfa65465eb99db2fff4ec80ba08d5bc23
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/benchmark.py
@@ -0,0 +1,82 @@
+import argparse
+import time
+
+import torch
+from mmcv import Config
+from mmcv.parallel import MMDataParallel
+from mmcv.runner import load_checkpoint
+
+from mmseg.datasets import build_dataloader, build_dataset
+from mmseg.models import build_segmentor
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='MMSeg benchmark a model')
+ parser.add_argument('config', help='test config file path')
+ parser.add_argument('checkpoint', help='checkpoint file')
+ parser.add_argument(
+ '--log-interval', type=int, default=50, help='interval of logging')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+
+ cfg = Config.fromfile(args.config)
+ # set cudnn_benchmark
+ torch.backends.cudnn.benchmark = False
+ cfg.model.pretrained = None
+ cfg.data.test.test_mode = True
+
+ # build the dataloader
+ # TODO: support multiple images per gpu (only minor changes are needed)
+ dataset = build_dataset(cfg.data.test)
+ data_loader = build_dataloader(
+ dataset,
+ samples_per_gpu=1,
+ workers_per_gpu=cfg.data.workers_per_gpu,
+ dist=False,
+ shuffle=False)
+
+ # build the model and load checkpoint
+ cfg.model.train_cfg = None
+ model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg'))
+ load_checkpoint(model, args.checkpoint, map_location='cpu')
+
+ model = MMDataParallel(model, device_ids=[0])
+
+ model.eval()
+
+ # the first several iterations may be very slow so skip them
+ num_warmup = 5
+ pure_inf_time = 0
+ total_iters = 200
+
+ # benchmark with 200 image and take the average
+ for i, data in enumerate(data_loader):
+
+ torch.cuda.synchronize()
+ start_time = time.perf_counter()
+
+ with torch.no_grad():
+ model(return_loss=False, rescale=True, **data)
+
+ torch.cuda.synchronize()
+ elapsed = time.perf_counter() - start_time
+
+ if i >= num_warmup:
+ pure_inf_time += elapsed
+ if (i + 1) % args.log_interval == 0:
+ fps = (i + 1 - num_warmup) / pure_inf_time
+ print(f'Done image [{i + 1:<3}/ {total_iters}], '
+ f'fps: {fps:.2f} img / s')
+
+ if (i + 1) == total_iters:
+ fps = (i + 1 - num_warmup) / pure_inf_time
+ print(f'Overall fps: {fps:.2f} img / s')
+ break
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/chase_db1.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..56bb210edbb359caf57b6048b8e09b94ef295152
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/chase_db1.py
@@ -0,0 +1,87 @@
+import argparse
+import os
+import os.path as osp
+import tempfile
+import zipfile
+
+import mmcv
+
+CHASE_DB1_LEN = 28 * 3
+TRAINING_LEN = 60
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert CHASE_DB1 dataset to mmsegmentation format')
+ parser.add_argument('dataset_path', help='path of CHASEDB1.zip')
+ parser.add_argument('--tmp_dir', help='path of the temporary directory')
+ parser.add_argument('-o', '--out_dir', help='output path')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ dataset_path = args.dataset_path
+ if args.out_dir is None:
+ out_dir = osp.join('data', 'CHASE_DB1')
+ else:
+ out_dir = args.out_dir
+
+ print('Making directories...')
+ mmcv.mkdir_or_exist(out_dir)
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
+
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ print('Extracting CHASEDB1.zip...')
+ zip_file = zipfile.ZipFile(dataset_path)
+ zip_file.extractall(tmp_dir)
+
+ print('Generating training dataset...')
+
+ assert len(os.listdir(tmp_dir)) == CHASE_DB1_LEN, \
+ 'len(os.listdir(tmp_dir)) != {}'.format(CHASE_DB1_LEN)
+
+ for img_name in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]:
+ img = mmcv.imread(osp.join(tmp_dir, img_name))
+ if osp.splitext(img_name)[1] == '.jpg':
+ mmcv.imwrite(
+ img,
+ osp.join(out_dir, 'images', 'training',
+ osp.splitext(img_name)[0] + '.png'))
+ else:
+ # The annotation img should be divided by 128, because some of
+ # the annotation imgs are not standard. We should set a
+ # threshold to convert the nonstandard annotation imgs. The
+ # value divided by 128 is equivalent to '1 if value >= 128
+ # else 0'
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'training',
+ osp.splitext(img_name)[0] + '.png'))
+
+ for img_name in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]:
+ img = mmcv.imread(osp.join(tmp_dir, img_name))
+ if osp.splitext(img_name)[1] == '.jpg':
+ mmcv.imwrite(
+ img,
+ osp.join(out_dir, 'images', 'validation',
+ osp.splitext(img_name)[0] + '.png'))
+ else:
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'validation',
+ osp.splitext(img_name)[0] + '.png'))
+
+ print('Removing the temporary files...')
+
+ print('Done!')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/cityscapes.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..99d05b41f58c1d2b92a6cbb4f5859c6d696d0ac8
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/cityscapes.py
@@ -0,0 +1,55 @@
+import argparse
+import os.path as osp
+
+import mmcv
+from cityscapesscripts.preparation.json2labelImg import json2labelImg
+
+
+def convert_json_to_label(json_file):
+ label_file = json_file.replace('_polygons.json', '_labelTrainIds.png')
+ json2labelImg(json_file, label_file, 'trainIds')
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert Cityscapes annotations to TrainIds')
+ parser.add_argument('cityscapes_path', help='cityscapes data path')
+ parser.add_argument('--gt-dir', default='gtFine', type=str)
+ parser.add_argument('-o', '--out-dir', help='output path')
+ parser.add_argument(
+ '--nproc', default=1, type=int, help='number of process')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ cityscapes_path = args.cityscapes_path
+ out_dir = args.out_dir if args.out_dir else cityscapes_path
+ mmcv.mkdir_or_exist(out_dir)
+
+ gt_dir = osp.join(cityscapes_path, args.gt_dir)
+
+ poly_files = []
+ for poly in mmcv.scandir(gt_dir, '_polygons.json', recursive=True):
+ poly_file = osp.join(gt_dir, poly)
+ poly_files.append(poly_file)
+ if args.nproc > 1:
+ mmcv.track_parallel_progress(convert_json_to_label, poly_files,
+ args.nproc)
+ else:
+ mmcv.track_progress(convert_json_to_label, poly_files)
+
+ split_names = ['train', 'val', 'test']
+
+ for split in split_names:
+ filenames = []
+ for poly in mmcv.scandir(
+ osp.join(gt_dir, split), '_polygons.json', recursive=True):
+ filenames.append(poly.replace('_gtFine_polygons.json', ''))
+ with open(osp.join(out_dir, f'{split}.txt'), 'w') as f:
+ f.writelines(f + '\n' for f in filenames)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/drive.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..891f06f725cc7be9da8c65bc0dc56008b8313e30
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/drive.py
@@ -0,0 +1,112 @@
+import argparse
+import os
+import os.path as osp
+import tempfile
+import zipfile
+
+import cv2
+import mmcv
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert DRIVE dataset to mmsegmentation format')
+ parser.add_argument(
+ 'training_path', help='the training part of DRIVE dataset')
+ parser.add_argument(
+ 'testing_path', help='the testing part of DRIVE dataset')
+ parser.add_argument('--tmp_dir', help='path of the temporary directory')
+ parser.add_argument('-o', '--out_dir', help='output path')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ training_path = args.training_path
+ testing_path = args.testing_path
+ if args.out_dir is None:
+ out_dir = osp.join('data', 'DRIVE')
+ else:
+ out_dir = args.out_dir
+
+ print('Making directories...')
+ mmcv.mkdir_or_exist(out_dir)
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
+
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ print('Extracting training.zip...')
+ zip_file = zipfile.ZipFile(training_path)
+ zip_file.extractall(tmp_dir)
+
+ print('Generating training dataset...')
+ now_dir = osp.join(tmp_dir, 'training', 'images')
+ for img_name in os.listdir(now_dir):
+ img = mmcv.imread(osp.join(now_dir, img_name))
+ mmcv.imwrite(
+ img,
+ osp.join(
+ out_dir, 'images', 'training',
+ osp.splitext(img_name)[0].replace('_training', '') +
+ '.png'))
+
+ now_dir = osp.join(tmp_dir, 'training', '1st_manual')
+ for img_name in os.listdir(now_dir):
+ cap = cv2.VideoCapture(osp.join(now_dir, img_name))
+ ret, img = cap.read()
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'training',
+ osp.splitext(img_name)[0] + '.png'))
+
+ print('Extracting test.zip...')
+ zip_file = zipfile.ZipFile(testing_path)
+ zip_file.extractall(tmp_dir)
+
+ print('Generating validation dataset...')
+ now_dir = osp.join(tmp_dir, 'test', 'images')
+ for img_name in os.listdir(now_dir):
+ img = mmcv.imread(osp.join(now_dir, img_name))
+ mmcv.imwrite(
+ img,
+ osp.join(
+ out_dir, 'images', 'validation',
+ osp.splitext(img_name)[0].replace('_test', '') + '.png'))
+
+ now_dir = osp.join(tmp_dir, 'test', '1st_manual')
+ if osp.exists(now_dir):
+ for img_name in os.listdir(now_dir):
+ cap = cv2.VideoCapture(osp.join(now_dir, img_name))
+ ret, img = cap.read()
+ # The annotation img should be divided by 128, because some of
+ # the annotation imgs are not standard. We should set a
+ # threshold to convert the nonstandard annotation imgs. The
+ # value divided by 128 is equivalent to '1 if value >= 128
+ # else 0'
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'validation',
+ osp.splitext(img_name)[0] + '.png'))
+
+ now_dir = osp.join(tmp_dir, 'test', '2nd_manual')
+ if osp.exists(now_dir):
+ for img_name in os.listdir(now_dir):
+ cap = cv2.VideoCapture(osp.join(now_dir, img_name))
+ ret, img = cap.read()
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'validation',
+ osp.splitext(img_name)[0] + '.png'))
+
+ print('Removing the temporary files...')
+
+ print('Done!')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/hrf.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..bdeb6e7e5668e097f30bc019c88f9eab6c7fcf07
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/hrf.py
@@ -0,0 +1,110 @@
+import argparse
+import os
+import os.path as osp
+import tempfile
+import zipfile
+
+import mmcv
+
+HRF_LEN = 15
+TRAINING_LEN = 5
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert HRF dataset to mmsegmentation format')
+ parser.add_argument('healthy_path', help='the path of healthy.zip')
+ parser.add_argument(
+ 'healthy_manualsegm_path', help='the path of healthy_manualsegm.zip')
+ parser.add_argument('glaucoma_path', help='the path of glaucoma.zip')
+ parser.add_argument(
+ 'glaucoma_manualsegm_path', help='the path of glaucoma_manualsegm.zip')
+ parser.add_argument(
+ 'diabetic_retinopathy_path',
+ help='the path of diabetic_retinopathy.zip')
+ parser.add_argument(
+ 'diabetic_retinopathy_manualsegm_path',
+ help='the path of diabetic_retinopathy_manualsegm.zip')
+ parser.add_argument('--tmp_dir', help='path of the temporary directory')
+ parser.add_argument('-o', '--out_dir', help='output path')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ images_path = [
+ args.healthy_path, args.glaucoma_path, args.diabetic_retinopathy_path
+ ]
+ annotations_path = [
+ args.healthy_manualsegm_path, args.glaucoma_manualsegm_path,
+ args.diabetic_retinopathy_manualsegm_path
+ ]
+ if args.out_dir is None:
+ out_dir = osp.join('data', 'HRF')
+ else:
+ out_dir = args.out_dir
+
+ print('Making directories...')
+ mmcv.mkdir_or_exist(out_dir)
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
+
+ print('Generating images...')
+ for now_path in images_path:
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ zip_file = zipfile.ZipFile(now_path)
+ zip_file.extractall(tmp_dir)
+
+ assert len(os.listdir(tmp_dir)) == HRF_LEN, \
+ 'len(os.listdir(tmp_dir)) != {}'.format(HRF_LEN)
+
+ for filename in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]:
+ img = mmcv.imread(osp.join(tmp_dir, filename))
+ mmcv.imwrite(
+ img,
+ osp.join(out_dir, 'images', 'training',
+ osp.splitext(filename)[0] + '.png'))
+ for filename in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]:
+ img = mmcv.imread(osp.join(tmp_dir, filename))
+ mmcv.imwrite(
+ img,
+ osp.join(out_dir, 'images', 'validation',
+ osp.splitext(filename)[0] + '.png'))
+
+ print('Generating annotations...')
+ for now_path in annotations_path:
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ zip_file = zipfile.ZipFile(now_path)
+ zip_file.extractall(tmp_dir)
+
+ assert len(os.listdir(tmp_dir)) == HRF_LEN, \
+ 'len(os.listdir(tmp_dir)) != {}'.format(HRF_LEN)
+
+ for filename in sorted(os.listdir(tmp_dir))[:TRAINING_LEN]:
+ img = mmcv.imread(osp.join(tmp_dir, filename))
+ # The annotation img should be divided by 128, because some of
+ # the annotation imgs are not standard. We should set a
+ # threshold to convert the nonstandard annotation imgs. The
+ # value divided by 128 is equivalent to '1 if value >= 128
+ # else 0'
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'training',
+ osp.splitext(filename)[0] + '.png'))
+ for filename in sorted(os.listdir(tmp_dir))[TRAINING_LEN:]:
+ img = mmcv.imread(osp.join(tmp_dir, filename))
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'validation',
+ osp.splitext(filename)[0] + '.png'))
+
+ print('Done!')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/pascal_context.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..dc49ab7ad8fd359c458ec4b6190ed61851426031
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/pascal_context.py
@@ -0,0 +1,86 @@
+import argparse
+import os.path as osp
+from functools import partial
+
+import mmcv
+import numpy as np
+from detail import Detail
+from PIL import Image
+
+_mapping = np.sort(
+ np.array([
+ 0, 2, 259, 260, 415, 324, 9, 258, 144, 18, 19, 22, 23, 397, 25, 284,
+ 158, 159, 416, 33, 162, 420, 454, 295, 296, 427, 44, 45, 46, 308, 59,
+ 440, 445, 31, 232, 65, 354, 424, 68, 326, 72, 458, 34, 207, 80, 355,
+ 85, 347, 220, 349, 360, 98, 187, 104, 105, 366, 189, 368, 113, 115
+ ]))
+_key = np.array(range(len(_mapping))).astype('uint8')
+
+
+def generate_labels(img_id, detail, out_dir):
+
+ def _class_to_index(mask, _mapping, _key):
+ # assert the values
+ values = np.unique(mask)
+ for i in range(len(values)):
+ assert (values[i] in _mapping)
+ index = np.digitize(mask.ravel(), _mapping, right=True)
+ return _key[index].reshape(mask.shape)
+
+ mask = Image.fromarray(
+ _class_to_index(detail.getMask(img_id), _mapping=_mapping, _key=_key))
+ filename = img_id['file_name']
+ mask.save(osp.join(out_dir, filename.replace('jpg', 'png')))
+ return osp.splitext(osp.basename(filename))[0]
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert PASCAL VOC annotations to mmsegmentation format')
+ parser.add_argument('devkit_path', help='pascal voc devkit path')
+ parser.add_argument('json_path', help='annoation json filepath')
+ parser.add_argument('-o', '--out_dir', help='output path')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ devkit_path = args.devkit_path
+ if args.out_dir is None:
+ out_dir = osp.join(devkit_path, 'VOC2010', 'SegmentationClassContext')
+ else:
+ out_dir = args.out_dir
+ json_path = args.json_path
+ mmcv.mkdir_or_exist(out_dir)
+ img_dir = osp.join(devkit_path, 'VOC2010', 'JPEGImages')
+
+ train_detail = Detail(json_path, img_dir, 'train')
+ train_ids = train_detail.getImgs()
+
+ val_detail = Detail(json_path, img_dir, 'val')
+ val_ids = val_detail.getImgs()
+
+ mmcv.mkdir_or_exist(
+ osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext'))
+
+ train_list = mmcv.track_progress(
+ partial(generate_labels, detail=train_detail, out_dir=out_dir),
+ train_ids)
+ with open(
+ osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext',
+ 'train.txt'), 'w') as f:
+ f.writelines(line + '\n' for line in sorted(train_list))
+
+ val_list = mmcv.track_progress(
+ partial(generate_labels, detail=val_detail, out_dir=out_dir), val_ids)
+ with open(
+ osp.join(devkit_path, 'VOC2010/ImageSets/SegmentationContext',
+ 'val.txt'), 'w') as f:
+ f.writelines(line + '\n' for line in sorted(val_list))
+
+ print('Done!')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/stare.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..6238d62f64de9406ef84ebb4667d7c0e1ce8a8c5
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/stare.py
@@ -0,0 +1,165 @@
+import argparse
+import gzip
+import os
+import os.path as osp
+import tarfile
+import tempfile
+
+import mmcv
+
+STARE_LEN = 20
+TRAINING_LEN = 10
+
+
+def un_gz(src, dst):
+ g_file = gzip.GzipFile(src)
+ with open(dst, 'wb+') as f:
+ f.write(g_file.read())
+ g_file.close()
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert STARE dataset to mmsegmentation format')
+ parser.add_argument('image_path', help='the path of stare-images.tar')
+ parser.add_argument('labels_ah', help='the path of labels-ah.tar')
+ parser.add_argument('labels_vk', help='the path of labels-vk.tar')
+ parser.add_argument('--tmp_dir', help='path of the temporary directory')
+ parser.add_argument('-o', '--out_dir', help='output path')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ image_path = args.image_path
+ labels_ah = args.labels_ah
+ labels_vk = args.labels_vk
+ if args.out_dir is None:
+ out_dir = osp.join('data', 'STARE')
+ else:
+ out_dir = args.out_dir
+
+ print('Making directories...')
+ mmcv.mkdir_or_exist(out_dir)
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'images', 'validation'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'training'))
+ mmcv.mkdir_or_exist(osp.join(out_dir, 'annotations', 'validation'))
+
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz'))
+ mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files'))
+
+ print('Extracting stare-images.tar...')
+ with tarfile.open(image_path) as f:
+ f.extractall(osp.join(tmp_dir, 'gz'))
+
+ for filename in os.listdir(osp.join(tmp_dir, 'gz')):
+ un_gz(
+ osp.join(tmp_dir, 'gz', filename),
+ osp.join(tmp_dir, 'files',
+ osp.splitext(filename)[0]))
+
+ now_dir = osp.join(tmp_dir, 'files')
+
+ assert len(os.listdir(now_dir)) == STARE_LEN, \
+ 'len(os.listdir(now_dir)) != {}'.format(STARE_LEN)
+
+ for filename in sorted(os.listdir(now_dir))[:TRAINING_LEN]:
+ img = mmcv.imread(osp.join(now_dir, filename))
+ mmcv.imwrite(
+ img,
+ osp.join(out_dir, 'images', 'training',
+ osp.splitext(filename)[0] + '.png'))
+
+ for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]:
+ img = mmcv.imread(osp.join(now_dir, filename))
+ mmcv.imwrite(
+ img,
+ osp.join(out_dir, 'images', 'validation',
+ osp.splitext(filename)[0] + '.png'))
+
+ print('Removing the temporary files...')
+
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz'))
+ mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files'))
+
+ print('Extracting labels-ah.tar...')
+ with tarfile.open(labels_ah) as f:
+ f.extractall(osp.join(tmp_dir, 'gz'))
+
+ for filename in os.listdir(osp.join(tmp_dir, 'gz')):
+ un_gz(
+ osp.join(tmp_dir, 'gz', filename),
+ osp.join(tmp_dir, 'files',
+ osp.splitext(filename)[0]))
+
+ now_dir = osp.join(tmp_dir, 'files')
+
+ assert len(os.listdir(now_dir)) == STARE_LEN, \
+ 'len(os.listdir(now_dir)) != {}'.format(STARE_LEN)
+
+ for filename in sorted(os.listdir(now_dir))[:TRAINING_LEN]:
+ img = mmcv.imread(osp.join(now_dir, filename))
+ # The annotation img should be divided by 128, because some of
+ # the annotation imgs are not standard. We should set a threshold
+ # to convert the nonstandard annotation imgs. The value divided by
+ # 128 equivalent to '1 if value >= 128 else 0'
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'training',
+ osp.splitext(filename)[0] + '.png'))
+
+ for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]:
+ img = mmcv.imread(osp.join(now_dir, filename))
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'validation',
+ osp.splitext(filename)[0] + '.png'))
+
+ print('Removing the temporary files...')
+
+ with tempfile.TemporaryDirectory(dir=args.tmp_dir) as tmp_dir:
+ mmcv.mkdir_or_exist(osp.join(tmp_dir, 'gz'))
+ mmcv.mkdir_or_exist(osp.join(tmp_dir, 'files'))
+
+ print('Extracting labels-vk.tar...')
+ with tarfile.open(labels_vk) as f:
+ f.extractall(osp.join(tmp_dir, 'gz'))
+
+ for filename in os.listdir(osp.join(tmp_dir, 'gz')):
+ un_gz(
+ osp.join(tmp_dir, 'gz', filename),
+ osp.join(tmp_dir, 'files',
+ osp.splitext(filename)[0]))
+
+ now_dir = osp.join(tmp_dir, 'files')
+
+ assert len(os.listdir(now_dir)) == STARE_LEN, \
+ 'len(os.listdir(now_dir)) != {}'.format(STARE_LEN)
+
+ for filename in sorted(os.listdir(now_dir))[:TRAINING_LEN]:
+ img = mmcv.imread(osp.join(now_dir, filename))
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'training',
+ osp.splitext(filename)[0] + '.png'))
+
+ for filename in sorted(os.listdir(now_dir))[TRAINING_LEN:]:
+ img = mmcv.imread(osp.join(now_dir, filename))
+ mmcv.imwrite(
+ img[:, :, 0] // 128,
+ osp.join(out_dir, 'annotations', 'validation',
+ osp.splitext(filename)[0] + '.png'))
+
+ print('Removing the temporary files...')
+
+ print('Done!')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/voc_aug.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/voc_aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..942746351b64b2e931cb18ce684a1f3ccf7e3866
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/convert_datasets/voc_aug.py
@@ -0,0 +1,91 @@
+import argparse
+import os.path as osp
+from functools import partial
+
+import mmcv
+import numpy as np
+from PIL import Image
+from scipy.io import loadmat
+
+AUG_LEN = 10582
+
+
+def convert_mat(mat_file, in_dir, out_dir):
+ data = loadmat(osp.join(in_dir, mat_file))
+ mask = data['GTcls'][0]['Segmentation'][0].astype(np.uint8)
+ seg_filename = osp.join(out_dir, mat_file.replace('.mat', '.png'))
+ Image.fromarray(mask).save(seg_filename, 'PNG')
+
+
+def generate_aug_list(merged_list, excluded_list):
+ return list(set(merged_list) - set(excluded_list))
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Convert PASCAL VOC annotations to mmsegmentation format')
+ parser.add_argument('devkit_path', help='pascal voc devkit path')
+ parser.add_argument('aug_path', help='pascal voc aug path')
+ parser.add_argument('-o', '--out_dir', help='output path')
+ parser.add_argument(
+ '--nproc', default=1, type=int, help='number of process')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+ args = parse_args()
+ devkit_path = args.devkit_path
+ aug_path = args.aug_path
+ nproc = args.nproc
+ if args.out_dir is None:
+ out_dir = osp.join(devkit_path, 'VOC2012', 'SegmentationClassAug')
+ else:
+ out_dir = args.out_dir
+ mmcv.mkdir_or_exist(out_dir)
+ in_dir = osp.join(aug_path, 'dataset', 'cls')
+
+ mmcv.track_parallel_progress(
+ partial(convert_mat, in_dir=in_dir, out_dir=out_dir),
+ list(mmcv.scandir(in_dir, suffix='.mat')),
+ nproc=nproc)
+
+ full_aug_list = []
+ with open(osp.join(aug_path, 'dataset', 'train.txt')) as f:
+ full_aug_list += [line.strip() for line in f]
+ with open(osp.join(aug_path, 'dataset', 'val.txt')) as f:
+ full_aug_list += [line.strip() for line in f]
+
+ with open(
+ osp.join(devkit_path, 'VOC2012/ImageSets/Segmentation',
+ 'train.txt')) as f:
+ ori_train_list = [line.strip() for line in f]
+ with open(
+ osp.join(devkit_path, 'VOC2012/ImageSets/Segmentation',
+ 'val.txt')) as f:
+ val_list = [line.strip() for line in f]
+
+ aug_train_list = generate_aug_list(ori_train_list + full_aug_list,
+ val_list)
+ assert len(aug_train_list) == AUG_LEN, 'len(aug_train_list) != {}'.format(
+ AUG_LEN)
+
+ with open(
+ osp.join(devkit_path, 'VOC2012/ImageSets/Segmentation',
+ 'trainaug.txt'), 'w') as f:
+ f.writelines(line + '\n' for line in aug_train_list)
+
+ aug_list = generate_aug_list(full_aug_list, ori_train_list + val_list)
+ assert len(aug_list) == AUG_LEN - len(
+ ori_train_list), 'len(aug_list) != {}'.format(AUG_LEN -
+ len(ori_train_list))
+ with open(
+ osp.join(devkit_path, 'VOC2012/ImageSets/Segmentation', 'aug.txt'),
+ 'w') as f:
+ f.writelines(line + '\n' for line in aug_list)
+
+ print('Done!')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/dist_test.sh b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/dist_test.sh
new file mode 100644
index 0000000000000000000000000000000000000000..34fb46541d447d923bc3561bbba09bd5c94d7bfe
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/dist_test.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+CONFIG=$1
+CHECKPOINT=$2
+GPUS=$3
+PORT=${PORT:-29500}
+PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
+python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \
+ $(dirname "$0")/test.py $CONFIG $CHECKPOINT --launcher pytorch ${@:4}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/dist_train.sh b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/dist_train.sh
new file mode 100644
index 0000000000000000000000000000000000000000..5b43fffbf28fc9b8ba7c14efcd5e4f8b19279470
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/dist_train.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+CONFIG=$1
+GPUS=$2
+PORT=${PORT:-29500}
+
+PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
+python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \
+ $(dirname "$0")/train.py $CONFIG --launcher pytorch ${@:3}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/get_flops.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/get_flops.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc98c5252591b0c9ec218144c0652ea695a5b96e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/get_flops.py
@@ -0,0 +1,58 @@
+import argparse
+
+from mmcv import Config
+from mmcv.cnn import get_model_complexity_info
+
+from mmseg.models import build_segmentor
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Train a segmentor')
+ parser.add_argument('config', help='train config file path')
+ parser.add_argument(
+ '--shape',
+ type=int,
+ nargs='+',
+ default=[2048, 1024],
+ help='input image size')
+ args = parser.parse_args()
+ return args
+
+
+def main():
+
+ args = parse_args()
+
+ if len(args.shape) == 1:
+ input_shape = (3, args.shape[0], args.shape[0])
+ elif len(args.shape) == 2:
+ input_shape = (3, ) + tuple(args.shape)
+ else:
+ raise ValueError('invalid input shape')
+
+ cfg = Config.fromfile(args.config)
+ cfg.model.pretrained = None
+ model = build_segmentor(
+ cfg.model,
+ train_cfg=cfg.get('train_cfg'),
+ test_cfg=cfg.get('test_cfg')).cuda()
+ model.eval()
+
+ if hasattr(model, 'forward_dummy'):
+ model.forward = model.forward_dummy
+ else:
+ raise NotImplementedError(
+ 'FLOPs counter is currently not currently supported with {}'.
+ format(model.__class__.__name__))
+
+ flops, params = get_model_complexity_info(model, input_shape)
+ split_line = '=' * 30
+ print('{0}\nInput shape: {1}\nFlops: {2}\nParams: {3}\n{0}'.format(
+ split_line, input_shape, flops, params))
+ print('!!!Please be cautious if you use the results in papers. '
+ 'You may need to check if all ops are supported and verify that the '
+ 'flops computation is correct.')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/print_config.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/print_config.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a0c67780a0620fff1d8748db28177ca3ddcc0ca
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/print_config.py
@@ -0,0 +1,28 @@
+import argparse
+
+from mmcv import Config, DictAction
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Print the whole config')
+ parser.add_argument('config', help='config file path')
+ parser.add_argument(
+ '--options', nargs='+', action=DictAction, help='arguments in dict')
+ args = parser.parse_args()
+
+ return args
+
+
+def main():
+ args = parse_args()
+
+ cfg = Config.fromfile(args.config)
+ if args.options is not None:
+ cfg.merge_from_dict(args.options)
+ print(f'Config:\n{cfg.pretty_text}')
+ # dump config
+ cfg.dump('example.py')
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/publish_model.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/publish_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..a049f17674b7a1aa730057e5cc294d2368fe707c
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/publish_model.py
@@ -0,0 +1,35 @@
+import argparse
+import subprocess
+
+import torch
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='Process a checkpoint to be published')
+ parser.add_argument('in_file', help='input checkpoint filename')
+ parser.add_argument('out_file', help='output checkpoint filename')
+ args = parser.parse_args()
+ return args
+
+
+def process_checkpoint(in_file, out_file):
+ checkpoint = torch.load(in_file, map_location='cpu')
+ # remove optimizer for smaller file size
+ if 'optimizer' in checkpoint:
+ del checkpoint['optimizer']
+ # if it is necessary to remove some sensitive data in checkpoint['meta'],
+ # add the code here.
+ torch.save(checkpoint, out_file)
+ sha = subprocess.check_output(['sha256sum', out_file]).decode()
+ final_file = out_file.rstrip('.pth') + '-{}.pth'.format(sha[:8])
+ subprocess.Popen(['mv', out_file, final_file])
+
+
+def main():
+ args = parse_args()
+ process_checkpoint(args.in_file, args.out_file)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/pytorch2onnx.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/pytorch2onnx.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ec9feb59a86db61a8368d2239f8ef0dcb461d41
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/pytorch2onnx.py
@@ -0,0 +1,200 @@
+import argparse
+from functools import partial
+
+import mmcv
+import numpy as np
+import onnxruntime as rt
+import torch
+import torch._C
+import torch.serialization
+from mmcv.onnx import register_extra_symbolics
+from mmcv.runner import load_checkpoint
+from torch import nn
+
+from mmseg.models import build_segmentor
+
+torch.manual_seed(3)
+
+
+def _convert_batchnorm(module):
+ module_output = module
+ if isinstance(module, torch.nn.SyncBatchNorm):
+ module_output = torch.nn.BatchNorm2d(module.num_features, module.eps,
+ module.momentum, module.affine,
+ module.track_running_stats)
+ if module.affine:
+ module_output.weight.data = module.weight.data.clone().detach()
+ module_output.bias.data = module.bias.data.clone().detach()
+ # keep requires_grad unchanged
+ module_output.weight.requires_grad = module.weight.requires_grad
+ module_output.bias.requires_grad = module.bias.requires_grad
+ module_output.running_mean = module.running_mean
+ module_output.running_var = module.running_var
+ module_output.num_batches_tracked = module.num_batches_tracked
+ for name, child in module.named_children():
+ module_output.add_module(name, _convert_batchnorm(child))
+ del module
+ return module_output
+
+
+def _demo_mm_inputs(input_shape, num_classes):
+ """Create a superset of inputs needed to run test or train batches.
+
+ Args:
+ input_shape (tuple):
+ input batch dimensions
+ num_classes (int):
+ number of semantic classes
+ """
+ (N, C, H, W) = input_shape
+ rng = np.random.RandomState(0)
+ imgs = rng.rand(*input_shape)
+ segs = rng.randint(
+ low=0, high=num_classes - 1, size=(N, 1, H, W)).astype(np.uint8)
+ img_metas = [{
+ 'img_shape': (H, W, C),
+ 'ori_shape': (H, W, C),
+ 'pad_shape': (H, W, C),
+ 'filename': '.png',
+ 'scale_factor': 1.0,
+ 'flip': False,
+ } for _ in range(N)]
+ mm_inputs = {
+ 'imgs': torch.FloatTensor(imgs).requires_grad_(True),
+ 'img_metas': img_metas,
+ 'gt_semantic_seg': torch.LongTensor(segs)
+ }
+ return mm_inputs
+
+
+def pytorch2onnx(model,
+ input_shape,
+ opset_version=11,
+ show=False,
+ output_file='tmp.onnx',
+ verify=False):
+ """Export Pytorch model to ONNX model and verify the outputs are same
+ between Pytorch and ONNX.
+
+ Args:
+ model (nn.Module): Pytorch model we want to export.
+ input_shape (tuple): Use this input shape to construct
+ the corresponding dummy input and execute the model.
+ opset_version (int): The onnx op version. Default: 11.
+ show (bool): Whether print the computation graph. Default: False.
+ output_file (string): The path to where we store the output ONNX model.
+ Default: `tmp.onnx`.
+ verify (bool): Whether compare the outputs between Pytorch and ONNX.
+ Default: False.
+ """
+ model.cpu().eval()
+
+ if isinstance(model.decode_head, nn.ModuleList):
+ num_classes = model.decode_head[-1].num_classes
+ else:
+ num_classes = model.decode_head.num_classes
+
+ mm_inputs = _demo_mm_inputs(input_shape, num_classes)
+
+ imgs = mm_inputs.pop('imgs')
+ img_metas = mm_inputs.pop('img_metas')
+
+ img_list = [img[None, :] for img in imgs]
+ img_meta_list = [[img_meta] for img_meta in img_metas]
+
+ # replace original forward function
+ origin_forward = model.forward
+ model.forward = partial(
+ model.forward, img_metas=img_meta_list, return_loss=False)
+
+ register_extra_symbolics(opset_version)
+ with torch.no_grad():
+ torch.onnx.export(
+ model, (img_list, ),
+ output_file,
+ export_params=True,
+ keep_initializers_as_inputs=True,
+ verbose=show,
+ opset_version=opset_version)
+ print(f'Successfully exported ONNX model: {output_file}')
+ model.forward = origin_forward
+
+ if verify:
+ # check by onnx
+ import onnx
+ onnx_model = onnx.load(output_file)
+ onnx.checker.check_model(onnx_model)
+
+ # check the numerical value
+ # get pytorch output
+ pytorch_result = model(img_list, img_meta_list, return_loss=False)[0]
+
+ # get onnx output
+ input_all = [node.name for node in onnx_model.graph.input]
+ input_initializer = [
+ node.name for node in onnx_model.graph.initializer
+ ]
+ net_feed_input = list(set(input_all) - set(input_initializer))
+ assert (len(net_feed_input) == 1)
+ sess = rt.InferenceSession(output_file)
+ onnx_result = sess.run(
+ None, {net_feed_input[0]: img_list[0].detach().numpy()})[0]
+ if not np.allclose(pytorch_result, onnx_result):
+ raise ValueError(
+ 'The outputs are different between Pytorch and ONNX')
+ print('The outputs are same between Pytorch and ONNX')
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Convert MMSeg to ONNX')
+ parser.add_argument('config', help='test config file path')
+ parser.add_argument('--checkpoint', help='checkpoint file', default=None)
+ parser.add_argument('--show', action='store_true', help='show onnx graph')
+ parser.add_argument(
+ '--verify', action='store_true', help='verify the onnx model')
+ parser.add_argument('--output-file', type=str, default='tmp.onnx')
+ parser.add_argument('--opset-version', type=int, default=11)
+ parser.add_argument(
+ '--shape',
+ type=int,
+ nargs='+',
+ default=[256, 256],
+ help='input image size')
+ args = parser.parse_args()
+ return args
+
+
+if __name__ == '__main__':
+ args = parse_args()
+
+ if len(args.shape) == 1:
+ input_shape = (1, 3, args.shape[0], args.shape[0])
+ elif len(args.shape) == 2:
+ input_shape = (
+ 1,
+ 3,
+ ) + tuple(args.shape)
+ else:
+ raise ValueError('invalid input shape')
+
+ cfg = mmcv.Config.fromfile(args.config)
+ cfg.model.pretrained = None
+
+ # build the model and load checkpoint
+ cfg.model.train_cfg = None
+ segmentor = build_segmentor(
+ cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg'))
+ # convert SyncBN to BN
+ segmentor = _convert_batchnorm(segmentor)
+
+ if args.checkpoint:
+ load_checkpoint(segmentor, args.checkpoint, map_location='cpu')
+
+ # conver model to onnx file
+ pytorch2onnx(
+ segmentor,
+ input_shape,
+ opset_version=args.opset_version,
+ show=args.show,
+ output_file=args.output_file,
+ verify=args.verify)
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/slurm_test.sh b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/slurm_test.sh
new file mode 100644
index 0000000000000000000000000000000000000000..4e6f7bf4e33267f269cf0f455924cb70166ccd4b
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/slurm_test.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+set -x
+
+PARTITION=$1
+JOB_NAME=$2
+CONFIG=$3
+CHECKPOINT=$4
+GPUS=${GPUS:-4}
+GPUS_PER_NODE=${GPUS_PER_NODE:-4}
+CPUS_PER_TASK=${CPUS_PER_TASK:-5}
+PY_ARGS=${@:5}
+SRUN_ARGS=${SRUN_ARGS:-""}
+
+PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
+srun -p ${PARTITION} \
+ --job-name=${JOB_NAME} \
+ --gres=gpu:${GPUS_PER_NODE} \
+ --ntasks=${GPUS} \
+ --ntasks-per-node=${GPUS_PER_NODE} \
+ --cpus-per-task=${CPUS_PER_TASK} \
+ --kill-on-bad-exit=1 \
+ ${SRUN_ARGS} \
+ python -u tools/test.py ${CONFIG} ${CHECKPOINT} --launcher="slurm" ${PY_ARGS}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/slurm_train.sh b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/slurm_train.sh
new file mode 100644
index 0000000000000000000000000000000000000000..ab232105f0309c720ed81a522eca14b6fbd64afd
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/slurm_train.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+set -x
+
+PARTITION=$1
+JOB_NAME=$2
+CONFIG=$3
+GPUS=${GPUS:-4}
+GPUS_PER_NODE=${GPUS_PER_NODE:-4}
+CPUS_PER_TASK=${CPUS_PER_TASK:-5}
+SRUN_ARGS=${SRUN_ARGS:-""}
+PY_ARGS=${@:4}
+
+PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
+srun -p ${PARTITION} \
+ --job-name=${JOB_NAME} \
+ --gres=gpu:${GPUS_PER_NODE} \
+ --ntasks=${GPUS} \
+ --ntasks-per-node=${GPUS_PER_NODE} \
+ --cpus-per-task=${CPUS_PER_TASK} \
+ --kill-on-bad-exit=1 \
+ ${SRUN_ARGS} \
+ python -u tools/train.py ${CONFIG} --launcher="slurm" ${PY_ARGS}
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/test.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/test.py
new file mode 100644
index 0000000000000000000000000000000000000000..a106f04626c44326ff081ffc62c1456f55a19be2
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/test.py
@@ -0,0 +1,148 @@
+import argparse
+import os
+
+import mmcv
+import torch
+from mmcv.parallel import MMDataParallel, MMDistributedDataParallel
+from mmcv.runner import get_dist_info, init_dist, load_checkpoint
+from mmcv.utils import DictAction
+
+from mmseg.apis import multi_gpu_test, single_gpu_test
+from mmseg.datasets import build_dataloader, build_dataset
+from mmseg.models import build_segmentor
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description='mmseg test (and eval) a model')
+ parser.add_argument('config', help='test config file path')
+ parser.add_argument('checkpoint', help='checkpoint file')
+ parser.add_argument(
+ '--aug-test', action='store_true', help='Use Flip and Multi scale aug')
+ parser.add_argument('--out', help='output result file in pickle format')
+ parser.add_argument(
+ '--format-only',
+ action='store_true',
+ help='Format the output results without perform evaluation. It is'
+ 'useful when you want to format the result to a specific format and '
+ 'submit it to the test server')
+ parser.add_argument(
+ '--eval',
+ type=str,
+ nargs='+',
+ help='evaluation metrics, which depends on the dataset, e.g., "mIoU"'
+ ' for generic datasets, and "cityscapes" for Cityscapes')
+ parser.add_argument('--show', action='store_true', help='show results')
+ parser.add_argument(
+ '--show-dir', help='directory where painted images will be saved')
+ parser.add_argument(
+ '--gpu-collect',
+ action='store_true',
+ help='whether to use gpu to collect results.')
+ parser.add_argument(
+ '--tmpdir',
+ help='tmp directory used for collecting results from multiple '
+ 'workers, available when gpu_collect is not specified')
+ parser.add_argument(
+ '--options', nargs='+', action=DictAction, help='custom options')
+ parser.add_argument(
+ '--eval-options',
+ nargs='+',
+ action=DictAction,
+ help='custom options for evaluation')
+ parser.add_argument(
+ '--launcher',
+ choices=['none', 'pytorch', 'slurm', 'mpi'],
+ default='none',
+ help='job launcher')
+ parser.add_argument('--local_rank', type=int, default=0)
+ args = parser.parse_args()
+ if 'LOCAL_RANK' not in os.environ:
+ os.environ['LOCAL_RANK'] = str(args.local_rank)
+ return args
+
+
+def main():
+ args = parse_args()
+
+ assert args.out or args.eval or args.format_only or args.show \
+ or args.show_dir, \
+ ('Please specify at least one operation (save/eval/format/show the '
+ 'results / save the results) with the argument "--out", "--eval"'
+ ', "--format-only", "--show" or "--show-dir"')
+
+ if args.eval and args.format_only:
+ raise ValueError('--eval and --format_only cannot be both specified')
+
+ if args.out is not None and not args.out.endswith(('.pkl', '.pickle')):
+ raise ValueError('The output file must be a pkl file.')
+
+ cfg = mmcv.Config.fromfile(args.config)
+ if args.options is not None:
+ cfg.merge_from_dict(args.options)
+ # set cudnn_benchmark
+ if cfg.get('cudnn_benchmark', False):
+ torch.backends.cudnn.benchmark = True
+ if args.aug_test:
+ # hard code index
+ cfg.data.test.pipeline[1].img_ratios = [
+ 0.5, 0.75, 1.0, 1.25, 1.5, 1.75
+ ]
+ cfg.data.test.pipeline[1].flip = True
+ cfg.model.pretrained = None
+ cfg.data.test.test_mode = True
+
+ # init distributed env first, since logger depends on the dist info.
+ if args.launcher == 'none':
+ distributed = False
+ else:
+ distributed = True
+ init_dist(args.launcher, **cfg.dist_params)
+
+ # build the dataloader
+ # TODO: support multiple images per gpu (only minor changes are needed)
+ dataset = build_dataset(cfg.data.test)
+ data_loader = build_dataloader(
+ dataset,
+ samples_per_gpu=1,
+ workers_per_gpu=cfg.data.workers_per_gpu,
+ dist=distributed,
+ shuffle=False)
+
+ # build the model and load checkpoint
+ cfg.model.train_cfg = None
+ model = build_segmentor(cfg.model, test_cfg=cfg.get('test_cfg'))
+ checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu')
+ model.CLASSES = checkpoint['meta']['CLASSES']
+ model.PALETTE = checkpoint['meta']['PALETTE']
+
+ efficient_test = False
+ if args.eval_options is not None:
+ efficient_test = args.eval_options.get('efficient_test', False)
+
+ if not distributed:
+ model = MMDataParallel(model, device_ids=[0])
+ outputs = single_gpu_test(model, data_loader, args.show, args.show_dir,
+ efficient_test)
+ else:
+ model = MMDistributedDataParallel(
+ model.cuda(),
+ device_ids=[torch.cuda.current_device()],
+ broadcast_buffers=False)
+ outputs = multi_gpu_test(model, data_loader, args.tmpdir,
+ args.gpu_collect, efficient_test)
+
+ rank, _ = get_dist_info()
+ if rank == 0:
+ if args.out:
+ print(f'\nwriting results to {args.out}')
+ mmcv.dump(outputs, args.out)
+ kwargs = {} if args.eval_options is None else args.eval_options
+ if args.format_only:
+ dataset.format_results(outputs, **kwargs)
+ if args.eval:
+ dataset.evaluate(outputs, args.eval, **kwargs)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/train.py b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/train.py
new file mode 100644
index 0000000000000000000000000000000000000000..51fe4065de132e8ea6e03f87c77b50952965c96e
--- /dev/null
+++ b/FoodSeg103/Swin-Transformer-Semantic-Segmentation-main/tools/train.py
@@ -0,0 +1,163 @@
+import argparse
+import copy
+import os
+import os.path as osp
+import time
+
+import mmcv
+import torch
+from mmcv.runner import init_dist
+from mmcv.utils import Config, DictAction, get_git_hash
+
+from mmseg import __version__
+from mmseg.apis import set_random_seed, train_segmentor
+from mmseg.datasets import build_dataset
+from mmseg.models import build_segmentor
+from mmseg.utils import collect_env, get_root_logger
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='Train a segmentor')
+ parser.add_argument('config', help='train config file path')
+ parser.add_argument('--work-dir', help='the dir to save logs and models')
+ parser.add_argument(
+ '--load-from', help='the checkpoint file to load weights from')
+ parser.add_argument(
+ '--resume-from', help='the checkpoint file to resume from')
+ parser.add_argument(
+ '--no-validate',
+ action='store_true',
+ help='whether not to evaluate the checkpoint during training')
+ group_gpus = parser.add_mutually_exclusive_group()
+ group_gpus.add_argument(
+ '--gpus',
+ type=int,
+ help='number of gpus to use '
+ '(only applicable to non-distributed training)')
+ group_gpus.add_argument(
+ '--gpu-ids',
+ type=int,
+ nargs='+',
+ help='ids of gpus to use '
+ '(only applicable to non-distributed training)')
+ parser.add_argument('--seed', type=int, default=None, help='random seed')
+ parser.add_argument(
+ '--deterministic',
+ action='store_true',
+ help='whether to set deterministic options for CUDNN backend.')
+ parser.add_argument(
+ '--options', nargs='+', action=DictAction, help='custom options')
+ parser.add_argument(
+ '--launcher',
+ choices=['none', 'pytorch', 'slurm', 'mpi'],
+ default='none',
+ help='job launcher')
+ parser.add_argument('--local_rank', type=int, default=0)
+ args = parser.parse_args()
+ if 'LOCAL_RANK' not in os.environ:
+ os.environ['LOCAL_RANK'] = str(args.local_rank)
+
+ return args
+
+
+def main():
+ args = parse_args()
+
+ cfg = Config.fromfile(args.config)
+ if args.options is not None:
+ cfg.merge_from_dict(args.options)
+ # set cudnn_benchmark
+ if cfg.get('cudnn_benchmark', False):
+ torch.backends.cudnn.benchmark = True
+
+ # work_dir is determined in this priority: CLI > segment in file > filename
+ if args.work_dir is not None:
+ # update configs according to CLI args if args.work_dir is not None
+ cfg.work_dir = args.work_dir
+ elif cfg.get('work_dir', None) is None:
+ # use config filename as default work_dir if cfg.work_dir is None
+ cfg.work_dir = osp.join('./work_dirs',
+ osp.splitext(osp.basename(args.config))[0])
+ if args.load_from is not None:
+ cfg.load_from = args.load_from
+ if args.resume_from is not None:
+ cfg.resume_from = args.resume_from
+ if args.gpu_ids is not None:
+ cfg.gpu_ids = args.gpu_ids
+ else:
+ cfg.gpu_ids = range(1) if args.gpus is None else range(args.gpus)
+
+ # init distributed env first, since logger depends on the dist info.
+ if args.launcher == 'none':
+ distributed = False
+ else:
+ distributed = True
+ init_dist(args.launcher, **cfg.dist_params)
+
+ # create work_dir
+ mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))
+ # dump config
+ cfg.dump(osp.join(cfg.work_dir, osp.basename(args.config)))
+ # init the logger before other steps
+ timestamp = time.strftime('%Y%m%d_%H%M%S', time.localtime())
+ log_file = osp.join(cfg.work_dir, f'{timestamp}.log')
+ logger = get_root_logger(log_file=log_file, log_level=cfg.log_level)
+
+ # init the meta dict to record some important information such as
+ # environment info and seed, which will be logged
+ meta = dict()
+ # log env info
+ env_info_dict = collect_env()
+ env_info = '\n'.join([f'{k}: {v}' for k, v in env_info_dict.items()])
+ dash_line = '-' * 60 + '\n'
+ logger.info('Environment info:\n' + dash_line + env_info + '\n' +
+ dash_line)
+ meta['env_info'] = env_info
+
+ # log some basic info
+ logger.info(f'Distributed training: {distributed}')
+ logger.info(f'Config:\n{cfg.pretty_text}')
+
+ # set random seeds
+ if args.seed is not None:
+ logger.info(f'Set random seed to {args.seed}, deterministic: '
+ f'{args.deterministic}')
+ set_random_seed(args.seed, deterministic=args.deterministic)
+ cfg.seed = args.seed
+ meta['seed'] = args.seed
+ meta['exp_name'] = osp.basename(args.config)
+
+ model = build_segmentor(
+ cfg.model,
+ train_cfg=cfg.get('train_cfg'),
+ test_cfg=cfg.get('test_cfg'))
+
+ logger.info(model)
+
+ datasets = [build_dataset(cfg.data.train)]
+ if len(cfg.workflow) == 2:
+ val_dataset = copy.deepcopy(cfg.data.val)
+ val_dataset.pipeline = cfg.data.train.pipeline
+ datasets.append(build_dataset(val_dataset))
+ if cfg.checkpoint_config is not None:
+ # save mmseg version, config file content and class names in
+ # checkpoints as meta data
+ cfg.checkpoint_config.meta = dict(
+ mmseg_version=f'{__version__}+{get_git_hash()[:7]}',
+ config=cfg.pretty_text,
+ CLASSES=datasets[0].CLASSES,
+ PALETTE=datasets[0].PALETTE)
+ # add an attribute for visualization convenience
+ model.CLASSES = datasets[0].CLASSES
+ train_segmentor(
+ model,
+ datasets,
+ cfg,
+ distributed=distributed,
+ validate=(not args.no_validate),
+ timestamp=timestamp,
+ meta=meta)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/checkpoints/.DS_Store b/FoodSeg103/checkpoints/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..ebb71b1802cacd073cdceb3f0cf32d2495da0147
Binary files /dev/null and b/FoodSeg103/checkpoints/.DS_Store differ
diff --git a/FoodSeg103/checkpoints/CCNet/ccnet_r101-d8_512x1024_80k.py b/FoodSeg103/checkpoints/CCNet/ccnet_r101-d8_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..eea05beb74d885c2dd92d63b44405507f4aabf10
--- /dev/null
+++ b/FoodSeg103/checkpoints/CCNet/ccnet_r101-d8_512x1024_80k.py
@@ -0,0 +1,168 @@
+dataset_type = 'CustomDataset'
+data_root = 'data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(1024, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(1024, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(1024, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='CCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ recurrence=2,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+work_dir = 'checkpoints/ccnet/train'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/CCNet/iter_80000.pth b/FoodSeg103/checkpoints/CCNet/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..4cf48be111978d5b5619d0f472550190761ae841
--- /dev/null
+++ b/FoodSeg103/checkpoints/CCNet/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:516a81ce3fcd9f308756aef349457f4e79a9d3b8a5eb4f35e9cf7b46d131896f
+size 399549856
diff --git a/FoodSeg103/checkpoints/CCNet_ReLeM/ccnet_r50-d8_512x1024_80k.py b/FoodSeg103/checkpoints/CCNet_ReLeM/ccnet_r50-d8_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7c50716c229652ed18e8b5c86096d4cc49badbe
--- /dev/null
+++ b/FoodSeg103/checkpoints/CCNet_ReLeM/ccnet_r50-d8_512x1024_80k.py
@@ -0,0 +1,168 @@
+dataset_type = 'CustomDataset'
+data_root = 'data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='pretrained_model/recipe1MP_R50.pth',
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='CCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ recurrence=2,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+work_dir = 'checkpoints/ccnet/recipe1m_train2'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/CCNet_ReLeM/iter_80000.pth b/FoodSeg103/checkpoints/CCNet_ReLeM/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..516b287edf7bd882f96a4a7938024e91f82e4f40
--- /dev/null
+++ b/FoodSeg103/checkpoints/CCNet_ReLeM/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e92547419f949182948681ba63720c8d81b83a18d1b2cf49e1e21f50a0ef687
+size 399389758
diff --git a/FoodSeg103/checkpoints/FPN/fpn_r50_512x1024_80k.py b/FoodSeg103/checkpoints/FPN/fpn_r50_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ae2f067cb08cb89ca56ca57dfcecd54eedd5608
--- /dev/null
+++ b/FoodSeg103/checkpoints/FPN/fpn_r50_512x1024_80k.py
@@ -0,0 +1,160 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ neck=dict(
+ type='FPN',
+ in_channels=[256, 512, 1024, 2048],
+ out_channels=256,
+ num_outs=4),
+ decode_head=dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+work_dir = 'checkpoints/r50_fpn'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/FPN/iter_80000.pth b/FoodSeg103/checkpoints/FPN/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..5426c1c16a7e00b0a445a86d49438f99f24bd8a2
--- /dev/null
+++ b/FoodSeg103/checkpoints/FPN/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b46e7ecbd1c21ca14a32d3a0cc7625ed3332e173356f0cb2cbb5a68985228bb5
+size 228495057
diff --git a/FoodSeg103/checkpoints/FPN_ReLeM/fpn_r50_512x1024_80k.py b/FoodSeg103/checkpoints/FPN_ReLeM/fpn_r50_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee807b954cd39d301c04925a54a5c139ff4d844b
--- /dev/null
+++ b/FoodSeg103/checkpoints/FPN_ReLeM/fpn_r50_512x1024_80k.py
@@ -0,0 +1,160 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='./pretrained_model/R50_ReLeM.pth',
+ backbone=dict(
+ type='ResNet',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ neck=dict(
+ type='FPN',
+ in_channels=[256, 512, 1024, 2048],
+ out_channels=256,
+ num_outs=4),
+ decode_head=dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+work_dir = 'checkpoints/r50_fpn_RM_poly'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/FPN_ReLeM/iter_80000.pth b/FoodSeg103/checkpoints/FPN_ReLeM/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..1e9ce10ab3cf13038f44ef3ee5f45de01cbdc6e6
--- /dev/null
+++ b/FoodSeg103/checkpoints/FPN_ReLeM/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2cf26d32490fea9cf5af44d1d1cf48976ac42544cc4749f91366b8ea4904c578
+size 228334959
diff --git a/FoodSeg103/checkpoints/SETR_MLA/SETR_MLA_768x768_80k_base.py b/FoodSeg103/checkpoints/SETR_MLA/SETR_MLA_768x768_80k_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..66d4dda518f617d8af01f969468c8e7a778710ae
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_MLA/SETR_MLA_768x768_80k_base.py
@@ -0,0 +1,207 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VIT_MLA',
+ model_name='vit_base_patch16_224',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ num_classes=19,
+ drop_rate=0.0,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ pos_embed_interp=True,
+ align_corners=False,
+ mla_channels=256,
+ mla_index=(5, 7, 9, 11)),
+ decode_head=dict(
+ type='VIT_MLAHead',
+ in_channels=1024,
+ channels=512,
+ img_size=768,
+ mla_channels=256,
+ mlahead_channels=128,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=[
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=0,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=1,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=2,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=3,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))
+ ])
+train_cfg = dict()
+test_cfg = dict(mode='slide', crop_size=(768, 768), stride=(512, 512))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (768, 768)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=1,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='SGD',
+ lr=0.002,
+ momentum=0.9,
+ weight_decay=0.0,
+ paramwise_cfg=dict(custom_keys=dict(head=dict(lr_mult=10.0))))
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+find_unused_parameters = True
+work_dir = 'checkpoints/SETR_224'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/SETR_MLA/iter_80000.pth b/FoodSeg103/checkpoints/SETR_MLA/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..8ca7b9e1f1ba645a6bee7d4d63e8a9193fbc63c3
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_MLA/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f72bf120eb00dca469f292cc2bde956883f3b64d22768f203c17aea8eaf5001a
+size 744713085
diff --git a/FoodSeg103/checkpoints/SETR_MLA_L384/SETR_MLA_768x768_80k.py b/FoodSeg103/checkpoints/SETR_MLA_L384/SETR_MLA_768x768_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..14f5b1b1ee0dc8d372a5328f0fa473029b9144e2
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_MLA_L384/SETR_MLA_768x768_80k.py
@@ -0,0 +1,207 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VIT_MLA',
+ model_name='vit_large_patch16_384',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=1024,
+ depth=24,
+ num_heads=16,
+ num_classes=19,
+ drop_rate=0.0,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ pos_embed_interp=True,
+ align_corners=False,
+ mla_channels=256,
+ mla_index=(5, 11, 17, 23)),
+ decode_head=dict(
+ type='VIT_MLAHead',
+ in_channels=1024,
+ channels=512,
+ img_size=768,
+ mla_channels=256,
+ mlahead_channels=128,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=[
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=0,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=1,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=2,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=3,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))
+ ])
+train_cfg = dict()
+test_cfg = dict(mode='slide', crop_size=(768, 768), stride=(512, 512))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (768, 768)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=1,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='SGD',
+ lr=0.002,
+ momentum=0.9,
+ weight_decay=0.0,
+ paramwise_cfg=dict(custom_keys=dict(head=dict(lr_mult=10.0))))
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=80000, metric='mIoU')
+find_unused_parameters = True
+work_dir = 'checkpoints/setr_mla_large_384/'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/SETR_MLA_L384/iter_80000.pth b/FoodSeg103/checkpoints/SETR_MLA_L384/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..564d6c2ac1bb0d19ee19ef06688cbe3307c093bf
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_MLA_L384/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b15d2b727f8694ba5ad0da043030c307436a68dcb86eb6ccb5baddb7669455f
+size 2491270045
diff --git a/FoodSeg103/checkpoints/SETR_MLA_ReLeM/SETR_MLA_768x768_80k_base.py b/FoodSeg103/checkpoints/SETR_MLA_ReLeM/SETR_MLA_768x768_80k_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..f997a0cfd0e3a7dcf0b4cab45852199c1578b578
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_MLA_ReLeM/SETR_MLA_768x768_80k_base.py
@@ -0,0 +1,207 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VIT_MLA',
+ model_name='vit_base_patch16_224',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ num_classes=19,
+ drop_rate=0.0,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ pos_embed_interp=True,
+ align_corners=False,
+ mla_channels=256,
+ mla_index=(5, 7, 9, 11)),
+ decode_head=dict(
+ type='VIT_MLAHead',
+ in_channels=1024,
+ channels=512,
+ img_size=768,
+ mla_channels=256,
+ mlahead_channels=128,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=[
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=0,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=1,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=2,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=3,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))
+ ])
+train_cfg = dict()
+test_cfg = dict(mode='slide', crop_size=(768, 768), stride=(512, 512))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (768, 768)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=1,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='SGD',
+ lr=0.002,
+ momentum=0.9,
+ weight_decay=0.0,
+ paramwise_cfg=dict(custom_keys=dict(head=dict(lr_mult=10.0))))
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+find_unused_parameters = True
+work_dir = 'checkpoints/SETR_224_RMP_230/'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/SETR_MLA_ReLeM/iter_80000.pth b/FoodSeg103/checkpoints/SETR_MLA_ReLeM/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..8034aea1a2dd6471d88c8242e97367b9e71e2e8c
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_MLA_ReLeM/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e4ddcde6fbd5387ac6b86c862e15a6d4ae9e3cef5c8d73430bf613626521f5b
+size 744713085
diff --git a/FoodSeg103/checkpoints/SETR_Naive/SETR_Naive_768x768_80k_base.py b/FoodSeg103/checkpoints/SETR_Naive/SETR_Naive_768x768_80k_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..a4d31f4a32782e0b5f065f95ab8d82dfad7544a3
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_Naive/SETR_Naive_768x768_80k_base.py
@@ -0,0 +1,209 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VisionTransformer',
+ model_name='vit_base_patch16_224',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ num_classes=104,
+ drop_rate=0.0,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ pos_embed_interp=True,
+ align_corners=False),
+ decode_head=dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=11,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=[
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=5,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=7,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=9,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))
+ ])
+train_cfg = dict()
+test_cfg = dict(mode='slide', crop_size=(768, 768), stride=(512, 512))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (768, 768)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=1,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='SGD',
+ lr=0.01,
+ momentum=0.9,
+ weight_decay=0.0,
+ paramwise_cfg=dict(custom_keys=dict(head=dict(lr_mult=10.0))))
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+find_unused_parameters = True
+work_dir = 'checkpoints/SETR_NAIVE'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/SETR_Naive/iter_80000.pth b/FoodSeg103/checkpoints/SETR_Naive/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..2f3085a9504a7024638cd90e991c454428a75f45
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_Naive/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:befb064c1653ae6c3a73fcd31cb72c275825223fe7a46d197daae9d2489f723d
+size 757893835
diff --git a/FoodSeg103/checkpoints/SETR_Naive_ReLeM/SETR_Naive_768x768_80k_base.py b/FoodSeg103/checkpoints/SETR_Naive_ReLeM/SETR_Naive_768x768_80k_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc6fc541f81066fead9141571b0fc33a69971a78
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_Naive_ReLeM/SETR_Naive_768x768_80k_base.py
@@ -0,0 +1,209 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VisionTransformer',
+ model_name='vit_base_patch16_224',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ num_classes=104,
+ drop_rate=0.0,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ pos_embed_interp=True,
+ align_corners=False),
+ decode_head=dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=11,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=[
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=5,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=7,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=9,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4))
+ ])
+train_cfg = dict()
+test_cfg = dict(mode='slide', crop_size=(768, 768), stride=(512, 512))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (768, 768)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=1,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(768, 768), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(768, 768), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='SGD',
+ lr=0.01,
+ momentum=0.9,
+ weight_decay=0.0,
+ paramwise_cfg=dict(custom_keys=dict(head=dict(lr_mult=10.0))))
+optimizer_config = dict()
+lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+find_unused_parameters = True
+work_dir = 'checkpoints/SETR_Naive_RMP'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/SETR_Naive_ReLeM/iter_80000.pth b/FoodSeg103/checkpoints/SETR_Naive_ReLeM/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..b50ea1f7af64aa6a418f7e49f8a1a5c2895c0c5c
--- /dev/null
+++ b/FoodSeg103/checkpoints/SETR_Naive_ReLeM/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a42c1610c8dbd28deb0cf7d1169796a76bb134fd7198fb267a3429a4528bb6eb
+size 757893835
diff --git a/FoodSeg103/checkpoints/swin_base/iter_80000.pth b/FoodSeg103/checkpoints/swin_base/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..a9cbe4b258a33186d77f8c404f5e0975898949a9
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_base/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f6f54780e99e3fc5027c6539314165ab95e894acdd922ee146c904adc1457ec4
+size 1455875918
diff --git a/FoodSeg103/checkpoints/swin_base/upernet_swin_base_patch4_window7_512x1024_80k.py b/FoodSeg103/checkpoints/swin_base/upernet_swin_base_patch4_window7_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..09bad148a021af3538c5cdcc1c2bf2f01facc231
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_base/upernet_swin_base_patch4_window7_512x1024_80k.py
@@ -0,0 +1,189 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='pretrained/swin_base_patch4_window7_224.pth',
+ backbone=dict(
+ type='SwinTransformer',
+ embed_dim=128,
+ depths=[2, 2, 18, 2],
+ num_heads=[4, 8, 16, 32],
+ window_size=7,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop_rate=0.0,
+ attn_drop_rate=0.0,
+ drop_path_rate=0.3,
+ ape=False,
+ patch_norm=True,
+ out_indices=(0, 1, 2, 3),
+ use_checkpoint=False),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[128, 256, 512, 1024],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=512,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='AdamW',
+ lr=6e-05,
+ betas=(0.9, 0.999),
+ weight_decay=0.01,
+ paramwise_cfg=dict(
+ custom_keys=dict(
+ absolute_pos_embed=dict(decay_mult=0.0),
+ relative_position_bias_table=dict(decay_mult=0.0),
+ norm=dict(decay_mult=0.0))))
+optimizer_config = dict()
+lr_config = dict(
+ policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-06,
+ power=1.0,
+ min_lr=0.0,
+ by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=8000)
+evaluation = dict(interval=8000, metric='mIoU')
+work_dir = './work_dirs/upernet_swin_base_patch4_window7_512x1024_80k'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/swin_small/(original)upernet_swin_small_patch4_window7_512x1024_80k.py b/FoodSeg103/checkpoints/swin_small/(original)upernet_swin_small_patch4_window7_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a74817d6b9c54f077143a33d1f3093bd889eefe6
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_small/(original)upernet_swin_small_patch4_window7_512x1024_80k.py
@@ -0,0 +1,189 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='pretrained/swin_small_patch4_window7_224.pth',
+ backbone=dict(
+ type='SwinTransformer',
+ embed_dim=96,
+ depths=[2, 2, 18, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop_rate=0.0,
+ attn_drop_rate=0.0,
+ drop_path_rate=0.3,
+ ape=False,
+ patch_norm=True,
+ out_indices=(0, 1, 2, 3),
+ use_checkpoint=False),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[96, 192, 384, 768],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=384,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='AdamW',
+ lr=6e-05,
+ betas=(0.9, 0.999),
+ weight_decay=0.01,
+ paramwise_cfg=dict(
+ custom_keys=dict(
+ absolute_pos_embed=dict(decay_mult=0.0),
+ relative_position_bias_table=dict(decay_mult=0.0),
+ norm=dict(decay_mult=0.0))))
+optimizer_config = dict()
+lr_config = dict(
+ policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-06,
+ power=1.0,
+ min_lr=0.0,
+ by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=8000)
+evaluation = dict(interval=8000, metric='mIoU')
+work_dir = './work_dirs/upernet_swin_small_patch4_window7_512x1024_80k'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/swin_small/.DS_Store b/FoodSeg103/checkpoints/swin_small/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
Binary files /dev/null and b/FoodSeg103/checkpoints/swin_small/.DS_Store differ
diff --git a/FoodSeg103/checkpoints/swin_small/config.json b/FoodSeg103/checkpoints/swin_small/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..0ba68972e81ab7d50707a57b4f8a4cfe7b307009
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_small/config.json
@@ -0,0 +1,232 @@
+{
+
+ "model_type": "unet",
+ "model_config": {
+ "encoder": {
+ "type": "resnet18",
+ "pretrained": true
+ },
+ "decoder": {
+ "type": "unet",
+ "num_classes": 104
+ }
+ }
+}
+ "norm_cfg": {
+ "type": "SyncBN",
+ "requires_grad": true
+ },
+ "model": {
+ "type": "EncoderDecoder",
+ "pretrained": "pretrained/swin_small_patch4_window7_224.pth",
+ "backbone": {
+ "type": "SwinTransformer",
+ "embed_dim": 96,
+ "depths": [2, 2, 18, 2],
+ "num_heads": [3, 6, 12, 24],
+ "window_size": 7,
+ "mlp_ratio": 4.0,
+ "qkv_bias": true,
+ "qk_scale": null,
+ "drop_rate": 0.0,
+ "attn_drop_rate": 0.0,
+ "drop_path_rate": 0.3,
+ "ape": false,
+ "patch_norm": true,
+ "out_indices": [0, 1, 2, 3],
+ "use_checkpoint": false
+ },
+ "decode_head": {
+ "type": "UPerHead",
+ "in_channels": [96, 192, 384, 768],
+ "in_index": [0, 1, 2, 3],
+ "pool_scales": [1, 2, 3, 6],
+ "channels": 512,
+ "dropout_ratio": 0.1,
+ "num_classes": 104,
+ "norm_cfg": {
+ "type": "SyncBN",
+ "requires_grad": true
+ },
+ "align_corners": false,
+ "loss_decode": {
+ "type": "CrossEntropyLoss",
+ "use_sigmoid": false,
+ "loss_weight": 1.0
+ }
+ },
+ "auxiliary_head": {
+ "type": "FCNHead",
+ "in_channels": 384,
+ "in_index": 2,
+ "channels": 256,
+ "num_convs": 1,
+ "concat_input": false,
+ "dropout_ratio": 0.1,
+ "num_classes": 104,
+ "norm_cfg": {
+ "type": "SyncBN",
+ "requires_grad": true
+ },
+ "align_corners": false,
+ "loss_decode": {
+ "type": "CrossEntropyLoss",
+ "use_sigmoid": false,
+ "loss_weight": 0.4
+ }
+ },
+ "train_cfg": {},
+ "test_cfg": {
+ "mode": "whole"
+ }
+ },
+ "dataset_type": "CustomDataset",
+ "data_root": "./data/FoodSeg103/Images/",
+ "img_norm_cfg": {
+ "mean": [123.675, 116.28, 103.53],
+ "std": [58.395, 57.12, 57.375],
+ "to_rgb": true
+ },
+ "crop_size": [512, 1024],
+ "train_pipeline": [
+ {
+ "type": "LoadImageFromFile"
+ },
+ {
+ "type": "LoadAnnotations"
+ },
+ {
+ "type": "Resize",
+ "img_scale": [2048, 1024],
+ "ratio_range": [0.5, 2.0]
+ },
+ {
+ "type": "RandomCrop",
+ "crop_size": [512, 1024],
+ "cat_max_ratio": 0.75
+ },
+ {
+ "type": "RandomFlip",
+ "prob": 0.5
+ },
+ {
+ "type": "PhotoMetricDistortion"
+ },
+ {
+ "type": "Normalize",
+ "mean": [123.675, 116.28, 103.53],
+ "std": [58.395, 57.12, 57.375],
+ "to_rgb": true
+ },
+ {
+ "type": "Pad",
+ "size": [512, 1024],
+ "pad_val": 0,
+ "seg_pad_val": 255
+ },
+ {
+ "type": "DefaultFormatBundle"
+ },
+ {
+ "type": "Collect",
+ "keys": ["img", "gt_semantic_seg"]
+ }
+ ],
+ "test_pipeline": [
+ {
+ "type": "LoadImageFromFile"
+ },
+ {
+ "type": "MultiScaleFlipAug",
+ "img_scale": [2048, 1024],
+ "flip": false,
+ "transforms": [
+ {
+ "type": "Resize",
+ "keep_ratio": true
+ },
+ {
+ "type": "RandomFlip"
+ },
+ {
+ "type": "Normalize",
+ "mean": [123.675, 116.28, 103.53],
+ "std": [58.395, 57.12, 57.375],
+ "to_rgb": true
+ },
+ {
+ "type": "ImageToTensor",
+ "keys": ["img"]
+ },
+ {
+ "type": "Collect",
+ "keys": ["img"]
+ }
+ ]
+ }
+ ],
+ "data": {
+ "samples_per_gpu": 2,
+ "workers_per_gpu": 2,
+ "train": {
+ "type": "CustomDataset",
+ "data_root": "./data/FoodSeg103/Images/",
+ "img_dir": "img_dir/train",
+ "ann_dir": "ann_dir/train",
+ "pipeline": [
+ {
+ "type": "LoadImageFromFile"
+ },
+ {
+ "type": "LoadAnnotations"
+ },
+ {
+ "type": "Resize",
+ "img_scale": [2048, 1024],
+ "ratio_range": [0.5, 2.0]
+ },
+ {
+ "type": "RandomCrop",
+ "crop_size": [512, 1024],
+ "cat_max_ratio": 0.75
+ },
+ {
+ "type": "RandomFlip",
+ "prob": 0.5
+ },
+ {
+ "type": "PhotoMetricDistortion"
+ },
+ {
+ "type": "Normalize",
+ "mean": [123.675, 116.28, 103.53],
+ "std": [58.395, 57.12, 57.375],
+ "to_rgb": true
+ },
+ {
+ "type": "Pad",
+ "size": [512, 1024],
+ "pad_val": 0,
+ "seg_pad_val": 255
+ },
+ {
+ "type": "DefaultFormatBundle"
+ },
+ {
+ "type": "Collect",
+ "keys": ["img", "gt_semantic_seg"]
+ }
+ ]
+ },
+ "val": {
+ "type": "CustomDataset",
+ "data_root": "./data/FoodSeg103/Images/",
+ "img_dir": "img_dir/test",
+ "ann_dir": "ann_dir/test",
+ "pipeline": [
+ {
+ "type": "LoadImageFromFile"
+ },
+ {
+ "type": "MultiScaleFlipAug",
+ "img_scale": [2048, 1024],
\ No newline at end of file
diff --git a/FoodSeg103/checkpoints/swin_small/config.py b/FoodSeg103/checkpoints/swin_small/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..a74817d6b9c54f077143a33d1f3093bd889eefe6
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_small/config.py
@@ -0,0 +1,189 @@
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='pretrained/swin_small_patch4_window7_224.pth',
+ backbone=dict(
+ type='SwinTransformer',
+ embed_dim=96,
+ depths=[2, 2, 18, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop_rate=0.0,
+ attn_drop_rate=0.0,
+ drop_path_rate=0.3,
+ ape=False,
+ patch_norm=True,
+ out_indices=(0, 1, 2, 3),
+ use_checkpoint=False),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[96, 192, 384, 768],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=384,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='AdamW',
+ lr=6e-05,
+ betas=(0.9, 0.999),
+ weight_decay=0.01,
+ paramwise_cfg=dict(
+ custom_keys=dict(
+ absolute_pos_embed=dict(decay_mult=0.0),
+ relative_position_bias_table=dict(decay_mult=0.0),
+ norm=dict(decay_mult=0.0))))
+optimizer_config = dict()
+lr_config = dict(
+ policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-06,
+ power=1.0,
+ min_lr=0.0,
+ by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=8000)
+evaluation = dict(interval=8000, metric='mIoU')
+work_dir = './work_dirs/upernet_swin_small_patch4_window7_512x1024_80k'
+gpu_ids = range(0, 1)
diff --git a/FoodSeg103/checkpoints/swin_small/iter_80000.pth b/FoodSeg103/checkpoints/swin_small/iter_80000.pth
new file mode 100644
index 0000000000000000000000000000000000000000..32f92023edb26c39d13cbe7ae452df9dc360dd0d
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_small/iter_80000.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b67e032728959023a14b7a6a4831009367d58331cd2d188fa6540e7e40a05121
+size 975633422
diff --git a/FoodSeg103/checkpoints/swin_small/upernet_swin_small_patch4_window7_512x1024_80k.py b/FoodSeg103/checkpoints/swin_small/upernet_swin_small_patch4_window7_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d9eb62e8529894767a2687cad7c37010de5dacf
--- /dev/null
+++ b/FoodSeg103/checkpoints/swin_small/upernet_swin_small_patch4_window7_512x1024_80k.py
@@ -0,0 +1,189 @@
+norm_cfg = dict(type='BN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='pretrained/swin_small_patch4_window7_224.pth',
+ backbone=dict(
+ type='SwinTransformer',
+ embed_dim=96,
+ depths=[2, 2, 18, 2],
+ num_heads=[3, 6, 12, 24],
+ window_size=7,
+ mlp_ratio=4.0,
+ qkv_bias=True,
+ qk_scale=None,
+ drop_rate=0.0,
+ attn_drop_rate=0.0,
+ drop_path_rate=0.3,
+ ape=False,
+ patch_norm=True,
+ out_indices=(0, 1, 2, 3),
+ use_checkpoint=False),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[96, 192, 384, 768],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='BN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=384,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=dict(type='BN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(
+ type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='Pad', size=(512, 1024), pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+ ]),
+ val=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]),
+ test=dict(
+ type='CustomDataset',
+ data_root='./data/FoodSeg103/Images/',
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=[
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(
+ type='Normalize',
+ mean=[123.675, 116.28, 103.53],
+ std=[58.395, 57.12, 57.375],
+ to_rgb=True),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+ ]))
+log_config = dict(
+ interval=50, hooks=[dict(type='TextLoggerHook', by_epoch=False)])
+# dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
+optimizer = dict(
+ type='AdamW',
+ lr=6e-05,
+ betas=(0.9, 0.999),
+ weight_decay=0.01,
+ paramwise_cfg=dict(
+ custom_keys=dict(
+ absolute_pos_embed=dict(decay_mult=0.0),
+ relative_position_bias_table=dict(decay_mult=0.0),
+ norm=dict(decay_mult=0.0))))
+optimizer_config = dict()
+lr_config = dict(
+ policy='poly',
+ warmup='linear',
+ warmup_iters=1500,
+ warmup_ratio=1e-06,
+ power=1.0,
+ min_lr=0.0,
+ by_epoch=False)
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=8000)
+evaluation = dict(interval=8000, metric='mIoU')
+work_dir = './work_dirs/upernet_swin_small_patch4_window7_512x1024_80k'
+#gpu_ids = range(0, 1)
diff --git a/FoodSeg103/configs/.DS_Store b/FoodSeg103/configs/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..d28abe0cb4e1416935e8bd673d5f0b7253247bfb
Binary files /dev/null and b/FoodSeg103/configs/.DS_Store differ
diff --git a/FoodSeg103/configs/_base_/.DS_Store b/FoodSeg103/configs/_base_/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..d8b09b42e90a68410eddf03e91637f386ae98d96
Binary files /dev/null and b/FoodSeg103/configs/_base_/.DS_Store differ
diff --git a/FoodSeg103/configs/_base_/datasets/FoodSeg103.py b/FoodSeg103/configs/_base_/datasets/FoodSeg103.py
new file mode 100644
index 0000000000000000000000000000000000000000..0db467e549045162fd9a1a9a4fee01f612ea8fc1
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/FoodSeg103.py
@@ -0,0 +1,54 @@
+# dataset settings
+dataset_type = 'CustomDataset'
+data_root = './data/FoodSeg103/Images'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='img_dir/train',
+ ann_dir='ann_dir/train',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='img_dir/test',
+ ann_dir='ann_dir/test',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/FoodSeg103_768x768.py b/FoodSeg103/configs/_base_/datasets/FoodSeg103_768x768.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ebbc01579714ab10899114407b58d0a5fedfcd0
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/FoodSeg103_768x768.py
@@ -0,0 +1,36 @@
+# dataset settings
+_base_ = './FoodSeg103.py'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (768, 768)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ train=dict(pipeline=train_pipeline),
+ val=dict(pipeline=test_pipeline),
+ test=dict(pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/ade20k.py b/FoodSeg103/configs/_base_/datasets/ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..efc8b4bb20c981f3db6df7eb52b3dc0744c94cc0
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/ade20k.py
@@ -0,0 +1,54 @@
+# dataset settings
+dataset_type = 'ADE20KDataset'
+data_root = 'data/ade/ADEChallengeData2016'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 512)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations', reduce_zero_label=True),
+ dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 512),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/chase_db1.py b/FoodSeg103/configs/_base_/datasets/chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..298594ea925f87f22b37094a2ec50e370aec96a0
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/chase_db1.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'ChaseDB1Dataset'
+data_root = 'data/CHASE_DB1'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (960, 999)
+crop_size = (128, 128)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/cityscapes.py b/FoodSeg103/configs/_base_/datasets/cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f21867c63e1835f6fceb61f066e802fd8fd2a735
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/cityscapes.py
@@ -0,0 +1,54 @@
+# dataset settings
+dataset_type = 'CityscapesDataset'
+data_root = 'data/cityscapes/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=2,
+ workers_per_gpu=2,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/train',
+ ann_dir='gtFine/train',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/cityscapes_769x769.py b/FoodSeg103/configs/_base_/datasets/cityscapes_769x769.py
new file mode 100644
index 0000000000000000000000000000000000000000..336c7b254fe392b4703039fec86a83acdbd2e1a5
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/cityscapes_769x769.py
@@ -0,0 +1,35 @@
+_base_ = './cityscapes.py'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (769, 769)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2049, 1025), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2049, 1025),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ train=dict(pipeline=train_pipeline),
+ val=dict(pipeline=test_pipeline),
+ test=dict(pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/drive.py b/FoodSeg103/configs/_base_/datasets/drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..06e8ff606e0d2a4514ec8b7d2c6c436a32efcbf4
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/drive.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'DRIVEDataset'
+data_root = 'data/DRIVE'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (584, 565)
+crop_size = (64, 64)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/hrf.py b/FoodSeg103/configs/_base_/datasets/hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..242d790eb1b83e75cf6b7eaa7a35c674099311ad
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/hrf.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'HRFDataset'
+data_root = 'data/HRF'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (2336, 3504)
+crop_size = (256, 256)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/pascal_context.py b/FoodSeg103/configs/_base_/datasets/pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff65bad1b86d7e3a5980bb5b9fc55798dc8df5f4
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/pascal_context.py
@@ -0,0 +1,60 @@
+# dataset settings
+dataset_type = 'PascalContextDataset'
+data_root = 'data/VOCdevkit/VOC2010/'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+
+img_scale = (520, 520)
+crop_size = (480, 480)
+
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClassContext',
+ split='ImageSets/SegmentationContext/train.txt',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClassContext',
+ split='ImageSets/SegmentationContext/val.txt',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClassContext',
+ split='ImageSets/SegmentationContext/val.txt',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/pascal_voc12.py b/FoodSeg103/configs/_base_/datasets/pascal_voc12.py
new file mode 100644
index 0000000000000000000000000000000000000000..ba1d42d0c5781f56dc177d860d856bb34adce555
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/pascal_voc12.py
@@ -0,0 +1,57 @@
+# dataset settings
+dataset_type = 'PascalVOCDataset'
+data_root = 'data/VOCdevkit/VOC2012'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+crop_size = (512, 512)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 512), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 512),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClass',
+ split='ImageSets/Segmentation/train.txt',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClass',
+ split='ImageSets/Segmentation/val.txt',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='JPEGImages',
+ ann_dir='SegmentationClass',
+ split='ImageSets/Segmentation/val.txt',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/datasets/pascal_voc12_aug.py b/FoodSeg103/configs/_base_/datasets/pascal_voc12_aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f23b6717d53ad29f02dd15046802a2631a5076b
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/pascal_voc12_aug.py
@@ -0,0 +1,9 @@
+_base_ = './pascal_voc12.py'
+# dataset settings
+data = dict(
+ train=dict(
+ ann_dir=['SegmentationClass', 'SegmentationClassAug'],
+ split=[
+ 'ImageSets/Segmentation/train.txt',
+ 'ImageSets/Segmentation/aug.txt'
+ ]))
diff --git a/FoodSeg103/configs/_base_/datasets/stare.py b/FoodSeg103/configs/_base_/datasets/stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..3f71b25488cc11a6b4d582ac52b5a24e1ad1cf8e
--- /dev/null
+++ b/FoodSeg103/configs/_base_/datasets/stare.py
@@ -0,0 +1,59 @@
+# dataset settings
+dataset_type = 'STAREDataset'
+data_root = 'data/STARE'
+img_norm_cfg = dict(
+ mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
+img_scale = (605, 700)
+crop_size = (128, 128)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=img_scale, ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', prob=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg'])
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=img_scale,
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img'])
+ ])
+]
+
+data = dict(
+ samples_per_gpu=4,
+ workers_per_gpu=4,
+ train=dict(
+ type='RepeatDataset',
+ times=40000,
+ dataset=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/training',
+ ann_dir='annotations/training',
+ pipeline=train_pipeline)),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='images/validation',
+ ann_dir='annotations/validation',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/_base_/default_runtime.py b/FoodSeg103/configs/_base_/default_runtime.py
new file mode 100644
index 0000000000000000000000000000000000000000..b564cc4e7e7d9a67dacaaddecb100e4d8f5c005b
--- /dev/null
+++ b/FoodSeg103/configs/_base_/default_runtime.py
@@ -0,0 +1,14 @@
+# yapf:disable
+log_config = dict(
+ interval=50,
+ hooks=[
+ dict(type='TextLoggerHook', by_epoch=False),
+ # dict(type='TensorboardLoggerHook')
+ ])
+# yapf:enable
+dist_params = dict(backend='nccl')
+log_level = 'INFO'
+load_from = None
+resume_from = None
+workflow = [('train', 1)]
+cudnn_benchmark = True
diff --git a/FoodSeg103/configs/_base_/models/ann_r50-d8.py b/FoodSeg103/configs/_base_/models/ann_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2cb653827e44e6015b3b83bc578003e614a6aa1
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/ann_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='ANNHead',
+ in_channels=[1024, 2048],
+ in_index=[2, 3],
+ channels=512,
+ project_channels=256,
+ query_scales=(1, ),
+ key_pool_scales=(1, 3, 6, 8),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/apcnet_r50-d8.py b/FoodSeg103/configs/_base_/models/apcnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..c8f5316cbcf3896ba9de7ca2c801eba512f01d5e
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/apcnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='APCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/ccnet_r50-d8.py b/FoodSeg103/configs/_base_/models/ccnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..4fc3d8f875049b0a2ea5c8a0e1ab442b96bee73c
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/ccnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='CCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ recurrence=2,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/cgnet.py b/FoodSeg103/configs/_base_/models/cgnet.py
new file mode 100644
index 0000000000000000000000000000000000000000..eff8d9458c877c5db894957e0b1b4597e40da6ab
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/cgnet.py
@@ -0,0 +1,35 @@
+# model settings
+norm_cfg = dict(type='SyncBN', eps=1e-03, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='CGNet',
+ norm_cfg=norm_cfg,
+ in_channels=3,
+ num_channels=(32, 64, 128),
+ num_blocks=(3, 21),
+ dilations=(2, 4),
+ reductions=(8, 16)),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=256,
+ in_index=2,
+ channels=256,
+ num_convs=0,
+ concat_input=False,
+ dropout_ratio=0,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ loss_decode=dict(
+ type='CrossEntropyLoss',
+ use_sigmoid=False,
+ loss_weight=1.0,
+ class_weight=[
+ 2.5959933, 6.7415504, 3.5354059, 9.8663225, 9.690899, 9.369352,
+ 10.289121, 9.953208, 4.3097677, 9.490387, 7.674431, 9.396905,
+ 10.347791, 6.3927646, 10.226669, 10.241062, 10.280587,
+ 10.396974, 10.055647
+ ])),
+ # model training and testing settings
+ train_cfg=dict(sampler=None),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/danet_r50-d8.py b/FoodSeg103/configs/_base_/models/danet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c934939fac48525f22ad86f489a041dd7db7d09
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/danet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DAHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pam_channels=64,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/deeplabv3_r50-d8.py b/FoodSeg103/configs/_base_/models/deeplabv3_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7a43bee01422ad4795dd27874e0cd4bb6cbfecf
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/deeplabv3_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='ASPPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dilations=(1, 12, 24, 36),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/deeplabv3_unet_s5-d16.py b/FoodSeg103/configs/_base_/models/deeplabv3_unet_s5-d16.py
new file mode 100644
index 0000000000000000000000000000000000000000..0cd262999d8b2cb8e14a5c32190ae73f479d8e81
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/deeplabv3_unet_s5-d16.py
@@ -0,0 +1,50 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='UNet',
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ with_cp=False,
+ conv_cfg=None,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ upsample_cfg=dict(type='InterpConv'),
+ norm_eval=False),
+ decode_head=dict(
+ type='ASPPHead',
+ in_channels=64,
+ in_index=4,
+ channels=16,
+ dilations=(1, 12, 24, 36),
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=128,
+ in_index=3,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='slide', crop_size=256, stride=170))
diff --git a/FoodSeg103/configs/_base_/models/deeplabv3plus_r50-d8.py b/FoodSeg103/configs/_base_/models/deeplabv3plus_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..050e39e091d816df9028d23aa3ecf9db74e441e1
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/deeplabv3plus_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DepthwiseSeparableASPPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dilations=(1, 12, 24, 36),
+ c1_in_channels=256,
+ c1_channels=48,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/dmnet_r50-d8.py b/FoodSeg103/configs/_base_/models/dmnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..d22ba52640bebd805b3b8d07025e276dfb023759
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/dmnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DMHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ filter_sizes=(1, 3, 5, 7),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=dict(type='SyncBN', requires_grad=True),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/dnl_r50-d8.py b/FoodSeg103/configs/_base_/models/dnl_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..edb4c174c51e34c103737ba39bfc48bf831e561d
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/dnl_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='DNLHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dropout_ratio=0.1,
+ reduction=2,
+ use_scale=True,
+ mode='embedded_gaussian',
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/emanet_r50-d8.py b/FoodSeg103/configs/_base_/models/emanet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..26adcd430926de0862204a71d345f2543167f27b
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/emanet_r50-d8.py
@@ -0,0 +1,47 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='EMAHead',
+ in_channels=2048,
+ in_index=3,
+ channels=256,
+ ema_channels=512,
+ num_bases=64,
+ num_stages=3,
+ momentum=0.1,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/encnet_r50-d8.py b/FoodSeg103/configs/_base_/models/encnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..be777123a886503172a95fe0719e956a147bbd68
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/encnet_r50-d8.py
@@ -0,0 +1,48 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='EncHead',
+ in_channels=[512, 1024, 2048],
+ in_index=(1, 2, 3),
+ channels=512,
+ num_codes=32,
+ use_se_loss=True,
+ add_lateral=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),
+ loss_se_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.2)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/fast_scnn.py b/FoodSeg103/configs/_base_/models/fast_scnn.py
new file mode 100644
index 0000000000000000000000000000000000000000..32fdeb659355a5ce5ef2cc7c2f30742703811cdf
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/fast_scnn.py
@@ -0,0 +1,57 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True, momentum=0.01)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='FastSCNN',
+ downsample_dw_channels=(32, 48),
+ global_in_channels=64,
+ global_block_channels=(64, 96, 128),
+ global_block_strides=(2, 2, 1),
+ global_out_channels=128,
+ higher_in_channels=64,
+ lower_in_channels=128,
+ fusion_out_channels=128,
+ out_indices=(0, 1, 2),
+ norm_cfg=norm_cfg,
+ align_corners=False),
+ decode_head=dict(
+ type='DepthwiseSeparableFCNHead',
+ in_channels=128,
+ channels=128,
+ concat_input=False,
+ num_classes=19,
+ in_index=-1,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
+ auxiliary_head=[
+ dict(
+ type='FCNHead',
+ in_channels=128,
+ channels=32,
+ num_convs=1,
+ num_classes=19,
+ in_index=-2,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
+ dict(
+ type='FCNHead',
+ in_channels=64,
+ channels=32,
+ num_convs=1,
+ num_classes=19,
+ in_index=-3,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=True, loss_weight=0.4)),
+ ],
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/fcn_hr18.py b/FoodSeg103/configs/_base_/models/fcn_hr18.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3e299bc89ada56ca14bbffcbdb08a586b8ed9e9
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/fcn_hr18.py
@@ -0,0 +1,52 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://msra/hrnetv2_w18',
+ backbone=dict(
+ type='HRNet',
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(18, 36)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(18, 36, 72)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(18, 36, 72, 144)))),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ channels=sum([18, 36, 72, 144]),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/fcn_r50-d8.py b/FoodSeg103/configs/_base_/models/fcn_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e98f6cc918b6146fc6d613c6918e825ef1355c3
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/fcn_r50-d8.py
@@ -0,0 +1,45 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ num_convs=2,
+ concat_input=True,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/fcn_unet_s5-d16.py b/FoodSeg103/configs/_base_/models/fcn_unet_s5-d16.py
new file mode 100644
index 0000000000000000000000000000000000000000..a33e7972877f902d0e7d18401ca675e3e4e60a18
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/fcn_unet_s5-d16.py
@@ -0,0 +1,51 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='UNet',
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ with_cp=False,
+ conv_cfg=None,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ upsample_cfg=dict(type='InterpConv'),
+ norm_eval=False),
+ decode_head=dict(
+ type='FCNHead',
+ in_channels=64,
+ in_index=4,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=128,
+ in_index=3,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='slide', crop_size=256, stride=170))
diff --git a/FoodSeg103/configs/_base_/models/fpn_r50.py b/FoodSeg103/configs/_base_/models/fpn_r50.py
new file mode 100644
index 0000000000000000000000000000000000000000..86ab327db92e44c14822d65f1c9277cb007f17c1
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/fpn_r50.py
@@ -0,0 +1,36 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ neck=dict(
+ type='FPN',
+ in_channels=[256, 512, 1024, 2048],
+ out_channels=256,
+ num_outs=4),
+ decode_head=dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/gcnet_r50-d8.py b/FoodSeg103/configs/_base_/models/gcnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d2ad69f5c22adfe79d5fdabf920217628987166
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/gcnet_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='GCHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ ratio=1 / 4.,
+ pooling_type='att',
+ fusion_types=('channel_add', ),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/lraspp_m-v3-d8.py b/FoodSeg103/configs/_base_/models/lraspp_m-v3-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..93258242a90695cc94a7c6bd41562d6a75988771
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/lraspp_m-v3-d8.py
@@ -0,0 +1,25 @@
+# model settings
+norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='MobileNetV3',
+ arch='large',
+ out_indices=(1, 3, 16),
+ norm_cfg=norm_cfg),
+ decode_head=dict(
+ type='LRASPPHead',
+ in_channels=(16, 24, 960),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/nonlocal_r50-d8.py b/FoodSeg103/configs/_base_/models/nonlocal_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..5674a39854cafd1f2e363bac99c58ccae62f24da
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/nonlocal_r50-d8.py
@@ -0,0 +1,46 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='NLHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ dropout_ratio=0.1,
+ reduction=2,
+ use_scale=True,
+ mode='embedded_gaussian',
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/ocrnet_hr18.py b/FoodSeg103/configs/_base_/models/ocrnet_hr18.py
new file mode 100644
index 0000000000000000000000000000000000000000..c60f62a7cdf3f5c5096a7a7e725e8268fddcb057
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/ocrnet_hr18.py
@@ -0,0 +1,68 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ pretrained='open-mmlab://msra/hrnetv2_w18',
+ backbone=dict(
+ type='HRNet',
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ extra=dict(
+ stage1=dict(
+ num_modules=1,
+ num_branches=1,
+ block='BOTTLENECK',
+ num_blocks=(4, ),
+ num_channels=(64, )),
+ stage2=dict(
+ num_modules=1,
+ num_branches=2,
+ block='BASIC',
+ num_blocks=(4, 4),
+ num_channels=(18, 36)),
+ stage3=dict(
+ num_modules=4,
+ num_branches=3,
+ block='BASIC',
+ num_blocks=(4, 4, 4),
+ num_channels=(18, 36, 72)),
+ stage4=dict(
+ num_modules=3,
+ num_branches=4,
+ block='BASIC',
+ num_blocks=(4, 4, 4, 4),
+ num_channels=(18, 36, 72, 144)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ ],
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/ocrnet_r50-d8.py b/FoodSeg103/configs/_base_/models/ocrnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..615aa3ff703942b6c22b2d6e9642504dd3e41ebd
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/ocrnet_r50-d8.py
@@ -0,0 +1,47 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ],
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/pointrend_r50.py b/FoodSeg103/configs/_base_/models/pointrend_r50.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d323dbf9466d41e0800aa57ef84045f3d874bdf
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/pointrend_r50.py
@@ -0,0 +1,56 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='CascadeEncoderDecoder',
+ num_stages=2,
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ neck=dict(
+ type='FPN',
+ in_channels=[256, 512, 1024, 2048],
+ out_channels=256,
+ num_outs=4),
+ decode_head=[
+ dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=-1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ dict(
+ type='PointHead',
+ in_channels=[256],
+ in_index=[0],
+ channels=256,
+ num_fcs=3,
+ coarse_pred_each_layer=True,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ],
+ # model training and testing settings
+ train_cfg=dict(
+ num_points=2048, oversample_ratio=3, importance_sample_ratio=0.75),
+ test_cfg=dict(
+ mode='whole',
+ subdivision_steps=2,
+ subdivision_num_points=8196,
+ scale_factor=2))
diff --git a/FoodSeg103/configs/_base_/models/psanet_r50-d8.py b/FoodSeg103/configs/_base_/models/psanet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..689513fa9d2a40f14bf0ae4ae61f38f0dcc1b3da
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/psanet_r50-d8.py
@@ -0,0 +1,49 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='PSAHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ mask_size=(97, 97),
+ psa_type='bi-direction',
+ compact=False,
+ shrink_factor=2,
+ normalization_factor=1.0,
+ psa_softmax=True,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/pspnet_r50-d8.py b/FoodSeg103/configs/_base_/models/pspnet_r50-d8.py
new file mode 100644
index 0000000000000000000000000000000000000000..f451e08ad2eb0732dcb806b1851eb978d4acf136
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/pspnet_r50-d8.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 2, 4),
+ strides=(1, 2, 1, 1),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='PSPHead',
+ in_channels=2048,
+ in_index=3,
+ channels=512,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/models/pspnet_unet_s5-d16.py b/FoodSeg103/configs/_base_/models/pspnet_unet_s5-d16.py
new file mode 100644
index 0000000000000000000000000000000000000000..fcff9ec4f41fad158344ecd77313dc14564f3682
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/pspnet_unet_s5-d16.py
@@ -0,0 +1,50 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained=None,
+ backbone=dict(
+ type='UNet',
+ in_channels=3,
+ base_channels=64,
+ num_stages=5,
+ strides=(1, 1, 1, 1, 1),
+ enc_num_convs=(2, 2, 2, 2, 2),
+ dec_num_convs=(2, 2, 2, 2),
+ downsamples=(True, True, True, True),
+ enc_dilations=(1, 1, 1, 1, 1),
+ dec_dilations=(1, 1, 1, 1),
+ with_cp=False,
+ conv_cfg=None,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ upsample_cfg=dict(type='InterpConv'),
+ norm_eval=False),
+ decode_head=dict(
+ type='PSPHead',
+ in_channels=64,
+ in_index=4,
+ channels=16,
+ pool_scales=(1, 2, 3, 6),
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=128,
+ in_index=3,
+ channels=64,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=2,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='slide', crop_size=256, stride=170))
diff --git a/FoodSeg103/configs/_base_/models/setr_mla.py b/FoodSeg103/configs/_base_/models/setr_mla.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e1750599f9ab574efd4531d13558ce710eb93c8
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/setr_mla.py
@@ -0,0 +1,38 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VIT_MLA',
+ model_name='vit_large_patch16_384',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=1024,
+ depth=24,
+ num_heads=16,
+ num_classes=19,
+ drop_rate=0.1,
+ norm_cfg=norm_cfg,
+ pos_embed_interp=True,
+ align_corners=False,
+ mla_channels=256,
+ mla_index=(5,11,17,23)
+ ),
+ decode_head=dict(
+ type='VIT_MLAHead',
+ in_channels=1024,
+ channels=512,
+ img_size=768,
+ mla_channels=256,
+ mlahead_channels=128,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
+# model training and testing settings
+train_cfg = dict()
+test_cfg = dict(mode='whole')
+
+
diff --git a/FoodSeg103/configs/_base_/models/setr_naive_pup.py b/FoodSeg103/configs/_base_/models/setr_naive_pup.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6a962f9d7e760f847626d32533d76fd1eac3d5b
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/setr_naive_pup.py
@@ -0,0 +1,36 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='VisionTransformer',
+ model_name='vit_base_patch16_224',
+ img_size=768,
+ patch_size=16,
+ in_chans=3,
+ embed_dim=1024,
+ depth=24,
+ num_heads=16,
+ num_classes=19,
+ drop_rate=0.1,
+ norm_cfg=norm_cfg,
+ pos_embed_interp=True,
+ align_corners=False,
+ ),
+ decode_head=dict(
+ type='VisionTransformerUpHead',
+ in_channels=1024,
+ channels=512,
+ in_index=23,
+ img_size=768,
+ embed_dim=1024,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
+# model training and testing settings
+train_cfg = dict()
+test_cfg = dict(mode='whole')
diff --git a/FoodSeg103/configs/_base_/models/upernet_r50.py b/FoodSeg103/configs/_base_/models/upernet_r50.py
new file mode 100644
index 0000000000000000000000000000000000000000..10974962fdd7136031fd06de1700f497d355ceaa
--- /dev/null
+++ b/FoodSeg103/configs/_base_/models/upernet_r50.py
@@ -0,0 +1,44 @@
+# model settings
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://resnet50_v1c',
+ backbone=dict(
+ type='ResNetV1c',
+ depth=50,
+ num_stages=4,
+ out_indices=(0, 1, 2, 3),
+ dilations=(1, 1, 1, 1),
+ strides=(1, 2, 2, 2),
+ norm_cfg=norm_cfg,
+ norm_eval=False,
+ style='pytorch',
+ contract_dilation=True),
+ decode_head=dict(
+ type='UPerHead',
+ in_channels=[256, 512, 1024, 2048],
+ in_index=[0, 1, 2, 3],
+ pool_scales=(1, 2, 3, 6),
+ channels=512,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ auxiliary_head=dict(
+ type='FCNHead',
+ in_channels=1024,
+ in_index=2,
+ channels=256,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ # model training and testing settings
+ train_cfg=dict(),
+ test_cfg=dict(mode='whole'))
diff --git a/FoodSeg103/configs/_base_/schedules/schedule_160k.py b/FoodSeg103/configs/_base_/schedules/schedule_160k.py
new file mode 100644
index 0000000000000000000000000000000000000000..52603890b10f25faf8eec9f9e5a4468fae09b811
--- /dev/null
+++ b/FoodSeg103/configs/_base_/schedules/schedule_160k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=160000)
+checkpoint_config = dict(by_epoch=False, interval=16000)
+evaluation = dict(interval=16000, metric='mIoU')
diff --git a/FoodSeg103/configs/_base_/schedules/schedule_20k.py b/FoodSeg103/configs/_base_/schedules/schedule_20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf780a1b6f6521833c6a5859675147824efa599d
--- /dev/null
+++ b/FoodSeg103/configs/_base_/schedules/schedule_20k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=20000)
+checkpoint_config = dict(by_epoch=False, interval=2000)
+evaluation = dict(interval=2000, metric='mIoU')
diff --git a/FoodSeg103/configs/_base_/schedules/schedule_40k.py b/FoodSeg103/configs/_base_/schedules/schedule_40k.py
new file mode 100644
index 0000000000000000000000000000000000000000..cdbf841abcb26eed87bf76ab816aff4bae0630ee
--- /dev/null
+++ b/FoodSeg103/configs/_base_/schedules/schedule_40k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=40000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
diff --git a/FoodSeg103/configs/_base_/schedules/schedule_80k.py b/FoodSeg103/configs/_base_/schedules/schedule_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..751963703002309741da12d9060beae1d1be4a96
--- /dev/null
+++ b/FoodSeg103/configs/_base_/schedules/schedule_80k.py
@@ -0,0 +1,9 @@
+# optimizer
+optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)
+optimizer_config = dict()
+
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
diff --git a/FoodSeg103/configs/ann/README.md b/FoodSeg103/configs/ann/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7fc1648311d8f6789fd2ed99789973afbb940531
--- /dev/null
+++ b/FoodSeg103/configs/ann/README.md
@@ -0,0 +1,52 @@
+# Asymmetric Non-local Neural Networks for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{annn,
+ author = {Zhen Zhu and
+ Mengde Xu and
+ Song Bai and
+ Tengteng Huang and
+ Xiang Bai},
+ title = {Asymmetric Non-local Neural Networks for Semantic Segmentation},
+ booktitle={International Conference on Computer Vision},
+ year = {2019},
+ url = {http://arxiv.org/abs/1908.07678},
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ANN | R-50-D8 | 512x1024 | 40000 | 6 | 3.71 | 77.40 | 78.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211-049fc292.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_40k_cityscapes/ann_r50-d8_512x1024_40k_cityscapes_20200605_095211.log.json) |
+| ANN | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.55 | 76.55 | 78.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243-adf6eece.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_40k_cityscapes/ann_r101-d8_512x1024_40k_cityscapes_20200605_095243.log.json) |
+| ANN | R-50-D8 | 769x769 | 40000 | 6.8 | 1.70 | 78.89 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712-2b46b04d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_40k_cityscapes/ann_r50-d8_769x769_40k_cityscapes_20200530_025712.log.json) |
+| ANN | R-101-D8 | 769x769 | 40000 | 10.7 | 1.15 | 79.32 | 80.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720-059bff28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_40k_cityscapes/ann_r101-d8_769x769_40k_cityscapes_20200530_025720.log.json) |
+| ANN | R-50-D8 | 512x1024 | 80000 | - | - | 77.34 | 78.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911-5a9ad545.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x1024_80k_cityscapes/ann_r50-d8_512x1024_80k_cityscapes_20200607_101911.log.json) |
+| ANN | R-101-D8 | 512x1024 | 80000 | - | - | 77.14 | 78.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728-aceccc6e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x1024_80k_cityscapes/ann_r101-d8_512x1024_80k_cityscapes_20200607_013728.log.json) |
+| ANN | R-50-D8 | 769x769 | 80000 | - | - | 78.88 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426-cc7ff323.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_769x769_80k_cityscapes/ann_r50-d8_769x769_80k_cityscapes_20200607_044426.log.json) |
+| ANN | R-101-D8 | 769x769 | 80000 | - | - | 78.80 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713-a9d4be8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_769x769_80k_cityscapes/ann_r101-d8_769x769_80k_cityscapes_20200607_013713.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ANN | R-50-D8 | 512x512 | 80000 | 9.1 | 21.01 | 41.01 | 42.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818-26f75e11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_80k_ade20k/ann_r50-d8_512x512_80k_ade20k_20200615_014818.log.json) |
+| ANN | R-101-D8 | 512x512 | 80000 | 12.5 | 14.12 | 42.94 | 44.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818-c0153543.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_80k_ade20k/ann_r101-d8_512x512_80k_ade20k_20200615_014818.log.json) |
+| ANN | R-50-D8 | 512x512 | 160000 | - | - | 41.74 | 42.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733-892247bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_160k_ade20k/ann_r50-d8_512x512_160k_ade20k_20200615_231733.log.json) |
+| ANN | R-101-D8 | 512x512 | 160000 | - | - | 42.94 | 44.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733-955eb1ec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_160k_ade20k/ann_r101-d8_512x512_160k_ade20k_20200615_231733.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ANN | R-50-D8 | 512x512 | 20000 | 6 | 20.92 | 74.86 | 76.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246-dfcb1c62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_20k_voc12aug/ann_r50-d8_512x512_20k_voc12aug_20200617_222246.log.json) |
+| ANN | R-101-D8 | 512x512 | 20000 | 9.5 | 13.94 | 77.47 | 78.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246-2fad0042.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_20k_voc12aug/ann_r101-d8_512x512_20k_voc12aug_20200617_222246.log.json) |
+| ANN | R-50-D8 | 512x512 | 40000 | - | - | 76.56 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314-b5dac322.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r50-d8_512x512_40k_voc12aug/ann_r50-d8_512x512_40k_voc12aug_20200613_231314.log.json) |
+| ANN | R-101-D8 | 512x512 | 40000 | - | - | 76.70 | 78.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314-bd205bbe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ann/ann_r101-d8_512x512_40k_voc12aug/ann_r101-d8_512x512_40k_voc12aug_20200613_231314.log.json) |
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d494e07333217e0c6830d36d1bb58fa78b03cfb0
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1eeff0b030cf1db8c6ec9740fa65db44b2026d58
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/ann/ann_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e43af541f6e3df3f36479e736bb0c03fc916970
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d854f2e4223731f443369febc500dbccdc524d9d
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..893c53b1ca4bf9788e4d94f0f53cfe92a93f48ce
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/ann/ann_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a64dac670ed4d4632e7b9791ec5f8a334dcea78e
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..59508248490b3edbac1c46b4fcc7891f99655b9b
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9c712d1ccfd62ddf6f12ff01ea347ca1995013b
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ann_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..00b2594ba8a1c9edc90cca7a6d7c3334fa209edc
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef7b369dd9e12b2282a30da14f99dd4547c53a7b
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/ann/ann_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ca6bb248ac867d463c274f975c884aa80a57730f
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..071f190261c4e8f4a80a5da12a88e0cfcdfef0d8
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..82a1c9386c51fb0ada436e51702beb961a534b26
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/ann/ann_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e04aa7c6ac050d119e07b715e2082f692e1a1de
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4912bdb9fb298518ae084eb7df0ad22d3e4ff84f
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d1cc072b152986102286f503e3d7b92999bf414c
--- /dev/null
+++ b/FoodSeg103/configs/ann/ann_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ann_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/apcnet/README.md b/FoodSeg103/configs/apcnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c2ab106a29c1a135fc7a726df9f6f22536357ced
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/README.md
@@ -0,0 +1,39 @@
+# Adaptive Pyramid Context Network for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@InProceedings{He_2019_CVPR,
+author = {He, Junjun and Deng, Zhongying and Zhou, Lei and Wang, Yali and Qiao, Yu},
+title = {Adaptive Pyramid Context Network for Semantic Segmentation},
+booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
+month = {June},
+year = {2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| APCNet | R-50-D8 | 512x1024 | 40000 | 7.7 | 3.57 | 78.02 | 79.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes/apcnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) |
+| APCNet | R-101-D8 | 512x1024 | 40000 | 11.2 | 2.15 | 79.08 | 80.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes/apcnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) |
+| APCNet | R-50-D8 | 769x769 | 40000 | 8.7 | 1.52 | 77.89 | 79.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_40k_cityscapes/apcnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) |
+| APCNet | R-101-D8 | 769x769 | 40000 | 12.7 | 1.03 | 77.96 | 79.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_40k_cityscapes/apcnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) |
+| APCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.96 | 79.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes/apcnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) |
+| APCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes/apcnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) |
+| APCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.79 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_769x769_80k_cityscapes/apcnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) |
+| APCNet | R-101-D8 | 769x769 | 80000 | - | - | 78.45 | 79.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_769x769_80k_cityscapes/apcnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| APCNet | R-50-D8 | 512x512 | 80000 | 10.1 | 19.61 | 42.20 | 43.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_80k_ade20k/apcnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) |
+| APCNet | R-101-D8 | 512x512 | 80000 | 13.6 | 13.10 | 45.54 | 46.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_80k_ade20k/apcnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) |
+| APCNet | R-50-D8 | 512x512 | 160000 | - | - | 43.40 | 43.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r50-d8_512x512_160k_ade20k/apcnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) |
+| APCNet | R-101-D8 | 512x512 | 160000 | - | - | 45.41 | 46.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/apcnet/apcnet_r101-d8_512x512_160k_ade20k/apcnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) |
diff --git a/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e1cec67355abae33d518417eb96eae111f16d2b
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..04cb006ba146268e1d3278151bc6ea00a4fb1bfe
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ce2279a0fbfd6fcc7cd20e3f552b1a39f47d943
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f10b98406c88256c66d3bbe241c149791d68feb
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c44ebcaf36075e67208c5f033d1e5f9a78dda4e
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..616984575dda73a13fc5870f60ae6ffa30d6b01b
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './apcnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..99c61a942e4868315ce4a9404d113f73fed4a4ea
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..62a0627ae2e9bb17974068e56ee660093e944e0d
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7821c559d2f92d23b28e07e040a54cfc425eefc
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..daafa5fbc12c3ed6c10b5234d520166f774e0f94
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3db6140cb97da1d202fd464d01f793276effa629
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9cac4254f37bc3755bff869a10eb3cb75db4d943
--- /dev/null
+++ b/FoodSeg103/configs/apcnet/apcnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/apcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/ccnet/README.md b/FoodSeg103/configs/ccnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..044d5896781de5824fc5a009d8c0eadf47a44e4e
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/README.md
@@ -0,0 +1,47 @@
+# CCNet: Criss-Cross Attention for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{huang2018ccnet,
+ title={CCNet: Criss-Cross Attention for Semantic Segmentation},
+ author={Huang, Zilong and Wang, Xinggang and Huang, Lichao and Huang, Chang and Wei, Yunchao and Liu, Wenyu},
+ booktitle={ICCV},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CCNet | R-50-D8 | 512x1024 | 40000 | 6 | 3.32 | 77.76 | 78.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517-4123f401.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes/ccnet_r50-d8_512x1024_40k_cityscapes_20200616_142517.log.json) |
+| CCNet | R-101-D8 | 512x1024 | 40000 | 9.5 | 2.31 | 76.35 | 78.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540-a3b84ba6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes/ccnet_r101-d8_512x1024_40k_cityscapes_20200616_142540.log.json) |
+| CCNet | R-50-D8 | 769x769 | 40000 | 6.8 | 1.43 | 78.46 | 79.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125-76d11884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_40k_cityscapes/ccnet_r50-d8_769x769_40k_cityscapes_20200616_145125.log.json) |
+| CCNet | R-101-D8 | 769x769 | 40000 | 10.7 | 1.01 | 76.94 | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428-4f57c8d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_40k_cityscapes/ccnet_r101-d8_769x769_40k_cityscapes_20200617_101428.log.json) |
+| CCNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.03 | 80.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421-869a3423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes/ccnet_r50-d8_512x1024_80k_cityscapes_20200617_010421.log.json) |
+| CCNet | R-101-D8 | 512x1024 | 80000 | - | - | 78.87 | 79.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935-ffae8917.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes/ccnet_r101-d8_512x1024_80k_cityscapes_20200617_203935.log.json) |
+| CCNet | R-50-D8 | 769x769 | 80000 | - | - | 79.29 | 81.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421-73eed8ca.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_769x769_80k_cityscapes/ccnet_r50-d8_769x769_80k_cityscapes_20200617_010421.log.json) |
+| CCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.45 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502-ad3cd481.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_769x769_80k_cityscapes/ccnet_r101-d8_769x769_80k_cityscapes_20200618_011502.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CCNet | R-50-D8 | 512x512 | 80000 | 8.8 | 20.89 | 41.78 | 42.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848-aa37f61e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_80k_ade20k/ccnet_r50-d8_512x512_80k_ade20k_20200615_014848.log.json) |
+| CCNet | R-101-D8 | 512x512 | 80000 | 12.2 | 14.11 | 43.97 | 45.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848-1f4929a3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_80k_ade20k/ccnet_r101-d8_512x512_80k_ade20k_20200615_014848.log.json) |
+| CCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.08 | 43.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435-7c97193b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_160k_ade20k/ccnet_r50-d8_512x512_160k_ade20k_20200616_084435.log.json) |
+| CCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.71 | 45.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644-e849e007.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_160k_ade20k/ccnet_r101-d8_512x512_160k_ade20k_20200616_000644.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CCNet | R-50-D8 | 512x512 | 20000 | 6 | 20.45 | 76.17 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212-fad81784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_20k_voc12aug/ccnet_r50-d8_512x512_20k_voc12aug_20200617_193212.log.json) |
+| CCNet | R-101-D8 | 512x512 | 20000 | 9.5 | 13.64 | 77.27 | 79.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212-0007b61d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_20k_voc12aug/ccnet_r101-d8_512x512_20k_voc12aug_20200617_193212.log.json) |
+| CCNet | R-50-D8 | 512x512 | 40000 | - | - | 75.96 | 77.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127-c2a15f02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r50-d8_512x512_40k_voc12aug/ccnet_r50-d8_512x512_40k_voc12aug_20200613_232127.log.json) |
+| CCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.87 | 78.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127-c30da577.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ccnet/ccnet_r101-d8_512x512_40k_voc12aug/ccnet_r101-d8_512x512_40k_voc12aug_20200613_232127.log.json) |
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_40k_Recipe1M.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_40k_Recipe1M.py
new file mode 100644
index 0000000000000000000000000000000000000000..d112e4a4248fb4733f60385a0ef338fd9bf8b56c
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_40k_Recipe1M.py
@@ -0,0 +1,2 @@
+_base_ = ['../_base_/datasets/Recipe1M.py',
+'../_base_/default_runtime.py','../_base_/models/ccnet_r50-d8.py','../_base_/schedules/schedule_40k.py']
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2bac38ca6760af6441ede5a04409ed495ef87f3
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..989928ab7f98da86e291451040ff85669a9fbddb
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c32bf48751f0a18983bff0d99310870b71801663
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..53eb77c0cd6690668ee7c2a666bd85b9a5f7e73b
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7eb668f39bbd22a1f42628428bc19d1645e9865
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..029c1d525b809b61dc8e548ebe4fb26e5c68a8be
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..43f05fab05ee4e20c3509a923118fe9818543cbd
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..654f377b6f6152c9bd98d33824a39a41d7510c3f
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './ccnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a4316dde57206fe369e72fa0d32a529fe1a1932
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..16e34356e9f8566ec73e3c25c771e281d3eeb975
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ad94d8988bb822c1571816255464126d9d5b95d
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..bbcd29ccea8dcf9f67f1cd198dacd5dab380b265
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..947b8ac8ce1ddf7906ad39788c6992df3b506d29
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a1f49cf6b112afdadf1841571f51b98c010ddf8
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..580d59ca6995ea95a9345ef3ea574ea5b57e9cfb
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c6dac64377bb3f73fdf5c836fa9c38757f75ff76
--- /dev/null
+++ b/FoodSeg103/configs/ccnet/ccnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/cgnet/README.md b/FoodSeg103/configs/cgnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..00ba387203a257dbb485d68134c88cb43780722d
--- /dev/null
+++ b/FoodSeg103/configs/cgnet/README.md
@@ -0,0 +1,23 @@
+# CGNet: A Light-weight Context Guided Network for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latext
+@article{wu2018cgnet,
+ title={CGNet: A Light-weight Context Guided Network for Semantic Segmentation},
+ author={Wu, Tianyi and Tang, Sheng and Zhang, Rui and Zhang, Yongdong},
+ journal={arXiv preprint arXiv:1811.08201},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CGNet | M3N21 | 680x680 | 60000 | 7.5 | 30.51 | 65.63 | 68.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes_20201101_110253-4c0b2f2d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_680x680_60k_cityscapes/cgnet_680x680_60k_cityscapes-20201101_110253.log.json) |
+| CGNet | M3N21 | 512x1024 | 60000 | 8.3 | 31.14 | 68.27 | 70.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes_20201101_110254-124ea03b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/cgnet/cgnet_512x1024_60k_cityscapes/cgnet_512x1024_60k_cityscapes-20201101_110254.log.json) |
diff --git a/FoodSeg103/configs/cgnet/cgnet_512x1024_60k_cityscapes.py b/FoodSeg103/configs/cgnet/cgnet_512x1024_60k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..11421ef9d375d01b01c333c3705d6eb6e3348ee8
--- /dev/null
+++ b/FoodSeg103/configs/cgnet/cgnet_512x1024_60k_cityscapes.py
@@ -0,0 +1,66 @@
+_base_ = ['../_base_/models/cgnet.py', '../_base_/default_runtime.py']
+
+# optimizer
+optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+total_iters = 60000
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+
+# dataset settings
+dataset_type = 'CityscapesDataset'
+data_root = 'data/cityscapes/'
+img_norm_cfg = dict(
+ mean=[72.39239876, 82.90891754, 73.15835921], std=[1, 1, 1], to_rgb=True)
+crop_size = (512, 1024)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size, cat_max_ratio=0.75),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='PhotoMetricDistortion'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=8,
+ workers_per_gpu=8,
+ train=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/train',
+ ann_dir='gtFine/train',
+ pipeline=train_pipeline),
+ val=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline),
+ test=dict(
+ type=dataset_type,
+ data_root=data_root,
+ img_dir='leftImg8bit/val',
+ ann_dir='gtFine/val',
+ pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/cgnet/cgnet_680x680_60k_cityscapes.py b/FoodSeg103/configs/cgnet/cgnet_680x680_60k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..2b2f8eefb7dbecf81fcd2db54644493480825246
--- /dev/null
+++ b/FoodSeg103/configs/cgnet/cgnet_680x680_60k_cityscapes.py
@@ -0,0 +1,50 @@
+_base_ = [
+ '../_base_/models/cgnet.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py'
+]
+
+# optimizer
+optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005)
+optimizer_config = dict()
+# learning policy
+lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False)
+# runtime settings
+total_iters = 60000
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
+
+img_norm_cfg = dict(
+ mean=[72.39239876, 82.90891754, 73.15835921], std=[1, 1, 1], to_rgb=True)
+crop_size = (680, 680)
+train_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='LoadAnnotations'),
+ dict(type='Resize', img_scale=(2048, 1024), ratio_range=(0.5, 2.0)),
+ dict(type='RandomCrop', crop_size=crop_size),
+ dict(type='RandomFlip', flip_ratio=0.5),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='Pad', size=crop_size, pad_val=0, seg_pad_val=255),
+ dict(type='DefaultFormatBundle'),
+ dict(type='Collect', keys=['img', 'gt_semantic_seg']),
+]
+test_pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(
+ type='MultiScaleFlipAug',
+ img_scale=(2048, 1024),
+ # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],
+ flip=False,
+ transforms=[
+ dict(type='Resize', keep_ratio=True),
+ dict(type='RandomFlip'),
+ dict(type='Normalize', **img_norm_cfg),
+ dict(type='ImageToTensor', keys=['img']),
+ dict(type='Collect', keys=['img']),
+ ])
+]
+data = dict(
+ samples_per_gpu=8,
+ workers_per_gpu=8,
+ train=dict(pipeline=train_pipeline),
+ val=dict(pipeline=test_pipeline),
+ test=dict(pipeline=test_pipeline))
diff --git a/FoodSeg103/configs/danet/README.md b/FoodSeg103/configs/danet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..f49ccf96194f820f509aa9448493ba12ead91953
--- /dev/null
+++ b/FoodSeg103/configs/danet/README.md
@@ -0,0 +1,47 @@
+# Dual Attention Network for Scene Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{fu2018dual,
+ title={Dual Attention Network for Scene Segmentation},
+ author={Jun Fu, Jing Liu, Haijie Tian, Yong Li, Yongjun Bao, Zhiwei Fang,and Hanqing Lu},
+ booktitle={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DANet | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.66 | 78.74 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324-c0dbfa5f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_40k_cityscapes/danet_r50-d8_512x1024_40k_cityscapes_20200605_191324.log.json) |
+| DANet | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.99 | 80.52 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831-c57a7157.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_40k_cityscapes/danet_r101-d8_512x1024_40k_cityscapes_20200605_200831.log.json) |
+| DANet | R-50-D8 | 769x769 | 40000 | 8.8 | 1.56 | 78.88 | 80.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703-76681c60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_40k_cityscapes/danet_r50-d8_769x769_40k_cityscapes_20200530_025703.log.json) |
+| DANet | R-101-D8 | 769x769 | 40000 | 12.8 | 1.07 | 79.88 | 81.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717-dcb7fd4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_40k_cityscapes/danet_r101-d8_769x769_40k_cityscapes_20200530_025717.log.json) |
+| DANet | R-50-D8 | 512x1024 | 80000 | - | - | 79.34 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029-2bfa2293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x1024_80k_cityscapes/danet_r50-d8_512x1024_80k_cityscapes_20200607_133029.log.json) |
+| DANet | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918-955e6350.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x1024_80k_cityscapes/danet_r101-d8_512x1024_80k_cityscapes_20200607_132918.log.json) |
+| DANet | R-50-D8 | 769x769 | 80000 | - | - | 79.27 | 80.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954-495689b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_769x769_80k_cityscapes/danet_r50-d8_769x769_80k_cityscapes_20200607_132954.log.json) |
+| DANet | R-101-D8 | 769x769 | 80000 | - | - | 80.47 | 82.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918-f3a929e7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_769x769_80k_cityscapes/danet_r101-d8_769x769_80k_cityscapes_20200607_132918.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DANet | R-50-D8 | 512x512 | 80000 | 11.5 | 21.20 | 41.66 | 42.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125-edb18e08.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_80k_ade20k/danet_r50-d8_512x512_80k_ade20k_20200615_015125.log.json) |
+| DANet | R-101-D8 | 512x512 | 80000 | 15 | 14.18 | 43.64 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126-d0357c73.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_80k_ade20k/danet_r101-d8_512x512_80k_ade20k_20200615_015126.log.json) |
+| DANet | R-50-D8 | 512x512 | 160000 | - | - | 42.45 | 43.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340-9cb35dcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_160k_ade20k/danet_r50-d8_512x512_160k_ade20k_20200616_082340.log.json) |
+| DANet | R-101-D8 | 512x512 | 160000 | - | - | 44.17 | 45.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348-23bf12f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_160k_ade20k/danet_r101-d8_512x512_160k_ade20k_20200616_082348.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DANet | R-50-D8 | 512x512 | 20000 | 6.5 | 20.94 | 74.45 | 75.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026-9e9e3ab3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_20k_voc12aug/danet_r50-d8_512x512_20k_voc12aug_20200618_070026.log.json) |
+| DANet | R-101-D8 | 512x512 | 20000 | 9.9 | 13.76 | 76.02 | 77.23 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026-d48d23b2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_20k_voc12aug/danet_r101-d8_512x512_20k_voc12aug_20200618_070026.log.json) |
+| DANet | R-50-D8 | 512x512 | 40000 | - | - | 76.37 | 77.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526-426e3a64.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r50-d8_512x512_40k_voc12aug/danet_r50-d8_512x512_40k_voc12aug_20200613_235526.log.json) |
+| DANet | R-101-D8 | 512x512 | 40000 | - | - | 76.51 | 77.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031-788e232a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/danet/danet_r101-d8_512x512_40k_voc12aug/danet_r101-d8_512x512_40k_voc12aug_20200613_223031.log.json) |
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bfb9bdb3064275c2ac3bf2a057ef8eb79c308df
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d80b2ec160ae1c41499d45242713a99122d8adf8
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/danet/danet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f22d0fb6362252ac02f3f152a42997c68b90343
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..709f93cba3e3bca6ce0635457ab1823b04123bf8
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c623eb56836760694b50f3e4e66aa0f1fc069df
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/danet/danet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..bd31bc8f283fe8c322ee4876deadb89569dc1743
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..597d76de79610780b03cd91dba5f3a4f10147bcd
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..70f9b31966128e8d9ec37859f57a7edfd8e6d1b2
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './danet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b70c5b8d49f04661e23604ca4da56a82b1b99c9
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..03734310d7338c75d48c914cb325500961c04a79
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/danet/danet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..22aaf857c3212d0b36b0b04e7990616025a3ef9b
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..010f86f1aac1b5c827dec29f692d137dc1c399bf
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..0cef0f09bfa2290d14fc3a783ea500d6c3da2931
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/danet/danet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..154e84890ed73fe4813dddc8c321de6cd2854fc1
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c5b94e5a27d7f902d4bdea7ef6c4ef0b816bb99
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7237ae03c601204dc7c03018ca17ed363090569
--- /dev/null
+++ b/FoodSeg103/configs/danet/danet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/danet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/deeplabv3/README.md b/FoodSeg103/configs/deeplabv3/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c4994f6469051efd4881546acfcefef76616332e
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/README.md
@@ -0,0 +1,66 @@
+# Rethinking atrous convolution for semantic image segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latext
+@article{chen2017rethinking,
+ title={Rethinking atrous convolution for semantic image segmentation},
+ author={Chen, Liang-Chieh and Papandreou, George and Schroff, Florian and Adam, Hartwig},
+ journal={arXiv preprint arXiv:1706.05587},
+ year={2017}
+}
+```
+
+## Results and models
+
+Note: `D-8` here corresponding to the output stride 8 setting for DeepLab series.
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-50-D8 | 512x1024 | 40000 | 6.1 | 2.57 | 79.09 | 80.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449-acadc2f8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes/deeplabv3_r50-d8_512x1024_40k_cityscapes_20200605_022449.log.json) |
+| DeepLabV3 | R-101-D8 | 512x1024 | 40000 | 9.6 | 1.92 | 77.12 | 79.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241-7fd3f799.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes/deeplabv3_r101-d8_512x1024_40k_cityscapes_20200605_012241.log.json) |
+| DeepLabV3 | R-50-D8 | 769x769 | 40000 | 6.9 | 1.11 | 78.58 | 79.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723-7eda553c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes/deeplabv3_r50-d8_769x769_40k_cityscapes_20200606_113723.log.json) |
+| DeepLabV3 | R-101-D8 | 769x769 | 40000 | 10.9 | 0.83 | 79.27 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809-c64f889f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes/deeplabv3_r101-d8_769x769_40k_cityscapes_20200606_113809.log.json) |
+| DeepLabV3 | R-18-D8 | 512x1024 | 80000 | 1.7 | 13.78 | 76.70 | 78.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes_20201225_021506-23dffbe2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes/deeplabv3_r18-d8_512x1024_80k_cityscapes-20201225_021506.log.json) |
+| DeepLabV3 | R-50-D8 | 512x1024 | 80000 | - | - | 79.32 | 80.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404-b92cfdd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes/deeplabv3_r50-d8_512x1024_80k_cityscapes_20200606_113404.log.json) |
+| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | - | - | 80.20 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503-9e428899.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes/deeplabv3_r101-d8_512x1024_80k_cityscapes_20200606_113503.log.json) |
+| DeepLabV3 | R-18-D8 | 769x769 | 80000 | 1.9 | 5.55 | 76.60 | 78.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes_20201225_021506-6452126a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes/deeplabv3_r18-d8_769x769_80k_cityscapes-20201225_021506.log.json) |
+| DeepLabV3 | R-50-D8 | 769x769 | 80000 | - | - | 79.89 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338-788d6228.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes/deeplabv3_r50-d8_769x769_80k_cityscapes_20200606_221338.log.json) |
+| DeepLabV3 | R-101-D8 | 769x769 | 80000 | - | - | 79.67 | 80.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353-60e95418.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes/deeplabv3_r101-d8_769x769_80k_cityscapes_20200607_013353.log.json) |
+| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 40000 | 4.7 | - 6.96 | 76.71 | 78.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-67b0c992.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3 | R-101-D16-MG124 | 512x1024 | 80000 | - | - | 78.36 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-57bb8425.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3 | R-18b-D8 | 512x1024 | 80000 | 1.6 | 13.93 | 76.26 | 77.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes_20201225_094144-46040cef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes/deeplabv3_r18b-d8_512x1024_80k_cityscapes-20201225_094144.log.json) |
+| DeepLabV3 | R-50b-D8 | 512x1024 | 80000 | 6.0 | 2.74 | 79.63 | 80.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes_20201225_155148-ec368954.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes/deeplabv3_r50b-d8_512x1024_80k_cityscapes-20201225_155148.log.json) |
+| DeepLabV3 | R-101b-D8| 512x1024 | 80000 | 9.5 | 1.81 | 80.01 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes_20201226_171821-8fd49503.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes/deeplabv3_r101b-d8_512x1024_80k_cityscapes-20201226_171821.log.json) |
+| DeepLabV3 | R-18b-D8 | 769x769 | 80000 | 1.8 | 5.79 | 76.63 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes_20201225_094144-fdc985d9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes/deeplabv3_r18b-d8_769x769_80k_cityscapes-20201225_094144.log.json) |
+| DeepLabV3 | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.16 | 78.80 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes_20201225_155404-87fb0cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes/deeplabv3_r50b-d8_769x769_80k_cityscapes-20201225_155404.log.json) |
+| DeepLabV3 | R-101b-D8| 769x769 | 80000 | 10.7 | 0.82 | 79.41 | 80.73 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes_20201226_190843-9142ee57.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes/deeplabv3_r101b-d8_769x769_80k_cityscapes-20201226_190843.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-50-D8 | 512x512 | 80000 | 8.9 | 14.76 | 42.42 | 43.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028-0bb3f844.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k/deeplabv3_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 80000 | 12.4 | 10.14 | 44.08 | 45.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256-d89c7fa4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k/deeplabv3_r101-d8_512x512_80k_ade20k_20200615_021256.log.json) |
+| DeepLabV3 | R-50-D8 | 512x512 | 160000 | - | - | 42.66 | 44.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227-5d0ee427.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k/deeplabv3_r50-d8_512x512_160k_ade20k_20200615_123227.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 160000 | - | - | 45.00 | 46.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816-b1f72b3b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k/deeplabv3_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-50-D8 | 512x512 | 20000 | 6.1 | 13.88 | 76.17 | 77.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906-596905ef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug/deeplabv3_r50-d8_512x512_20k_voc12aug_20200617_010906.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 20000 | 9.6 | 9.81 | 78.70 | 79.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932-8d13832f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug/deeplabv3_r101-d8_512x512_20k_voc12aug_20200617_010932.log.json) |
+| DeepLabV3 | R-50-D8 | 512x512 | 40000 | - | - | 77.68 | 78.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546-2ae96e7e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug/deeplabv3_r50-d8_512x512_40k_voc12aug_20200613_161546.log.json) |
+| DeepLabV3 | R-101-D8 | 512x512 | 40000 | - | - | 77.92 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432-0017d784.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug/deeplabv3_r101-d8_512x512_40k_voc12aug_20200613_161432.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3 | R-101-D8 | 480x480 | 40000 | 9.2 | 7.09 | 46.55 | 47.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context_20200911_204118-1aa27336.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context/deeplabv3_r101-d8_480x480_40k_pascal_context-20200911_204118.log.json) |
+| DeepLabV3 | R-101-D8 | 480x480 | 80000 | - | - | 46.42 | 47.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context_20200911_170155-2a21fff3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context/deeplabv3_r101-d8_480x480_80k_pascal_context-20200911_170155.log.json) |
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f20f260e23a95dfee9dfdceef9badab992246f53
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_40k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..de4a8a5e9f030f1e8a8802596885186163f23eed
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d16-mg124_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b5256f7b7b053cbe8d9e4ca2ec6139bb02387f6
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..001b7a69c15299fc1fe5b269a5accf92c5ece032
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c707c79d659bc544d242352bcb29686eb40b004
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6804a5781369d1031f179d421a3b5a160fd575d3
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..df6f36ef7c3b71ba7979aa7a1b226b3e3ebd9bb4
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..40f5f62373e59d1c6c01ca3f57777698461127c9
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb2be22f8bc2e10cdfba4f58b2ad1ced913b4ea4
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..796ba3fb142394c4d93a29ba57548dca59d8d02b
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e6d58a67b3b4dddf3da42efca30fa599e623f183
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..13094a98ee9be3cf8c88370e1e111cb4dde03ec4
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5186bf614bc9ebffe47323ea61afbc9604be265b
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d185db95adc61734f11f0dcd7b6c45aa652680b0
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e084e95c70b0b7b0c9dcc3388d6b7d3d51d54b6d
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a990c076536ad9455a9203f5b6a60157f2f2f99f
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b25e725ed98324e6ea648567740dc67e0413b4f9
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd920f0ca7c690d3d1c44f5f7be1cbea18fa14d4
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d493ef527bb161be98d0e4ea433104b3bb9ff48
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..71a0fda48aa2538e4d913e73e94a71564377ea50
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..8e7420d24a20b662286266cac58cab4721dc8df3
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..132787db98d3fc9df5ed62e31738c82da8c279bf
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..b4a9d4e1b9123b3c965cd430237ce9fcc7018a11
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f62da1a8090da389a77d77a9887926af2a7ded49
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..492bd3dfdce331070cb9645dbe55142e9b662da1
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..78f4d0d9de3d6b8dd2b097531317956d8e3b19f1
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e35d1988f0bb7ad47a73ef1a64b73d9b40e0ba40
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd7c16580d0620bc854f2c6eb7c881bdcd23020a
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e742d9a5ec2b6addf829cb802de27ea1afd53301
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..332d9cfb79fb698c7867f0f80053c1fd29bf2c1d
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3/deeplabv3_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/deeplabv3plus/README.md b/FoodSeg103/configs/deeplabv3plus/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..dc02660428fe534605ae3bf9659382c282379a4e
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/README.md
@@ -0,0 +1,68 @@
+# Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{deeplabv3plus2018,
+ title={Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation},
+ author={Liang-Chieh Chen and Yukun Zhu and George Papandreou and Florian Schroff and Hartwig Adam},
+ booktitle={ECCV},
+ year={2018}
+}
+```
+
+## Results and models
+
+Note:
+`D-8`/`D-16` here corresponding to the output stride 8/16 setting for DeepLab series.
+`MG-124` stands for multi-grid dilation in the last stage of ResNet.
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-50-D8 | 512x1024 | 40000 | 7.5 | 3.94 | 79.61 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610-d222ffcd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes/deeplabv3plus_r50-d8_512x1024_40k_cityscapes_20200605_094610.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x1024 | 40000 | 11 | 2.60 | 80.21 | 81.82 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614-3769eecf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes/deeplabv3plus_r101-d8_512x1024_40k_cityscapes_20200605_094614.log.json) |
+| DeepLabV3+ | R-50-D8 | 769x769 | 40000 | 8.5 | 1.72 | 78.97 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143-1dcb0e3c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes/deeplabv3plus_r50-d8_769x769_40k_cityscapes_20200606_114143.log.json) |
+| DeepLabV3+ | R-101-D8 | 769x769 | 40000 | 12.5 | 1.15 | 79.46 | 80.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304-ff414b9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes/deeplabv3plus_r101-d8_769x769_40k_cityscapes_20200606_114304.log.json) |
+| DeepLabV3+ | R-18-D8 | 512x1024 | 80000 | 2.2 | 14.27 | 76.89 | 78.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes_20201226_080942-cff257fe.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes/deeplabv3plus_r18-d8_512x1024_80k_cityscapes-20201226_080942.log.json) |
+| DeepLabV3+ | R-50-D8 | 512x1024 | 80000 | - | - | 80.09 | 81.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049-f9fb496d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes/deeplabv3plus_r50-d8_512x1024_80k_cityscapes_20200606_114049.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | - | - | 80.97 | 82.03 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143-068fcfe9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_cityscapes_20200606_114143.log.json) |
+| DeepLabV3+ | R-18-D8 | 769x769 | 80000 | 2.5 | 5.74 | 76.26 | 77.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes_20201226_083346-f326e06a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes/deeplabv3plus_r18-d8_769x769_80k_cityscapes-20201226_083346.log.json) |
+| DeepLabV3+ | R-50-D8 | 769x769 | 80000 | - | - | 79.83 | 81.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233-0e9dfdc4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes/deeplabv3plus_r50-d8_769x769_80k_cityscapes_20200606_210233.log.json) |
+| DeepLabV3+ | R-101-D8 | 769x769 | 80000 | - | - | 80.98 | 82.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405-a7573d20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes/deeplabv3plus_r101-d8_769x769_80k_cityscapes_20200607_000405.log.json) |
+| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 40000 | 5.8 | 7.48 | 79.09 | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes_20200908_005644-cf9ce186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3+ | R-101-D16-MG124 | 512x1024 | 80000 | 9.9 | - | 79.90 | 81.33 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes_20200908_005644-ee6158e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes-20200908_005644.log.json) |
+| DeepLabV3+ | R-18b-D8 | 512x1024 | 80000 | 2.1 | 14.95 | 75.87 | 77.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes_20201226_090828-e451abd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes-20201226_090828.log.json) |
+| DeepLabV3+ | R-50b-D8 | 512x1024 | 80000 | 7.4 | 3.94 | 80.28 | 81.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes_20201225_213645-a97e4e43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes-20201225_213645.log.json) |
+| DeepLabV3+ | R-101b-D8| 512x1024 | 80000 | 10.9 | 2.60 | 80.16 | 81.41 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes_20201226_190843-9c3c93a4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes-20201226_190843.log.json) |
+| DeepLabV3+ | R-18b-D8 | 769x769 | 80000 | 2.4 | 5.96 | 76.36 | 78.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes_20201226_151312-2c868aff.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes/deeplabv3plus_r18b-d8_769x769_80k_cityscapes-20201226_151312.log.json) |
+| DeepLabV3+ | R-50b-D8 | 769x769 | 80000 | 8.4 | 1.72 | 79.41 | 80.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes_20201225_224655-8b596d1c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes/deeplabv3plus_r50b-d8_769x769_80k_cityscapes-20201225_224655.log.json) |
+| DeepLabV3+ | R-101b-D8| 769x769 | 80000 | 12.3 | 1.10 | 79.88 | 81.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes_20201226_205041-227cdf7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes/deeplabv3plus_r101b-d8_769x769_80k_cityscapes-20201226_205041.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-50-D8 | 512x512 | 80000 | 10.6 | 21.01 | 42.72 | 43.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028-bf1400d8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k/deeplabv3plus_r50-d8_512x512_80k_ade20k_20200614_185028.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 80000 | 14.1 | 14.16 | 44.60 | 46.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139-d5730af7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k/deeplabv3plus_r101-d8_512x512_80k_ade20k_20200615_014139.log.json) |
+| DeepLabV3+ | R-50-D8 | 512x512 | 160000 | - | - | 43.95 | 44.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504-6135c7e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k/deeplabv3plus_r50-d8_512x512_160k_ade20k_20200615_124504.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 160000 | - | - | 45.47 | 46.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232-38ed86bb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k/deeplabv3plus_r101-d8_512x512_160k_ade20k_20200615_123232.log.json) |
+
+#### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-50-D8 | 512x512 | 20000 | 7.6 | 21 | 75.93 | 77.50 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323-aad58ef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug/deeplabv3plus_r50-d8_512x512_20k_voc12aug_20200617_102323.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 20000 | 11 | 13.88 | 77.22 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345-c7ff3d56.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug/deeplabv3plus_r101-d8_512x512_20k_voc12aug_20200617_102345.log.json) |
+| DeepLabV3+ | R-50-D8 | 512x512 | 40000 | - | - | 76.81 | 77.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759-e1b43aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug/deeplabv3plus_r50-d8_512x512_40k_voc12aug_20200613_161759.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x512 | 40000 | - | - | 78.62 | 79.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333-faf03387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug/deeplabv3plus_r101-d8_512x512_40k_voc12aug_20200613_205333.log.json) |
+
+#### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DeepLabV3+ | R-101-D8 | 480x480 | 40000 | - | 9.09 | 47.30 | 48.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context_20200911_165459-d3c8a29e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context/deeplabv3plus_r101-d8_480x480_40k_pascal_context-20200911_165459.log.json) |
+| DeepLabV3+ | R-101-D8 | 480x480 | 80000 | - | - | 47.23 | 48.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context_20200911_155322-145d3ee8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context/deeplabv3plus_r101-d8_480x480_80k_pascal_context-20200911_155322.log.json) |
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf39d2f12b719b1c91e38bef71f0f5232543b0dc
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_40k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c53ec41baf9043029549b4893b2380372ea5ecd9
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d16-mg124_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet101_v1c',
+ backbone=dict(
+ depth=101,
+ dilations=(1, 1, 1, 2),
+ strides=(1, 2, 2, 1),
+ multi_grid=(1, 2, 4)),
+ decode_head=dict(
+ dilations=(1, 6, 12, 18),
+ sampler=dict(type='OHEMPixelSampler', min_kept=100000)))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..68e2b072e4b8d076e8c3e929dfdc73bcd24ce859
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..3a46c28608add5325ec1decf33624c3c00bff1d7
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d6ce85aea5a960e76f8154a5319c7c52e98c4c45
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ebbd3c70ee5e33c6ef4ae76b6c6a6ce828d07b4
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a75c9d3019b13d01c0dd13dae53bce3d15791d52
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebb1a8eaee16de7443ab3e79e02a37340de511d7
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..3caa6cf8ae61d467628378d99a919c9db1253b91
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..53fd3a909585367ca59eb827c2fbbab4cdf234ea
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3c92eb26f8fead94f5ad7ac7d7fb60d92c57114
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ea9cdb5b639e5284cd46e02ce1b67b4729950f7
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..398d9759cafc1d01e78c138abd249808531a97b9
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..136449083f7a9efbad6df94f1acd04170147aaba
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..aff70c93e6142ddda3a874d9dfd57ec6c4cd89b3
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0172d9a87d6dc1c75bf75a9c48363eb985d389a8
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b90b292b03a80aa37b8ca236746cf7cddc4ac27e
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b49da3581d9697e726e114b1564fc58a55ef1099
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ c1_in_channels=64,
+ c1_channels=12,
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..318845de1e2124a4dff3348749ec5a13d78d686f
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..1736c2397a9b2a4b4fb12eee8175e5ee98eaf805
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ auxiliary_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7243d0390f6394fdd528c881bb128b2c13d08037
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3304d3677f5357f1a3e343b39fcd97b238abdb5e
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1491e3b8247c9d163d6016caf2fcd8043a053b7e
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1056ad4d1e2a4f956d12f6daf506620fab27dd17
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..e36c83ba601884b81c06ee69445a94e76224c828
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..352d870bc8eab11974640c4b2d9c80dc6fbbaaf2
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4bda3eded693bfd44a8c86ced7ae6ee9963c583
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1420b97a4bd0dc0f5451623697666012a2de635c
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/deeplabv3plus_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd8e1da9c7b1d86bc8a0c834bbede9d0fd40acf5
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c0ba019136c2e4f33b015be3d82505bee2066655
--- /dev/null
+++ b/FoodSeg103/configs/deeplabv3plus/deeplabv3plus_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './deeplabv3plus_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/dmnet/README.md b/FoodSeg103/configs/dmnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..9b12c8d862fb7b7633c5b2f4a1c357803abdcd32
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/README.md
@@ -0,0 +1,39 @@
+# Dynamic Multi-scale Filters for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@InProceedings{He_2019_ICCV,
+author = {He, Junjun and Deng, Zhongying and Qiao, Yu},
+title = {Dynamic Multi-Scale Filters for Semantic Segmentation},
+booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
+month = {October},
+year = {2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DMNet | R-50-D8 | 512x1024 | 40000 | 7.0 | 3.66 | 77.78 | 79.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes_20201214_115717-5e88fa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes/dmnet_r50-d8_512x1024_40k_cityscapes-20201214_115717.log.json) |
+| DMNet | R-101-D8 | 512x1024 | 40000 | 10.6 | 2.54 | 78.37 | 79.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes_20201214_115716-abc9d111.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes/dmnet_r101-d8_512x1024_40k_cityscapes-20201214_115716.log.json) |
+| DMNet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.57 | 78.49 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes_20201214_115717-2a2628d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_40k_cityscapes/dmnet_r50-d8_769x769_40k_cityscapes-20201214_115717.log.json) |
+| DMNet | R-101-D8 | 769x769 | 40000 | 12.0 | 1.01 | 77.62 | 78.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes_20201214_115718-b650de90.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_40k_cityscapes/dmnet_r101-d8_769x769_40k_cityscapes-20201214_115718.log.json) |
+| DMNet | R-50-D8 | 512x1024 | 80000 | - | - | 79.07 | 80.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes_20201214_115716-987f51e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes/dmnet_r50-d8_512x1024_80k_cityscapes-20201214_115716.log.json) |
+| DMNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.64 | 80.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes_20201214_115705-b1ff208a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes/dmnet_r101-d8_512x1024_80k_cityscapes-20201214_115705.log.json) |
+| DMNet | R-50-D8 | 769x769 | 80000 | - | - | 79.22 | 80.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes_20201214_115718-7ea9fa12.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_769x769_80k_cityscapes/dmnet_r50-d8_769x769_80k_cityscapes-20201214_115718.log.json) |
+| DMNet | R-101-D8 | 769x769 | 80000 | - | - | 79.19 | 80.65 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes_20201214_115716-a7fbc2ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_769x769_80k_cityscapes/dmnet_r101-d8_769x769_80k_cityscapes-20201214_115716.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DMNet | R-50-D8 | 512x512 | 80000 | 9.4 | 20.95 | 42.37 | 43.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k_20201214_115705-a8626293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_80k_ade20k/dmnet_r50-d8_512x512_80k_ade20k-20201214_115705.log.json) |
+| DMNet | R-101-D8 | 512x512 | 80000 | 13.0 | 13.88 | 45.34 | 46.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k_20201214_115704-c656c3fb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_80k_ade20k/dmnet_r101-d8_512x512_80k_ade20k-20201214_115704.log.json) |
+| DMNet | R-50-D8 | 512x512 | 160000 | - | - | 43.15 | 44.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k_20201214_115706-25fb92c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r50-d8_512x512_160k_ade20k/dmnet_r50-d8_512x512_160k_ade20k-20201214_115706.log.json) |
+| DMNet | R-101-D8 | 512x512 | 160000 | - | - | 45.42 | 46.76 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k_20201214_115705-73f9a8d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dmnet/dmnet_r101-d8_512x512_160k_ade20k/dmnet_r101-d8_512x512_160k_ade20k-20201214_115705.log.json) |
diff --git a/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd6897691d3f8f200783fae7bfe231735f25a11b
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..116cbdcede32bf24ad95f04291e98754011172c9
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..d78d46c040f75d16225307d4b4151b87e6e3db29
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9713b731a47df9c5e23d26a08ad17d03a0d5e9fe
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b222e730073dd42df618db5660ee9d4117f3956
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f36d490e9c9b31de7eedf735d2712e55f35db998
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dmnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f9a917fa4223bd2428f2b2d10eac446f7ecc71a
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b38f90dc4318f23d32971e7afbf90a327768f2d
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8fbd9beb11f3d1308ce2cd12da2a177c2d39478
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..74f6d6a85a06e96580a3c8d5843f660c85bca5ad
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..19841547a42315164de547a4121cfd64739cf24b
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..31d95f96eb10025c2ad054cde4c81f47db21f0f2
--- /dev/null
+++ b/FoodSeg103/configs/dmnet/dmnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/dmnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/dnlnet/README.md b/FoodSeg103/configs/dnlnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..172dfe1a0f07646c5f8cc47ddd62f5cb6da85a55
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/README.md
@@ -0,0 +1,42 @@
+# Disentangled Non-Local Neural Networks
+
+## Introduction
+
+[ALGORITHM]
+
+This example is to reproduce ["Disentangled Non-Local Neural Networks"](https://arxiv.org/abs/2006.06668) for semantic segmentation. It is still in progress.
+
+## Citation
+
+```latex
+@misc{yin2020disentangled,
+ title={Disentangled Non-Local Neural Networks},
+ author={Minghao Yin and Zhuliang Yao and Yue Cao and Xiu Li and Zheng Zhang and Stephen Lin and Han Hu},
+ year={2020},
+ booktitle={ECCV}
+}
+```
+
+## Results and models (in progress)
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| dnl | R-50-D8 | 512x1024 | 40000 | 7.3 | 2.56 | 78.61 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes_20200904_233629-53d4ea93.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes/dnl_r50-d8_512x1024_40k_cityscapes-20200904_233629.log.json) |
+| dnl | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.96 | 78.31 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes_20200904_233629-9928ffef.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes/dnl_r101-d8_512x1024_40k_cityscapes-20200904_233629.log.json) |
+| dnl | R-50-D8 | 769x769 | 40000 | 9.2 | 1.50 | 78.44 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes_20200820_232206-0f283785.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_40k_cityscapes/dnl_r50-d8_769x769_40k_cityscapes-20200820_232206.log.json) |
+| dnl | R-101-D8 | 769x769 | 40000 | 12.6 | 1.02 | 76.39 | 77.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes_20200820_171256-76c596df.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_40k_cityscapes/dnl_r101-d8_769x769_40k_cityscapes-20200820_171256.log.json) |
+| dnl | R-50-D8 | 512x1024 | 80000 | - | - | 79.33 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes_20200904_233629-58b2f778.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes/dnl_r50-d8_512x1024_80k_cityscapes-20200904_233629.log.json) |
+| dnl | R-101-D8 | 512x1024 | 80000 | - | - | 80.41 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes_20200904_233629-758e2dd4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes/dnl_r101-d8_512x1024_80k_cityscapes-20200904_233629.log.json) |
+| dnl | R-50-D8 | 769x769 | 80000 | - | - | 79.36 | 80.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes_20200820_011925-366bc4c7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_769x769_80k_cityscapes/dnl_r50-d8_769x769_80k_cityscapes-20200820_011925.log.json) |
+| dnl | R-101-D8 | 769x769 | 80000 | - | - | 79.41 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes_20200821_051111-95ff84ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_769x769_80k_cityscapes/dnl_r101-d8_769x769_80k_cityscapes-20200821_051111.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DNL | R-50-D8 | 512x512 | 80000 | 8.8 | 20.66 | 41.76 | 42.99 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k_20200826_183354-1cf6e0c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_80k_ade20k/dnl_r50-d8_512x512_80k_ade20k-20200826_183354.log.json) |
+| DNL | R-101-D8 | 512x512 | 80000 | 12.8 | 12.54 | 43.76 | 44.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k_20200826_183354-d820d6ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_80k_ade20k/dnl_r101-d8_512x512_80k_ade20k-20200826_183354.log.json) |
+| DNL | R-50-D8 | 512x512 | 160000 | - | - | 41.87 | 43.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k_20200826_183350-37837798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r50-d8_512x512_160k_ade20k/dnl_r50-d8_512x512_160k_ade20k-20200826_183350.log.json) |
+| DNL | R-101-D8 | 512x512 | 160000 | - | - | 44.25 | 45.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k_20200826_183350-ed522c61.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/dnlnet/dnl_r101-d8_512x512_160k_ade20k/dnl_r101-d8_512x512_160k_ade20k-20200826_183350.log.json) |
diff --git a/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a36e3c80a13f91e37e4d90b7ae47c7e0d204144
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f2e1b6da7e63841f4429b1caed5fbe9d537c4f8
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..aca44e478b67d5a226681c099e64fe67d93cf39b
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebd27a1d1c6bf0e983fafed2e5659701dadb8f24
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..575e9d01343a4563e0d3ba89b361ea8e358d2dee
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4f1b9e19411eb963d16fd2a8174529e69ecd5a1a
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './dnl_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7aa7444d4c8022563db642478beec4dc5ab0dab
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fdff93f543af6bac93949e68532daea45e437167
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5305689d09b944f6e37aa85567ce3f29fc6974a7
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..09604c39729abfc9015eb971069b987c8d8a82cb
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0666199b63e604b09fe8187c378589c25d0d311b
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7b07c4f47629c07faa013b9d1eae3462d898c6f
--- /dev/null
+++ b/FoodSeg103/configs/dnlnet/dnl_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = [
+ '../_base_/models/dnl_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
+optimizer = dict(
+ paramwise_cfg=dict(
+ custom_keys=dict(theta=dict(wd_mult=0.), phi=dict(wd_mult=0.))))
diff --git a/FoodSeg103/configs/emanet/README.md b/FoodSeg103/configs/emanet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..40df946ed446cf862847dad084324412e5aa52ee
--- /dev/null
+++ b/FoodSeg103/configs/emanet/README.md
@@ -0,0 +1,26 @@
+# Expectation-Maximization Attention Networks for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{li2019expectation,
+ title={Expectation-maximization attention networks for semantic segmentation},
+ author={Li, Xia and Zhong, Zhisheng and Wu, Jianlong and Yang, Yibo and Lin, Zhouchen and Liu, Hong},
+ booktitle={Proceedings of the IEEE International Conference on Computer Vision},
+ pages={9167--9176},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| EMANet | R-50-D8 | 512x1024 | 80000 | 5.4 | 4.58 | 77.59 | 79.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes_20200901_100301-c43fcef1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_512x1024_80k_cityscapes/emanet_r50-d8_512x1024_80k_cityscapes-20200901_100301.log.json) |
+| EMANet | R-101-D8 | 512x1024 | 80000 | 6.2 | 2.87 | 79.10 | 81.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes_20200901_100301-2d970745.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_512x1024_80k_cityscapes/emanet_r101-d8_512x1024_80k_cityscapes-20200901_100301.log.json) |
+| EMANet | R-50-D8 | 769x769 | 80000 | 8.9 | 1.97 | 79.33 | 80.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes_20200901_100301-16f8de52.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r50-d8_769x769_80k_cityscapes/emanet_r50-d8_769x769_80k_cityscapes-20200901_100301.log.json) |
+| EMANet | R-101-D8 | 769x769 | 80000 | 10.1 | 1.22 | 79.62 | 81.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes_20200901_100301-47a324ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/emanet/emanet_r101-d8_769x769_80k_cityscapes/emanet_r101-d8_769x769_80k_cityscapes-20200901_100301.log.json) |
diff --git a/FoodSeg103/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..58f28b43f55f54c7a604960735963e6b7c13b6f1
--- /dev/null
+++ b/FoodSeg103/configs/emanet/emanet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './emanet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c5dbf20b0fcc7bc1dd077bd8b7077772251d4c1a
--- /dev/null
+++ b/FoodSeg103/configs/emanet/emanet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './emanet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..73b7788bf924be2e1588596a88f0155ddc37358e
--- /dev/null
+++ b/FoodSeg103/configs/emanet/emanet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/emanet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..699aa212c3518901b2f84db3f062c16b023c7538
--- /dev/null
+++ b/FoodSeg103/configs/emanet/emanet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/emanet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/encnet/README.md b/FoodSeg103/configs/encnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..6ba42f69fae5e52254b34195b6cd0ed689c5bf6c
--- /dev/null
+++ b/FoodSeg103/configs/encnet/README.md
@@ -0,0 +1,39 @@
+# Context Encoding for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@InProceedings{Zhang_2018_CVPR,
+author = {Zhang, Hang and Dana, Kristin and Shi, Jianping and Zhang, Zhongyue and Wang, Xiaogang and Tyagi, Ambrish and Agrawal, Amit},
+title = {Context Encoding for Semantic Segmentation},
+booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
+month = {June},
+year = {2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| encnet | R-50-D8 | 512x1024 | 40000 | 8.6 | 4.58 | 75.67 | 77.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes_20200621_220958-68638a47.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_40k_cityscapes/encnet_r50-d8_512x1024_40k_cityscapes-20200621_220958.log.json) |
+| encnet | R-101-D8 | 512x1024 | 40000 | 12.1 | 2.66 | 75.81 | 77.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes_20200621_220933-35e0a3e8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_40k_cityscapes/encnet_r101-d8_512x1024_40k_cityscapes-20200621_220933.log.json) |
+| encnet | R-50-D8 | 769x769 | 40000 | 9.8 | 1.82 | 76.24 | 77.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes_20200621_220958-3bcd2884.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_40k_cityscapes/encnet_r50-d8_769x769_40k_cityscapes-20200621_220958.log.json) |
+| encnet | R-101-D8 | 769x769 | 40000 | 13.7 | 1.26 | 74.25 | 76.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes_20200621_220933-2fafed55.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_40k_cityscapes/encnet_r101-d8_769x769_40k_cityscapes-20200621_220933.log.json) |
+| encnet | R-50-D8 | 512x1024 | 80000 | - | - | 77.94 | 79.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes_20200622_003554-fc5c5624.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x1024_80k_cityscapes/encnet_r50-d8_512x1024_80k_cityscapes-20200622_003554.log.json) |
+| encnet | R-101-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes_20200622_003555-1de64bec.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x1024_80k_cityscapes/encnet_r101-d8_512x1024_80k_cityscapes-20200622_003555.log.json) |
+| encnet | R-50-D8 | 769x769 | 80000 | - | - | 77.44 | 78.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes_20200622_003554-55096dcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_769x769_80k_cityscapes/encnet_r50-d8_769x769_80k_cityscapes-20200622_003554.log.json) |
+| encnet | R-101-D8 | 769x769 | 80000 | - | - | 76.10 | 76.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes_20200622_003555-470ef79d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_769x769_80k_cityscapes/encnet_r101-d8_769x769_80k_cityscapes-20200622_003555.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| encnet | R-50-D8 | 512x512 | 80000 | 10.1 | 22.81 | 39.53 | 41.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k_20200622_042412-44b46b04.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_80k_ade20k/encnet_r50-d8_512x512_80k_ade20k-20200622_042412.log.json) |
+| encnet | R-101-D8 | 512x512 | 80000 | 13.6 | 14.87 | 42.11 | 43.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k_20200622_101128-dd35e237.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_80k_ade20k/encnet_r101-d8_512x512_80k_ade20k-20200622_101128.log.json) |
+| encnet | R-50-D8 | 512x512 | 160000 | - | - | 40.10 | 41.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k_20200622_101059-b2db95e0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r50-d8_512x512_160k_ade20k/encnet_r50-d8_512x512_160k_ade20k-20200622_101059.log.json) |
+| encnet | R-101-D8 | 512x512 | 160000 | - | - | 42.61 | 44.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k_20200622_073348-7989641f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/encnet/encnet_r101-d8_512x512_160k_ade20k/encnet_r101-d8_512x512_160k_ade20k-20200622_073348.log.json) |
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f34373d9ebab5ef6f4c01e3eab8a97c288495be0
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b0207b3144460d25229e3ac4c4d0d9fc1d34292
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fec6ba255f33d48a66a831de4571346a7a2bd2e
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..c264af998b5ef6a9e521db204205fb998cce68a9
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..8a6968ea583758191fa8e94497c7186e653c7afb
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..94151004ea88394373cf8f135b065d5056b11179
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d6ade67b76ce04e1ede3ff99aab4863705cff446
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..55648c08b2c4eb78d7d5ae65482e5e5b291c058a
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './encnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ea6ed0e84f3aa7d2c7acd8dd5c459a8cd3ce45c
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d2feeef7e982550481365f8187cb1a50f0fafcc9
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a5dc203cc793860aae7743d16c4fb9a564ad1d8
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..9cb7952cede58165d2ed0f35d2208ad1ffb65232
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..81f3cbfbf516e833821c49deecd8f167170021f0
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..835375cb0447378fc76431158eb0b8fc011d36bc
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d311e33f56ba431a882b0e7079001b0e9932a011
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b535f3c80818ce6b692b66f18ceee8e7b181fdc
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..600b701a7194ead496cc924bee897b6096e1c7ca
--- /dev/null
+++ b/FoodSeg103/configs/encnet/encnet_r50s-d8_512x512_80k_ade20k.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/encnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ backbone=dict(stem_channels=128),
+ decode_head=dict(num_classes=150),
+ auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/fastscnn/README.md b/FoodSeg103/configs/fastscnn/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..bb87a9f7aeb8d3630aeccc04b585a4dfec9f2b7e
--- /dev/null
+++ b/FoodSeg103/configs/fastscnn/README.md
@@ -0,0 +1,22 @@
+# Fast-SCNN for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{poudel2019fast,
+ title={Fast-scnn: Fast semantic segmentation network},
+ author={Poudel, Rudra PK and Liwicki, Stephan and Cipolla, Roberto},
+ journal={arXiv preprint arXiv:1902.04502},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|-----------|-----------|--------:|----------|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Fast-SCNN | Fast-SCNN | 512x1024 | 80000 | 8.4 | 63.61 | 69.06 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-f5096c79.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fast_scnn/fast_scnn_4x8_80k_lr0.12_cityscapes-20200807_165744.log.json) |
diff --git a/FoodSeg103/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py b/FoodSeg103/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d9c9999370c8b1c28af3063a3aded0d88c91caf
--- /dev/null
+++ b/FoodSeg103/configs/fastscnn/fast_scnn_4x8_80k_lr0.12_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = [
+ '../_base_/models/fast_scnn.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+
+# Re-config the data sampler.
+data = dict(samples_per_gpu=2, workers_per_gpu=4)
+
+# Re-config the optimizer.
+optimizer = dict(type='SGD', lr=0.12, momentum=0.9, weight_decay=4e-5)
diff --git a/FoodSeg103/configs/fcn/README.md b/FoodSeg103/configs/fcn/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..95ca2ac0439c3a33ef13f2e22d7fa7a83754142b
--- /dev/null
+++ b/FoodSeg103/configs/fcn/README.md
@@ -0,0 +1,66 @@
+# Fully Convolutional Networks for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{shelhamer2017fully,
+ title={Fully convolutional networks for semantic segmentation},
+ author={Shelhamer, Evan and Long, Jonathan and Darrell, Trevor},
+ journal={IEEE transactions on pattern analysis and machine intelligence},
+ volume={39},
+ number={4},
+ pages={640--651},
+ year={2017},
+ publisher={IEEE Trans Pattern Anal Mach Intell}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-50-D8 | 512x1024 | 40000 | 5.7 | 4.17 | 72.25 | 73.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608-efe53f0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_40k_cityscapes/fcn_r50-d8_512x1024_40k_cityscapes_20200604_192608.log.json) |
+| FCN | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.66 | 75.45 | 76.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852-a883d3a1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_40k_cityscapes/fcn_r101-d8_512x1024_40k_cityscapes_20200604_181852.log.json) |
+| FCN | R-50-D8 | 769x769 | 40000 | 6.5 | 1.80 | 71.47 | 72.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104-977b5d02.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_40k_cityscapes/fcn_r50-d8_769x769_40k_cityscapes_20200606_113104.log.json) |
+| FCN | R-101-D8 | 769x769 | 40000 | 10.4 | 1.19 | 73.93 | 75.14 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208-7d4ab69c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_40k_cityscapes/fcn_r101-d8_769x769_40k_cityscapes_20200606_113208.log.json) |
+| FCN | R-18-D8 | 512x1024 | 80000 | 1.7 | 14.65 | 71.11 | 72.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_512x1024_80k_cityscapes/fcn_r18-d8_512x1024_80k_cityscapes-20201225_021327.log.json) |
+| FCN | R-50-D8 | 512x1024 | 80000 | - | | 73.61 | 74.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019-03aa804d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x1024_80k_cityscapes/fcn_r50-d8_512x1024_80k_cityscapes_20200606_113019.log.json) |
+| FCN | R-101-D8 | 512x1024 | 80000 | - | - | 75.13 | 75.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038-3fb937eb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x1024_80k_cityscapes/fcn_r101-d8_512x1024_80k_cityscapes_20200606_113038.log.json) |
+| FCN | R-18-D8 | 769x769 | 80000 | 1.9 | 6.40 | 70.80 | 73.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes_20201225_021451-9739d1b8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18-d8_769x769_80k_cityscapes/fcn_r18-d8_769x769_80k_cityscapes-20201225_021451.log.json) |
+| FCN | R-50-D8 | 769x769 | 80000 | - | - | 72.64 | 73.32 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749-f5caeabc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_769x769_80k_cityscapes/fcn_r50-d8_769x769_80k_cityscapes_20200606_195749.log.json) |
+| FCN | R-101-D8 | 769x769 | 80000 | - | - | 75.52 | 76.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354-45cbac68.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_769x769_80k_cityscapes/fcn_r101-d8_769x769_80k_cityscapes_20200606_214354.log.json) |
+| FCN | R-18b-D8 | 512x1024 | 80000 | 1.6 | 16.74 | 70.24 | 72.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes_20201225_230143-92c0f445.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_512x1024_80k_cityscapes/fcn_r18b-d8_512x1024_80k_cityscapes-20201225_230143.log.json) |
+| FCN | R-50b-D8 | 512x1024 | 80000 | 5.6 | 4.20 | 75.65 | 77.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes_20201225_094221-82957416.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_512x1024_80k_cityscapes/fcn_r50b-d8_512x1024_80k_cityscapes-20201225_094221.log.json) |
+| FCN | R-101b-D8| 512x1024 | 80000 | 9.1 | 2.73 | 77.37 | 78.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes_20201226_160213-4543858f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_512x1024_80k_cityscapes/fcn_r101b-d8_512x1024_80k_cityscapes-20201226_160213.log.json) |
+| FCN | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.70 | 69.66 | 72.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes_20201226_004430-32d504e5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r18b-d8_769x769_80k_cityscapes/fcn_r18b-d8_769x769_80k_cityscapes-20201226_004430.log.json) |
+| FCN | R-50b-D8 | 769x769 | 80000 | 6.3 | 1.82 | 73.83 | 76.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes_20201225_094223-94552d38.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50b-d8_769x769_80k_cityscapes/fcn_r50b-d8_769x769_80k_cityscapes-20201225_094223.log.json) |
+| FCN | R-101b-D8| 769x769 | 80000 | 10.3 | 1.15 | 77.02 | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes_20201226_170012-82be37e2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101b-d8_769x769_80k_cityscapes/fcn_r101b-d8_769x769_80k_cityscapes-20201226_170012.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-50-D8 | 512x512 | 80000 | 8.5 | 23.49 | 35.94 | 37.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016-f8ac5082.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_80k_ade20k/fcn_r50-d8_512x512_80k_ade20k_20200614_144016.log.json) |
+| FCN | R-101-D8 | 512x512 | 80000 | 12 | 14.78 | 39.61 | 40.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143-bc1809f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_80k_ade20k/fcn_r101-d8_512x512_80k_ade20k_20200615_014143.log.json) |
+| FCN | R-50-D8 | 512x512 | 160000 | - | - | 36.10 | 38.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713-4edbc3b4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_160k_ade20k/fcn_r50-d8_512x512_160k_ade20k_20200615_100713.log.json) |
+| FCN | R-101-D8 | 512x512 | 160000 | - | - | 39.91 | 41.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816-fd192bd5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_160k_ade20k/fcn_r101-d8_512x512_160k_ade20k_20200615_105816.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-50-D8 | 512x512 | 20000 | 5.7 | 23.28 | 67.08 | 69.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715-52dc5306.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_20k_voc12aug/fcn_r50-d8_512x512_20k_voc12aug_20200617_010715.log.json) |
+| FCN | R-101-D8 | 512x512 | 20000 | 9.2 | 14.81 | 71.16 | 73.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842-0bb4e798.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_20k_voc12aug/fcn_r101-d8_512x512_20k_voc12aug_20200617_010842.log.json) |
+| FCN | R-50-D8 | 512x512 | 40000 | - | - | 66.97 | 69.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222-5e2dbf40.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r50-d8_512x512_40k_voc12aug/fcn_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) |
+| FCN | R-101-D8 | 512x512 | 40000 | - | - | 69.91 | 72.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240-4c8bcefd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_512x512_40k_voc12aug/fcn_r101-d8_512x512_40k_voc12aug_20200613_161240.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-101-D8 | 480x480 | 40000 | - | 9.93 | 44.14 | 45.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context_20200911_212515-9b565a6d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_40k_pascal_context/fcn_r101-d8_480x480_40k_pascal_context-20200911_212515.log.json) |
+| FCN | R-101-D8 | 480x480 | 80000 | - | - | 44.47 | 45.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context_20200915_032644-a3828480.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fcn/fcn_r101-d8_480x480_80k_pascal_context/fcn_r101-d8_480x480_80k_pascal_context-20200915_032644.log.json) |
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..f3a15b41054318d508e98685632921f262029de0
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..bdccfd99ba0c25646f02850483c2cdf679fdbf3d
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7918dd10d05cd98dbc02f02ef1b93e3134f52357
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..528110dc73c15008869a9ad9851ef487f0c952c7
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1bf6780f2c821052692ddcb904bd10e6256c1e71
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..09a5fe5468f0155f8fd0bf2cd1574a33624d8492
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..eafefaa67565513c277c5eb42e3661a88133cb27
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d0294530f4c817b352cb020d111e3248690ae1f
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b4cc571294fa45b4442c2bfeb9fda13a14fc5c2
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3503c76935e294c881130b309999d32f13df8839
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b9bf60fc13364ca1b7b3842664950f653426e67
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f36eb02e68707d502cbe315ff8f6f25b232dee92
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a1d29e480cb46a763cb17d2105b3f040153d417
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6644a58dea86fd38e208abbedffe4f836e677078
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..92accfc703fc398d2845d7dc2f1d5336f24738e8
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5dd34dd2134c745275c66adc5488b4b9f68d6809
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..fdc6314f704e61d064f5fb7bdd30bc38a9e87ee5
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0870f928b82b24b8179305f6c9fc7f6013fb481e
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..401c6ea7330d45d8f7604a1da63fc6e15faea424
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..990a085eda2f2dc47f1a1289bfbf2726ad8c9c4f
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ca7fd23cedc0567a015bd5f8641a509ead6110a
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..17206a5171dcc357c589a1711afa52d87faeece0
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..8cec429c3e27ad2543b7e38fa206e6606fda4d5a
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef194cb594eb76316324066e23e48184d8cede27
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fca98c1d9ace73a61ae395914e5960832216bf67
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7d75cd9f49343355b14c7d60bb0df0936ffe0278
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/fcn_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..28ef13f8d17e977f710ba9a863f182b1f80dc8cf
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..106f7b6a1ece974c9f732ee813724bd8bda3bef3
--- /dev/null
+++ b/FoodSeg103/configs/fcn/fcn_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fcn_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/foodnet/README.md b/FoodSeg103/configs/foodnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7aa6d7db2cdb9aa3b82537aa08396589a9511345
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/README.md
@@ -0,0 +1,49 @@
+# Baseline for FoodSeg103
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{xu2021foodseg,
+ title={A Large-Scale Benchmark for Food Image Segmentation},
+ author={Wu, Xiongwei and Fu, Xin and Liu, Ying and Lim, Ee-Peng and Hoi, Steven CH and Sun, Qianru},
+ journal={arXiv preprint arXiv:XXXX.XXXX},
+ year={2021}
+}
+
+@inproceedings{huang2018ccnet,
+ title={CCNet: Criss-Cross Attention for Semantic Segmentation},
+ author={Huang, Zilong and Wang, Xinggang and Huang, Lichao and Huang, Chang and Wei, Yunchao and Liu, Wenyu},
+ booktitle={ICCV},
+ year={2019}
+}
+@inproceedings{Kirillov_2019,
+ title={Panoptic Feature Pyramid Networks},
+ author={Kirillov, Alexander and Girshick, Ross and He, Kaiming and Dollar, Piotr},
+ booktitle={CVPR},
+ year={2019},
+}
+@inproceedings{SETR,
+ title={Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers},
+ author={Zheng, Sixiao and Lu, Jiachen and Zhao, Hengshuang and Zhu, Xiatian and Luo, Zekun and Wang, Yabiao and Fu, Yanwei and Feng, Jianfeng and Xiang, Tao and Torr, Philip H.S. and Zhang, Li},
+ booktitle={CVPR},
+ year={2021}
+}
+
+@article{liu2021Swin,
+ title={Swin Transformer: Hierarchical Vision Transformer using Shifted Windows},
+ author={Liu, Ze and Lin, Yutong and Cao, Yue and Hu, Han and Wei, Yixuan and Zhang, Zheng and Lin, Stephen and Guo, Baining},
+ journal={arXiv preprint arXiv:2103.14030},
+ year={2021}
+}
+
+@article{wang2021pyramid,
+ title={Pyramid vision transformer: A versatile backbone for dense prediction without convolutions},
+ author={Wang, Wenhai and Xie, Enze and Li, Xiang and Fan, Deng-Ping and Song, Kaitao and Liang, Ding and Lu, Tong and Luo, Ping and Shao, Ling},
+ journal={arXiv preprint arXiv:2102.12122},
+ year={2021}
+}
+```
+
+
diff --git a/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_base.py b/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..28beb61a243849ccf09dcb18a2e3880aeb8610f4
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_base.py
@@ -0,0 +1,69 @@
+_base_ = [
+ '../_base_/models/setr_mla.py',
+ '../_base_/datasets/FoodSeg103_768x768.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ backbone=dict(
+ img_size=768,
+ model_name='vit_base_patch16_224',
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ pos_embed_interp=True,
+ drop_rate=0.,
+ mla_channels=256,
+ mla_index=(5,7,9,11)
+ ),
+ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),
+ auxiliary_head=[
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=0,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=1,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=2,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=3,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ ])
+
+optimizer = dict(lr=0.002, weight_decay=0.0,
+paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})
+)
+
+crop_size = (768, 768)
+test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))
+find_unused_parameters = True
+data = dict(samples_per_gpu=1)
diff --git a/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_base_RM.py b/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_base_RM.py
new file mode 100644
index 0000000000000000000000000000000000000000..6f3a76d44ce1efd203c27bd586566d3793d0a57c
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_base_RM.py
@@ -0,0 +1,70 @@
+_base_ = [
+ '../_base_/models/setr_mla.py',
+ '../_base_/datasets/FoodSeg103_768x768.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ backbone=dict(
+ img_size=768,
+ model_name='vit_base_patch16_224',
+ pretrain_weights='pretrained_model/VIT_base_224_ReLeM.pth',
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ pos_embed_interp=True,
+ drop_rate=0.,
+ mla_channels=256,
+ mla_index=(5,7,9,11)
+ ),
+ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),
+ auxiliary_head=[
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=0,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=1,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=2,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=3,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ ])
+
+optimizer = dict(lr=0.002, weight_decay=0.0,
+paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})
+)
+
+crop_size = (768, 768)
+test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))
+find_unused_parameters = True
+data = dict(samples_per_gpu=1)
diff --git a/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_large.py b/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_large.py
new file mode 100644
index 0000000000000000000000000000000000000000..caf8c3d1b462cfd9fd646291674519e255fb4532
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/SETR_MLA_768x768_80k_large.py
@@ -0,0 +1,68 @@
+_base_ = [
+ '../_base_/models/setr_mla.py',
+ '../_base_/datasets/FoodSeg103_768x768.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ backbone=dict(
+ img_size=768,
+ pos_embed_interp=True,
+ drop_rate=0.,
+ mla_channels=256,
+ mla_index=(5,11,17,23)
+ ),
+ decode_head=dict(img_size=768,mla_channels=256,mlahead_channels=128,num_classes=104),
+ auxiliary_head=[
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=0,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=1,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=2,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VIT_MLA_AUXIHead',
+ in_channels=256,
+ channels=512,
+ in_index=3,
+ img_size=768,
+ num_classes=104,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ ])
+
+optimizer = dict(lr=0.002, weight_decay=0.0,
+paramwise_cfg = dict(custom_keys={'head': dict(lr_mult=10.)})
+)
+
+crop_size = (768, 768)
+test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))
+find_unused_parameters = True
+data = dict(samples_per_gpu=1)
+
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=80000, metric='mIoU')
diff --git a/FoodSeg103/configs/foodnet/SETR_Naive_768x768_80k_base.py b/FoodSeg103/configs/foodnet/SETR_Naive_768x768_80k_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..a51b67876051d356294c51ec1c333c56ac5c9042
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/SETR_Naive_768x768_80k_base.py
@@ -0,0 +1,80 @@
+_base_ = [
+ '../_base_/models/setr_naive_pup.py',
+ '../_base_/datasets/FoodSeg103_768x768.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ backbone=dict(
+ img_size=768,
+ model_name='vit_base_patch16_224',
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ pos_embed_interp=True,
+ align_corners=False,
+ num_classes=104,
+ drop_rate=0.
+ ),
+ decode_head=dict(
+ img_size=768,
+ in_channels=768,
+ in_index=11,
+ channels=512,
+ num_classes=104,
+ embed_dim=768,
+ align_corners=False,
+ num_conv=2,
+ upsampling_method='bilinear',
+ ),
+ auxiliary_head=[
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=5,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=7,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=9,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ ])
+
+optimizer = dict(lr=0.01, weight_decay=0.0, paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)}))
+
+crop_size = (768, 768)
+test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))
+find_unused_parameters = True
+data = dict(samples_per_gpu=1)
diff --git a/FoodSeg103/configs/foodnet/SETR_Naive_768x768_80k_base_RM.py b/FoodSeg103/configs/foodnet/SETR_Naive_768x768_80k_base_RM.py
new file mode 100644
index 0000000000000000000000000000000000000000..e171cf36329b0ce0a71fa05b13c20f0f13979ce3
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/SETR_Naive_768x768_80k_base_RM.py
@@ -0,0 +1,81 @@
+_base_ = [
+ '../_base_/models/setr_naive_pup.py',
+ '../_base_/datasets/FoodSeg103_768x768.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ backbone=dict(
+ img_size=768,
+ model_name='vit_base_patch16_224',
+ pretrain_weights='pretrained_model/VIT_base_224_ReLeM.pth',
+ embed_dim=768,
+ depth=12,
+ num_heads=12,
+ pos_embed_interp=True,
+ align_corners=False,
+ num_classes=104,
+ drop_rate=0.
+ ),
+ decode_head=dict(
+ img_size=768,
+ in_channels=768,
+ in_index=11,
+ channels=512,
+ num_classes=104,
+ embed_dim=768,
+ align_corners=False,
+ num_conv=2,
+ upsampling_method='bilinear',
+ ),
+ auxiliary_head=[
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=5,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=7,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='VisionTransformerUpHead',
+ in_channels=768,
+ channels=512,
+ in_index=9,
+ img_size=768,
+ embed_dim=768,
+ num_classes=104,
+ norm_cfg=norm_cfg,
+ num_conv=2,
+ upsampling_method='bilinear',
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ ])
+
+optimizer = dict(lr=0.01, weight_decay=0.0, paramwise_cfg=dict(custom_keys={'head': dict(lr_mult=10.)}))
+
+crop_size = (768, 768)
+test_cfg = dict(mode='slide', crop_size=crop_size, stride=(512, 512))
+find_unused_parameters = True
+data = dict(samples_per_gpu=1)
diff --git a/FoodSeg103/configs/foodnet/ccnet_r50-d8_512x1024_80k.py b/FoodSeg103/configs/foodnet/ccnet_r50-d8_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a65634569402a018ed238142ff34cce446e8ffe2
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/ccnet_r50-d8_512x1024_80k.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/FoodSeg103.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/foodnet/ccnet_r50-d8_512x1024_80k_RM.py b/FoodSeg103/configs/foodnet/ccnet_r50-d8_512x1024_80k_RM.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf9c68ea153ac90398afe4080886ae16044f4d06
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/ccnet_r50-d8_512x1024_80k_RM.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/ccnet_r50-d8.py', '../_base_/datasets/FoodSeg103.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(pretrained='./pretrained_model/R50_ReLeM.pth', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/foodnet/fpn_r50_512x1024_80k.py b/FoodSeg103/configs/foodnet/fpn_r50_512x1024_80k.py
new file mode 100644
index 0000000000000000000000000000000000000000..da856c77ee311eaac410e37be3f9e2268bdd1442
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/fpn_r50_512x1024_80k.py
@@ -0,0 +1,12 @@
+_base_ = [
+ '../_base_/models/fpn_r50.py', '../_base_/datasets/FoodSeg103.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+
+model = dict(decode_head=dict(num_classes=104))
+
+optimizer_config = dict()
+
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
diff --git a/FoodSeg103/configs/foodnet/fpn_r50_512x1024_80k_RM.py b/FoodSeg103/configs/foodnet/fpn_r50_512x1024_80k_RM.py
new file mode 100644
index 0000000000000000000000000000000000000000..31291a171e6d0d451367094e208babf310275c2c
--- /dev/null
+++ b/FoodSeg103/configs/foodnet/fpn_r50_512x1024_80k_RM.py
@@ -0,0 +1,14 @@
+_base_ = [
+ '../_base_/models/fpn_r50.py', '../_base_/datasets/FoodSeg103.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+
+model = dict(pretrained='./pretrained_model/R50_ReLeM.pth',
+ backbone=dict(type='ResNet'),
+ decode_head=dict(num_classes=104))
+
+optimizer_config = dict()
+
+runner = dict(type='IterBasedRunner', max_iters=80000)
+checkpoint_config = dict(by_epoch=False, interval=4000)
+evaluation = dict(interval=4000, metric='mIoU')
diff --git a/FoodSeg103/configs/fp16/README.md b/FoodSeg103/configs/fp16/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8d12e4d78025313fb9689bb320b07520bd7648ef
--- /dev/null
+++ b/FoodSeg103/configs/fp16/README.md
@@ -0,0 +1,25 @@
+# Mixed Precision Training
+
+## Introduction
+
+[OTHERS]
+
+```latex
+@article{micikevicius2017mixed,
+ title={Mixed precision training},
+ author={Micikevicius, Paulius and Narang, Sharan and Alben, Jonah and Diamos, Gregory and Elsen, Erich and Garcia, David and Ginsburg, Boris and Houston, Michael and Kuchaiev, Oleksii and Venkatesh, Ganesh and others},
+ journal={arXiv preprint arXiv:1710.03740},
+ year={2017}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | R-101-D8 | 512x1024 | 80000 | 5.50 | 2.66 | 76.80 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes-50245227.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes/fcn_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230921.log.json) |
+| PSPNet | R-101-D8 | 512x1024 | 80000 | 5.47 | 2.68 | 79.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes-ade37931.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes/pspnet_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230919.log.json) |
+| DeepLabV3 | R-101-D8 | 512x1024 | 80000 | 5.91 | 1.93 | 80.48 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes-bc86dc84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) |
+| DeepLabV3+ | R-101-D8 | 512x1024 | 80000 | 6.46 | 2.60 | 80.46 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes-cc58bc8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes_20200717_230920.log.json) |
diff --git a/FoodSeg103/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..60d8350e98605c2445ce8359ca9a7a1951fe0085
--- /dev/null
+++ b/FoodSeg103/configs/fp16/deeplabv3_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c263d6907ec9ddfdad32b380a7d926d1391e393c
--- /dev/null
+++ b/FoodSeg103/configs/fp16/deeplabv3plus_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..8100a8e64d780c1b9c272b57e4e171c5e1a4120b
--- /dev/null
+++ b/FoodSeg103/configs/fp16/fcn_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py b/FoodSeg103/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..aefac2953abf65c10023599ec42c709a794935c8
--- /dev/null
+++ b/FoodSeg103/configs/fp16/pspnet_r101-d8_512x1024_80k_fp16_cityscapes.py
@@ -0,0 +1,3 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py'
+# fp16 settings
+optimizer_config = dict(type='Fp16OptimizerHook', loss_scale=512.)
diff --git a/FoodSeg103/configs/gcnet/README.md b/FoodSeg103/configs/gcnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..b840d5bf9f844e7af89803b48a43b76b887ced36
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/README.md
@@ -0,0 +1,48 @@
+# GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{cao2019gcnet,
+ title={Gcnet: Non-local networks meet squeeze-excitation networks and beyond},
+ author={Cao, Yue and Xu, Jiarui and Lin, Stephen and Wei, Fangyun and Hu, Han},
+ booktitle={Proceedings of the IEEE International Conference on Computer Vision Workshops},
+ pages={0--0},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| GCNet | R-50-D8 | 512x1024 | 40000 | 5.8 | 3.93 | 77.69 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436-4b0fd17b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes/gcnet_r50-d8_512x1024_40k_cityscapes_20200618_074436.log.json) |
+| GCNet | R-101-D8 | 512x1024 | 40000 | 9.2 | 2.61 | 78.28 | 79.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436-5e62567f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes/gcnet_r101-d8_512x1024_40k_cityscapes_20200618_074436.log.json) |
+| GCNet | R-50-D8 | 769x769 | 40000 | 6.5 | 1.67 | 78.12 | 80.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814-a26f4471.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_40k_cityscapes/gcnet_r50-d8_769x769_40k_cityscapes_20200618_182814.log.json) |
+| GCNet | R-101-D8 | 769x769 | 40000 | 10.5 | 1.13 | 78.95 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550-ca4f0a84.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_40k_cityscapes/gcnet_r101-d8_769x769_40k_cityscapes_20200619_092550.log.json) |
+| GCNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.48 | 80.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450-ef8f069b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes/gcnet_r50-d8_512x1024_80k_cityscapes_20200618_074450.log.json) |
+| GCNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.03 | 79.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450-778ebf69.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes/gcnet_r101-d8_512x1024_80k_cityscapes_20200618_074450.log.json) |
+| GCNet | R-50-D8 | 769x769 | 80000 | - | - | 78.68 | 80.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516-4839565b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_769x769_80k_cityscapes/gcnet_r50-d8_769x769_80k_cityscapes_20200619_092516.log.json) |
+| GCNet | R-101-D8 | 769x769 | 80000 | - | - | 79.18 | 80.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628-8e043423.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_769x769_80k_cityscapes/gcnet_r101-d8_769x769_80k_cityscapes_20200619_092628.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| GCNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.38 | 41.47 | 42.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146-91a6da41.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_80k_ade20k/gcnet_r50-d8_512x512_80k_ade20k_20200614_185146.log.json) |
+| GCNet | R-101-D8 | 512x512 | 80000 | 12 | 15.20 | 42.82 | 44.54 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811-c3fcb6dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_80k_ade20k/gcnet_r101-d8_512x512_80k_ade20k_20200615_020811.log.json) |
+| GCNet | R-50-D8 | 512x512 | 160000 | - | - | 42.37 | 43.52 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122-d95f3e1f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_160k_ade20k/gcnet_r50-d8_512x512_160k_ade20k_20200615_224122.log.json) |
+| GCNet | R-101-D8 | 512x512 | 160000 | - | - | 43.69 | 45.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406-615528d7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_160k_ade20k/gcnet_r101-d8_512x512_160k_ade20k_20200615_225406.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| GCNet | R-50-D8 | 512x512 | 20000 | 5.8 | 23.35 | 76.42 | 77.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701-3cbfdab1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_20k_voc12aug/gcnet_r50-d8_512x512_20k_voc12aug_20200617_165701.log.json) |
+| GCNet | R-101-D8 | 512x512 | 20000 | 9.2 | 14.80 | 77.41 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713-6c720aa9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_20k_voc12aug/gcnet_r101-d8_512x512_20k_voc12aug_20200617_165713.log.json) |
+| GCNet | R-50-D8 | 512x512 | 40000 | - | - | 76.24 | 77.63 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105-9797336d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r50-d8_512x512_40k_voc12aug/gcnet_r50-d8_512x512_40k_voc12aug_20200613_195105.log.json) |
+| GCNet | R-101-D8 | 512x512 | 40000 | - | - | 77.84 | 78.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806-1e38208d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/gcnet/gcnet_r101-d8_512x512_40k_voc12aug/gcnet_r101-d8_512x512_40k_voc12aug_20200613_185806.log.json) |
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..27bd9422dad49bc5a06f577ee45cd834bdbe3912
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f0f83fe39da31fe9a5b497e0481e1c79a33e764
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9888120f65b045df1c7d4d05fb010373abf82ccf
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b70ca8e46a0409379f5ae9809ce03de203426ad
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..b17c7a12b547ee4e1cd60d667c575eab06eb071c
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2183fc2db1ff188b0ad5418e55f71005da926cc
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..08a6031f20234b1cc1d792ea5d4891613503a185
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5efb61339cdbdde585f7814e9650be2e2df654ac
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './gcnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..610467c07204140bf604f8dda2aa57978c565ed3
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..155e28f42194112703bb21473e5e3dd0fca40d49
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..1549a4d5bf10cd3fd6e3bd57bf7a48e7e5e1ede8
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..a496204bdb061d975c40cb7ef2aaada40e020a13
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d85cf6550fea5da7cf1fa078eb4fa30e017166b4
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..89d5e1ae0f3ef44626f3b5534c504cbce7389a32
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..332495d3d7f7d7c7c0e0aca4e379cd54e2ed07de
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d6d9cb1c64bcf8c3e952b6f8adc11bec0403d106
--- /dev/null
+++ b/FoodSeg103/configs/gcnet/gcnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/gcnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/hrnet/README.md b/FoodSeg103/configs/hrnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d77cefe3e51091bc2264df8b201968addd81e8d
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/README.md
@@ -0,0 +1,59 @@
+# Deep High-Resolution Representation Learning for Human Pose Estimation
+
+## Introduction
+
+[ALGORITHM]
+
+```latext
+@inproceedings{SunXLW19,
+ title={Deep High-Resolution Representation Learning for Human Pose Estimation},
+ author={Ke Sun and Bin Xiao and Dong Liu and Jingdong Wang},
+ booktitle={CVPR},
+ year={2019}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W18-Small | 512x1024 | 40000 | 1.7 | 23.74 | 73.86 | 75.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216-93db27d0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_40k_cityscapes/fcn_hr18s_512x1024_40k_cityscapes_20200601_014216.log.json) |
+| FCN | HRNetV2p-W18 | 512x1024 | 40000 | 2.9 | 12.97 | 77.19 | 78.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216-f196fb4e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_40k_cityscapes/fcn_hr18_512x1024_40k_cityscapes_20200601_014216.log.json) |
+| FCN | HRNetV2p-W48 | 512x1024 | 40000 | 6.2 | 6.42 | 78.48 | 79.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240-a989b146.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_40k_cityscapes/fcn_hr48_512x1024_40k_cityscapes_20200601_014240.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 75.31 | 77.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700-1462b75d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_80k_cityscapes/fcn_hr18s_512x1024_80k_cityscapes_20200601_202700.log.json) |
+| FCN | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.65 | 80.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255-4e7b345e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_80k_cityscapes/fcn_hr18_512x1024_80k_cityscapes_20200601_223255.log.json) |
+| FCN | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 79.93 | 80.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606-58ea95d6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_80k_cityscapes/fcn_hr48_512x1024_80k_cityscapes_20200601_202606.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 76.31 | 78.31 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901-4a0797ea.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x1024_160k_cityscapes/fcn_hr18s_512x1024_160k_cityscapes_20200602_190901.log.json) |
+| FCN | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 78.80 | 80.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822-221e4a4f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x1024_160k_cityscapes/fcn_hr18_512x1024_160k_cityscapes_20200602_190822.log.json) |
+| FCN | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 80.65 | 81.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946-59b7973e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x1024_160k_cityscapes/fcn_hr48_512x1024_160k_cityscapes_20200602_190946.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W18-Small | 512x512 | 80000 | 3.8 | 38.66 | 31.38 | 32.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345-77fc814a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_80k_ade20k/fcn_hr18s_512x512_80k_ade20k_20200614_144345.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 80000 | 4.9 | 22.57 | 35.51 | 36.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145-66f20cb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_80k_ade20k/fcn_hr18_512x512_80k_ade20k_20200614_185145.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 80000 | 8.2 | 21.23 | 41.90 | 43.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946-7ba5258d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_80k_ade20k/fcn_hr48_512x512_80k_ade20k_20200614_193946.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 33.00 | 34.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413-870f65ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_160k_ade20k/fcn_hr18s_512x512_160k_ade20k_20200614_214413.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 160000 | - | - | 36.79 | 38.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426-ca961836.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_160k_ade20k/fcn_hr18_512x512_160k_ade20k_20200614_214426.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 160000 | - | - | 42.02 | 43.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407-a52fc02c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_160k_ade20k/fcn_hr48_512x512_160k_ade20k_20200614_214407.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W18-Small | 512x512 | 20000 | 1.8 | 43.36 | 65.20 | 68.55 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503-56e36088.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_20k_voc12aug/fcn_hr18s_512x512_20k_voc12aug_20200617_224503.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 20000 | 2.9 | 23.48 | 72.30 | 74.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503-488d45f7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_20k_voc12aug/fcn_hr18_512x512_20k_voc12aug_20200617_224503.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 20000 | 6.2 | 22.05 | 75.87 | 78.58 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419-89de05cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_20k_voc12aug/fcn_hr48_512x512_20k_voc12aug_20200617_224419.log.json) |
+| FCN | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 66.61 | 70.00 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648-4f8d6e7f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18s_512x512_40k_voc12aug/fcn_hr18s_512x512_40k_voc12aug_20200614_000648.log.json) |
+| FCN | HRNetV2p-W18 | 512x512 | 40000 | - | - | 72.90 | 75.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401-1b4b76cd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr18_512x512_40k_voc12aug/fcn_hr18_512x512_40k_voc12aug_20200613_224401.log.json) |
+| FCN | HRNetV2p-W48 | 512x512 | 40000 | - | - | 76.24 | 78.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111-1b0f18bc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_512x512_40k_voc12aug/fcn_hr48_512x512_40k_voc12aug_20200613_222111.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | HRNetV2p-W48 | 480x480 | 40000 | 6.1 | 8.86 | 45.14 | 47.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context_20200911_164852-667d00b0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_40k_pascal_context/fcn_hr48_480x480_40k_pascal_context-20200911_164852.log.json) |
+| FCN | HRNetV2p-W48 | 480x480 | 80000 | - | - | 45.84 | 47.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context_20200911_155322-847a6711.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/hrnet/fcn_hr48_480x480_80k_pascal_context/fcn_hr48_480x480_80k_pascal_context-20200911_155322.log.json) |
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py b/FoodSeg103/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ff05aa595399d77ee51552c243e489f395a820e
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_480x480_40k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py b/FoodSeg103/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..cf315a4f0e6f397768572c590a634cc1b9d298a9
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_480x480_80k_pascal_context.py
@@ -0,0 +1,8 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_context.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60),
+ test_cfg=dict(mode='slide', crop_size=(480, 480), stride=(320, 320)))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9f04e935c39b08de66629f913b30675ffff2a8fe
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_160k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..99760c36d8399204ca8e35f32690bcd369676852
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a653dda19255214a1a412b645abddd3fc5c0d853
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..45ed99b6813324a58575f9bb74ce0534626e10c4
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_160k_ade20k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(decode_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f06448b168af4d2dcc5a1f96e4430a7948b7e170
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_20k_voc12aug.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_20k.py'
+]
+model = dict(decode_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d74e95943afca04ba4073e411e0b713985384129
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_40k_voc12aug.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/pascal_voc12_aug.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(decode_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..52bc9f5e91f2fdf9ce8f9e3a873902dd8db56522
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18_512x512_80k_ade20k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fcn_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(decode_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py b/FoodSeg103/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..d09931048f762cd2ac224d62c2fe2ed8e0e148c8
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_480x480_40k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_480x480_40k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py b/FoodSeg103/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..584b7135fd95464f3d2c965440a0b92161cde09a
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_480x480_80k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_480x480_80k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ddbe3801f99dc21120548af85c55c7cdcfadaea2
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_160k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x1024_160k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e31d26e093b6cb2d59b24bb3060c92bd7dccdea
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee2831d99d859c419b158b5f828d8a84063564ea
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..22a3ce0b38f36efc96595fe1c3ef428fc1575eb0
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..d0de5df75242e58ba572277d6fc5cf93675a097e
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_20k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_20k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..409db3c628edf63cd40e002f436884ce1fb75970
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_40k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_40k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8400979b1e94dd42343de656ffbc5fbb7a07944
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr18s_512x512_80k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './fcn_hr18_512x512_80k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py b/FoodSeg103/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0e2d96cb6ce7249852cb1d9b36a2f24bdce00199
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_480x480_40k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_480x480_40k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py b/FoodSeg103/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..e28164e3dc9d321bf0a97b37f14f3184f95a27a5
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_480x480_80k_pascal_context.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_480x480_80k_pascal_context.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..394a61c99f038c94fce58ac9c422b7c3ee4b5f50
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_160k_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x1024_160k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d37ab1d09ef51b1321ed8b3634fd99445efee543
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_40k_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9bab32b52ca41155062c7655986ed84677a8280
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x1024_80k_cityscapes.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..dff4fea85ced568c38d39408d459697e88ca0faa
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_160k_ade20k.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8d1deb98659d05755c6316c2aff2295afb0bb9c
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_20k_voc12aug.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_20k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1084a57e978195df6d45a9a00415953ddbaeeb51
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_40k_voc12aug.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_40k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7eca7fa4b8102c6225af3b484ffff5bdc7c0f201
--- /dev/null
+++ b/FoodSeg103/configs/hrnet/fcn_hr48_512x512_80k_ade20k.py
@@ -0,0 +1,10 @@
+_base_ = './fcn_hr18_512x512_80k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=dict(
+ in_channels=[48, 96, 192, 384], channels=sum([48, 96, 192, 384])))
diff --git a/FoodSeg103/configs/mobilenet_v2/README.md b/FoodSeg103/configs/mobilenet_v2/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e0e75e028db703129551402ae9d63c6a2861dc4b
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/README.md
@@ -0,0 +1,35 @@
+# MobileNetV2: Inverted Residuals and Linear Bottlenecks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{sandler2018mobilenetv2,
+ title={Mobilenetv2: Inverted residuals and linear bottlenecks},
+ author={Sandler, Mark and Howard, Andrew and Zhu, Menglong and Zhmoginov, Andrey and Chen, Liang-Chieh},
+ booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
+ pages={4510--4520},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | M-V2-D8 | 512x1024 | 80000 | 3.4 | 14.2 | 61.54 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-d24c28c1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes/fcn_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) |
+| PSPNet | M-V2-D8 | 512x1024 | 80000 | 3.6 | 11.2 | 70.23 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes_20200825_124817-19e81d51.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes/pspnet_m-v2-d8_512x1024_80k_cityscapes-20200825_124817.log.json) |
+| DeepLabV3 | M-V2-D8 | 512x1024 | 80000 | 3.9 | 8.4 | 73.84 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-bef03590.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes/deeplabv3_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) |
+| DeepLabV3+ | M-V2-D8 | 512x1024 | 80000 | 5.1 | 8.4 | 75.20 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes_20200825_124836-d256dd4b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes-20200825_124836.log.json) |
+
+### ADE20k
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | M-V2-D8 | 512x512 | 160000 | 6.5 | 64.4 | 19.71 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k_20200825_214953-c40e1095.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k/fcn_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) |
+| PSPNet | M-V2-D8 | 512x512 | 160000 | 6.5 | 57.7 | 29.68 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k_20200825_214953-f5942f7a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k/pspnet_m-v2-d8_512x512_160k_ade20k-20200825_214953.log.json) |
+| DeepLabV3 | M-V2-D8 | 512x512 | 160000 | 6.8 | 39.9 | 34.08 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k_20200825_223255-63986343.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k/deeplabv3_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) |
+| DeepLabV3+ | M-V2-D8 | 512x512 | 160000 | 8.2 | 43.1 | 34.02 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k_20200825_223255-465a01d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k/deeplabv3plus_m-v2-d8_512x512_160k_ade20k-20200825_223255.log.json) |
diff --git a/FoodSeg103/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..267483d88ff25d75dc18c5c2d37375cd77c9639c
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..e15b8cc82b09ac3e64875936cdfd0f663aaba936
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/deeplabv3_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4533d79a25771905d7f1900bf7b34037885a77a
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320, c1_in_channels=24),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7615a7c19a3f19635b71801a55e4544be4d215b5
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/deeplabv3plus_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320, c1_in_channels=24),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a535bd0ed8a4883134acdc52cf3f77c8d897ce82
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/fcn_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..c5f6ab0d62e269e44dac016eb5ac58f49c1fa292
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/fcn_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7403bee864d833bcc31160665e4b54fdd738cc13
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/pspnet_m-v2-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,12 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5b72ac830be29b865ed52adaf41f2fe800f252cc
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v2/pspnet_m-v2-d8_512x512_160k_ade20k.py
@@ -0,0 +1,12 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='mmcls://mobilenet_v2',
+ backbone=dict(
+ _delete_=True,
+ type='MobileNetV2',
+ widen_factor=1.,
+ strides=(1, 2, 2, 1, 1, 1, 1),
+ dilations=(1, 1, 1, 2, 2, 4, 4),
+ out_indices=(1, 2, 4, 6)),
+ decode_head=dict(in_channels=320),
+ auxiliary_head=dict(in_channels=96))
diff --git a/FoodSeg103/configs/mobilenet_v3/README.md b/FoodSeg103/configs/mobilenet_v3/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2bad2a731c63ba51ee05518af893618cf7ed94a0
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v3/README.md
@@ -0,0 +1,28 @@
+# Searching for MobileNetV3
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{Howard_2019_ICCV,
+ title={Searching for MobileNetV3},
+ author={Howard, Andrew and Sandler, Mark and Chu, Grace and Chen, Liang-Chieh and Chen, Bo and Tan, Mingxing and Wang, Weijun and Zhu, Yukun and Pang, Ruoming and Vasudevan, Vijay and Le, Quoc V. and Adam, Hartwig},
+ booktitle={The IEEE International Conference on Computer Vision (ICCV)},
+ pages={1314-1324},
+ month={October},
+ year={2019},
+ doi={10.1109/ICCV.2019.00140}}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| LRASPP | M-V3-D8 | 512x1024 | 320000 | 8.9 | 15.22 | 69.54 | 70.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes_20201224_220337-cfe8fb07.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes/lraspp_m-v3-d8_512x1024_320k_cityscapes-20201224_220337.log.json)|
+| LRASPP | M-V3-D8 (scratch) | 512x1024 | 320000 | 8.9 | 14.77 | 67.87 | 69.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes_20201224_220337-9f29cd72.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes-20201224_220337.log.json)|
+| LRASPP | M-V3s-D8 | 512x1024 | 320000 | 5.3 | 23.64 | 64.11 | 66.42 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes_20201224_223935-61565b34.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes/lraspp_m-v3s-d8_512x1024_320k_cityscapes-20201224_223935.log.json)|
+| LRASPP | M-V3s-D8 (scratch) | 512x1024 | 320000 | 5.3 | 24.50 | 62.74 | 65.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes_20201224_223935-03daeabb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes-20201224_223935.log.json)|
diff --git a/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e59a78b48be3a0997a31524fd78e7fad5636bc82
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3-d8_512x1024_320k_cityscapes.py
@@ -0,0 +1,11 @@
+_base_ = [
+ '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+
+model = dict(pretrained='open-mmlab://contrib/mobilenet_v3_large')
+
+# Re-config the data sampler.
+data = dict(samples_per_gpu=4, workers_per_gpu=4)
+
+runner = dict(type='IterBasedRunner', max_iters=320000)
diff --git a/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3c5435142db6b1f81421f5fd96d07ece32b5f38
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/lraspp_m-v3-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+
+# Re-config the data sampler.
+data = dict(samples_per_gpu=4, workers_per_gpu=4)
+
+runner = dict(type='IterBasedRunner', max_iters=320000)
diff --git a/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4e368b2a11ed6433d8f2594a2cc3184fe5ddfff
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3s-d8_512x1024_320k_cityscapes.py
@@ -0,0 +1,23 @@
+_base_ = './lraspp_m-v3-d8_512x1024_320k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ pretrained='open-mmlab://contrib/mobilenet_v3_small',
+ backbone=dict(
+ type='MobileNetV3',
+ arch='small',
+ out_indices=(0, 1, 12),
+ norm_cfg=norm_cfg),
+ decode_head=dict(
+ type='LRASPPHead',
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
diff --git a/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c5f707200c5d8b6d39493762baf59023dcaad11
--- /dev/null
+++ b/FoodSeg103/configs/mobilenet_v3/lraspp_m-v3s-d8_scratch_512x1024_320k_cityscapes.py
@@ -0,0 +1,22 @@
+_base_ = './lraspp_m-v3-d8_scratch_512x1024_320k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', eps=0.001, requires_grad=True)
+model = dict(
+ type='EncoderDecoder',
+ backbone=dict(
+ type='MobileNetV3',
+ arch='small',
+ out_indices=(0, 1, 12),
+ norm_cfg=norm_cfg),
+ decode_head=dict(
+ type='LRASPPHead',
+ in_channels=(16, 16, 576),
+ in_index=(0, 1, 2),
+ channels=128,
+ input_transform='multiple_select',
+ dropout_ratio=0.1,
+ num_classes=19,
+ norm_cfg=norm_cfg,
+ act_cfg=dict(type='ReLU'),
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)))
diff --git a/FoodSeg103/configs/nonlocal_net/README.md b/FoodSeg103/configs/nonlocal_net/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..76352e265a9db69640c650e192f66ab75b1f19b3
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/README.md
@@ -0,0 +1,48 @@
+# Non-local Neural Networks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{wang2018non,
+ title={Non-local neural networks},
+ author={Wang, Xiaolong and Girshick, Ross and Gupta, Abhinav and He, Kaiming},
+ booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
+ pages={7794--7803},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|----------|----------|-----------|--------:|----------|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| NonLocal | R-50-D8 | 512x1024 | 40000 | 7.4 | 2.72 | 78.24 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748-c75e81e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes/nonlocal_r50-d8_512x1024_40k_cityscapes_20200605_210748.log.json) |
+| NonLocal | R-101-D8 | 512x1024 | 40000 | 10.9 | 1.95 | 78.66 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748-d63729fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes/nonlocal_r101-d8_512x1024_40k_cityscapes_20200605_210748.log.json) |
+| NonLocal | R-50-D8 | 769x769 | 40000 | 8.9 | 1.52 | 78.33 | 79.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243-82ef6749.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes/nonlocal_r50-d8_769x769_40k_cityscapes_20200530_045243.log.json) |
+| NonLocal | R-101-D8 | 769x769 | 40000 | 12.8 | 1.05 | 78.57 | 80.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348-8fe9a9dc.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes/nonlocal_r101-d8_769x769_40k_cityscapes_20200530_045348.log.json) |
+| NonLocal | R-50-D8 | 512x1024 | 80000 | - | - | 78.01 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518-d6839fae.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes/nonlocal_r50-d8_512x1024_80k_cityscapes_20200607_193518.log.json) |
+| NonLocal | R-101-D8 | 512x1024 | 80000 | - | - | 78.93 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411-32700183.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes/nonlocal_r101-d8_512x1024_80k_cityscapes_20200607_183411.log.json) |
+| NonLocal | R-50-D8 | 769x769 | 80000 | - | - | 79.05 | 80.68 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506-1f9792f6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes/nonlocal_r50-d8_769x769_80k_cityscapes_20200607_193506.log.json) |
+| NonLocal | R-101-D8 | 769x769 | 80000 | - | - | 79.40 | 80.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428-0e1fa4f9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes/nonlocal_r101-d8_769x769_80k_cityscapes_20200607_183428.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| NonLocal | R-50-D8 | 512x512 | 80000 | 9.1 | 21.37 | 40.75 | 42.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801-5ae0aa33.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k/nonlocal_r50-d8_512x512_80k_ade20k_20200615_015801.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 80000 | 12.6 | 13.97 | 42.90 | 44.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758-24105919.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k/nonlocal_r101-d8_512x512_80k_ade20k_20200615_015758.log.json) |
+| NonLocal | R-50-D8 | 512x512 | 160000 | - | - | 42.03 | 43.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410-baef45e3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k/nonlocal_r50-d8_512x512_160k_ade20k_20200616_005410.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 160000 | - | - | 43.36 | 44.83 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422-affd0f8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k/nonlocal_r101-d8_512x512_160k_ade20k_20200616_003422.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| NonLocal | R-50-D8 | 512x512 | 20000 | 6.4 | 21.21 | 76.20 | 77.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613-07f2a57c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug/nonlocal_r50-d8_512x512_20k_voc12aug_20200617_222613.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 20000 | 9.8 | 14.01 | 78.15 | 78.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615-948c68ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug/nonlocal_r101-d8_512x512_20k_voc12aug_20200617_222615.log.json) |
+| NonLocal | R-50-D8 | 512x512 | 40000 | - | - | 76.65 | 77.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028-0139d4a9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug/nonlocal_r50-d8_512x512_40k_voc12aug_20200614_000028.log.json) |
+| NonLocal | R-101-D8 | 512x512 | 40000 | - | - | 78.27 | 79.12 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028-7e5ff470.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug/nonlocal_r101-d8_512x512_40k_voc12aug_20200614_000028.log.json) |
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef7b06dd3806c1d93be41943ab4d7d49f68ac830
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a1e66cf1c239eac3c6a4876a35d82e7b6ccec2e
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..df9c2aca9c7c1999d74a08a58aca5d220f7df54a
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..490f9873a29f2626ad764825eec97f16ee7f9f96
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..40d9190fba223251b794c105b036e4794865f785
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..0c6f60dac7b457d3b936a5f7f43eb84713c77e05
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..23e6da7f23180c2350253ea400f444c0c3064fd6
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0627e2b5a76dead859212d4cab116c160df21404
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './nonlocal_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d4dc7390370d0ffe21e7dcb686eeff7261952c4
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b0672b687ade8d554b71fdf0bc54de9f024fa30c
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1adfbab882d9825a3f348ed99e401d1f164cd11
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e808d8072f34d09a7b0859f90261dd66c8815dd
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..66b443abec3282242c0f794a2f91e066596e7ee9
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..8a7a2f509ba6627ad5ab972ac090362bbcd2ecb7
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..75adef324877d56c157b457eecbf8446aa6b192f
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0726c293d6026898110f7fa55d5e7d2d55d7a02
--- /dev/null
+++ b/FoodSeg103/configs/nonlocal_net/nonlocal_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/nonlocal_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/ocrnet/README.md b/FoodSeg103/configs/ocrnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0a4c75c708330be9163dae675b0c1f84d7722728
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/README.md
@@ -0,0 +1,69 @@
+# Object-Contextual Representations for Semantic Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{YuanW18,
+ title={Ocnet: Object context network for scene parsing},
+ author={Yuhui Yuan and Jingdong Wang},
+ booktitle={arXiv preprint arXiv:1809.00916},
+ year={2018}
+}
+
+@article{YuanCW20,
+ title={Object-Contextual Representations for Semantic Segmentation},
+ author={Yuhui Yuan and Xilin Chen and Jingdong Wang},
+ booktitle={ECCV},
+ year={2020}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+#### HRNet backbone
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | HRNetV2p-W18-Small | 512x1024 | 40000 | 3.5 | 10.45 | 74.30 | 75.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304-fa2436c2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes/ocrnet_hr18s_512x1024_40k_cityscapes_20200601_033304.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x1024 | 40000 | 4.7 | 7.50 | 77.72 | 79.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320-401c5bdd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes/ocrnet_hr18_512x1024_40k_cityscapes_20200601_033320.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x1024 | 40000 | 8 | 4.22 | 80.58 | 81.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336-55b32491.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes/ocrnet_hr48_512x1024_40k_cityscapes_20200601_033336.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x1024 | 80000 | - | - | 77.16 | 78.66 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735-55979e63.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes/ocrnet_hr18s_512x1024_80k_cityscapes_20200601_222735.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x1024 | 80000 | - | - | 78.57 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521-c2e1dd4a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes/ocrnet_hr18_512x1024_80k_cityscapes_20200614_230521.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x1024 | 80000 | - | - | 80.70 | 81.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752-9076bcdf.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes/ocrnet_hr48_512x1024_80k_cityscapes_20200601_222752.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x1024 | 160000 | - | - | 78.45 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005-f4a7af28.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes/ocrnet_hr18s_512x1024_160k_cityscapes_20200602_191005.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x1024 | 160000 | - | - | 79.47 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001-b9172d0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes/ocrnet_hr18_512x1024_160k_cityscapes_20200602_191001.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x1024 | 160000 | - | - | 81.35 | 82.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037-dfbf1b0c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes/ocrnet_hr48_512x1024_160k_cityscapes_20200602_191037.log.json) |
+
+#### ResNet backbone
+
+| Method | Backbone | Crop Size | Batch Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------|----------|-----------|----------------|------|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | R-101-D8 | 512x1024 | 8 | 40000 | - | - | 80.09 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes-02ac0f13.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes/ocrnet_r101-d8_512x1024_40k_b8_cityscapes_20200717_110721.log.json) |
+| OCRNet | R-101-D8 | 512x1024 | 16 | 40000 | 8.8 | 3.02 | 80.30 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes-db500f80.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes/ocrnet_r101-d8_512x1024_40k_b16_cityscapes_20200723_193726.log.json) |
+| OCRNet | R-101-D8 | 512x1024 | 16 | 80000 | 8.8 | 3.02 | 80.81 | - | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes-78688424.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes/ocrnet_r101-d8_512x1024_80k_b16_cityscapes_20200723_192421.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 80000 | 6.7 | 28.98 | 35.06 | 35.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600-e80b62af.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_80k_ade20k/ocrnet_hr18s_512x512_80k_ade20k_20200615_055600.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 80000 | 7.9 | 18.93 | 37.79 | 39.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157-d173d83b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_80k_ade20k/ocrnet_hr18_512x512_80k_ade20k_20200615_053157.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 80000 | 11.2 | 16.99 | 43.00 | 44.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518-d168c2d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_80k_ade20k/ocrnet_hr48_512x512_80k_ade20k_20200615_021518.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 160000 | - | - | 37.19 | 38.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505-8e913058.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_160k_ade20k/ocrnet_hr18s_512x512_160k_ade20k_20200615_184505.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 160000 | - | - | 39.32 | 40.80 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940-d8fcd9d1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_160k_ade20k/ocrnet_hr18_512x512_160k_ade20k_20200615_200940.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 160000 | - | - | 43.25 | 44.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705-a073726d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_160k_ade20k/ocrnet_hr48_512x512_160k_ade20k_20200615_184705.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|--------------------|-----------|--------:|----------|----------------|------:|--------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 20000 | 3.5 | 31.55 | 71.70 | 73.84 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913-02b04fcb.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug/ocrnet_hr18s_512x512_20k_voc12aug_20200617_233913.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 20000 | 4.7 | 19.91 | 74.75 | 77.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932-8954cbb7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_20k_voc12aug/ocrnet_hr18_512x512_20k_voc12aug_20200617_233932.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 20000 | 8.1 | 17.83 | 77.72 | 79.87 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932-9e82080a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_20k_voc12aug/ocrnet_hr48_512x512_20k_voc12aug_20200617_233932.log.json) |
+| OCRNet | HRNetV2p-W18-Small | 512x512 | 40000 | - | - | 72.76 | 74.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025-42b587ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug/ocrnet_hr18s_512x512_40k_voc12aug_20200614_002025.log.json) |
+| OCRNet | HRNetV2p-W18 | 512x512 | 40000 | - | - | 74.98 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958-714302be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr18_512x512_40k_voc12aug/ocrnet_hr18_512x512_40k_voc12aug_20200614_015958.log.json) |
+| OCRNet | HRNetV2p-W48 | 512x512 | 40000 | - | - | 77.14 | 79.71 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958-255bc5ce.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/ocrnet/ocrnet_hr48_512x512_40k_voc12aug/ocrnet_hr48_512x512_40k_voc12aug_20200614_015958.log.json) |
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1c86eba17c46a863091d999b1a090e1237202ec5
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_160k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..2c73b3839c8c1bc859eb3b8864256a00cfd022fe
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..506ad9319a9418f50650c477698c9b5cb9bf6663
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3c86e18ea65c6aaa36a4fb6e2708f08c7ae1698
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_160k_ade20k.py
@@ -0,0 +1,35 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab9d6446c9089bfae533b9dcd66e1352d81f74d0
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_20k_voc12aug.py
@@ -0,0 +1,36 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..df79a9cf13963d26384b00ced0cf5efa9f68a420
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_40k_voc12aug.py
@@ -0,0 +1,36 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=21,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ad67722a50c2b2ece5fcb7f0dd1819061ff6b3e
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18_512x512_80k_ade20k.py
@@ -0,0 +1,35 @@
+_base_ = [
+ '../_base_/models/ocrnet_hr18.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[18, 36, 72, 144],
+ channels=sum([18, 36, 72, 144]),
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ kernel_size=1,
+ num_convs=1,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[18, 36, 72, 144],
+ in_index=(0, 1, 2, 3),
+ input_transform='resize_concat',
+ channels=512,
+ ocr_channels=256,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc7909785f743071cad2cd1032000405435f81d4
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_160k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x1024_160k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..923731f74f80c11e196f6099b1c84875686cd441
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x1024_40k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..be6bf16a2fd234f3526bf8fb8c30179f1ef9df78
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..81f3d5cb91607134bb1d844d78df7a3c411c134d
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..ceb944815b5a979ddb72015295375f6fe0c31a89
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_20k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_20k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..70babc91c99eb99ee4f941b34ea886236531832e
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_40k_voc12aug.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_40k_voc12aug.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..36e77219ac2d7ee6795db7c40ad7341749a3b1c7
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr18s_512x512_80k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = './ocrnet_hr18_512x512_80k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w18_small',
+ backbone=dict(
+ extra=dict(
+ stage1=dict(num_blocks=(2, )),
+ stage2=dict(num_blocks=(2, 2)),
+ stage3=dict(num_modules=3, num_blocks=(2, 2, 2)),
+ stage4=dict(num_modules=2, num_blocks=(2, 2, 2, 2)))))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c094391b1dfcef2fa6278f0c181fb50c303f7a4c
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_160k_cityscapes.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x1024_160k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0aada9d8dcd792fd4fc7da8908cc11d44a9ff521
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_40k_cityscapes.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x1024_40k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1b2e0094393151fa8975a0d53c48b6048b7e1929
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x1024_80k_cityscapes.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x1024_80k_cityscapes.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=19,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b3e8af9538e6ce3c929a902e3d1ee5be53469a5
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_160k_ade20k.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_160k_ade20k.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..c2dd6d1158bd31ecdd7874827fd37bffb5d26db6
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_20k_voc12aug.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_20k_voc12aug.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..89e6309f55f6b939f7d79271513da4934bbacbb6
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_40k_voc12aug.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_40k_voc12aug.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=21,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..04971226eb0fd6461b715358ac955dfb78102992
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_hr48_512x512_80k_ade20k.py
@@ -0,0 +1,39 @@
+_base_ = './ocrnet_hr18_512x512_80k_ade20k.py'
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(
+ pretrained='open-mmlab://msra/hrnetv2_w48',
+ backbone=dict(
+ extra=dict(
+ stage2=dict(num_channels=(48, 96)),
+ stage3=dict(num_channels=(48, 96, 192)),
+ stage4=dict(num_channels=(48, 96, 192, 384)))),
+ decode_head=[
+ dict(
+ type='FCNHead',
+ in_channels=[48, 96, 192, 384],
+ channels=sum([48, 96, 192, 384]),
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ kernel_size=1,
+ num_convs=1,
+ norm_cfg=norm_cfg,
+ concat_input=False,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),
+ dict(
+ type='OCRHead',
+ in_channels=[48, 96, 192, 384],
+ channels=512,
+ ocr_channels=256,
+ input_transform='resize_concat',
+ in_index=(0, 1, 2, 3),
+ norm_cfg=norm_cfg,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+ ])
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..3dd70b74a0bf912d8a6fd39f1f26be7f7571ccd6
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b16_cityscapes.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
+optimizer = dict(lr=0.02)
+lr_config = dict(min_lr=2e-4)
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e34f3432e581ff506c9d2951c98b5aad7b1be6a5
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_40k_b8_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py b/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..33d96c76f68b92217ed38afe9538144dfedc4fd2
--- /dev/null
+++ b/FoodSeg103/configs/ocrnet/ocrnet_r101-d8_512x1024_80k_b16_cityscapes.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/ocrnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
+optimizer = dict(lr=0.02)
+lr_config = dict(min_lr=2e-4)
diff --git a/FoodSeg103/configs/point_rend/README.md b/FoodSeg103/configs/point_rend/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0dea3e31f8c1eb3da33251fa1e10227ae98561e3
--- /dev/null
+++ b/FoodSeg103/configs/point_rend/README.md
@@ -0,0 +1,32 @@
+# PointRend: Image Segmentation as Rendering
+
+## Introduction
+
+[ALGORITHM]
+
+```
+@misc{alex2019pointrend,
+ title={PointRend: Image Segmentation as Rendering},
+ author={Alexander Kirillov and Yuxin Wu and Kaiming He and Ross Girshick},
+ year={2019},
+ eprint={1912.08193},
+ archivePrefix={arXiv},
+ primaryClass={cs.CV}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PointRend | R-50 | 512x1024 | 80000 | 3.1 | 8.48 | 76.47 | 78.13 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes_20200711_015821-bb1ff523.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x1024_80k_cityscapes/pointrend_r50_512x1024_80k_cityscapes-20200715_214714.log.json) |
+| PointRend | R-101 | 512x1024 | 80000 | 4.2 | 7.00 | 78.30 | 79.97 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes_20200711_170850-d0ca84be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x1024_80k_cityscapes/pointrend_r101_512x1024_80k_cityscapes-20200715_214824.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|-----------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PointRend | R-50 | 512x512 | 160000 | 5.1 | 17.31 | 37.64 | 39.17 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k_20200807_232644-ac3febf2.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r50_512x512_160k_ade20k/pointrend_r50_512x512_160k_ade20k-20200807_232644.log.json) |
+| PointRend | R-101 | 512x512 | 160000 | 6.1 | 15.50 | 40.02 | 41.60 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k_20200808_030852-8834902a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/point_rend/pointrend_r101_512x512_160k_ade20k/pointrend_r101_512x512_160k_ade20k-20200808_030852.log.json) |
diff --git a/FoodSeg103/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py b/FoodSeg103/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a8c14c8cf91d7cbcc05065a6dc387101dff8cdf6
--- /dev/null
+++ b/FoodSeg103/configs/point_rend/pointrend_r101_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pointrend_r50_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py b/FoodSeg103/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d1f8c8154431b056fb8371772f03dfa49ac1ad3
--- /dev/null
+++ b/FoodSeg103/configs/point_rend/pointrend_r101_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './pointrend_r50_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py b/FoodSeg103/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..96cbaa48d61ee208117d074e9f06bf4218407d78
--- /dev/null
+++ b/FoodSeg103/configs/point_rend/pointrend_r50_512x1024_80k_cityscapes.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/pointrend_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+lr_config = dict(warmup='linear', warmup_iters=200)
diff --git a/FoodSeg103/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py b/FoodSeg103/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..db8c634c0f889c69ce80f86c445c493dcfdbd3c8
--- /dev/null
+++ b/FoodSeg103/configs/point_rend/pointrend_r50_512x512_160k_ade20k.py
@@ -0,0 +1,32 @@
+_base_ = [
+ '../_base_/models/pointrend_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+norm_cfg = dict(type='SyncBN', requires_grad=True)
+model = dict(decode_head=[
+ dict(
+ type='FPNHead',
+ in_channels=[256, 256, 256, 256],
+ in_index=[0, 1, 2, 3],
+ feature_strides=[4, 8, 16, 32],
+ channels=128,
+ dropout_ratio=-1,
+ num_classes=150,
+ norm_cfg=norm_cfg,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
+ dict(
+ type='PointHead',
+ in_channels=[256],
+ in_index=[0],
+ channels=256,
+ num_fcs=3,
+ coarse_pred_each_layer=True,
+ dropout_ratio=-1,
+ num_classes=150,
+ align_corners=False,
+ loss_decode=dict(
+ type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0))
+])
+lr_config = dict(warmup='linear', warmup_iters=200)
diff --git a/FoodSeg103/configs/psanet/README.md b/FoodSeg103/configs/psanet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..fcb24103b8e2dd649c0ad8938319f201e3254d19
--- /dev/null
+++ b/FoodSeg103/configs/psanet/README.md
@@ -0,0 +1,48 @@
+# PSANet: Point-wise Spatial Attention Network for Scene Parsing
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{zhao2018psanet,
+ title={Psanet: Point-wise spatial attention network for scene parsing},
+ author={Zhao, Hengshuang and Zhang, Yi and Liu, Shu and Shi, Jianping and Change Loy, Chen and Lin, Dahua and Jia, Jiaya},
+ booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
+ pages={267--283},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSANet | R-50-D8 | 512x1024 | 40000 | 7 | 3.17 | 77.63 | 79.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117-99fac37c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_40k_cityscapes/psanet_r50-d8_512x1024_40k_cityscapes_20200606_103117.log.json) |
+| PSANet | R-101-D8 | 512x1024 | 40000 | 10.5 | 2.20 | 79.14 | 80.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418-27b9cfa7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_40k_cityscapes/psanet_r101-d8_512x1024_40k_cityscapes_20200606_001418.log.json) |
+| PSANet | R-50-D8 | 769x769 | 40000 | 7.9 | 1.40 | 77.99 | 79.64 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717-d5365506.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_40k_cityscapes/psanet_r50-d8_769x769_40k_cityscapes_20200530_033717.log.json) |
+| PSANet | R-101-D8 | 769x769 | 40000 | 11.9 | 0.98 | 78.43 | 80.26 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107-997da1e6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_40k_cityscapes/psanet_r101-d8_769x769_40k_cityscapes_20200530_035107.log.json) |
+| PSANet | R-50-D8 | 512x1024 | 80000 | - | - | 77.24 | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842-ab60a24f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x1024_80k_cityscapes/psanet_r50-d8_512x1024_80k_cityscapes_20200606_161842.log.json) |
+| PSANet | R-101-D8 | 512x1024 | 80000 | - | - | 79.31 | 80.53 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823-0f73a169.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x1024_80k_cityscapes/psanet_r101-d8_512x1024_80k_cityscapes_20200606_161823.log.json) |
+| PSANet | R-50-D8 | 769x769 | 80000 | - | - | 79.31 | 80.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134-fe42f49e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_769x769_80k_cityscapes/psanet_r50-d8_769x769_80k_cityscapes_20200606_225134.log.json) |
+| PSANet | R-101-D8 | 769x769 | 80000 | - | - | 79.69 | 80.89 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550-7665827b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_769x769_80k_cityscapes/psanet_r101-d8_769x769_80k_cityscapes_20200606_214550.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSANet | R-50-D8 | 512x512 | 80000 | 9 | 18.91 | 41.14 | 41.91 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141-835e4b97.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_80k_ade20k/psanet_r50-d8_512x512_80k_ade20k_20200614_144141.log.json) |
+| PSANet | R-101-D8 | 512x512 | 80000 | 12.5 | 13.13 | 43.80 | 44.75 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117-1fab60d4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_80k_ade20k/psanet_r101-d8_512x512_80k_ade20k_20200614_185117.log.json) |
+| PSANet | R-50-D8 | 512x512 | 160000 | - | - | 41.67 | 42.95 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258-148077dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_160k_ade20k/psanet_r50-d8_512x512_160k_ade20k_20200615_161258.log.json) |
+| PSANet | R-101-D8 | 512x512 | 160000 | - | - | 43.74 | 45.38 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537-dbfa564c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_160k_ade20k/psanet_r101-d8_512x512_160k_ade20k_20200615_161537.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSANet | R-50-D8 | 512x512 | 20000 | 6.9 | 18.24 | 76.39 | 77.34 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413-2f1bbaa1.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_20k_voc12aug/psanet_r50-d8_512x512_20k_voc12aug_20200617_102413.log.json) |
+| PSANet | R-101-D8 | 512x512 | 20000 | 10.4 | 12.63 | 77.91 | 79.30 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624-946fef11.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_20k_voc12aug/psanet_r101-d8_512x512_20k_voc12aug_20200617_110624.log.json) |
+| PSANet | R-50-D8 | 512x512 | 40000 | - | - | 76.30 | 77.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946-f596afb5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r50-d8_512x512_40k_voc12aug/psanet_r50-d8_512x512_40k_voc12aug_20200613_161946.log.json) |
+| PSANet | R-101-D8 | 512x512 | 40000 | - | - | 77.73 | 79.05 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946-1f560f9e.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/psanet/psanet_r101-d8_512x512_40k_voc12aug/psanet_r101-d8_512x512_40k_voc12aug_20200613_161946.log.json) |
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..69d212f158552cf5a24f62174b24a9d4976477bb
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc25d6aaf67ccb7e9fcb44ba2d803bebfa31b160
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f6795e5ef0e4bf1d10ee7ed4f608bf93ac24216
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a3c43495bbf9d302216d7ddf62df75446907a36
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f62eef9773ddf41d996104de571bcda00c488e14
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8865a7c4d795d9de3f5bc6b762b305b3cabc22f
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ffc99f010903267fc7c1893f4a6b0dcd2cbe42e6
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a9efc55ad2062facf3a568f8cdbba76c8c55950
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './psanet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..6671fcb4bf8430bc0128cd93a4b8cedea1856b03
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a441013a4c1adc39fc064dbac23caaac9efdc4a6
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..9c6364eb43e2abc95011205b569627ff9367d0e5
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(mask_size=(66, 66), num_classes=150),
+ auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..af06cb66cc808c206d6946a4b2420a6942d3dc7e
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..803c42da35eda861bf32ce0e7866cdc9fad96d0d
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..0141a6d0925c2a2aa37517670a9f12ac7d3a02d4
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(mask_size=(66, 66), num_classes=150),
+ auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..690f8b5ef359be8a8be3a2d768aede24216a8706
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..0966b4770cc649e95525c366b09801408b99567a
--- /dev/null
+++ b/FoodSeg103/configs/psanet/psanet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/psanet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/pspnet/README.md b/FoodSeg103/configs/pspnet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..931cad900680281d6970626b511124704e954c43
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/README.md
@@ -0,0 +1,62 @@
+# Pyramid Scene Parsing Network
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{zhao2017pspnet,
+ title={Pyramid Scene Parsing Network},
+ author={Zhao, Hengshuang and Shi, Jianping and Qi, Xiaojuan and Wang, Xiaogang and Jia, Jiaya},
+ booktitle={CVPR},
+ year={2017}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-50-D8 | 512x1024 | 40000 | 6.1 | 4.07 | 77.85 | 79.18 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338.log.json) |
+| PSPNet | R-101-D8 | 512x1024 | 40000 | 9.6 | 2.68 | 78.34 | 79.74 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751-467e7cf4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes/pspnet_r101-d8_512x1024_40k_cityscapes_20200604_232751.log.json) |
+| PSPNet | R-50-D8 | 769x769 | 40000 | 6.9 | 1.76 | 78.26 | 79.88 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725-86638686.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_40k_cityscapes/pspnet_r50-d8_769x769_40k_cityscapes_20200606_112725.log.json) |
+| PSPNet | R-101-D8 | 769x769 | 40000 | 10.9 | 1.15 | 79.08 | 80.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753-61c6f5be.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_40k_cityscapes/pspnet_r101-d8_769x769_40k_cityscapes_20200606_112753.log.json) |
+| PSPNet | R-18-D8 | 512x1024 | 80000 | 1.7 | 15.71 | 74.87 | 76.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes_20201225_021458-09ffa746.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes/pspnet_r18-d8_512x1024_80k_cityscapes-20201225_021458.log.json) |
+| PSPNet | R-50-D8 | 512x1024 | 80000 | - | - | 78.55 | 79.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131-2376f12b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes/pspnet_r50-d8_512x1024_80k_cityscapes_20200606_112131.log.json) |
+| PSPNet | R-101-D8 | 512x1024 | 80000 | - | - | 79.76 | 81.01 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211-e1e1100f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes/pspnet_r101-d8_512x1024_80k_cityscapes_20200606_112211.log.json) |
+| PSPNet | R-18-D8 | 769x769 | 80000 | 1.9 | 6.20 | 75.90 | 77.86 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes_20201225_021458-3deefc62.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18-d8_769x769_80k_cityscapes/pspnet_r18-d8_769x769_80k_cityscapes-20201225_021458.log.json) |
+| PSPNet | R-50-D8 | 769x769 | 80000 | - | - | 79.59 | 80.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121-5ccf03dd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_769x769_80k_cityscapes/pspnet_r50-d8_769x769_80k_cityscapes_20200606_210121.log.json) |
+| PSPNet | R-101-D8 | 769x769 | 80000 | - | - | 79.77 | 81.06 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055-dba412fa.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_769x769_80k_cityscapes/pspnet_r101-d8_769x769_80k_cityscapes_20200606_225055.log.json) |
+| PSPNet | R-18b-D8 | 512x1024 | 80000 | 1.5 | 16.28 | 74.23 | 75.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes_20201226_063116-26928a60.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes/pspnet_r18b-d8_512x1024_80k_cityscapes-20201226_063116.log.json) |
+| PSPNet | R-50b-D8 | 512x1024 | 80000 | 6.0 | 4.30 | 78.22 | 79.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes_20201225_094315-6344287a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes/pspnet_r50b-d8_512x1024_80k_cityscapes-20201225_094315.log.json) |
+| PSPNet | R-101b-D8| 512x1024 | 80000 | 9.5 | 2.76 | 79.69 | 80.79 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes_20201226_170012-3a4d38ab.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes/pspnet_r101b-d8_512x1024_80k_cityscapes-20201226_170012.log.json) |
+| PSPNet | R-18b-D8 | 769x769 | 80000 | 1.7 | 6.41 | 74.92 | 76.90 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes_20201226_080942-bf98d186.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes/pspnet_r18b-d8_769x769_80k_cityscapes-20201226_080942.log.json) |
+| PSPNet | R-50b-D8 | 769x769 | 80000 | 6.8 | 1.88 | 78.50 | 79.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes_20201225_094316-4c643cf6.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes/pspnet_r50b-d8_769x769_80k_cityscapes-20201225_094316.log.json) |
+| PSPNet | R-101b-D8| 769x769 | 80000 | 10.8 | 1.17 | 78.87 | 80.04 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes_20201226_171823-f0e7c293.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes/pspnet_r101b-d8_769x769_80k_cityscapes-20201226_171823.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-50-D8 | 512x512 | 80000 | 8.5 | 23.53 | 41.13 | 41.94 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128-15a8b914.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_80k_ade20k/pspnet_r50-d8_512x512_80k_ade20k_20200615_014128.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 80000 | 12 | 15.30 | 43.57 | 44.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423-b6e782f0.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_80k_ade20k/pspnet_r101-d8_512x512_80k_ade20k_20200614_031423.log.json) |
+| PSPNet | R-50-D8 | 512x512 | 160000 | - | - | 42.48 | 43.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358-1890b0bd.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_160k_ade20k/pspnet_r50-d8_512x512_160k_ade20k_20200615_184358.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 160000 | - | - | 44.39 | 45.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650-967c316f.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_160k_ade20k/pspnet_r101-d8_512x512_160k_ade20k_20200615_100650.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-50-D8 | 512x512 | 20000 | 6.1 | 23.59 | 76.78 | 77.61 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958-ed5dfbd9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_20k_voc12aug/pspnet_r50-d8_512x512_20k_voc12aug_20200617_101958.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 20000 | 9.6 | 15.02 | 78.47 | 79.25 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003-4aef3c9a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_20k_voc12aug/pspnet_r101-d8_512x512_20k_voc12aug_20200617_102003.log.json) |
+| PSPNet | R-50-D8 | 512x512 | 40000 | - | - | 77.29 | 78.48 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222-ae9c1b8c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r50-d8_512x512_40k_voc12aug/pspnet_r50-d8_512x512_40k_voc12aug_20200613_161222.log.json) |
+| PSPNet | R-101-D8 | 512x512 | 40000 | - | - | 78.52 | 79.57 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222-bc933b18.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_512x512_40k_voc12aug/pspnet_r101-d8_512x512_40k_voc12aug_20200613_161222.log.json) |
+
+### Pascal Context
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| PSPNet | R-101-D8 | 480x480 | 40000 | 8.8 | 9.68 | 46.60 | 47.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context_20200911_211210-bf0f5d7c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_40k_pascal_context/pspnet_r101-d8_480x480_40k_pascal_context-20200911_211210.log.json) |
+| PSPNet | R-101-D8 | 480x480 | 80000 | - | - | 46.03 | 47.15 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context_20200911_190530-c86d6233.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/pspnet/pspnet_r101-d8_480x480_80k_pascal_context/pspnet_r101-d8_480x480_80k_pascal_context-20200911_190530.log.json) |
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b5a990604a77238375cb6d2b8298a382a457dd6
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_480x480_40k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..fda9110603d71e14cab6e537949be191f2adf6db
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_480x480_80k_pascal_context.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..38fee11bc23d8c92c529acd0c02a68204e34ab91
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9931a07bc2d137eb49b3fa4dad8f8681d4f5e943
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6107b41544378ad371cee95ee5ebc2e98ccbd9ad
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..2221b202d6c53c4b04f2431d3344379cbfe06dd7
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..15f578b6002c481ada06befc3ea66accbbdd1f66
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb7c3d55d57b09296ea24889b218f9a0fb997463
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..c6e7e58508f31627766b8ab748bd81cd51c77eca
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..59b8c6dd5ef234334bcdfa3d5e3594b7a9989b17
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab8a3d3e3fcc12dd41223af190e2ae04f14d1cb8
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a7cb708e551e90a12ad4267e2af6938c353f0ba
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r101b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet101',
+ backbone=dict(type='ResNet', depth=101))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d914f93c023a6384e0e856b8608280cef589d5c6
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r18-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5893e66a41cad73e8fb24aa58dc78ef002aecca5
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r18-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnet18_v1c',
+ backbone=dict(depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..abeeedf84387d7846a8a2c10480b94c9d8405559
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r18b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..284be6d09af1806b99bee5b85286b55ce02e8cbd
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r18b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(
+ pretrained='torchvision://resnet18',
+ backbone=dict(type='ResNet', depth=18),
+ decode_head=dict(
+ in_channels=512,
+ channels=128,
+ ),
+ auxiliary_head=dict(in_channels=256, channels=64))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..86da94de5b32576f04240a2d02dfeccc0d6ddd45
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_480x480_40k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
+test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbb02714b9e252bab38b3f9d9095dabe570b9005
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_480x480_80k_pascal_context.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_context.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=60), auxiliary_head=dict(num_classes=60))
+test_cfg = dict(mode='slide', crop_size=(480, 480), stride=(320, 320))
+optimizer = dict(type='SGD', lr=0.004, momentum=0.9, weight_decay=0.0001)
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5deb5872b00a30d5c18a980c4d6c1b0d915908b9
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e9972849d6899fe43f435284d0e0b1bc3b0e7a9
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..86584573a3d1afac73041b85516112ac21f1f17c
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..cd88154d5e0be1a519e973331e0a14ae8a7de13e
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..f0c20c12f6bcf04b732dccaa4bfdba10bd10b5e6
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..52efdf51d7d66c3205c1448c45ae281649a0901e
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..145cadb24016eeea87fccff8171c5b0dfb78f7ab
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..23a81eb7ef56a4cd8e7c9da65b86f3d0e562001a
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/pspnet_r50-d8.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..946bf4fc84236942a4462c2daa7637cace4e90cf
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50b-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_512x1024_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py b/FoodSeg103/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6087dcf9f7cc04e12a2b9bcbde7abc4a56e972e
--- /dev/null
+++ b/FoodSeg103/configs/pspnet/pspnet_r50b-d8_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './pspnet_r50-d8_769x769_80k_cityscapes.py'
+model = dict(pretrained='torchvision://resnet50', backbone=dict(type='ResNet'))
diff --git a/FoodSeg103/configs/resnest/README.md b/FoodSeg103/configs/resnest/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..31bac01ec9f659d6c30f220a104c385326d3f04b
--- /dev/null
+++ b/FoodSeg103/configs/resnest/README.md
@@ -0,0 +1,34 @@
+# ResNeSt: Split-Attention Networks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{zhang2020resnest,
+title={ResNeSt: Split-Attention Networks},
+author={Zhang, Hang and Wu, Chongruo and Zhang, Zhongyue and Zhu, Yi and Zhang, Zhi and Lin, Haibin and Sun, Yue and He, Tong and Muller, Jonas and Manmatha, R. and Li, Mu and Smola, Alexander},
+journal={arXiv preprint arXiv:2004.08955},
+year={2020}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | S-101-D8 | 512x1024 | 80000 | 11.4 | 2.39 | 77.56 | 78.98 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes_20200807_140631-f8d155b3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x1024_80k_cityscapes/fcn_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) |
+| PSPNet | S-101-D8 | 512x1024 | 80000 | 11.8 | 2.52 | 78.57 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes_20200807_140631-c75f3b99.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x1024_80k_cityscapes/pspnet_s101-d8_512x1024_80k_cityscapes-20200807_140631.log.json) |
+| DeepLabV3 | S-101-D8 | 512x1024 | 80000 | 11.9 | 1.88 | 79.67 | 80.51 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes_20200807_144429-b73c4270.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes/deeplabv3_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) |
+| DeepLabV3+ | S-101-D8 | 512x1024 | 80000 | 13.2 | 2.36 | 79.62 | 80.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes_20200807_144429-1239eb43.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes/deeplabv3plus_s101-d8_512x1024_80k_cityscapes-20200807_144429.log.json) |
+
+### ADE20k
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|------------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FCN | S-101-D8 | 512x512 | 160000 | 14.2 | 12.86 | 45.62 | 46.16 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k_20200807_145416-d3160329.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/fcn_s101-d8_512x512_160k_ade20k/fcn_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) |
+| PSPNet | S-101-D8 | 512x512 | 160000 | 14.2 | 13.02 | 45.44 | 46.28 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k_20200807_145416-a6daa92a.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/pspnet_s101-d8_512x512_160k_ade20k/pspnet_s101-d8_512x512_160k_ade20k-20200807_145416.log.json) |
+| DeepLabV3 | S-101-D8 | 512x512 | 160000 | 14.6 | 9.28 | 45.71 | 46.59 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k_20200807_144503-17ecabe5.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3_s101-d8_512x512_160k_ade20k/deeplabv3_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) |
+| DeepLabV3+ | S-101-D8 | 512x512 | 160000 | 16.2 | 11.96 | 46.47 | 47.27 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k_20200807_144503-27b26226.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k/deeplabv3plus_s101-d8_512x512_160k_ade20k-20200807_144503.log.json) |
diff --git a/FoodSeg103/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f98398690eb3e1e77975d7fb94ea865424aa331b
--- /dev/null
+++ b/FoodSeg103/configs/resnest/deeplabv3_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..e3924ad679cb3d7ba731322f9cdb67410baae59a
--- /dev/null
+++ b/FoodSeg103/configs/resnest/deeplabv3_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3/deeplabv3_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..69bef7238345cf6aabb126012af992602f910287
--- /dev/null
+++ b/FoodSeg103/configs/resnest/deeplabv3plus_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..d51bccb965dafc40d7859219d132dc9467740a1b
--- /dev/null
+++ b/FoodSeg103/configs/resnest/deeplabv3plus_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../deeplabv3plus/deeplabv3plus_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..33fa0252d8b4cc786f1297605c169ee6068195a4
--- /dev/null
+++ b/FoodSeg103/configs/resnest/fcn_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../fcn/fcn_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..dcee8c280e833825f84b944c6db21e9a43125e06
--- /dev/null
+++ b/FoodSeg103/configs/resnest/fcn_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../fcn/fcn_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py b/FoodSeg103/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..9737849cbd7470b03ef3fcb3b1225283370eb503
--- /dev/null
+++ b/FoodSeg103/configs/resnest/pspnet_s101-d8_512x1024_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x1024_80k_cityscapes.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py b/FoodSeg103/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a622eae963401e143004a62ff53071ddbf61c01
--- /dev/null
+++ b/FoodSeg103/configs/resnest/pspnet_s101-d8_512x512_160k_ade20k.py
@@ -0,0 +1,9 @@
+_base_ = '../pspnet/pspnet_r101-d8_512x512_160k_ade20k.py'
+model = dict(
+ pretrained='open-mmlab://resnest101',
+ backbone=dict(
+ type='ResNeSt',
+ stem_channels=128,
+ radix=2,
+ reduction_factor=4,
+ avg_down_stride=True))
diff --git a/FoodSeg103/configs/sem_fpn/README.md b/FoodSeg103/configs/sem_fpn/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c73ade624817b61be2f226c6fae03d0b023c570a
--- /dev/null
+++ b/FoodSeg103/configs/sem_fpn/README.md
@@ -0,0 +1,35 @@
+# Panoptic Feature Pyramid Networks
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@article{Kirillov_2019,
+ title={Panoptic Feature Pyramid Networks},
+ ISBN={9781728132938},
+ url={http://dx.doi.org/10.1109/CVPR.2019.00656},
+ DOI={10.1109/cvpr.2019.00656},
+ journal={2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
+ publisher={IEEE},
+ author={Kirillov, Alexander and Girshick, Ross and He, Kaiming and Dollar, Piotr},
+ year={2019},
+ month={Jun}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FPN | R-50 | 512x1024 | 80000 | 2.8 | 13.54 | 74.52 | 76.08 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes_20200717_021437-94018a0d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x1024_80k_cityscapes/fpn_r50_512x1024_80k_cityscapes-20200717_021437.log.json) |
+| FPN | R-101 | 512x1024 | 80000 | 3.9 | 10.29 | 75.80 | 77.40 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes_20200717_012416-c5800d4c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x1024_80k_cityscapes/fpn_r101_512x1024_80k_cityscapes-20200717_012416.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|--------|----------|-----------|--------:|---------:|----------------|------:|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| FPN | R-50 | 512x512 | 160000 | 4.9 | 55.77 | 37.49 | 39.09 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k_20200718_131734-5b5a6ab9.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r50_512x512_160k_ade20k/fpn_r50_512x512_160k_ade20k-20200718_131734.log.json) |
+| FPN | R-101 | 512x512 | 160000 | 5.9 | 40.58 | 39.35 | 40.72 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k_20200718_131734-306b5004.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/sem_fpn/fpn_r101_512x512_160k_ade20k/fpn_r101_512x512_160k_ade20k-20200718_131734.log.json) |
diff --git a/FoodSeg103/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py b/FoodSeg103/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f8710d4be4ee0664f644b9037fd4653e4655907
--- /dev/null
+++ b/FoodSeg103/configs/sem_fpn/fpn_r101_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './fpn_r50_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py b/FoodSeg103/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..2654096dfd78ecdd4065ac2d26cab3e2f11a9c65
--- /dev/null
+++ b/FoodSeg103/configs/sem_fpn/fpn_r101_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './fpn_r50_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py b/FoodSeg103/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..4bf3edd825296fbbed883effc3622793e9adf071
--- /dev/null
+++ b/FoodSeg103/configs/sem_fpn/fpn_r50_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/fpn_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py b/FoodSeg103/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..5cdfc8ca264c6045dcb7ad890d89f15537bef233
--- /dev/null
+++ b/FoodSeg103/configs/sem_fpn/fpn_r50_512x512_160k_ade20k.py
@@ -0,0 +1,5 @@
+_base_ = [
+ '../_base_/models/fpn_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(decode_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/unet/README.md b/FoodSeg103/configs/unet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d815510a19ade68c4962f04b8dee2c317f1788ce
--- /dev/null
+++ b/FoodSeg103/configs/unet/README.md
@@ -0,0 +1,50 @@
+# U-Net: Convolutional Networks for Biomedical Image Segmentation
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{ronneberger2015u,
+ title={U-net: Convolutional networks for biomedical image segmentation},
+ author={Ronneberger, Olaf and Fischer, Philipp and Brox, Thomas},
+ booktitle={International Conference on Medical image computing and computer-assisted intervention},
+ pages={234--241},
+ year={2015},
+ organization={Springer}
+}
+```
+
+## Results and models
+
+### DRIVE
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 584x565 | 64x64 | 42x42 | 40000 | 0.680 | - | 78.67 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive_20201223_191051-26cee593.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_64x64_40k_drive/fcn_unet_s5-d16_64x64_40k_drive-20201223_191051.log.json) |
+| UNet-S5-D16 | PSPNet | 584x565 | 64x64 | 42x42 | 40000 | 0.599 | - | 78.62 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive_20201227_181818-aac73387.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_64x64_40k_drive/pspnet_unet_s5-d16_64x64_40k_drive-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 584x565 | 64x64 | 42x42 | 40000 | 0.596 | - | 78.69 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive_20201226_094047-0671ff20.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_64x64_40k_drive/deeplabv3_unet_s5-d16_64x64_40k_drive-20201226_094047.log.json) |
+
+### STARE
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 605x700 | 128x128 | 85x85 | 40000 | 0.968 | - | 81.02 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare_20201223_191051-6ea7cfda.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_stare/fcn_unet_s5-d16_128x128_40k_stare-20201223_191051.log.json) |
+| UNet-S5-D16 | PSPNet | 605x700 | 128x128 | 85x85 | 40000 | 0.982 | - | 81.22 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare_20201227_181818-3c2923c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_stare/pspnet_unet_s5-d16_128x128_40k_stare-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 605x700 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.93 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare_20201226_094047-93dcb93c.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_stare/deeplabv3_unet_s5-d16_128x128_40k_stare-20201226_094047.log.json) |
+
+### CHASE_DB1
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 960x999 | 128x128 | 85x85 | 40000 | 0.968 | - | 80.24 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1_20201223_191051-95852f45.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_128x128_40k_chase_db1/fcn_unet_s5-d16_128x128_40k_chase_db1-20201223_191051.log.json) |
+| UNet-S5-D16 | PSPNet | 960x999 | 128x128 | 85x85 | 40000 | 0.982 | - | 80.36 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1_20201227_181818-68d4e609.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1/pspnet_unet_s5-d16_128x128_40k_chase_db1-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 960x999 | 128x128 | 85x85 | 40000 | 0.999 | - | 80.47 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1_20201226_094047-4c5aefa3.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1/deeplabv3_unet_s5-d16_128x128_40k_chase_db1-20201226_094047.log.json) |
+
+### HRF
+
+| Backbone | Head | Image Size | Crop Size | Stride | Lr schd | Mem (GB) | Inf time (fps) | Dice | download |
+|--------|----------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UNet-S5-D16 | FCN | 2336x3504 | 256x256 | 170x170 | 40000 | 2.525 | - | 79.45 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf_20201223_173724-df3ec8c4.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/fcn_unet_s5-d16_256x256_40k_hrf/fcn_unet_s5-d16_256x256_40k_hrf-20201223_173724.log.json) |
+| UNet-S5-D16 | PSPNet | 2336x3504 | 256x256 | 170x170 | 40000 | 2.588 | - | 80.07 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf_20201227_181818-fdb7e29b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/pspnet_unet_s5-d16_256x256_40k_hrf/pspnet_unet_s5-d16_256x256_40k_hrf-20201227_181818.log.json) |
+| UNet-S5-D16 | DeepLabV3 | 2336x3504 | 256x256 | 170x170 | 40000 | 2.604 | - | 80.21 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf_20201226_094047-3a1fdf85.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf/deeplabv3_unet_s5-d16_256x256_40k_hrf-20201226_094047.log.json) |
diff --git a/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..c706cf3548e311a7930e5b58299e05af30c43d98
--- /dev/null
+++ b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_chase_db1.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py',
+ '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ef02dcc491871f148b1ad038d281d250eb6e2f4
--- /dev/null
+++ b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_128x128_40k_stare.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/stare.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..118428bc44d3078517e231399b131db492f2bc7e
--- /dev/null
+++ b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_256x256_40k_hrf.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/hrf.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f8862a0e89243d67634f37c3aca94ca98feff5c
--- /dev/null
+++ b/FoodSeg103/configs/unet/deeplabv3_unet_s5-d16_64x64_40k_drive.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/deeplabv3_unet_s5-d16.py', '../_base_/datasets/drive.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py b/FoodSeg103/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..2bc52d96293f214adf1e3e1878746ed8bd2434f6
--- /dev/null
+++ b/FoodSeg103/configs/unet/fcn_unet_s5-d16_128x128_40k_chase_db1.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/chase_db1.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py b/FoodSeg103/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d836c61dfd568dd4d29d876980001067dcaa200
--- /dev/null
+++ b/FoodSeg103/configs/unet/fcn_unet_s5-d16_128x128_40k_stare.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/stare.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py b/FoodSeg103/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..be8eec77792f4eb16475dc5ab8607fb5682f0acf
--- /dev/null
+++ b/FoodSeg103/configs/unet/fcn_unet_s5-d16_256x256_40k_hrf.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/hrf.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py b/FoodSeg103/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..80483ade4a4bc3dc5cb8805e8b74c100e872da0c
--- /dev/null
+++ b/FoodSeg103/configs/unet/fcn_unet_s5-d16_64x64_40k_drive.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/fcn_unet_s5-d16.py', '../_base_/datasets/drive.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py
new file mode 100644
index 0000000000000000000000000000000000000000..b085a17d6bab5f4d33668bfcf232e30f2a9830fe
--- /dev/null
+++ b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_128x128_40k_chase_db1.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py',
+ '../_base_/datasets/chase_db1.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d729cea699e1c845549c74b52703c9ee3273662
--- /dev/null
+++ b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_128x128_40k_stare.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/stare.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(128, 128), stride=(85, 85)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py
new file mode 100644
index 0000000000000000000000000000000000000000..f57c9166b67a18fd74f474754b3baec6584b17cf
--- /dev/null
+++ b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_256x256_40k_hrf.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/hrf.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(256, 256), stride=(170, 170)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b5421ad6877e4b35b0a6ae6e516e577404547ce
--- /dev/null
+++ b/FoodSeg103/configs/unet/pspnet_unet_s5-d16_64x64_40k_drive.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/pspnet_unet_s5-d16.py', '../_base_/datasets/drive.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
+model = dict(test_cfg=dict(crop_size=(64, 64), stride=(42, 42)))
+evaluation = dict(metric='mDice')
diff --git a/FoodSeg103/configs/upernet/README.md b/FoodSeg103/configs/upernet/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d53a92f9bdb67ca9e4c3974ee368ca49d84619c
--- /dev/null
+++ b/FoodSeg103/configs/upernet/README.md
@@ -0,0 +1,48 @@
+# Unified Perceptual Parsing for Scene Understanding
+
+## Introduction
+
+[ALGORITHM]
+
+```latex
+@inproceedings{xiao2018unified,
+ title={Unified perceptual parsing for scene understanding},
+ author={Xiao, Tete and Liu, Yingcheng and Zhou, Bolei and Jiang, Yuning and Sun, Jian},
+ booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
+ pages={418--434},
+ year={2018}
+}
+```
+
+## Results and models
+
+### Cityscapes
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UPerNet | R-50 | 512x1024 | 40000 | 6.4 | 4.25 | 77.10 | 78.37 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827-aa54cb54.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_40k_cityscapes/upernet_r50_512x1024_40k_cityscapes_20200605_094827.log.json) |
+| UPerNet | R-101 | 512x1024 | 40000 | 7.4 | 3.79 | 78.69 | 80.11 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933-ebce3b10.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_40k_cityscapes/upernet_r101_512x1024_40k_cityscapes_20200605_094933.log.json) |
+| UPerNet | R-50 | 769x769 | 40000 | 7.2 | 1.76 | 77.98 | 79.70 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048-92d21539.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_40k_cityscapes/upernet_r50_769x769_40k_cityscapes_20200530_033048.log.json) |
+| UPerNet | R-101 | 769x769 | 40000 | 8.4 | 1.56 | 79.03 | 80.77 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819-83c95d01.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_40k_cityscapes/upernet_r101_769x769_40k_cityscapes_20200530_040819.log.json) |
+| UPerNet | R-50 | 512x1024 | 80000 | - | - | 78.19 | 79.19 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207-848beca8.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x1024_80k_cityscapes/upernet_r50_512x1024_80k_cityscapes_20200607_052207.log.json) |
+| UPerNet | R-101 | 512x1024 | 80000 | - | - | 79.40 | 80.46 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403-f05f2345.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x1024_80k_cityscapes/upernet_r101_512x1024_80k_cityscapes_20200607_002403.log.json) |
+| UPerNet | R-50 | 769x769 | 80000 | - | - | 79.39 | 80.92 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107-82ae7d15.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_769x769_80k_cityscapes/upernet_r50_769x769_80k_cityscapes_20200607_005107.log.json) |
+| UPerNet | R-101 | 769x769 | 80000 | - | - | 80.10 | 81.49 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014-082fc334.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_769x769_80k_cityscapes/upernet_r101_769x769_80k_cityscapes_20200607_001014.log.json) |
+
+### ADE20K
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UPerNet | R-50 | 512x512 | 80000 | 8.1 | 23.40 | 40.70 | 41.81 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127-ecc8377b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_80k_ade20k/upernet_r50_512x512_80k_ade20k_20200614_144127.log.json) |
+| UPerNet | R-101 | 512x512 | 80000 | 9.1 | 20.34 | 42.91 | 43.96 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117-32e4db94.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_80k_ade20k/upernet_r101_512x512_80k_ade20k_20200614_185117.log.json) |
+| UPerNet | R-50 | 512x512 | 160000 | - | - | 42.05 | 42.78 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328-8534de8d.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_160k_ade20k/upernet_r50_512x512_160k_ade20k_20200615_184328.log.json) |
+| UPerNet | R-101 | 512x512 | 160000 | - | - | 43.82 | 44.85 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951-91b32684.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_160k_ade20k/upernet_r101_512x512_160k_ade20k_20200615_161951.log.json) |
+
+### Pascal VOC 2012 + Aug
+
+| Method | Backbone | Crop Size | Lr schd | Mem (GB) | Inf time (fps) | mIoU | mIoU(ms+flip) | download |
+|---------|----------|-----------|--------:|----------|----------------|------:|--------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| UPerNet | R-50 | 512x512 | 20000 | 6.4 | 23.17 | 74.82 | 76.35 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330-5b5890a7.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_20k_voc12aug/upernet_r50_512x512_20k_voc12aug_20200617_165330.log.json) |
+| UPerNet | R-101 | 512x512 | 20000 | 7.5 | 19.98 | 77.10 | 78.29 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629-f14e7f27.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_20k_voc12aug/upernet_r101_512x512_20k_voc12aug_20200617_165629.log.json) |
+| UPerNet | R-50 | 512x512 | 40000 | - | - | 75.92 | 77.44 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257-ca9bcc6b.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r50_512x512_40k_voc12aug/upernet_r50_512x512_40k_voc12aug_20200613_162257.log.json) |
+| UPerNet | R-101 | 512x512 | 40000 | - | - | 77.43 | 78.56 | [model](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549-e26476ac.pth) | [log](https://download.openmmlab.com/mmsegmentation/v0.5/upernet/upernet_r101_512x512_40k_voc12aug/upernet_r101_512x512_40k_voc12aug_20200613_163549.log.json) |
diff --git a/FoodSeg103/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..b90b597d831a664761d6051397d2b1862feb59c6
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_512x1024_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x1024_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..420ca2e42836099213c1f91cb925088cfe7c1269
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_512x1024_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x1024_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_512x512_160k_ade20k.py b/FoodSeg103/configs/upernet/upernet_r101_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..146f13eb79053cc69d4934d294aad9ba723b2577
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_512x512_160k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_160k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_512x512_20k_voc12aug.py b/FoodSeg103/configs/upernet/upernet_r101_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..56345d1806482ac822d709893fe6942f44be6f74
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_512x512_20k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_20k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_512x512_40k_voc12aug.py b/FoodSeg103/configs/upernet/upernet_r101_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..0669b741b9b3e3e1a309147b920d3d2a1952ab75
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_512x512_40k_voc12aug.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_40k_voc12aug.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_512x512_80k_ade20k.py b/FoodSeg103/configs/upernet/upernet_r101_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..abfb9c5d9f35407d590cdc3325006b396ec52820
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_512x512_80k_ade20k.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_512x512_80k_ade20k.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_769x769_40k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r101_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..e5f3a3fae18cb769fd04b0c669785c5728cf479f
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_769x769_40k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_769x769_40k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r101_769x769_80k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r101_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..a709165657d257df4fc76148d225261c63f88d8a
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r101_769x769_80k_cityscapes.py
@@ -0,0 +1,2 @@
+_base_ = './upernet_r50_769x769_80k_cityscapes.py'
+model = dict(pretrained='open-mmlab://resnet101_v1c', backbone=dict(depth=101))
diff --git a/FoodSeg103/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..d621e89ce62c06424db7c2e5f5fd00a0a2e85a61
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_512x1024_40k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_40k.py'
+]
diff --git a/FoodSeg103/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..95fffcc76c2ff4f61f8dd80a00d35b7875262a50
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_512x1024_80k_cityscapes.py
@@ -0,0 +1,4 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/cityscapes.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
diff --git a/FoodSeg103/configs/upernet/upernet_r50_512x512_160k_ade20k.py b/FoodSeg103/configs/upernet/upernet_r50_512x512_160k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f5dd9aa4ed59d4939bcb49ffe129a9935e303201
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_512x512_160k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_160k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/upernet/upernet_r50_512x512_20k_voc12aug.py b/FoodSeg103/configs/upernet/upernet_r50_512x512_20k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..95f5c09567144db47e07fc802b114bedd6a00725
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_512x512_20k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_20k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/upernet/upernet_r50_512x512_40k_voc12aug.py b/FoodSeg103/configs/upernet/upernet_r50_512x512_40k_voc12aug.py
new file mode 100644
index 0000000000000000000000000000000000000000..9621fd1f5c24e582b4a1eda18fcc0a13d2bcb953
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_512x512_40k_voc12aug.py
@@ -0,0 +1,7 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/pascal_voc12_aug.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=21), auxiliary_head=dict(num_classes=21))
diff --git a/FoodSeg103/configs/upernet/upernet_r50_512x512_80k_ade20k.py b/FoodSeg103/configs/upernet/upernet_r50_512x512_80k_ade20k.py
new file mode 100644
index 0000000000000000000000000000000000000000..f561e309e3bddb439c90af930c4de5a0c7e209a7
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_512x512_80k_ade20k.py
@@ -0,0 +1,6 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py', '../_base_/datasets/ade20k.py',
+ '../_base_/default_runtime.py', '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150))
diff --git a/FoodSeg103/configs/upernet/upernet_r50_769x769_40k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r50_769x769_40k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..89b18aa2840d12e67339ce0b7a0561fa2ba0c6fa
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_769x769_40k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_40k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/configs/upernet/upernet_r50_769x769_80k_cityscapes.py b/FoodSeg103/configs/upernet/upernet_r50_769x769_80k_cityscapes.py
new file mode 100644
index 0000000000000000000000000000000000000000..29af98f2ebe341998fcf93f8a5c018cabcc0c0ba
--- /dev/null
+++ b/FoodSeg103/configs/upernet/upernet_r50_769x769_80k_cityscapes.py
@@ -0,0 +1,9 @@
+_base_ = [
+ '../_base_/models/upernet_r50.py',
+ '../_base_/datasets/cityscapes_769x769.py', '../_base_/default_runtime.py',
+ '../_base_/schedules/schedule_80k.py'
+]
+model = dict(
+ decode_head=dict(align_corners=True),
+ auxiliary_head=dict(align_corners=True),
+ test_cfg=dict(mode='slide', crop_size=(769, 769), stride=(513, 513)))
diff --git a/FoodSeg103/data/.DS_Store b/FoodSeg103/data/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..9d3b04ff632511c5c7e22b5afe2e211638687b7f
Binary files /dev/null and b/FoodSeg103/data/.DS_Store differ
diff --git a/FoodSeg103/data/FoodSeg103/.DS_Store b/FoodSeg103/data/FoodSeg103/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..aebe3465f78d6ece2a38a964c04dcbe14a3234b9
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/.DS_Store differ
diff --git a/FoodSeg103/data/FoodSeg103/ImageSets/test.txt b/FoodSeg103/data/FoodSeg103/ImageSets/test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..03ffa80d51ae47fe30774a719fa66b4135987d04
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/ImageSets/test.txt
@@ -0,0 +1,2135 @@
+00000048.jpg
+00000263.jpg
+00001977.jpg
+00002106.jpg
+00004401.jpg
+00004402.jpg
+00004403.jpg
+00004404.jpg
+00004405.jpg
+00004406.jpg
+00004407.jpg
+00004408.jpg
+00004409.jpg
+00004410.jpg
+00004411.jpg
+00004412.jpg
+00004413.jpg
+00004414.jpg
+00004415.jpg
+00004416.jpg
+00004417.jpg
+00004418.jpg
+00004419.jpg
+00004420.jpg
+00004421.jpg
+00004422.jpg
+00004423.jpg
+00004424.jpg
+00004425.jpg
+00004426.jpg
+00004427.jpg
+00004428.jpg
+00004429.jpg
+00004430.jpg
+00004431.jpg
+00004432.jpg
+00004433.jpg
+00004434.jpg
+00004435.jpg
+00004436.jpg
+00004437.jpg
+00004438.jpg
+00004439.jpg
+00004440.jpg
+00004441.jpg
+00004442.jpg
+00004443.jpg
+00004444.jpg
+00004445.jpg
+00004446.jpg
+00004447.jpg
+00004448.jpg
+00004449.jpg
+00004450.jpg
+00004451.jpg
+00004452.jpg
+00004453.jpg
+00004454.jpg
+00004455.jpg
+00004456.jpg
+00004457.jpg
+00004458.jpg
+00004459.jpg
+00004460.jpg
+00004461.jpg
+00004462.jpg
+00004463.jpg
+00004464.jpg
+00004465.jpg
+00004466.jpg
+00004467.jpg
+00004468.jpg
+00004469.jpg
+00004470.jpg
+00004471.jpg
+00004472.jpg
+00004473.jpg
+00004474.jpg
+00004475.jpg
+00004476.jpg
+00004477.jpg
+00004478.jpg
+00004479.jpg
+00004480.jpg
+00004481.jpg
+00004482.jpg
+00004483.jpg
+00004484.jpg
+00004485.jpg
+00004486.jpg
+00004487.jpg
+00004488.jpg
+00004489.jpg
+00004490.jpg
+00004491.jpg
+00004492.jpg
+00004493.jpg
+00004494.jpg
+00004495.jpg
+00004496.jpg
+00004497.jpg
+00004498.jpg
+00004499.jpg
+00004500.jpg
+00004501.jpg
+00004502.jpg
+00004503.jpg
+00004504.jpg
+00004505.jpg
+00004506.jpg
+00004507.jpg
+00004508.jpg
+00004509.jpg
+00004510.jpg
+00004511.jpg
+00004512.jpg
+00004513.jpg
+00004514.jpg
+00004515.jpg
+00004516.jpg
+00004517.jpg
+00004518.jpg
+00004519.jpg
+00004520.jpg
+00004521.jpg
+00004522.jpg
+00004523.jpg
+00004524.jpg
+00004525.jpg
+00004526.jpg
+00004527.jpg
+00004528.jpg
+00004529.jpg
+00004530.jpg
+00004531.jpg
+00004532.jpg
+00004533.jpg
+00004534.jpg
+00004535.jpg
+00004536.jpg
+00004537.jpg
+00004538.jpg
+00004539.jpg
+00004540.jpg
+00004541.jpg
+00004542.jpg
+00004543.jpg
+00004544.jpg
+00004545.jpg
+00004546.jpg
+00004547.jpg
+00004548.jpg
+00004549.jpg
+00004550.jpg
+00004551.jpg
+00004552.jpg
+00004553.jpg
+00004554.jpg
+00004555.jpg
+00004556.jpg
+00004557.jpg
+00004558.jpg
+00004559.jpg
+00004560.jpg
+00004561.jpg
+00004562.jpg
+00004563.jpg
+00004564.jpg
+00004565.jpg
+00004566.jpg
+00004567.jpg
+00004568.jpg
+00004569.jpg
+00004570.jpg
+00004571.jpg
+00004572.jpg
+00004573.jpg
+00004574.jpg
+00004575.jpg
+00004576.jpg
+00004577.jpg
+00004578.jpg
+00004579.jpg
+00004580.jpg
+00004581.jpg
+00004582.jpg
+00004583.jpg
+00004584.jpg
+00004585.jpg
+00004586.jpg
+00004587.jpg
+00004588.jpg
+00004589.jpg
+00004590.jpg
+00004591.jpg
+00004592.jpg
+00004593.jpg
+00004594.jpg
+00004595.jpg
+00004596.jpg
+00004597.jpg
+00004598.jpg
+00004599.jpg
+00004600.jpg
+00004601.jpg
+00004602.jpg
+00004603.jpg
+00004604.jpg
+00004605.jpg
+00004606.jpg
+00004607.jpg
+00004608.jpg
+00004609.jpg
+00004610.jpg
+00004611.jpg
+00004612.jpg
+00004613.jpg
+00004614.jpg
+00004615.jpg
+00004616.jpg
+00004617.jpg
+00004618.jpg
+00004619.jpg
+00004620.jpg
+00004621.jpg
+00004622.jpg
+00004623.jpg
+00004624.jpg
+00004625.jpg
+00004626.jpg
+00004627.jpg
+00004628.jpg
+00004629.jpg
+00004630.jpg
+00004631.jpg
+00004632.jpg
+00004633.jpg
+00004634.jpg
+00004635.jpg
+00004636.jpg
+00004637.jpg
+00004638.jpg
+00004639.jpg
+00004640.jpg
+00004641.jpg
+00004642.jpg
+00004643.jpg
+00004644.jpg
+00004645.jpg
+00004646.jpg
+00004647.jpg
+00004648.jpg
+00004649.jpg
+00004650.jpg
+00004651.jpg
+00004652.jpg
+00004653.jpg
+00004654.jpg
+00004655.jpg
+00004656.jpg
+00004657.jpg
+00004658.jpg
+00004659.jpg
+00004660.jpg
+00004661.jpg
+00004662.jpg
+00004663.jpg
+00004664.jpg
+00004665.jpg
+00004666.jpg
+00004667.jpg
+00004668.jpg
+00004669.jpg
+00004670.jpg
+00004671.jpg
+00004672.jpg
+00004673.jpg
+00004674.jpg
+00004675.jpg
+00004676.jpg
+00004677.jpg
+00004678.jpg
+00004679.jpg
+00004680.jpg
+00004681.jpg
+00004682.jpg
+00004683.jpg
+00004684.jpg
+00004685.jpg
+00004686.jpg
+00004687.jpg
+00004688.jpg
+00004689.jpg
+00004690.jpg
+00004691.jpg
+00004692.jpg
+00004693.jpg
+00004694.jpg
+00004695.jpg
+00004696.jpg
+00004697.jpg
+00004698.jpg
+00004699.jpg
+00004700.jpg
+00004701.jpg
+00004702.jpg
+00004703.jpg
+00004704.jpg
+00004705.jpg
+00004706.jpg
+00004707.jpg
+00004708.jpg
+00004709.jpg
+00004710.jpg
+00004711.jpg
+00004712.jpg
+00004713.jpg
+00004714.jpg
+00004715.jpg
+00004716.jpg
+00004717.jpg
+00004718.jpg
+00004719.jpg
+00004720.jpg
+00004721.jpg
+00004722.jpg
+00004723.jpg
+00004724.jpg
+00004725.jpg
+00004726.jpg
+00004727.jpg
+00004728.jpg
+00004729.jpg
+00004730.jpg
+00004731.jpg
+00004732.jpg
+00004733.jpg
+00004734.jpg
+00004735.jpg
+00004736.jpg
+00004737.jpg
+00004738.jpg
+00004739.jpg
+00004740.jpg
+00004741.jpg
+00004742.jpg
+00004743.jpg
+00004744.jpg
+00004745.jpg
+00004746.jpg
+00004747.jpg
+00004748.jpg
+00004749.jpg
+00004750.jpg
+00004751.jpg
+00004752.jpg
+00004753.jpg
+00004754.jpg
+00004755.jpg
+00004756.jpg
+00004757.jpg
+00004758.jpg
+00004759.jpg
+00004760.jpg
+00004761.jpg
+00004762.jpg
+00004763.jpg
+00004764.jpg
+00004765.jpg
+00004766.jpg
+00004767.jpg
+00004768.jpg
+00004769.jpg
+00004770.jpg
+00004771.jpg
+00004772.jpg
+00004773.jpg
+00004774.jpg
+00004775.jpg
+00004776.jpg
+00004777.jpg
+00004778.jpg
+00004779.jpg
+00004780.jpg
+00004781.jpg
+00004782.jpg
+00004783.jpg
+00004784.jpg
+00004785.jpg
+00004786.jpg
+00004787.jpg
+00004788.jpg
+00004789.jpg
+00004790.jpg
+00004791.jpg
+00004792.jpg
+00004793.jpg
+00004794.jpg
+00004795.jpg
+00004796.jpg
+00004797.jpg
+00004798.jpg
+00004799.jpg
+00004800.jpg
+00004801.jpg
+00004802.jpg
+00004803.jpg
+00004804.jpg
+00004805.jpg
+00004806.jpg
+00004807.jpg
+00004808.jpg
+00004809.jpg
+00004810.jpg
+00004811.jpg
+00004812.jpg
+00004813.jpg
+00004814.jpg
+00004815.jpg
+00004816.jpg
+00004817.jpg
+00004818.jpg
+00004819.jpg
+00004820.jpg
+00004821.jpg
+00004822.jpg
+00004823.jpg
+00004824.jpg
+00004825.jpg
+00004826.jpg
+00004827.jpg
+00004828.jpg
+00004829.jpg
+00004830.jpg
+00004831.jpg
+00004832.jpg
+00004833.jpg
+00004834.jpg
+00004835.jpg
+00004836.jpg
+00004837.jpg
+00004838.jpg
+00004839.jpg
+00004840.jpg
+00004841.jpg
+00004842.jpg
+00004843.jpg
+00004844.jpg
+00004845.jpg
+00004846.jpg
+00004847.jpg
+00004848.jpg
+00004849.jpg
+00004850.jpg
+00004851.jpg
+00004852.jpg
+00004853.jpg
+00004854.jpg
+00004855.jpg
+00004856.jpg
+00004857.jpg
+00004858.jpg
+00004859.jpg
+00004860.jpg
+00004861.jpg
+00004862.jpg
+00004863.jpg
+00004864.jpg
+00004865.jpg
+00004866.jpg
+00004867.jpg
+00004868.jpg
+00004869.jpg
+00004870.jpg
+00004871.jpg
+00004872.jpg
+00004873.jpg
+00004874.jpg
+00004875.jpg
+00004876.jpg
+00004877.jpg
+00004878.jpg
+00004879.jpg
+00004880.jpg
+00004881.jpg
+00004882.jpg
+00004883.jpg
+00004884.jpg
+00004885.jpg
+00004886.jpg
+00004887.jpg
+00004888.jpg
+00004889.jpg
+00004890.jpg
+00004891.jpg
+00004892.jpg
+00004893.jpg
+00004894.jpg
+00004895.jpg
+00004896.jpg
+00004897.jpg
+00004898.jpg
+00004899.jpg
+00004900.jpg
+00004901.jpg
+00004902.jpg
+00004903.jpg
+00004904.jpg
+00004905.jpg
+00004906.jpg
+00004907.jpg
+00004908.jpg
+00004909.jpg
+00004910.jpg
+00004911.jpg
+00004912.jpg
+00004913.jpg
+00004914.jpg
+00004915.jpg
+00004916.jpg
+00004917.jpg
+00004918.jpg
+00004919.jpg
+00004920.jpg
+00004921.jpg
+00004922.jpg
+00004923.jpg
+00004924.jpg
+00004925.jpg
+00004926.jpg
+00004927.jpg
+00004928.jpg
+00004929.jpg
+00004930.jpg
+00004931.jpg
+00004932.jpg
+00004933.jpg
+00004934.jpg
+00004935.jpg
+00004936.jpg
+00004937.jpg
+00004938.jpg
+00004939.jpg
+00004940.jpg
+00004941.jpg
+00004942.jpg
+00004943.jpg
+00004944.jpg
+00004945.jpg
+00004946.jpg
+00004947.jpg
+00004948.jpg
+00004949.jpg
+00004950.jpg
+00004951.jpg
+00004952.jpg
+00004953.jpg
+00004954.jpg
+00004955.jpg
+00004956.jpg
+00004957.jpg
+00004958.jpg
+00004959.jpg
+00004960.jpg
+00004961.jpg
+00004962.jpg
+00004963.jpg
+00004964.jpg
+00004965.jpg
+00004966.jpg
+00004967.jpg
+00004968.jpg
+00004969.jpg
+00004970.jpg
+00004971.jpg
+00004972.jpg
+00004973.jpg
+00004974.jpg
+00004975.jpg
+00004976.jpg
+00004977.jpg
+00004978.jpg
+00004979.jpg
+00004980.jpg
+00004981.jpg
+00004982.jpg
+00004983.jpg
+00004984.jpg
+00004985.jpg
+00004986.jpg
+00004987.jpg
+00004988.jpg
+00004989.jpg
+00004990.jpg
+00004991.jpg
+00004992.jpg
+00004993.jpg
+00004994.jpg
+00004995.jpg
+00004996.jpg
+00004997.jpg
+00004998.jpg
+00004999.jpg
+00005000.jpg
+00005001.jpg
+00005002.jpg
+00005003.jpg
+00005004.jpg
+00005005.jpg
+00005006.jpg
+00005007.jpg
+00005008.jpg
+00005009.jpg
+00005010.jpg
+00005011.jpg
+00005012.jpg
+00005013.jpg
+00005014.jpg
+00005015.jpg
+00005016.jpg
+00005017.jpg
+00005018.jpg
+00005019.jpg
+00005020.jpg
+00005021.jpg
+00005022.jpg
+00005023.jpg
+00005024.jpg
+00005025.jpg
+00005026.jpg
+00005027.jpg
+00005028.jpg
+00005029.jpg
+00005030.jpg
+00005031.jpg
+00005032.jpg
+00005033.jpg
+00005034.jpg
+00005035.jpg
+00005036.jpg
+00005037.jpg
+00005038.jpg
+00005039.jpg
+00005040.jpg
+00005041.jpg
+00005042.jpg
+00005043.jpg
+00005044.jpg
+00005045.jpg
+00005046.jpg
+00005047.jpg
+00005048.jpg
+00005049.jpg
+00005050.jpg
+00005051.jpg
+00005052.jpg
+00005053.jpg
+00005054.jpg
+00005055.jpg
+00005056.jpg
+00005057.jpg
+00005058.jpg
+00005059.jpg
+00005060.jpg
+00005061.jpg
+00005062.jpg
+00005063.jpg
+00005064.jpg
+00005065.jpg
+00005066.jpg
+00005067.jpg
+00005068.jpg
+00005069.jpg
+00005070.jpg
+00005071.jpg
+00005072.jpg
+00005073.jpg
+00005074.jpg
+00005075.jpg
+00005076.jpg
+00005077.jpg
+00005078.jpg
+00005079.jpg
+00005080.jpg
+00005081.jpg
+00005082.jpg
+00005083.jpg
+00005084.jpg
+00005085.jpg
+00005086.jpg
+00005087.jpg
+00005088.jpg
+00005089.jpg
+00005090.jpg
+00005091.jpg
+00005092.jpg
+00005093.jpg
+00005094.jpg
+00005095.jpg
+00005096.jpg
+00005097.jpg
+00005098.jpg
+00005099.jpg
+00005100.jpg
+00005101.jpg
+00005102.jpg
+00005103.jpg
+00005104.jpg
+00005105.jpg
+00005106.jpg
+00005107.jpg
+00005108.jpg
+00005109.jpg
+00005110.jpg
+00005111.jpg
+00005112.jpg
+00005113.jpg
+00005114.jpg
+00005115.jpg
+00005116.jpg
+00005117.jpg
+00005118.jpg
+00005119.jpg
+00005120.jpg
+00005121.jpg
+00005122.jpg
+00005123.jpg
+00005124.jpg
+00005125.jpg
+00005126.jpg
+00005127.jpg
+00005128.jpg
+00005129.jpg
+00005130.jpg
+00005131.jpg
+00005132.jpg
+00005133.jpg
+00005134.jpg
+00005135.jpg
+00005136.jpg
+00005137.jpg
+00005138.jpg
+00005139.jpg
+00005140.jpg
+00005141.jpg
+00005142.jpg
+00005143.jpg
+00005144.jpg
+00005145.jpg
+00005146.jpg
+00005147.jpg
+00005148.jpg
+00005149.jpg
+00005150.jpg
+00005151.jpg
+00005152.jpg
+00005153.jpg
+00005154.jpg
+00005155.jpg
+00005156.jpg
+00005157.jpg
+00005158.jpg
+00005159.jpg
+00005160.jpg
+00005161.jpg
+00005162.jpg
+00005163.jpg
+00005164.jpg
+00005165.jpg
+00005166.jpg
+00005167.jpg
+00005168.jpg
+00005169.jpg
+00005170.jpg
+00005171.jpg
+00005172.jpg
+00005173.jpg
+00005174.jpg
+00005175.jpg
+00005176.jpg
+00005177.jpg
+00005178.jpg
+00005179.jpg
+00005180.jpg
+00005181.jpg
+00005182.jpg
+00005183.jpg
+00005184.jpg
+00005185.jpg
+00005186.jpg
+00005187.jpg
+00005188.jpg
+00005189.jpg
+00005190.jpg
+00005191.jpg
+00005192.jpg
+00005193.jpg
+00005194.jpg
+00005195.jpg
+00005196.jpg
+00005197.jpg
+00005198.jpg
+00005199.jpg
+00005200.jpg
+00005201.jpg
+00005202.jpg
+00005203.jpg
+00005204.jpg
+00005205.jpg
+00005206.jpg
+00005207.jpg
+00005208.jpg
+00005209.jpg
+00005210.jpg
+00005211.jpg
+00005212.jpg
+00005213.jpg
+00005214.jpg
+00005215.jpg
+00005216.jpg
+00005217.jpg
+00005218.jpg
+00005219.jpg
+00005220.jpg
+00005221.jpg
+00005222.jpg
+00005223.jpg
+00005224.jpg
+00005225.jpg
+00005226.jpg
+00005227.jpg
+00005228.jpg
+00005229.jpg
+00005230.jpg
+00005231.jpg
+00005232.jpg
+00005233.jpg
+00005234.jpg
+00005235.jpg
+00005236.jpg
+00005237.jpg
+00005238.jpg
+00005239.jpg
+00005240.jpg
+00005241.jpg
+00005242.jpg
+00005243.jpg
+00005244.jpg
+00005245.jpg
+00005246.jpg
+00005247.jpg
+00005248.jpg
+00005249.jpg
+00005250.jpg
+00005251.jpg
+00005252.jpg
+00005253.jpg
+00005254.jpg
+00005255.jpg
+00005256.jpg
+00005257.jpg
+00005258.jpg
+00005259.jpg
+00005260.jpg
+00005261.jpg
+00005262.jpg
+00005263.jpg
+00005264.jpg
+00005265.jpg
+00005266.jpg
+00005267.jpg
+00005268.jpg
+00005269.jpg
+00005270.jpg
+00005271.jpg
+00005272.jpg
+00005273.jpg
+00005274.jpg
+00005275.jpg
+00005276.jpg
+00005277.jpg
+00005278.jpg
+00005279.jpg
+00005280.jpg
+00005281.jpg
+00005282.jpg
+00005283.jpg
+00005284.jpg
+00005285.jpg
+00005286.jpg
+00005287.jpg
+00005288.jpg
+00005289.jpg
+00005290.jpg
+00005291.jpg
+00005292.jpg
+00005293.jpg
+00005294.jpg
+00005295.jpg
+00005296.jpg
+00005297.jpg
+00005298.jpg
+00005299.jpg
+00005300.jpg
+00005301.jpg
+00005302.jpg
+00005303.jpg
+00005304.jpg
+00005305.jpg
+00005306.jpg
+00005307.jpg
+00005308.jpg
+00005309.jpg
+00005310.jpg
+00005311.jpg
+00005312.jpg
+00005313.jpg
+00005314.jpg
+00005315.jpg
+00005316.jpg
+00005317.jpg
+00005318.jpg
+00005319.jpg
+00005320.jpg
+00005321.jpg
+00005322.jpg
+00005323.jpg
+00005324.jpg
+00005325.jpg
+00005326.jpg
+00005327.jpg
+00005328.jpg
+00005329.jpg
+00005330.jpg
+00005331.jpg
+00005332.jpg
+00005333.jpg
+00005334.jpg
+00005335.jpg
+00005336.jpg
+00005337.jpg
+00005338.jpg
+00005339.jpg
+00005340.jpg
+00005341.jpg
+00005342.jpg
+00005343.jpg
+00005344.jpg
+00005345.jpg
+00005346.jpg
+00005347.jpg
+00005348.jpg
+00005349.jpg
+00005350.jpg
+00005351.jpg
+00005352.jpg
+00005353.jpg
+00005354.jpg
+00005355.jpg
+00005356.jpg
+00005357.jpg
+00005358.jpg
+00005359.jpg
+00005360.jpg
+00005361.jpg
+00005362.jpg
+00005363.jpg
+00005364.jpg
+00005365.jpg
+00005366.jpg
+00005367.jpg
+00005368.jpg
+00005369.jpg
+00005370.jpg
+00005371.jpg
+00005372.jpg
+00005373.jpg
+00005374.jpg
+00005375.jpg
+00005376.jpg
+00005377.jpg
+00005378.jpg
+00005379.jpg
+00005380.jpg
+00005381.jpg
+00005382.jpg
+00005383.jpg
+00005384.jpg
+00005385.jpg
+00005386.jpg
+00005387.jpg
+00005388.jpg
+00005389.jpg
+00005390.jpg
+00005391.jpg
+00005392.jpg
+00005393.jpg
+00005394.jpg
+00005395.jpg
+00005396.jpg
+00005397.jpg
+00005398.jpg
+00005399.jpg
+00005400.jpg
+00005401.jpg
+00005402.jpg
+00005403.jpg
+00005404.jpg
+00005405.jpg
+00005406.jpg
+00005407.jpg
+00005408.jpg
+00005409.jpg
+00005410.jpg
+00005411.jpg
+00005412.jpg
+00005413.jpg
+00005414.jpg
+00005415.jpg
+00005416.jpg
+00005417.jpg
+00005418.jpg
+00005419.jpg
+00005420.jpg
+00005421.jpg
+00005422.jpg
+00005423.jpg
+00005424.jpg
+00005425.jpg
+00005426.jpg
+00005427.jpg
+00005428.jpg
+00005429.jpg
+00005430.jpg
+00005431.jpg
+00005432.jpg
+00005433.jpg
+00005434.jpg
+00005435.jpg
+00005436.jpg
+00005437.jpg
+00005438.jpg
+00005439.jpg
+00005440.jpg
+00005441.jpg
+00005442.jpg
+00005443.jpg
+00005444.jpg
+00005445.jpg
+00005446.jpg
+00005447.jpg
+00005448.jpg
+00005449.jpg
+00005450.jpg
+00005451.jpg
+00005452.jpg
+00005453.jpg
+00005454.jpg
+00005455.jpg
+00005456.jpg
+00005457.jpg
+00005458.jpg
+00005459.jpg
+00005460.jpg
+00005461.jpg
+00005462.jpg
+00005463.jpg
+00005464.jpg
+00005465.jpg
+00005466.jpg
+00005467.jpg
+00005468.jpg
+00005469.jpg
+00005470.jpg
+00005471.jpg
+00005472.jpg
+00005473.jpg
+00005474.jpg
+00005475.jpg
+00005476.jpg
+00005477.jpg
+00005478.jpg
+00005479.jpg
+00005480.jpg
+00005481.jpg
+00005482.jpg
+00005483.jpg
+00005484.jpg
+00005485.jpg
+00005486.jpg
+00005487.jpg
+00005488.jpg
+00005489.jpg
+00005490.jpg
+00005491.jpg
+00005492.jpg
+00005493.jpg
+00005494.jpg
+00005495.jpg
+00005496.jpg
+00005497.jpg
+00005498.jpg
+00005499.jpg
+00005500.jpg
+00005501.jpg
+00005502.jpg
+00005503.jpg
+00005504.jpg
+00005505.jpg
+00005506.jpg
+00005507.jpg
+00005508.jpg
+00005509.jpg
+00005510.jpg
+00005511.jpg
+00005512.jpg
+00005513.jpg
+00005514.jpg
+00005515.jpg
+00005516.jpg
+00005517.jpg
+00005518.jpg
+00005519.jpg
+00005520.jpg
+00005521.jpg
+00005522.jpg
+00005523.jpg
+00005524.jpg
+00005525.jpg
+00005526.jpg
+00005527.jpg
+00005528.jpg
+00005529.jpg
+00005530.jpg
+00005531.jpg
+00005532.jpg
+00005533.jpg
+00005534.jpg
+00005535.jpg
+00005536.jpg
+00005537.jpg
+00005538.jpg
+00005539.jpg
+00005540.jpg
+00005541.jpg
+00005542.jpg
+00005543.jpg
+00005544.jpg
+00005545.jpg
+00005546.jpg
+00005547.jpg
+00005548.jpg
+00005549.jpg
+00005550.jpg
+00005551.jpg
+00005552.jpg
+00005553.jpg
+00005554.jpg
+00005555.jpg
+00005556.jpg
+00005557.jpg
+00005558.jpg
+00005559.jpg
+00005560.jpg
+00005561.jpg
+00005562.jpg
+00005563.jpg
+00005564.jpg
+00005565.jpg
+00005566.jpg
+00005567.jpg
+00005568.jpg
+00005569.jpg
+00005570.jpg
+00005571.jpg
+00005572.jpg
+00005573.jpg
+00005574.jpg
+00005575.jpg
+00005576.jpg
+00005577.jpg
+00005578.jpg
+00005579.jpg
+00005580.jpg
+00005581.jpg
+00005582.jpg
+00005583.jpg
+00005584.jpg
+00005585.jpg
+00005586.jpg
+00005587.jpg
+00005588.jpg
+00005589.jpg
+00005590.jpg
+00005591.jpg
+00005592.jpg
+00005593.jpg
+00005594.jpg
+00005595.jpg
+00005596.jpg
+00005597.jpg
+00005598.jpg
+00005599.jpg
+00005600.jpg
+00005601.jpg
+00005602.jpg
+00005603.jpg
+00005604.jpg
+00005605.jpg
+00005606.jpg
+00005607.jpg
+00005608.jpg
+00005609.jpg
+00005610.jpg
+00005611.jpg
+00005612.jpg
+00005613.jpg
+00005614.jpg
+00005615.jpg
+00005616.jpg
+00005617.jpg
+00005618.jpg
+00005619.jpg
+00005620.jpg
+00005621.jpg
+00005622.jpg
+00005623.jpg
+00005624.jpg
+00005625.jpg
+00005626.jpg
+00005627.jpg
+00005628.jpg
+00005629.jpg
+00005630.jpg
+00005631.jpg
+00005632.jpg
+00005633.jpg
+00005634.jpg
+00005635.jpg
+00005636.jpg
+00005637.jpg
+00005638.jpg
+00005639.jpg
+00005640.jpg
+00005641.jpg
+00005642.jpg
+00005643.jpg
+00005644.jpg
+00005645.jpg
+00005646.jpg
+00005647.jpg
+00005648.jpg
+00005649.jpg
+00005650.jpg
+00005651.jpg
+00005652.jpg
+00005653.jpg
+00005654.jpg
+00005655.jpg
+00005656.jpg
+00005657.jpg
+00005658.jpg
+00005659.jpg
+00005660.jpg
+00005661.jpg
+00005662.jpg
+00005663.jpg
+00005664.jpg
+00005665.jpg
+00005666.jpg
+00005667.jpg
+00005668.jpg
+00005669.jpg
+00005670.jpg
+00005671.jpg
+00005672.jpg
+00005673.jpg
+00005674.jpg
+00005675.jpg
+00005676.jpg
+00005677.jpg
+00005678.jpg
+00005679.jpg
+00005680.jpg
+00005681.jpg
+00005682.jpg
+00005683.jpg
+00005684.jpg
+00005685.jpg
+00005686.jpg
+00005687.jpg
+00005688.jpg
+00005689.jpg
+00005690.jpg
+00005691.jpg
+00005692.jpg
+00005693.jpg
+00005694.jpg
+00005695.jpg
+00005696.jpg
+00005697.jpg
+00005698.jpg
+00005699.jpg
+00005700.jpg
+00005701.jpg
+00005702.jpg
+00005703.jpg
+00005704.jpg
+00005705.jpg
+00005706.jpg
+00005707.jpg
+00005708.jpg
+00005709.jpg
+00005710.jpg
+00005711.jpg
+00005712.jpg
+00005713.jpg
+00005714.jpg
+00005715.jpg
+00005716.jpg
+00005717.jpg
+00005718.jpg
+00005719.jpg
+00005720.jpg
+00005721.jpg
+00005722.jpg
+00005723.jpg
+00005724.jpg
+00005725.jpg
+00005726.jpg
+00005727.jpg
+00005728.jpg
+00005729.jpg
+00005730.jpg
+00005731.jpg
+00005732.jpg
+00005733.jpg
+00005734.jpg
+00005735.jpg
+00005736.jpg
+00005737.jpg
+00005738.jpg
+00005739.jpg
+00005740.jpg
+00005741.jpg
+00005742.jpg
+00005743.jpg
+00005744.jpg
+00005745.jpg
+00005746.jpg
+00005747.jpg
+00005748.jpg
+00005749.jpg
+00005750.jpg
+00005751.jpg
+00005752.jpg
+00005753.jpg
+00005754.jpg
+00005755.jpg
+00005756.jpg
+00005757.jpg
+00005758.jpg
+00005759.jpg
+00005760.jpg
+00005761.jpg
+00005762.jpg
+00005763.jpg
+00005764.jpg
+00005765.jpg
+00005766.jpg
+00005767.jpg
+00005768.jpg
+00005769.jpg
+00005770.jpg
+00005771.jpg
+00005772.jpg
+00005773.jpg
+00005774.jpg
+00005775.jpg
+00005776.jpg
+00005777.jpg
+00005778.jpg
+00005779.jpg
+00005780.jpg
+00005781.jpg
+00005782.jpg
+00005783.jpg
+00005784.jpg
+00005785.jpg
+00005786.jpg
+00005787.jpg
+00005788.jpg
+00005789.jpg
+00005790.jpg
+00005791.jpg
+00005792.jpg
+00005793.jpg
+00005794.jpg
+00005795.jpg
+00005796.jpg
+00005797.jpg
+00005798.jpg
+00005799.jpg
+00005800.jpg
+00005801.jpg
+00005802.jpg
+00005803.jpg
+00005804.jpg
+00005805.jpg
+00005806.jpg
+00005807.jpg
+00005808.jpg
+00005809.jpg
+00005810.jpg
+00005811.jpg
+00005812.jpg
+00005813.jpg
+00005814.jpg
+00005815.jpg
+00005816.jpg
+00005817.jpg
+00005818.jpg
+00005819.jpg
+00005820.jpg
+00005821.jpg
+00005822.jpg
+00005823.jpg
+00005824.jpg
+00005825.jpg
+00005826.jpg
+00005827.jpg
+00005828.jpg
+00005829.jpg
+00005830.jpg
+00005831.jpg
+00005832.jpg
+00005833.jpg
+00005834.jpg
+00005835.jpg
+00005836.jpg
+00005837.jpg
+00005838.jpg
+00005839.jpg
+00005840.jpg
+00005841.jpg
+00005842.jpg
+00005843.jpg
+00005844.jpg
+00005845.jpg
+00005846.jpg
+00005847.jpg
+00005848.jpg
+00005849.jpg
+00005850.jpg
+00005851.jpg
+00005852.jpg
+00005853.jpg
+00005854.jpg
+00005855.jpg
+00005856.jpg
+00005857.jpg
+00005858.jpg
+00005859.jpg
+00005860.jpg
+00005861.jpg
+00005862.jpg
+00005863.jpg
+00005864.jpg
+00005865.jpg
+00005866.jpg
+00005867.jpg
+00005868.jpg
+00005869.jpg
+00005870.jpg
+00005871.jpg
+00005872.jpg
+00005873.jpg
+00005874.jpg
+00005875.jpg
+00005876.jpg
+00005877.jpg
+00005878.jpg
+00005879.jpg
+00005880.jpg
+00005881.jpg
+00005882.jpg
+00005883.jpg
+00005884.jpg
+00005885.jpg
+00005886.jpg
+00005887.jpg
+00005888.jpg
+00005889.jpg
+00005890.jpg
+00005891.jpg
+00005892.jpg
+00005893.jpg
+00005894.jpg
+00005895.jpg
+00005896.jpg
+00005897.jpg
+00005898.jpg
+00005899.jpg
+00005900.jpg
+00005901.jpg
+00005902.jpg
+00005903.jpg
+00005904.jpg
+00005905.jpg
+00005906.jpg
+00005907.jpg
+00005908.jpg
+00005909.jpg
+00005910.jpg
+00005911.jpg
+00005912.jpg
+00005913.jpg
+00005914.jpg
+00005915.jpg
+00005916.jpg
+00005917.jpg
+00005918.jpg
+00005919.jpg
+00005920.jpg
+00005921.jpg
+00005922.jpg
+00005923.jpg
+00005924.jpg
+00005925.jpg
+00005926.jpg
+00005927.jpg
+00005928.jpg
+00005929.jpg
+00005930.jpg
+00005931.jpg
+00005932.jpg
+00005933.jpg
+00005934.jpg
+00005935.jpg
+00005936.jpg
+00005937.jpg
+00005938.jpg
+00005939.jpg
+00005940.jpg
+00005941.jpg
+00005942.jpg
+00005943.jpg
+00005944.jpg
+00005945.jpg
+00005946.jpg
+00005947.jpg
+00005948.jpg
+00005949.jpg
+00005950.jpg
+00005951.jpg
+00005952.jpg
+00005953.jpg
+00005954.jpg
+00005955.jpg
+00005956.jpg
+00005957.jpg
+00005958.jpg
+00005959.jpg
+00005960.jpg
+00005961.jpg
+00005962.jpg
+00005963.jpg
+00005964.jpg
+00005965.jpg
+00005966.jpg
+00005967.jpg
+00005968.jpg
+00005969.jpg
+00005970.jpg
+00005971.jpg
+00005972.jpg
+00005973.jpg
+00005974.jpg
+00005975.jpg
+00005976.jpg
+00005977.jpg
+00005978.jpg
+00005979.jpg
+00005980.jpg
+00005981.jpg
+00005982.jpg
+00005983.jpg
+00005984.jpg
+00005985.jpg
+00005986.jpg
+00005987.jpg
+00005988.jpg
+00005989.jpg
+00005990.jpg
+00005991.jpg
+00005992.jpg
+00005993.jpg
+00005994.jpg
+00005995.jpg
+00005996.jpg
+00005997.jpg
+00005998.jpg
+00005999.jpg
+00006000.jpg
+00006001.jpg
+00006002.jpg
+00006003.jpg
+00006004.jpg
+00006005.jpg
+00006006.jpg
+00006007.jpg
+00006008.jpg
+00006009.jpg
+00006010.jpg
+00006011.jpg
+00006012.jpg
+00006013.jpg
+00006014.jpg
+00006015.jpg
+00006016.jpg
+00006017.jpg
+00006018.jpg
+00006019.jpg
+00006020.jpg
+00006021.jpg
+00006022.jpg
+00006023.jpg
+00006024.jpg
+00006025.jpg
+00006026.jpg
+00006027.jpg
+00006028.jpg
+00006029.jpg
+00006030.jpg
+00006031.jpg
+00006032.jpg
+00006033.jpg
+00006034.jpg
+00006035.jpg
+00006036.jpg
+00006037.jpg
+00006038.jpg
+00006039.jpg
+00006040.jpg
+00006041.jpg
+00006042.jpg
+00006043.jpg
+00006044.jpg
+00006045.jpg
+00006046.jpg
+00006047.jpg
+00006048.jpg
+00006049.jpg
+00006050.jpg
+00006051.jpg
+00006052.jpg
+00006053.jpg
+00006054.jpg
+00006055.jpg
+00006056.jpg
+00006057.jpg
+00006058.jpg
+00006059.jpg
+00006060.jpg
+00006061.jpg
+00006062.jpg
+00006063.jpg
+00006064.jpg
+00006065.jpg
+00006066.jpg
+00006067.jpg
+00006068.jpg
+00006069.jpg
+00006070.jpg
+00006071.jpg
+00006072.jpg
+00006073.jpg
+00006074.jpg
+00006075.jpg
+00006076.jpg
+00006077.jpg
+00006078.jpg
+00006079.jpg
+00006080.jpg
+00006081.jpg
+00006082.jpg
+00006083.jpg
+00006084.jpg
+00006085.jpg
+00006086.jpg
+00006087.jpg
+00006088.jpg
+00006089.jpg
+00006090.jpg
+00006091.jpg
+00006092.jpg
+00006093.jpg
+00006094.jpg
+00006095.jpg
+00006096.jpg
+00006097.jpg
+00006098.jpg
+00006099.jpg
+00006100.jpg
+00006101.jpg
+00006102.jpg
+00006103.jpg
+00006104.jpg
+00006105.jpg
+00006106.jpg
+00006107.jpg
+00006108.jpg
+00006109.jpg
+00006110.jpg
+00006111.jpg
+00006112.jpg
+00006113.jpg
+00006114.jpg
+00006115.jpg
+00006116.jpg
+00006117.jpg
+00006118.jpg
+00006119.jpg
+00006120.jpg
+00006121.jpg
+00006122.jpg
+00006123.jpg
+00006124.jpg
+00006125.jpg
+00006126.jpg
+00006127.jpg
+00006128.jpg
+00006129.jpg
+00006130.jpg
+00006131.jpg
+00006132.jpg
+00006133.jpg
+00006134.jpg
+00006135.jpg
+00006136.jpg
+00006137.jpg
+00006138.jpg
+00006139.jpg
+00006140.jpg
+00006141.jpg
+00006142.jpg
+00006143.jpg
+00006144.jpg
+00006145.jpg
+00006146.jpg
+00006147.jpg
+00006148.jpg
+00006149.jpg
+00006150.jpg
+00006151.jpg
+00006152.jpg
+00006153.jpg
+00006154.jpg
+00006155.jpg
+00006156.jpg
+00006157.jpg
+00006158.jpg
+00006159.jpg
+00006160.jpg
+00006161.jpg
+00006162.jpg
+00006163.jpg
+00006164.jpg
+00006165.jpg
+00006166.jpg
+00006167.jpg
+00006168.jpg
+00006169.jpg
+00006170.jpg
+00006171.jpg
+00006172.jpg
+00006173.jpg
+00006174.jpg
+00006175.jpg
+00006176.jpg
+00006177.jpg
+00006178.jpg
+00006179.jpg
+00006180.jpg
+00006181.jpg
+00006182.jpg
+00006183.jpg
+00006184.jpg
+00006185.jpg
+00006186.jpg
+00006187.jpg
+00006188.jpg
+00006189.jpg
+00006190.jpg
+00006191.jpg
+00006192.jpg
+00006193.jpg
+00006194.jpg
+00006195.jpg
+00006196.jpg
+00006197.jpg
+00006198.jpg
+00006199.jpg
+00006200.jpg
+00006201.jpg
+00006202.jpg
+00006203.jpg
+00006204.jpg
+00006205.jpg
+00006206.jpg
+00006207.jpg
+00006208.jpg
+00006209.jpg
+00006210.jpg
+00006211.jpg
+00006212.jpg
+00006213.jpg
+00006214.jpg
+00006215.jpg
+00006216.jpg
+00006217.jpg
+00006218.jpg
+00006219.jpg
+00006220.jpg
+00006221.jpg
+00006222.jpg
+00006223.jpg
+00006224.jpg
+00006225.jpg
+00006226.jpg
+00006227.jpg
+00006228.jpg
+00006229.jpg
+00006230.jpg
+00006231.jpg
+00006232.jpg
+00006233.jpg
+00006234.jpg
+00006235.jpg
+00006236.jpg
+00006237.jpg
+00006238.jpg
+00006239.jpg
+00006240.jpg
+00006241.jpg
+00006242.jpg
+00006243.jpg
+00006244.jpg
+00006245.jpg
+00006246.jpg
+00006247.jpg
+00006248.jpg
+00006249.jpg
+00006250.jpg
+00006251.jpg
+00006252.jpg
+00006253.jpg
+00006254.jpg
+00006255.jpg
+00006256.jpg
+00006257.jpg
+00006258.jpg
+00006259.jpg
+00006260.jpg
+00006261.jpg
+00006262.jpg
+00006263.jpg
+00006264.jpg
+00006265.jpg
+00006266.jpg
+00006267.jpg
+00006268.jpg
+00006269.jpg
+00006270.jpg
+00006271.jpg
+00006272.jpg
+00006273.jpg
+00006274.jpg
+00006275.jpg
+00006276.jpg
+00006277.jpg
+00006278.jpg
+00006279.jpg
+00006280.jpg
+00006867.jpg
+00006868.jpg
+00006869.jpg
+00006870.jpg
+00006871.jpg
+00006872.jpg
+00006873.jpg
+00006874.jpg
+00006875.jpg
+00006876.jpg
+00006877.jpg
+00006878.jpg
+00006879.jpg
+00006880.jpg
+00006881.jpg
+00006882.jpg
+00006883.jpg
+00006884.jpg
+00006885.jpg
+00006886.jpg
+00006887.jpg
+00006888.jpg
+00006889.jpg
+00006890.jpg
+00006891.jpg
+00006892.jpg
+00006893.jpg
+00006894.jpg
+00006895.jpg
+00006896.jpg
+00006897.jpg
+00006898.jpg
+00006899.jpg
+00006900.jpg
+00006901.jpg
+00006902.jpg
+00006903.jpg
+00006904.jpg
+00006905.jpg
+00006906.jpg
+00006907.jpg
+00006908.jpg
+00006909.jpg
+00006910.jpg
+00006911.jpg
+00006912.jpg
+00006913.jpg
+00006914.jpg
+00006915.jpg
+00006916.jpg
+00006917.jpg
+00006918.jpg
+00006919.jpg
+00006920.jpg
+00006921.jpg
+00006922.jpg
+00006923.jpg
+00006924.jpg
+00006925.jpg
+00006926.jpg
+00006927.jpg
+00006928.jpg
+00006929.jpg
+00006930.jpg
+00006931.jpg
+00006932.jpg
+00006933.jpg
+00006934.jpg
+00006935.jpg
+00006936.jpg
+00006937.jpg
+00006938.jpg
+00006939.jpg
+00006940.jpg
+00006941.jpg
+00006942.jpg
+00006943.jpg
+00006944.jpg
+00006945.jpg
+00006946.jpg
+00006947.jpg
+00006948.jpg
+00006949.jpg
+00006950.jpg
+00006951.jpg
+00006952.jpg
+00006953.jpg
+00006954.jpg
+00006955.jpg
+00006956.jpg
+00006957.jpg
+00006958.jpg
+00006959.jpg
+00006960.jpg
+00006961.jpg
+00006962.jpg
+00006963.jpg
+00006964.jpg
+00006965.jpg
+00006966.jpg
+00006967.jpg
+00006968.jpg
+00006969.jpg
+00006970.jpg
+00006971.jpg
+00006972.jpg
+00006973.jpg
+00006974.jpg
+00006975.jpg
+00006976.jpg
+00006977.jpg
+00006978.jpg
+00006979.jpg
+00006980.jpg
+00006981.jpg
+00006982.jpg
+00006983.jpg
+00006984.jpg
+00006985.jpg
+00006986.jpg
+00006987.jpg
+00006988.jpg
+00006989.jpg
+00006990.jpg
+00006991.jpg
+00006992.jpg
+00006993.jpg
+00006994.jpg
+00006995.jpg
+00006996.jpg
+00006997.jpg
+00006998.jpg
+00006999.jpg
+00007000.jpg
+00007001.jpg
+00007002.jpg
+00007003.jpg
+00007004.jpg
+00007005.jpg
+00007006.jpg
+00007007.jpg
+00007008.jpg
+00007009.jpg
+00007010.jpg
+00007011.jpg
+00007012.jpg
+00007013.jpg
+00007014.jpg
+00007015.jpg
+00007016.jpg
+00007017.jpg
+00007018.jpg
+00007019.jpg
+00007020.jpg
+00007021.jpg
+00007022.jpg
+00007023.jpg
+00007024.jpg
+00007025.jpg
+00007026.jpg
+00007027.jpg
+00007028.jpg
+00007029.jpg
+00007030.jpg
+00007031.jpg
+00007032.jpg
+00007033.jpg
+00007034.jpg
+00007035.jpg
+00007036.jpg
+00007037.jpg
+00007038.jpg
+00007039.jpg
+00007040.jpg
+00007041.jpg
+00007042.jpg
+00007043.jpg
+00007044.jpg
+00007045.jpg
+00007046.jpg
+00007047.jpg
+00007048.jpg
+00007049.jpg
+00007050.jpg
+00007051.jpg
+00007052.jpg
+00007053.jpg
+00007054.jpg
+00007055.jpg
+00007056.jpg
+00007057.jpg
+00007058.jpg
+00007059.jpg
+00007060.jpg
+00007061.jpg
+00007062.jpg
+00007063.jpg
+00007064.jpg
+00007065.jpg
+00007066.jpg
+00007067.jpg
+00007068.jpg
+00007069.jpg
+00007070.jpg
+00007071.jpg
+00007072.jpg
+00007073.jpg
+00007074.jpg
+00007075.jpg
+00007076.jpg
+00007077.jpg
+00007078.jpg
+00007079.jpg
+00007080.jpg
+00007081.jpg
+00007082.jpg
+00007083.jpg
+00007084.jpg
+00007085.jpg
+00007086.jpg
+00007087.jpg
+00007088.jpg
+00007089.jpg
+00007090.jpg
+00007091.jpg
+00007092.jpg
+00007093.jpg
+00007094.jpg
+00007095.jpg
+00007096.jpg
+00007097.jpg
+00007098.jpg
+00007099.jpg
+00007100.jpg
+00007101.jpg
+00007102.jpg
+00007103.jpg
+00007104.jpg
+00007105.jpg
+00007106.jpg
+00007107.jpg
+00007108.jpg
+00007109.jpg
+00007110.jpg
+00007111.jpg
+00007112.jpg
+00007113.jpg
+00007114.jpg
+00007115.jpg
+00007116.jpg
+00007117.jpg
diff --git a/FoodSeg103/data/FoodSeg103/ImageSets/train.txt b/FoodSeg103/data/FoodSeg103/ImageSets/train.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bacb5ed60738d904a64751159860c5d16018a346
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/ImageSets/train.txt
@@ -0,0 +1,4983 @@
+00000000.jpg
+00000001.jpg
+00000002.jpg
+00000003.jpg
+00000004.jpg
+00000005.jpg
+00000006.jpg
+00000007.jpg
+00000008.jpg
+00000009.jpg
+00000010.jpg
+00000011.jpg
+00000012.jpg
+00000013.jpg
+00000014.jpg
+00000015.jpg
+00000016.jpg
+00000017.jpg
+00000018.jpg
+00000019.jpg
+00000020.jpg
+00000021.jpg
+00000022.jpg
+00000023.jpg
+00000024.jpg
+00000025.jpg
+00000026.jpg
+00000027.jpg
+00000028.jpg
+00000029.jpg
+00000030.jpg
+00000031.jpg
+00000032.jpg
+00000033.jpg
+00000034.jpg
+00000035.jpg
+00000036.jpg
+00000037.jpg
+00000038.jpg
+00000039.jpg
+00000040.jpg
+00000041.jpg
+00000042.jpg
+00000043.jpg
+00000044.jpg
+00000045.jpg
+00000046.jpg
+00000047.jpg
+00000049.jpg
+00000050.jpg
+00000051.jpg
+00000052.jpg
+00000053.jpg
+00000054.jpg
+00000055.jpg
+00000056.jpg
+00000057.jpg
+00000058.jpg
+00000059.jpg
+00000060.jpg
+00000061.jpg
+00000062.jpg
+00000063.jpg
+00000064.jpg
+00000065.jpg
+00000066.jpg
+00000067.jpg
+00000068.jpg
+00000069.jpg
+00000070.jpg
+00000071.jpg
+00000072.jpg
+00000073.jpg
+00000074.jpg
+00000075.jpg
+00000076.jpg
+00000077.jpg
+00000078.jpg
+00000079.jpg
+00000080.jpg
+00000081.jpg
+00000082.jpg
+00000083.jpg
+00000084.jpg
+00000085.jpg
+00000086.jpg
+00000087.jpg
+00000088.jpg
+00000089.jpg
+00000090.jpg
+00000091.jpg
+00000092.jpg
+00000093.jpg
+00000094.jpg
+00000095.jpg
+00000096.jpg
+00000097.jpg
+00000098.jpg
+00000099.jpg
+00000100.jpg
+00000101.jpg
+00000102.jpg
+00000103.jpg
+00000104.jpg
+00000105.jpg
+00000106.jpg
+00000107.jpg
+00000108.jpg
+00000109.jpg
+00000110.jpg
+00000111.jpg
+00000112.jpg
+00000113.jpg
+00000114.jpg
+00000115.jpg
+00000116.jpg
+00000117.jpg
+00000118.jpg
+00000119.jpg
+00000120.jpg
+00000121.jpg
+00000122.jpg
+00000123.jpg
+00000124.jpg
+00000125.jpg
+00000126.jpg
+00000127.jpg
+00000128.jpg
+00000129.jpg
+00000130.jpg
+00000131.jpg
+00000132.jpg
+00000133.jpg
+00000134.jpg
+00000135.jpg
+00000136.jpg
+00000137.jpg
+00000138.jpg
+00000139.jpg
+00000140.jpg
+00000141.jpg
+00000142.jpg
+00000143.jpg
+00000144.jpg
+00000145.jpg
+00000146.jpg
+00000147.jpg
+00000148.jpg
+00000149.jpg
+00000150.jpg
+00000151.jpg
+00000152.jpg
+00000153.jpg
+00000154.jpg
+00000155.jpg
+00000156.jpg
+00000157.jpg
+00000158.jpg
+00000159.jpg
+00000160.jpg
+00000161.jpg
+00000162.jpg
+00000163.jpg
+00000164.jpg
+00000165.jpg
+00000166.jpg
+00000167.jpg
+00000168.jpg
+00000169.jpg
+00000170.jpg
+00000171.jpg
+00000172.jpg
+00000173.jpg
+00000174.jpg
+00000175.jpg
+00000176.jpg
+00000177.jpg
+00000178.jpg
+00000179.jpg
+00000180.jpg
+00000181.jpg
+00000182.jpg
+00000183.jpg
+00000184.jpg
+00000185.jpg
+00000186.jpg
+00000187.jpg
+00000188.jpg
+00000189.jpg
+00000190.jpg
+00000191.jpg
+00000192.jpg
+00000193.jpg
+00000194.jpg
+00000195.jpg
+00000196.jpg
+00000197.jpg
+00000198.jpg
+00000199.jpg
+00000200.jpg
+00000201.jpg
+00000202.jpg
+00000203.jpg
+00000204.jpg
+00000205.jpg
+00000206.jpg
+00000207.jpg
+00000208.jpg
+00000209.jpg
+00000210.jpg
+00000211.jpg
+00000212.jpg
+00000213.jpg
+00000214.jpg
+00000215.jpg
+00000216.jpg
+00000217.jpg
+00000218.jpg
+00000219.jpg
+00000220.jpg
+00000221.jpg
+00000222.jpg
+00000223.jpg
+00000224.jpg
+00000225.jpg
+00000226.jpg
+00000227.jpg
+00000228.jpg
+00000229.jpg
+00000230.jpg
+00000231.jpg
+00000232.jpg
+00000233.jpg
+00000234.jpg
+00000235.jpg
+00000236.jpg
+00000237.jpg
+00000238.jpg
+00000239.jpg
+00000240.jpg
+00000241.jpg
+00000242.jpg
+00000243.jpg
+00000244.jpg
+00000245.jpg
+00000246.jpg
+00000247.jpg
+00000248.jpg
+00000249.jpg
+00000250.jpg
+00000251.jpg
+00000252.jpg
+00000253.jpg
+00000254.jpg
+00000255.jpg
+00000256.jpg
+00000257.jpg
+00000258.jpg
+00000259.jpg
+00000260.jpg
+00000261.jpg
+00000262.jpg
+00000264.jpg
+00000265.jpg
+00000266.jpg
+00000267.jpg
+00000268.jpg
+00000269.jpg
+00000270.jpg
+00000271.jpg
+00000272.jpg
+00000273.jpg
+00000274.jpg
+00000275.jpg
+00000276.jpg
+00000277.jpg
+00000278.jpg
+00000279.jpg
+00000280.jpg
+00000281.jpg
+00000282.jpg
+00000283.jpg
+00000284.jpg
+00000285.jpg
+00000286.jpg
+00000287.jpg
+00000288.jpg
+00000289.jpg
+00000290.jpg
+00000291.jpg
+00000292.jpg
+00000293.jpg
+00000294.jpg
+00000295.jpg
+00000296.jpg
+00000297.jpg
+00000298.jpg
+00000299.jpg
+00000300.jpg
+00000301.jpg
+00000302.jpg
+00000303.jpg
+00000304.jpg
+00000305.jpg
+00000306.jpg
+00000307.jpg
+00000308.jpg
+00000309.jpg
+00000310.jpg
+00000311.jpg
+00000312.jpg
+00000313.jpg
+00000314.jpg
+00000315.jpg
+00000316.jpg
+00000317.jpg
+00000318.jpg
+00000319.jpg
+00000320.jpg
+00000321.jpg
+00000322.jpg
+00000323.jpg
+00000324.jpg
+00000325.jpg
+00000326.jpg
+00000327.jpg
+00000328.jpg
+00000329.jpg
+00000330.jpg
+00000331.jpg
+00000332.jpg
+00000333.jpg
+00000334.jpg
+00000335.jpg
+00000336.jpg
+00000337.jpg
+00000338.jpg
+00000339.jpg
+00000340.jpg
+00000341.jpg
+00000342.jpg
+00000343.jpg
+00000344.jpg
+00000345.jpg
+00000346.jpg
+00000347.jpg
+00000348.jpg
+00000349.jpg
+00000350.jpg
+00000351.jpg
+00000352.jpg
+00000353.jpg
+00000354.jpg
+00000355.jpg
+00000356.jpg
+00000357.jpg
+00000358.jpg
+00000359.jpg
+00000360.jpg
+00000361.jpg
+00000362.jpg
+00000363.jpg
+00000364.jpg
+00000365.jpg
+00000366.jpg
+00000367.jpg
+00000368.jpg
+00000369.jpg
+00000370.jpg
+00000371.jpg
+00000372.jpg
+00000373.jpg
+00000374.jpg
+00000375.jpg
+00000376.jpg
+00000377.jpg
+00000378.jpg
+00000379.jpg
+00000380.jpg
+00000381.jpg
+00000382.jpg
+00000383.jpg
+00000384.jpg
+00000385.jpg
+00000386.jpg
+00000387.jpg
+00000388.jpg
+00000389.jpg
+00000390.jpg
+00000391.jpg
+00000392.jpg
+00000393.jpg
+00000394.jpg
+00000395.jpg
+00000396.jpg
+00000397.jpg
+00000398.jpg
+00000399.jpg
+00000400.jpg
+00000401.jpg
+00000402.jpg
+00000403.jpg
+00000404.jpg
+00000405.jpg
+00000406.jpg
+00000407.jpg
+00000408.jpg
+00000409.jpg
+00000410.jpg
+00000411.jpg
+00000412.jpg
+00000413.jpg
+00000414.jpg
+00000415.jpg
+00000416.jpg
+00000417.jpg
+00000418.jpg
+00000419.jpg
+00000420.jpg
+00000421.jpg
+00000422.jpg
+00000423.jpg
+00000424.jpg
+00000425.jpg
+00000426.jpg
+00000427.jpg
+00000428.jpg
+00000429.jpg
+00000430.jpg
+00000431.jpg
+00000432.jpg
+00000433.jpg
+00000434.jpg
+00000435.jpg
+00000436.jpg
+00000437.jpg
+00000438.jpg
+00000439.jpg
+00000440.jpg
+00000441.jpg
+00000442.jpg
+00000443.jpg
+00000444.jpg
+00000445.jpg
+00000446.jpg
+00000447.jpg
+00000448.jpg
+00000449.jpg
+00000450.jpg
+00000451.jpg
+00000452.jpg
+00000453.jpg
+00000454.jpg
+00000455.jpg
+00000456.jpg
+00000457.jpg
+00000458.jpg
+00000459.jpg
+00000460.jpg
+00000461.jpg
+00000462.jpg
+00000463.jpg
+00000464.jpg
+00000465.jpg
+00000466.jpg
+00000467.jpg
+00000468.jpg
+00000469.jpg
+00000470.jpg
+00000471.jpg
+00000472.jpg
+00000473.jpg
+00000474.jpg
+00000475.jpg
+00000476.jpg
+00000477.jpg
+00000478.jpg
+00000479.jpg
+00000480.jpg
+00000481.jpg
+00000482.jpg
+00000483.jpg
+00000484.jpg
+00000485.jpg
+00000486.jpg
+00000487.jpg
+00000488.jpg
+00000489.jpg
+00000490.jpg
+00000491.jpg
+00000492.jpg
+00000493.jpg
+00000494.jpg
+00000495.jpg
+00000496.jpg
+00000497.jpg
+00000498.jpg
+00000499.jpg
+00000500.jpg
+00000501.jpg
+00000502.jpg
+00000503.jpg
+00000504.jpg
+00000505.jpg
+00000506.jpg
+00000507.jpg
+00000508.jpg
+00000509.jpg
+00000510.jpg
+00000511.jpg
+00000512.jpg
+00000513.jpg
+00000514.jpg
+00000515.jpg
+00000516.jpg
+00000517.jpg
+00000518.jpg
+00000519.jpg
+00000520.jpg
+00000521.jpg
+00000522.jpg
+00000523.jpg
+00000524.jpg
+00000525.jpg
+00000526.jpg
+00000527.jpg
+00000528.jpg
+00000529.jpg
+00000530.jpg
+00000531.jpg
+00000532.jpg
+00000533.jpg
+00000534.jpg
+00000535.jpg
+00000536.jpg
+00000537.jpg
+00000538.jpg
+00000539.jpg
+00000540.jpg
+00000541.jpg
+00000542.jpg
+00000543.jpg
+00000544.jpg
+00000545.jpg
+00000546.jpg
+00000547.jpg
+00000548.jpg
+00000549.jpg
+00000550.jpg
+00000551.jpg
+00000552.jpg
+00000553.jpg
+00000554.jpg
+00000555.jpg
+00000556.jpg
+00000557.jpg
+00000558.jpg
+00000559.jpg
+00000560.jpg
+00000561.jpg
+00000562.jpg
+00000563.jpg
+00000564.jpg
+00000565.jpg
+00000566.jpg
+00000567.jpg
+00000568.jpg
+00000569.jpg
+00000570.jpg
+00000571.jpg
+00000572.jpg
+00000573.jpg
+00000574.jpg
+00000575.jpg
+00000576.jpg
+00000577.jpg
+00000578.jpg
+00000579.jpg
+00000580.jpg
+00000581.jpg
+00000582.jpg
+00000583.jpg
+00000584.jpg
+00000585.jpg
+00000586.jpg
+00000587.jpg
+00000588.jpg
+00000589.jpg
+00000590.jpg
+00000591.jpg
+00000592.jpg
+00000593.jpg
+00000594.jpg
+00000595.jpg
+00000596.jpg
+00000597.jpg
+00000598.jpg
+00000599.jpg
+00000600.jpg
+00000601.jpg
+00000602.jpg
+00000603.jpg
+00000604.jpg
+00000605.jpg
+00000606.jpg
+00000607.jpg
+00000608.jpg
+00000609.jpg
+00000610.jpg
+00000611.jpg
+00000612.jpg
+00000613.jpg
+00000614.jpg
+00000615.jpg
+00000616.jpg
+00000617.jpg
+00000618.jpg
+00000619.jpg
+00000620.jpg
+00000621.jpg
+00000622.jpg
+00000623.jpg
+00000624.jpg
+00000625.jpg
+00000626.jpg
+00000627.jpg
+00000628.jpg
+00000629.jpg
+00000630.jpg
+00000631.jpg
+00000632.jpg
+00000633.jpg
+00000634.jpg
+00000635.jpg
+00000636.jpg
+00000637.jpg
+00000638.jpg
+00000639.jpg
+00000640.jpg
+00000641.jpg
+00000642.jpg
+00000643.jpg
+00000644.jpg
+00000645.jpg
+00000646.jpg
+00000647.jpg
+00000648.jpg
+00000649.jpg
+00000650.jpg
+00000651.jpg
+00000652.jpg
+00000653.jpg
+00000654.jpg
+00000655.jpg
+00000656.jpg
+00000657.jpg
+00000658.jpg
+00000659.jpg
+00000660.jpg
+00000661.jpg
+00000662.jpg
+00000663.jpg
+00000664.jpg
+00000665.jpg
+00000666.jpg
+00000667.jpg
+00000668.jpg
+00000669.jpg
+00000670.jpg
+00000671.jpg
+00000672.jpg
+00000673.jpg
+00000674.jpg
+00000675.jpg
+00000676.jpg
+00000677.jpg
+00000678.jpg
+00000679.jpg
+00000680.jpg
+00000681.jpg
+00000682.jpg
+00000683.jpg
+00000684.jpg
+00000685.jpg
+00000686.jpg
+00000687.jpg
+00000688.jpg
+00000689.jpg
+00000690.jpg
+00000691.jpg
+00000692.jpg
+00000693.jpg
+00000694.jpg
+00000695.jpg
+00000696.jpg
+00000697.jpg
+00000698.jpg
+00000699.jpg
+00000700.jpg
+00000701.jpg
+00000702.jpg
+00000703.jpg
+00000704.jpg
+00000705.jpg
+00000706.jpg
+00000707.jpg
+00000708.jpg
+00000709.jpg
+00000710.jpg
+00000711.jpg
+00000712.jpg
+00000713.jpg
+00000714.jpg
+00000715.jpg
+00000716.jpg
+00000717.jpg
+00000718.jpg
+00000719.jpg
+00000720.jpg
+00000721.jpg
+00000722.jpg
+00000723.jpg
+00000724.jpg
+00000725.jpg
+00000726.jpg
+00000727.jpg
+00000728.jpg
+00000729.jpg
+00000730.jpg
+00000731.jpg
+00000732.jpg
+00000733.jpg
+00000734.jpg
+00000735.jpg
+00000736.jpg
+00000737.jpg
+00000738.jpg
+00000739.jpg
+00000740.jpg
+00000741.jpg
+00000742.jpg
+00000743.jpg
+00000744.jpg
+00000745.jpg
+00000746.jpg
+00000747.jpg
+00000748.jpg
+00000749.jpg
+00000750.jpg
+00000751.jpg
+00000752.jpg
+00000753.jpg
+00000754.jpg
+00000755.jpg
+00000756.jpg
+00000757.jpg
+00000758.jpg
+00000759.jpg
+00000760.jpg
+00000761.jpg
+00000762.jpg
+00000763.jpg
+00000764.jpg
+00000765.jpg
+00000766.jpg
+00000767.jpg
+00000768.jpg
+00000769.jpg
+00000770.jpg
+00000771.jpg
+00000772.jpg
+00000773.jpg
+00000774.jpg
+00000775.jpg
+00000776.jpg
+00000777.jpg
+00000778.jpg
+00000779.jpg
+00000780.jpg
+00000781.jpg
+00000782.jpg
+00000783.jpg
+00000784.jpg
+00000785.jpg
+00000786.jpg
+00000787.jpg
+00000788.jpg
+00000789.jpg
+00000790.jpg
+00000791.jpg
+00000792.jpg
+00000793.jpg
+00000794.jpg
+00000795.jpg
+00000796.jpg
+00000797.jpg
+00000798.jpg
+00000799.jpg
+00000800.jpg
+00000801.jpg
+00000802.jpg
+00000803.jpg
+00000804.jpg
+00000805.jpg
+00000806.jpg
+00000807.jpg
+00000808.jpg
+00000809.jpg
+00000810.jpg
+00000811.jpg
+00000812.jpg
+00000813.jpg
+00000814.jpg
+00000815.jpg
+00000816.jpg
+00000817.jpg
+00000818.jpg
+00000819.jpg
+00000820.jpg
+00000821.jpg
+00000822.jpg
+00000823.jpg
+00000824.jpg
+00000825.jpg
+00000826.jpg
+00000827.jpg
+00000828.jpg
+00000829.jpg
+00000830.jpg
+00000831.jpg
+00000832.jpg
+00000833.jpg
+00000834.jpg
+00000835.jpg
+00000836.jpg
+00000837.jpg
+00000838.jpg
+00000839.jpg
+00000840.jpg
+00000841.jpg
+00000842.jpg
+00000843.jpg
+00000844.jpg
+00000845.jpg
+00000846.jpg
+00000847.jpg
+00000848.jpg
+00000849.jpg
+00000850.jpg
+00000851.jpg
+00000852.jpg
+00000853.jpg
+00000854.jpg
+00000855.jpg
+00000856.jpg
+00000857.jpg
+00000858.jpg
+00000859.jpg
+00000860.jpg
+00000861.jpg
+00000862.jpg
+00000863.jpg
+00000864.jpg
+00000865.jpg
+00000866.jpg
+00000867.jpg
+00000868.jpg
+00000869.jpg
+00000870.jpg
+00000871.jpg
+00000872.jpg
+00000873.jpg
+00000874.jpg
+00000875.jpg
+00000876.jpg
+00000877.jpg
+00000878.jpg
+00000879.jpg
+00000880.jpg
+00000881.jpg
+00000882.jpg
+00000883.jpg
+00000884.jpg
+00000885.jpg
+00000886.jpg
+00000887.jpg
+00000888.jpg
+00000889.jpg
+00000890.jpg
+00000891.jpg
+00000892.jpg
+00000893.jpg
+00000894.jpg
+00000895.jpg
+00000896.jpg
+00000897.jpg
+00000898.jpg
+00000899.jpg
+00000900.jpg
+00000901.jpg
+00000902.jpg
+00000903.jpg
+00000904.jpg
+00000905.jpg
+00000906.jpg
+00000907.jpg
+00000908.jpg
+00000909.jpg
+00000910.jpg
+00000911.jpg
+00000912.jpg
+00000913.jpg
+00000914.jpg
+00000915.jpg
+00000916.jpg
+00000917.jpg
+00000918.jpg
+00000919.jpg
+00000920.jpg
+00000921.jpg
+00000922.jpg
+00000923.jpg
+00000924.jpg
+00000925.jpg
+00000926.jpg
+00000927.jpg
+00000928.jpg
+00000929.jpg
+00000930.jpg
+00000931.jpg
+00000932.jpg
+00000933.jpg
+00000934.jpg
+00000935.jpg
+00000936.jpg
+00000937.jpg
+00000938.jpg
+00000939.jpg
+00000940.jpg
+00000941.jpg
+00000942.jpg
+00000943.jpg
+00000944.jpg
+00000945.jpg
+00000946.jpg
+00000947.jpg
+00000948.jpg
+00000949.jpg
+00000950.jpg
+00000951.jpg
+00000952.jpg
+00000953.jpg
+00000954.jpg
+00000955.jpg
+00000956.jpg
+00000957.jpg
+00000958.jpg
+00000959.jpg
+00000960.jpg
+00000961.jpg
+00000962.jpg
+00000963.jpg
+00000964.jpg
+00000965.jpg
+00000966.jpg
+00000967.jpg
+00000968.jpg
+00000969.jpg
+00000970.jpg
+00000971.jpg
+00000972.jpg
+00000973.jpg
+00000974.jpg
+00000975.jpg
+00000976.jpg
+00000977.jpg
+00000978.jpg
+00000979.jpg
+00000980.jpg
+00000981.jpg
+00000982.jpg
+00000983.jpg
+00000984.jpg
+00000985.jpg
+00000986.jpg
+00000987.jpg
+00000988.jpg
+00000989.jpg
+00000990.jpg
+00000991.jpg
+00000992.jpg
+00000993.jpg
+00000994.jpg
+00000995.jpg
+00000996.jpg
+00000997.jpg
+00000998.jpg
+00000999.jpg
+00001000.jpg
+00001001.jpg
+00001002.jpg
+00001003.jpg
+00001004.jpg
+00001005.jpg
+00001006.jpg
+00001007.jpg
+00001008.jpg
+00001009.jpg
+00001010.jpg
+00001011.jpg
+00001012.jpg
+00001013.jpg
+00001014.jpg
+00001015.jpg
+00001016.jpg
+00001017.jpg
+00001018.jpg
+00001019.jpg
+00001020.jpg
+00001021.jpg
+00001022.jpg
+00001023.jpg
+00001024.jpg
+00001025.jpg
+00001026.jpg
+00001027.jpg
+00001028.jpg
+00001029.jpg
+00001030.jpg
+00001031.jpg
+00001032.jpg
+00001033.jpg
+00001034.jpg
+00001035.jpg
+00001036.jpg
+00001037.jpg
+00001038.jpg
+00001039.jpg
+00001040.jpg
+00001041.jpg
+00001042.jpg
+00001043.jpg
+00001044.jpg
+00001045.jpg
+00001046.jpg
+00001047.jpg
+00001048.jpg
+00001049.jpg
+00001050.jpg
+00001051.jpg
+00001052.jpg
+00001053.jpg
+00001054.jpg
+00001055.jpg
+00001056.jpg
+00001057.jpg
+00001058.jpg
+00001059.jpg
+00001060.jpg
+00001061.jpg
+00001062.jpg
+00001063.jpg
+00001064.jpg
+00001065.jpg
+00001066.jpg
+00001067.jpg
+00001068.jpg
+00001069.jpg
+00001070.jpg
+00001071.jpg
+00001072.jpg
+00001073.jpg
+00001074.jpg
+00001075.jpg
+00001076.jpg
+00001077.jpg
+00001078.jpg
+00001079.jpg
+00001080.jpg
+00001081.jpg
+00001082.jpg
+00001083.jpg
+00001084.jpg
+00001085.jpg
+00001086.jpg
+00001087.jpg
+00001088.jpg
+00001089.jpg
+00001090.jpg
+00001091.jpg
+00001092.jpg
+00001093.jpg
+00001094.jpg
+00001095.jpg
+00001096.jpg
+00001097.jpg
+00001098.jpg
+00001099.jpg
+00001100.jpg
+00001101.jpg
+00001102.jpg
+00001103.jpg
+00001104.jpg
+00001105.jpg
+00001106.jpg
+00001107.jpg
+00001108.jpg
+00001109.jpg
+00001110.jpg
+00001111.jpg
+00001112.jpg
+00001113.jpg
+00001114.jpg
+00001115.jpg
+00001116.jpg
+00001117.jpg
+00001118.jpg
+00001119.jpg
+00001120.jpg
+00001121.jpg
+00001122.jpg
+00001123.jpg
+00001124.jpg
+00001125.jpg
+00001126.jpg
+00001127.jpg
+00001128.jpg
+00001129.jpg
+00001130.jpg
+00001131.jpg
+00001132.jpg
+00001133.jpg
+00001134.jpg
+00001135.jpg
+00001136.jpg
+00001137.jpg
+00001138.jpg
+00001139.jpg
+00001140.jpg
+00001141.jpg
+00001142.jpg
+00001143.jpg
+00001144.jpg
+00001145.jpg
+00001146.jpg
+00001147.jpg
+00001148.jpg
+00001149.jpg
+00001150.jpg
+00001151.jpg
+00001152.jpg
+00001153.jpg
+00001154.jpg
+00001155.jpg
+00001156.jpg
+00001157.jpg
+00001158.jpg
+00001159.jpg
+00001160.jpg
+00001161.jpg
+00001162.jpg
+00001163.jpg
+00001164.jpg
+00001165.jpg
+00001166.jpg
+00001167.jpg
+00001168.jpg
+00001169.jpg
+00001170.jpg
+00001171.jpg
+00001172.jpg
+00001173.jpg
+00001174.jpg
+00001175.jpg
+00001176.jpg
+00001177.jpg
+00001178.jpg
+00001179.jpg
+00001180.jpg
+00001181.jpg
+00001182.jpg
+00001183.jpg
+00001184.jpg
+00001185.jpg
+00001186.jpg
+00001187.jpg
+00001188.jpg
+00001189.jpg
+00001190.jpg
+00001191.jpg
+00001192.jpg
+00001193.jpg
+00001194.jpg
+00001195.jpg
+00001196.jpg
+00001197.jpg
+00001198.jpg
+00001199.jpg
+00001200.jpg
+00001201.jpg
+00001202.jpg
+00001203.jpg
+00001204.jpg
+00001205.jpg
+00001206.jpg
+00001207.jpg
+00001208.jpg
+00001209.jpg
+00001210.jpg
+00001211.jpg
+00001212.jpg
+00001213.jpg
+00001214.jpg
+00001215.jpg
+00001216.jpg
+00001217.jpg
+00001218.jpg
+00001219.jpg
+00001220.jpg
+00001221.jpg
+00001222.jpg
+00001223.jpg
+00001224.jpg
+00001225.jpg
+00001226.jpg
+00001227.jpg
+00001228.jpg
+00001229.jpg
+00001230.jpg
+00001231.jpg
+00001232.jpg
+00001233.jpg
+00001234.jpg
+00001235.jpg
+00001236.jpg
+00001237.jpg
+00001238.jpg
+00001239.jpg
+00001240.jpg
+00001241.jpg
+00001242.jpg
+00001243.jpg
+00001244.jpg
+00001245.jpg
+00001246.jpg
+00001247.jpg
+00001248.jpg
+00001249.jpg
+00001250.jpg
+00001251.jpg
+00001252.jpg
+00001253.jpg
+00001254.jpg
+00001255.jpg
+00001256.jpg
+00001257.jpg
+00001258.jpg
+00001259.jpg
+00001260.jpg
+00001261.jpg
+00001262.jpg
+00001263.jpg
+00001264.jpg
+00001265.jpg
+00001266.jpg
+00001267.jpg
+00001268.jpg
+00001269.jpg
+00001270.jpg
+00001271.jpg
+00001272.jpg
+00001273.jpg
+00001274.jpg
+00001275.jpg
+00001276.jpg
+00001277.jpg
+00001278.jpg
+00001279.jpg
+00001280.jpg
+00001281.jpg
+00001282.jpg
+00001283.jpg
+00001284.jpg
+00001285.jpg
+00001286.jpg
+00001287.jpg
+00001288.jpg
+00001289.jpg
+00001290.jpg
+00001291.jpg
+00001292.jpg
+00001293.jpg
+00001294.jpg
+00001295.jpg
+00001296.jpg
+00001297.jpg
+00001298.jpg
+00001299.jpg
+00001300.jpg
+00001301.jpg
+00001302.jpg
+00001303.jpg
+00001304.jpg
+00001305.jpg
+00001306.jpg
+00001307.jpg
+00001308.jpg
+00001309.jpg
+00001310.jpg
+00001311.jpg
+00001312.jpg
+00001313.jpg
+00001314.jpg
+00001315.jpg
+00001316.jpg
+00001317.jpg
+00001318.jpg
+00001319.jpg
+00001320.jpg
+00001321.jpg
+00001322.jpg
+00001323.jpg
+00001324.jpg
+00001325.jpg
+00001326.jpg
+00001327.jpg
+00001328.jpg
+00001329.jpg
+00001330.jpg
+00001331.jpg
+00001332.jpg
+00001333.jpg
+00001334.jpg
+00001335.jpg
+00001336.jpg
+00001337.jpg
+00001338.jpg
+00001339.jpg
+00001340.jpg
+00001341.jpg
+00001342.jpg
+00001343.jpg
+00001344.jpg
+00001345.jpg
+00001346.jpg
+00001347.jpg
+00001348.jpg
+00001349.jpg
+00001350.jpg
+00001351.jpg
+00001352.jpg
+00001353.jpg
+00001354.jpg
+00001355.jpg
+00001356.jpg
+00001357.jpg
+00001358.jpg
+00001359.jpg
+00001360.jpg
+00001361.jpg
+00001362.jpg
+00001363.jpg
+00001364.jpg
+00001365.jpg
+00001366.jpg
+00001367.jpg
+00001368.jpg
+00001369.jpg
+00001370.jpg
+00001371.jpg
+00001372.jpg
+00001373.jpg
+00001374.jpg
+00001375.jpg
+00001376.jpg
+00001377.jpg
+00001378.jpg
+00001379.jpg
+00001380.jpg
+00001381.jpg
+00001382.jpg
+00001383.jpg
+00001384.jpg
+00001385.jpg
+00001386.jpg
+00001387.jpg
+00001388.jpg
+00001389.jpg
+00001390.jpg
+00001391.jpg
+00001392.jpg
+00001393.jpg
+00001394.jpg
+00001395.jpg
+00001396.jpg
+00001397.jpg
+00001398.jpg
+00001399.jpg
+00001400.jpg
+00001401.jpg
+00001402.jpg
+00001403.jpg
+00001404.jpg
+00001405.jpg
+00001406.jpg
+00001407.jpg
+00001408.jpg
+00001409.jpg
+00001410.jpg
+00001411.jpg
+00001412.jpg
+00001413.jpg
+00001414.jpg
+00001415.jpg
+00001416.jpg
+00001417.jpg
+00001418.jpg
+00001419.jpg
+00001420.jpg
+00001421.jpg
+00001422.jpg
+00001423.jpg
+00001424.jpg
+00001425.jpg
+00001426.jpg
+00001427.jpg
+00001428.jpg
+00001429.jpg
+00001430.jpg
+00001431.jpg
+00001432.jpg
+00001433.jpg
+00001434.jpg
+00001435.jpg
+00001436.jpg
+00001437.jpg
+00001438.jpg
+00001439.jpg
+00001440.jpg
+00001441.jpg
+00001442.jpg
+00001443.jpg
+00001444.jpg
+00001445.jpg
+00001446.jpg
+00001447.jpg
+00001448.jpg
+00001449.jpg
+00001450.jpg
+00001451.jpg
+00001452.jpg
+00001453.jpg
+00001454.jpg
+00001455.jpg
+00001456.jpg
+00001457.jpg
+00001458.jpg
+00001459.jpg
+00001460.jpg
+00001461.jpg
+00001462.jpg
+00001463.jpg
+00001464.jpg
+00001465.jpg
+00001466.jpg
+00001467.jpg
+00001468.jpg
+00001469.jpg
+00001470.jpg
+00001471.jpg
+00001472.jpg
+00001473.jpg
+00001474.jpg
+00001475.jpg
+00001476.jpg
+00001477.jpg
+00001478.jpg
+00001479.jpg
+00001480.jpg
+00001481.jpg
+00001482.jpg
+00001483.jpg
+00001484.jpg
+00001485.jpg
+00001486.jpg
+00001487.jpg
+00001488.jpg
+00001489.jpg
+00001490.jpg
+00001491.jpg
+00001492.jpg
+00001493.jpg
+00001494.jpg
+00001495.jpg
+00001496.jpg
+00001497.jpg
+00001498.jpg
+00001499.jpg
+00001500.jpg
+00001501.jpg
+00001502.jpg
+00001503.jpg
+00001504.jpg
+00001505.jpg
+00001506.jpg
+00001507.jpg
+00001508.jpg
+00001509.jpg
+00001510.jpg
+00001511.jpg
+00001512.jpg
+00001513.jpg
+00001514.jpg
+00001515.jpg
+00001516.jpg
+00001517.jpg
+00001518.jpg
+00001519.jpg
+00001520.jpg
+00001521.jpg
+00001522.jpg
+00001523.jpg
+00001524.jpg
+00001525.jpg
+00001526.jpg
+00001527.jpg
+00001528.jpg
+00001529.jpg
+00001530.jpg
+00001531.jpg
+00001532.jpg
+00001533.jpg
+00001534.jpg
+00001535.jpg
+00001536.jpg
+00001537.jpg
+00001538.jpg
+00001539.jpg
+00001540.jpg
+00001541.jpg
+00001542.jpg
+00001543.jpg
+00001544.jpg
+00001545.jpg
+00001546.jpg
+00001547.jpg
+00001548.jpg
+00001549.jpg
+00001550.jpg
+00001551.jpg
+00001552.jpg
+00001553.jpg
+00001554.jpg
+00001555.jpg
+00001556.jpg
+00001557.jpg
+00001558.jpg
+00001559.jpg
+00001560.jpg
+00001561.jpg
+00001562.jpg
+00001563.jpg
+00001564.jpg
+00001565.jpg
+00001566.jpg
+00001567.jpg
+00001568.jpg
+00001569.jpg
+00001570.jpg
+00001571.jpg
+00001572.jpg
+00001573.jpg
+00001574.jpg
+00001575.jpg
+00001576.jpg
+00001577.jpg
+00001578.jpg
+00001579.jpg
+00001580.jpg
+00001581.jpg
+00001582.jpg
+00001583.jpg
+00001584.jpg
+00001585.jpg
+00001586.jpg
+00001587.jpg
+00001588.jpg
+00001589.jpg
+00001590.jpg
+00001591.jpg
+00001592.jpg
+00001593.jpg
+00001594.jpg
+00001595.jpg
+00001596.jpg
+00001597.jpg
+00001598.jpg
+00001599.jpg
+00001600.jpg
+00001601.jpg
+00001602.jpg
+00001603.jpg
+00001604.jpg
+00001605.jpg
+00001606.jpg
+00001607.jpg
+00001608.jpg
+00001609.jpg
+00001610.jpg
+00001611.jpg
+00001612.jpg
+00001613.jpg
+00001614.jpg
+00001615.jpg
+00001616.jpg
+00001617.jpg
+00001618.jpg
+00001619.jpg
+00001620.jpg
+00001621.jpg
+00001622.jpg
+00001623.jpg
+00001624.jpg
+00001625.jpg
+00001626.jpg
+00001627.jpg
+00001628.jpg
+00001629.jpg
+00001630.jpg
+00001631.jpg
+00001632.jpg
+00001633.jpg
+00001634.jpg
+00001635.jpg
+00001636.jpg
+00001637.jpg
+00001638.jpg
+00001639.jpg
+00001640.jpg
+00001641.jpg
+00001642.jpg
+00001643.jpg
+00001644.jpg
+00001645.jpg
+00001646.jpg
+00001647.jpg
+00001648.jpg
+00001649.jpg
+00001650.jpg
+00001651.jpg
+00001652.jpg
+00001653.jpg
+00001654.jpg
+00001655.jpg
+00001656.jpg
+00001657.jpg
+00001658.jpg
+00001659.jpg
+00001660.jpg
+00001661.jpg
+00001662.jpg
+00001663.jpg
+00001664.jpg
+00001665.jpg
+00001666.jpg
+00001667.jpg
+00001668.jpg
+00001669.jpg
+00001670.jpg
+00001671.jpg
+00001672.jpg
+00001673.jpg
+00001674.jpg
+00001675.jpg
+00001676.jpg
+00001677.jpg
+00001678.jpg
+00001679.jpg
+00001680.jpg
+00001681.jpg
+00001682.jpg
+00001683.jpg
+00001684.jpg
+00001685.jpg
+00001686.jpg
+00001687.jpg
+00001688.jpg
+00001689.jpg
+00001690.jpg
+00001691.jpg
+00001692.jpg
+00001693.jpg
+00001694.jpg
+00001695.jpg
+00001696.jpg
+00001697.jpg
+00001698.jpg
+00001699.jpg
+00001700.jpg
+00001701.jpg
+00001702.jpg
+00001703.jpg
+00001704.jpg
+00001705.jpg
+00001706.jpg
+00001707.jpg
+00001708.jpg
+00001709.jpg
+00001710.jpg
+00001711.jpg
+00001712.jpg
+00001713.jpg
+00001714.jpg
+00001715.jpg
+00001716.jpg
+00001717.jpg
+00001718.jpg
+00001719.jpg
+00001720.jpg
+00001721.jpg
+00001722.jpg
+00001723.jpg
+00001724.jpg
+00001725.jpg
+00001726.jpg
+00001727.jpg
+00001728.jpg
+00001729.jpg
+00001730.jpg
+00001731.jpg
+00001732.jpg
+00001733.jpg
+00001734.jpg
+00001735.jpg
+00001736.jpg
+00001737.jpg
+00001738.jpg
+00001739.jpg
+00001740.jpg
+00001741.jpg
+00001742.jpg
+00001743.jpg
+00001744.jpg
+00001745.jpg
+00001746.jpg
+00001747.jpg
+00001748.jpg
+00001749.jpg
+00001750.jpg
+00001751.jpg
+00001752.jpg
+00001753.jpg
+00001754.jpg
+00001755.jpg
+00001756.jpg
+00001757.jpg
+00001758.jpg
+00001759.jpg
+00001760.jpg
+00001761.jpg
+00001762.jpg
+00001763.jpg
+00001764.jpg
+00001765.jpg
+00001766.jpg
+00001767.jpg
+00001768.jpg
+00001769.jpg
+00001770.jpg
+00001771.jpg
+00001772.jpg
+00001773.jpg
+00001774.jpg
+00001775.jpg
+00001776.jpg
+00001777.jpg
+00001778.jpg
+00001779.jpg
+00001780.jpg
+00001781.jpg
+00001782.jpg
+00001783.jpg
+00001784.jpg
+00001785.jpg
+00001786.jpg
+00001787.jpg
+00001788.jpg
+00001789.jpg
+00001790.jpg
+00001791.jpg
+00001792.jpg
+00001793.jpg
+00001794.jpg
+00001795.jpg
+00001796.jpg
+00001797.jpg
+00001798.jpg
+00001799.jpg
+00001800.jpg
+00001801.jpg
+00001802.jpg
+00001803.jpg
+00001804.jpg
+00001805.jpg
+00001806.jpg
+00001807.jpg
+00001808.jpg
+00001809.jpg
+00001810.jpg
+00001811.jpg
+00001812.jpg
+00001813.jpg
+00001814.jpg
+00001815.jpg
+00001816.jpg
+00001817.jpg
+00001818.jpg
+00001819.jpg
+00001820.jpg
+00001821.jpg
+00001822.jpg
+00001823.jpg
+00001824.jpg
+00001825.jpg
+00001826.jpg
+00001827.jpg
+00001828.jpg
+00001829.jpg
+00001830.jpg
+00001831.jpg
+00001832.jpg
+00001833.jpg
+00001834.jpg
+00001835.jpg
+00001836.jpg
+00001837.jpg
+00001838.jpg
+00001839.jpg
+00001840.jpg
+00001841.jpg
+00001842.jpg
+00001843.jpg
+00001844.jpg
+00001845.jpg
+00001846.jpg
+00001847.jpg
+00001848.jpg
+00001849.jpg
+00001850.jpg
+00001851.jpg
+00001852.jpg
+00001853.jpg
+00001854.jpg
+00001855.jpg
+00001856.jpg
+00001857.jpg
+00001858.jpg
+00001859.jpg
+00001860.jpg
+00001861.jpg
+00001862.jpg
+00001863.jpg
+00001864.jpg
+00001865.jpg
+00001866.jpg
+00001867.jpg
+00001868.jpg
+00001869.jpg
+00001870.jpg
+00001871.jpg
+00001872.jpg
+00001873.jpg
+00001874.jpg
+00001875.jpg
+00001876.jpg
+00001877.jpg
+00001878.jpg
+00001879.jpg
+00001880.jpg
+00001881.jpg
+00001882.jpg
+00001883.jpg
+00001884.jpg
+00001885.jpg
+00001886.jpg
+00001887.jpg
+00001888.jpg
+00001889.jpg
+00001890.jpg
+00001891.jpg
+00001892.jpg
+00001893.jpg
+00001894.jpg
+00001895.jpg
+00001896.jpg
+00001897.jpg
+00001898.jpg
+00001899.jpg
+00001900.jpg
+00001901.jpg
+00001902.jpg
+00001903.jpg
+00001904.jpg
+00001905.jpg
+00001906.jpg
+00001907.jpg
+00001908.jpg
+00001909.jpg
+00001910.jpg
+00001911.jpg
+00001912.jpg
+00001913.jpg
+00001914.jpg
+00001915.jpg
+00001916.jpg
+00001917.jpg
+00001918.jpg
+00001919.jpg
+00001920.jpg
+00001921.jpg
+00001922.jpg
+00001923.jpg
+00001924.jpg
+00001925.jpg
+00001926.jpg
+00001927.jpg
+00001928.jpg
+00001929.jpg
+00001930.jpg
+00001931.jpg
+00001932.jpg
+00001933.jpg
+00001934.jpg
+00001935.jpg
+00001936.jpg
+00001937.jpg
+00001938.jpg
+00001939.jpg
+00001940.jpg
+00001941.jpg
+00001942.jpg
+00001943.jpg
+00001944.jpg
+00001945.jpg
+00001946.jpg
+00001947.jpg
+00001948.jpg
+00001949.jpg
+00001950.jpg
+00001951.jpg
+00001952.jpg
+00001953.jpg
+00001954.jpg
+00001955.jpg
+00001956.jpg
+00001957.jpg
+00001958.jpg
+00001959.jpg
+00001960.jpg
+00001961.jpg
+00001962.jpg
+00001963.jpg
+00001964.jpg
+00001965.jpg
+00001966.jpg
+00001967.jpg
+00001968.jpg
+00001969.jpg
+00001970.jpg
+00001971.jpg
+00001972.jpg
+00001973.jpg
+00001974.jpg
+00001975.jpg
+00001976.jpg
+00001978.jpg
+00001979.jpg
+00001980.jpg
+00001981.jpg
+00001982.jpg
+00001983.jpg
+00001984.jpg
+00001985.jpg
+00001986.jpg
+00001987.jpg
+00001988.jpg
+00001989.jpg
+00001990.jpg
+00001991.jpg
+00001992.jpg
+00001993.jpg
+00001994.jpg
+00001995.jpg
+00001996.jpg
+00001997.jpg
+00001998.jpg
+00001999.jpg
+00002000.jpg
+00002001.jpg
+00002002.jpg
+00002003.jpg
+00002004.jpg
+00002005.jpg
+00002006.jpg
+00002007.jpg
+00002008.jpg
+00002009.jpg
+00002010.jpg
+00002011.jpg
+00002012.jpg
+00002013.jpg
+00002014.jpg
+00002015.jpg
+00002016.jpg
+00002017.jpg
+00002018.jpg
+00002019.jpg
+00002020.jpg
+00002021.jpg
+00002022.jpg
+00002023.jpg
+00002024.jpg
+00002025.jpg
+00002026.jpg
+00002027.jpg
+00002028.jpg
+00002029.jpg
+00002030.jpg
+00002031.jpg
+00002032.jpg
+00002033.jpg
+00002034.jpg
+00002035.jpg
+00002036.jpg
+00002037.jpg
+00002038.jpg
+00002039.jpg
+00002040.jpg
+00002041.jpg
+00002042.jpg
+00002043.jpg
+00002044.jpg
+00002045.jpg
+00002046.jpg
+00002047.jpg
+00002048.jpg
+00002049.jpg
+00002050.jpg
+00002051.jpg
+00002052.jpg
+00002053.jpg
+00002054.jpg
+00002055.jpg
+00002056.jpg
+00002057.jpg
+00002058.jpg
+00002059.jpg
+00002060.jpg
+00002061.jpg
+00002062.jpg
+00002063.jpg
+00002064.jpg
+00002065.jpg
+00002066.jpg
+00002067.jpg
+00002068.jpg
+00002069.jpg
+00002070.jpg
+00002071.jpg
+00002072.jpg
+00002073.jpg
+00002074.jpg
+00002075.jpg
+00002076.jpg
+00002077.jpg
+00002078.jpg
+00002079.jpg
+00002080.jpg
+00002081.jpg
+00002082.jpg
+00002083.jpg
+00002084.jpg
+00002085.jpg
+00002086.jpg
+00002087.jpg
+00002088.jpg
+00002089.jpg
+00002090.jpg
+00002091.jpg
+00002092.jpg
+00002093.jpg
+00002094.jpg
+00002095.jpg
+00002096.jpg
+00002097.jpg
+00002098.jpg
+00002099.jpg
+00002100.jpg
+00002101.jpg
+00002102.jpg
+00002103.jpg
+00002104.jpg
+00002105.jpg
+00002107.jpg
+00002108.jpg
+00002109.jpg
+00002110.jpg
+00002111.jpg
+00002112.jpg
+00002113.jpg
+00002114.jpg
+00002115.jpg
+00002116.jpg
+00002117.jpg
+00002118.jpg
+00002119.jpg
+00002120.jpg
+00002121.jpg
+00002122.jpg
+00002123.jpg
+00002124.jpg
+00002125.jpg
+00002126.jpg
+00002127.jpg
+00002128.jpg
+00002129.jpg
+00002130.jpg
+00002131.jpg
+00002132.jpg
+00002133.jpg
+00002134.jpg
+00002135.jpg
+00002136.jpg
+00002137.jpg
+00002138.jpg
+00002139.jpg
+00002140.jpg
+00002141.jpg
+00002142.jpg
+00002143.jpg
+00002144.jpg
+00002145.jpg
+00002146.jpg
+00002147.jpg
+00002148.jpg
+00002149.jpg
+00002150.jpg
+00002151.jpg
+00002152.jpg
+00002153.jpg
+00002154.jpg
+00002155.jpg
+00002156.jpg
+00002157.jpg
+00002158.jpg
+00002159.jpg
+00002160.jpg
+00002161.jpg
+00002162.jpg
+00002163.jpg
+00002164.jpg
+00002165.jpg
+00002166.jpg
+00002167.jpg
+00002168.jpg
+00002169.jpg
+00002170.jpg
+00002171.jpg
+00002172.jpg
+00002173.jpg
+00002174.jpg
+00002175.jpg
+00002176.jpg
+00002177.jpg
+00002178.jpg
+00002179.jpg
+00002180.jpg
+00002181.jpg
+00002182.jpg
+00002183.jpg
+00002184.jpg
+00002185.jpg
+00002186.jpg
+00002187.jpg
+00002188.jpg
+00002189.jpg
+00002190.jpg
+00002191.jpg
+00002192.jpg
+00002193.jpg
+00002194.jpg
+00002195.jpg
+00002196.jpg
+00002197.jpg
+00002198.jpg
+00002199.jpg
+00002200.jpg
+00002201.jpg
+00002202.jpg
+00002203.jpg
+00002204.jpg
+00002205.jpg
+00002206.jpg
+00002207.jpg
+00002208.jpg
+00002209.jpg
+00002210.jpg
+00002211.jpg
+00002212.jpg
+00002213.jpg
+00002214.jpg
+00002215.jpg
+00002216.jpg
+00002217.jpg
+00002218.jpg
+00002219.jpg
+00002220.jpg
+00002221.jpg
+00002222.jpg
+00002223.jpg
+00002224.jpg
+00002225.jpg
+00002226.jpg
+00002227.jpg
+00002228.jpg
+00002229.jpg
+00002230.jpg
+00002231.jpg
+00002232.jpg
+00002233.jpg
+00002234.jpg
+00002235.jpg
+00002236.jpg
+00002237.jpg
+00002238.jpg
+00002239.jpg
+00002240.jpg
+00002241.jpg
+00002242.jpg
+00002243.jpg
+00002244.jpg
+00002245.jpg
+00002246.jpg
+00002247.jpg
+00002248.jpg
+00002249.jpg
+00002250.jpg
+00002251.jpg
+00002252.jpg
+00002253.jpg
+00002254.jpg
+00002255.jpg
+00002256.jpg
+00002257.jpg
+00002258.jpg
+00002259.jpg
+00002260.jpg
+00002261.jpg
+00002262.jpg
+00002263.jpg
+00002264.jpg
+00002265.jpg
+00002266.jpg
+00002267.jpg
+00002268.jpg
+00002269.jpg
+00002270.jpg
+00002271.jpg
+00002272.jpg
+00002273.jpg
+00002274.jpg
+00002275.jpg
+00002276.jpg
+00002277.jpg
+00002278.jpg
+00002279.jpg
+00002280.jpg
+00002281.jpg
+00002282.jpg
+00002283.jpg
+00002284.jpg
+00002285.jpg
+00002286.jpg
+00002287.jpg
+00002288.jpg
+00002289.jpg
+00002290.jpg
+00002291.jpg
+00002292.jpg
+00002293.jpg
+00002294.jpg
+00002295.jpg
+00002296.jpg
+00002297.jpg
+00002298.jpg
+00002299.jpg
+00002300.jpg
+00002301.jpg
+00002302.jpg
+00002303.jpg
+00002304.jpg
+00002305.jpg
+00002306.jpg
+00002307.jpg
+00002308.jpg
+00002309.jpg
+00002310.jpg
+00002311.jpg
+00002312.jpg
+00002313.jpg
+00002314.jpg
+00002315.jpg
+00002316.jpg
+00002317.jpg
+00002318.jpg
+00002319.jpg
+00002320.jpg
+00002321.jpg
+00002322.jpg
+00002323.jpg
+00002324.jpg
+00002325.jpg
+00002326.jpg
+00002327.jpg
+00002328.jpg
+00002329.jpg
+00002330.jpg
+00002331.jpg
+00002332.jpg
+00002333.jpg
+00002334.jpg
+00002335.jpg
+00002336.jpg
+00002337.jpg
+00002338.jpg
+00002339.jpg
+00002340.jpg
+00002341.jpg
+00002342.jpg
+00002343.jpg
+00002344.jpg
+00002345.jpg
+00002346.jpg
+00002347.jpg
+00002348.jpg
+00002349.jpg
+00002350.jpg
+00002351.jpg
+00002352.jpg
+00002353.jpg
+00002354.jpg
+00002355.jpg
+00002356.jpg
+00002357.jpg
+00002358.jpg
+00002359.jpg
+00002360.jpg
+00002361.jpg
+00002362.jpg
+00002363.jpg
+00002364.jpg
+00002365.jpg
+00002366.jpg
+00002367.jpg
+00002368.jpg
+00002369.jpg
+00002370.jpg
+00002371.jpg
+00002372.jpg
+00002373.jpg
+00002374.jpg
+00002375.jpg
+00002376.jpg
+00002377.jpg
+00002378.jpg
+00002379.jpg
+00002380.jpg
+00002381.jpg
+00002382.jpg
+00002383.jpg
+00002384.jpg
+00002385.jpg
+00002386.jpg
+00002387.jpg
+00002388.jpg
+00002389.jpg
+00002390.jpg
+00002391.jpg
+00002392.jpg
+00002393.jpg
+00002394.jpg
+00002395.jpg
+00002396.jpg
+00002397.jpg
+00002398.jpg
+00002399.jpg
+00002400.jpg
+00002401.jpg
+00002402.jpg
+00002403.jpg
+00002404.jpg
+00002405.jpg
+00002406.jpg
+00002407.jpg
+00002408.jpg
+00002409.jpg
+00002410.jpg
+00002411.jpg
+00002412.jpg
+00002413.jpg
+00002414.jpg
+00002415.jpg
+00002416.jpg
+00002417.jpg
+00002418.jpg
+00002419.jpg
+00002420.jpg
+00002421.jpg
+00002422.jpg
+00002423.jpg
+00002424.jpg
+00002425.jpg
+00002426.jpg
+00002427.jpg
+00002428.jpg
+00002429.jpg
+00002430.jpg
+00002431.jpg
+00002432.jpg
+00002433.jpg
+00002434.jpg
+00002435.jpg
+00002436.jpg
+00002437.jpg
+00002438.jpg
+00002439.jpg
+00002440.jpg
+00002441.jpg
+00002442.jpg
+00002443.jpg
+00002444.jpg
+00002445.jpg
+00002446.jpg
+00002447.jpg
+00002448.jpg
+00002449.jpg
+00002450.jpg
+00002451.jpg
+00002452.jpg
+00002453.jpg
+00002454.jpg
+00002455.jpg
+00002456.jpg
+00002457.jpg
+00002458.jpg
+00002459.jpg
+00002460.jpg
+00002461.jpg
+00002462.jpg
+00002463.jpg
+00002464.jpg
+00002465.jpg
+00002466.jpg
+00002467.jpg
+00002468.jpg
+00002469.jpg
+00002470.jpg
+00002471.jpg
+00002472.jpg
+00002473.jpg
+00002474.jpg
+00002475.jpg
+00002476.jpg
+00002477.jpg
+00002478.jpg
+00002479.jpg
+00002480.jpg
+00002481.jpg
+00002482.jpg
+00002483.jpg
+00002484.jpg
+00002485.jpg
+00002486.jpg
+00002487.jpg
+00002488.jpg
+00002489.jpg
+00002490.jpg
+00002491.jpg
+00002492.jpg
+00002493.jpg
+00002494.jpg
+00002495.jpg
+00002496.jpg
+00002497.jpg
+00002498.jpg
+00002499.jpg
+00002500.jpg
+00002501.jpg
+00002502.jpg
+00002503.jpg
+00002504.jpg
+00002505.jpg
+00002506.jpg
+00002507.jpg
+00002508.jpg
+00002509.jpg
+00002510.jpg
+00002511.jpg
+00002512.jpg
+00002513.jpg
+00002514.jpg
+00002515.jpg
+00002516.jpg
+00002517.jpg
+00002518.jpg
+00002519.jpg
+00002520.jpg
+00002521.jpg
+00002522.jpg
+00002523.jpg
+00002524.jpg
+00002525.jpg
+00002526.jpg
+00002527.jpg
+00002528.jpg
+00002529.jpg
+00002530.jpg
+00002531.jpg
+00002532.jpg
+00002533.jpg
+00002534.jpg
+00002535.jpg
+00002536.jpg
+00002537.jpg
+00002538.jpg
+00002539.jpg
+00002540.jpg
+00002541.jpg
+00002542.jpg
+00002543.jpg
+00002544.jpg
+00002545.jpg
+00002546.jpg
+00002547.jpg
+00002548.jpg
+00002549.jpg
+00002550.jpg
+00002551.jpg
+00002552.jpg
+00002553.jpg
+00002554.jpg
+00002555.jpg
+00002556.jpg
+00002557.jpg
+00002558.jpg
+00002559.jpg
+00002560.jpg
+00002561.jpg
+00002562.jpg
+00002563.jpg
+00002564.jpg
+00002565.jpg
+00002566.jpg
+00002567.jpg
+00002568.jpg
+00002569.jpg
+00002570.jpg
+00002571.jpg
+00002572.jpg
+00002573.jpg
+00002574.jpg
+00002575.jpg
+00002576.jpg
+00002577.jpg
+00002578.jpg
+00002579.jpg
+00002580.jpg
+00002581.jpg
+00002582.jpg
+00002583.jpg
+00002584.jpg
+00002585.jpg
+00002586.jpg
+00002587.jpg
+00002588.jpg
+00002589.jpg
+00002590.jpg
+00002591.jpg
+00002592.jpg
+00002593.jpg
+00002594.jpg
+00002595.jpg
+00002596.jpg
+00002597.jpg
+00002598.jpg
+00002599.jpg
+00002600.jpg
+00002601.jpg
+00002602.jpg
+00002603.jpg
+00002604.jpg
+00002605.jpg
+00002606.jpg
+00002607.jpg
+00002608.jpg
+00002609.jpg
+00002610.jpg
+00002611.jpg
+00002612.jpg
+00002613.jpg
+00002614.jpg
+00002615.jpg
+00002616.jpg
+00002617.jpg
+00002618.jpg
+00002619.jpg
+00002620.jpg
+00002621.jpg
+00002622.jpg
+00002623.jpg
+00002624.jpg
+00002625.jpg
+00002626.jpg
+00002627.jpg
+00002628.jpg
+00002629.jpg
+00002630.jpg
+00002631.jpg
+00002632.jpg
+00002633.jpg
+00002634.jpg
+00002635.jpg
+00002636.jpg
+00002637.jpg
+00002638.jpg
+00002639.jpg
+00002640.jpg
+00002641.jpg
+00002642.jpg
+00002643.jpg
+00002644.jpg
+00002645.jpg
+00002646.jpg
+00002647.jpg
+00002648.jpg
+00002649.jpg
+00002650.jpg
+00002651.jpg
+00002652.jpg
+00002653.jpg
+00002654.jpg
+00002655.jpg
+00002656.jpg
+00002657.jpg
+00002658.jpg
+00002659.jpg
+00002660.jpg
+00002661.jpg
+00002662.jpg
+00002663.jpg
+00002664.jpg
+00002665.jpg
+00002666.jpg
+00002667.jpg
+00002668.jpg
+00002669.jpg
+00002670.jpg
+00002671.jpg
+00002672.jpg
+00002673.jpg
+00002674.jpg
+00002675.jpg
+00002676.jpg
+00002677.jpg
+00002678.jpg
+00002679.jpg
+00002680.jpg
+00002681.jpg
+00002682.jpg
+00002683.jpg
+00002684.jpg
+00002685.jpg
+00002686.jpg
+00002687.jpg
+00002688.jpg
+00002689.jpg
+00002690.jpg
+00002691.jpg
+00002692.jpg
+00002693.jpg
+00002694.jpg
+00002695.jpg
+00002696.jpg
+00002697.jpg
+00002698.jpg
+00002699.jpg
+00002700.jpg
+00002701.jpg
+00002702.jpg
+00002703.jpg
+00002704.jpg
+00002705.jpg
+00002706.jpg
+00002707.jpg
+00002708.jpg
+00002709.jpg
+00002710.jpg
+00002711.jpg
+00002712.jpg
+00002713.jpg
+00002714.jpg
+00002715.jpg
+00002716.jpg
+00002717.jpg
+00002718.jpg
+00002719.jpg
+00002720.jpg
+00002721.jpg
+00002722.jpg
+00002723.jpg
+00002724.jpg
+00002725.jpg
+00002726.jpg
+00002727.jpg
+00002728.jpg
+00002729.jpg
+00002730.jpg
+00002731.jpg
+00002732.jpg
+00002733.jpg
+00002734.jpg
+00002735.jpg
+00002736.jpg
+00002737.jpg
+00002738.jpg
+00002739.jpg
+00002740.jpg
+00002741.jpg
+00002742.jpg
+00002743.jpg
+00002744.jpg
+00002745.jpg
+00002746.jpg
+00002747.jpg
+00002748.jpg
+00002749.jpg
+00002750.jpg
+00002751.jpg
+00002752.jpg
+00002753.jpg
+00002754.jpg
+00002755.jpg
+00002756.jpg
+00002757.jpg
+00002758.jpg
+00002759.jpg
+00002760.jpg
+00002761.jpg
+00002762.jpg
+00002763.jpg
+00002764.jpg
+00002765.jpg
+00002766.jpg
+00002767.jpg
+00002768.jpg
+00002769.jpg
+00002770.jpg
+00002771.jpg
+00002772.jpg
+00002773.jpg
+00002774.jpg
+00002775.jpg
+00002776.jpg
+00002777.jpg
+00002778.jpg
+00002779.jpg
+00002780.jpg
+00002781.jpg
+00002782.jpg
+00002783.jpg
+00002784.jpg
+00002785.jpg
+00002786.jpg
+00002787.jpg
+00002788.jpg
+00002789.jpg
+00002790.jpg
+00002791.jpg
+00002792.jpg
+00002793.jpg
+00002794.jpg
+00002795.jpg
+00002796.jpg
+00002797.jpg
+00002798.jpg
+00002799.jpg
+00002800.jpg
+00002801.jpg
+00002802.jpg
+00002803.jpg
+00002804.jpg
+00002805.jpg
+00002806.jpg
+00002807.jpg
+00002808.jpg
+00002809.jpg
+00002810.jpg
+00002811.jpg
+00002812.jpg
+00002813.jpg
+00002814.jpg
+00002815.jpg
+00002816.jpg
+00002817.jpg
+00002818.jpg
+00002819.jpg
+00002820.jpg
+00002821.jpg
+00002822.jpg
+00002823.jpg
+00002824.jpg
+00002825.jpg
+00002826.jpg
+00002827.jpg
+00002828.jpg
+00002829.jpg
+00002830.jpg
+00002831.jpg
+00002832.jpg
+00002833.jpg
+00002834.jpg
+00002835.jpg
+00002836.jpg
+00002837.jpg
+00002838.jpg
+00002839.jpg
+00002840.jpg
+00002841.jpg
+00002842.jpg
+00002843.jpg
+00002844.jpg
+00002845.jpg
+00002846.jpg
+00002847.jpg
+00002848.jpg
+00002849.jpg
+00002850.jpg
+00002851.jpg
+00002852.jpg
+00002853.jpg
+00002854.jpg
+00002855.jpg
+00002856.jpg
+00002857.jpg
+00002858.jpg
+00002859.jpg
+00002860.jpg
+00002861.jpg
+00002862.jpg
+00002863.jpg
+00002864.jpg
+00002865.jpg
+00002866.jpg
+00002867.jpg
+00002868.jpg
+00002869.jpg
+00002870.jpg
+00002871.jpg
+00002872.jpg
+00002873.jpg
+00002874.jpg
+00002875.jpg
+00002876.jpg
+00002877.jpg
+00002878.jpg
+00002879.jpg
+00002880.jpg
+00002881.jpg
+00002882.jpg
+00002883.jpg
+00002884.jpg
+00002885.jpg
+00002886.jpg
+00002887.jpg
+00002888.jpg
+00002889.jpg
+00002890.jpg
+00002891.jpg
+00002892.jpg
+00002893.jpg
+00002894.jpg
+00002895.jpg
+00002896.jpg
+00002897.jpg
+00002898.jpg
+00002899.jpg
+00002900.jpg
+00002901.jpg
+00002902.jpg
+00002903.jpg
+00002904.jpg
+00002905.jpg
+00002906.jpg
+00002907.jpg
+00002908.jpg
+00002909.jpg
+00002910.jpg
+00002911.jpg
+00002912.jpg
+00002913.jpg
+00002914.jpg
+00002915.jpg
+00002916.jpg
+00002917.jpg
+00002918.jpg
+00002919.jpg
+00002920.jpg
+00002921.jpg
+00002922.jpg
+00002923.jpg
+00002924.jpg
+00002925.jpg
+00002926.jpg
+00002927.jpg
+00002928.jpg
+00002929.jpg
+00002930.jpg
+00002931.jpg
+00002932.jpg
+00002933.jpg
+00002934.jpg
+00002935.jpg
+00002936.jpg
+00002937.jpg
+00002938.jpg
+00002939.jpg
+00002940.jpg
+00002941.jpg
+00002942.jpg
+00002943.jpg
+00002944.jpg
+00002945.jpg
+00002946.jpg
+00002947.jpg
+00002948.jpg
+00002949.jpg
+00002950.jpg
+00002951.jpg
+00002952.jpg
+00002953.jpg
+00002954.jpg
+00002955.jpg
+00002956.jpg
+00002957.jpg
+00002958.jpg
+00002959.jpg
+00002960.jpg
+00002961.jpg
+00002962.jpg
+00002963.jpg
+00002964.jpg
+00002965.jpg
+00002966.jpg
+00002967.jpg
+00002968.jpg
+00002969.jpg
+00002970.jpg
+00002971.jpg
+00002972.jpg
+00002973.jpg
+00002974.jpg
+00002975.jpg
+00002976.jpg
+00002977.jpg
+00002978.jpg
+00002979.jpg
+00002980.jpg
+00002981.jpg
+00002982.jpg
+00002983.jpg
+00002984.jpg
+00002985.jpg
+00002986.jpg
+00002987.jpg
+00002988.jpg
+00002989.jpg
+00002990.jpg
+00002991.jpg
+00002992.jpg
+00002993.jpg
+00002994.jpg
+00002995.jpg
+00002996.jpg
+00002997.jpg
+00002998.jpg
+00002999.jpg
+00003000.jpg
+00003001.jpg
+00003002.jpg
+00003003.jpg
+00003004.jpg
+00003005.jpg
+00003006.jpg
+00003007.jpg
+00003008.jpg
+00003009.jpg
+00003010.jpg
+00003011.jpg
+00003012.jpg
+00003013.jpg
+00003014.jpg
+00003015.jpg
+00003016.jpg
+00003017.jpg
+00003018.jpg
+00003019.jpg
+00003020.jpg
+00003021.jpg
+00003022.jpg
+00003023.jpg
+00003024.jpg
+00003025.jpg
+00003026.jpg
+00003027.jpg
+00003028.jpg
+00003029.jpg
+00003030.jpg
+00003031.jpg
+00003032.jpg
+00003033.jpg
+00003034.jpg
+00003035.jpg
+00003036.jpg
+00003037.jpg
+00003038.jpg
+00003039.jpg
+00003040.jpg
+00003041.jpg
+00003042.jpg
+00003043.jpg
+00003044.jpg
+00003045.jpg
+00003046.jpg
+00003047.jpg
+00003048.jpg
+00003049.jpg
+00003050.jpg
+00003051.jpg
+00003052.jpg
+00003053.jpg
+00003054.jpg
+00003055.jpg
+00003056.jpg
+00003057.jpg
+00003058.jpg
+00003059.jpg
+00003060.jpg
+00003061.jpg
+00003062.jpg
+00003063.jpg
+00003064.jpg
+00003065.jpg
+00003066.jpg
+00003067.jpg
+00003068.jpg
+00003069.jpg
+00003070.jpg
+00003071.jpg
+00003072.jpg
+00003073.jpg
+00003074.jpg
+00003075.jpg
+00003076.jpg
+00003077.jpg
+00003078.jpg
+00003079.jpg
+00003080.jpg
+00003081.jpg
+00003082.jpg
+00003083.jpg
+00003084.jpg
+00003085.jpg
+00003086.jpg
+00003087.jpg
+00003088.jpg
+00003089.jpg
+00003090.jpg
+00003091.jpg
+00003092.jpg
+00003093.jpg
+00003094.jpg
+00003095.jpg
+00003096.jpg
+00003097.jpg
+00003098.jpg
+00003099.jpg
+00003100.jpg
+00003101.jpg
+00003102.jpg
+00003103.jpg
+00003104.jpg
+00003105.jpg
+00003106.jpg
+00003107.jpg
+00003108.jpg
+00003109.jpg
+00003110.jpg
+00003111.jpg
+00003112.jpg
+00003113.jpg
+00003114.jpg
+00003115.jpg
+00003116.jpg
+00003117.jpg
+00003118.jpg
+00003119.jpg
+00003120.jpg
+00003121.jpg
+00003122.jpg
+00003123.jpg
+00003124.jpg
+00003125.jpg
+00003126.jpg
+00003127.jpg
+00003128.jpg
+00003129.jpg
+00003130.jpg
+00003131.jpg
+00003132.jpg
+00003133.jpg
+00003134.jpg
+00003135.jpg
+00003136.jpg
+00003137.jpg
+00003138.jpg
+00003139.jpg
+00003140.jpg
+00003141.jpg
+00003142.jpg
+00003143.jpg
+00003144.jpg
+00003145.jpg
+00003146.jpg
+00003147.jpg
+00003148.jpg
+00003149.jpg
+00003150.jpg
+00003151.jpg
+00003152.jpg
+00003153.jpg
+00003154.jpg
+00003155.jpg
+00003156.jpg
+00003157.jpg
+00003158.jpg
+00003159.jpg
+00003160.jpg
+00003161.jpg
+00003162.jpg
+00003163.jpg
+00003164.jpg
+00003165.jpg
+00003166.jpg
+00003167.jpg
+00003168.jpg
+00003169.jpg
+00003170.jpg
+00003171.jpg
+00003172.jpg
+00003173.jpg
+00003174.jpg
+00003175.jpg
+00003176.jpg
+00003177.jpg
+00003178.jpg
+00003179.jpg
+00003180.jpg
+00003181.jpg
+00003182.jpg
+00003183.jpg
+00003184.jpg
+00003185.jpg
+00003186.jpg
+00003187.jpg
+00003188.jpg
+00003189.jpg
+00003190.jpg
+00003191.jpg
+00003192.jpg
+00003193.jpg
+00003194.jpg
+00003195.jpg
+00003196.jpg
+00003197.jpg
+00003198.jpg
+00003199.jpg
+00003200.jpg
+00003201.jpg
+00003202.jpg
+00003203.jpg
+00003204.jpg
+00003205.jpg
+00003206.jpg
+00003207.jpg
+00003208.jpg
+00003209.jpg
+00003210.jpg
+00003211.jpg
+00003212.jpg
+00003213.jpg
+00003214.jpg
+00003215.jpg
+00003216.jpg
+00003217.jpg
+00003218.jpg
+00003219.jpg
+00003220.jpg
+00003221.jpg
+00003222.jpg
+00003223.jpg
+00003224.jpg
+00003225.jpg
+00003226.jpg
+00003227.jpg
+00003228.jpg
+00003229.jpg
+00003230.jpg
+00003231.jpg
+00003232.jpg
+00003233.jpg
+00003234.jpg
+00003235.jpg
+00003236.jpg
+00003237.jpg
+00003238.jpg
+00003239.jpg
+00003240.jpg
+00003241.jpg
+00003242.jpg
+00003243.jpg
+00003244.jpg
+00003245.jpg
+00003246.jpg
+00003247.jpg
+00003248.jpg
+00003249.jpg
+00003250.jpg
+00003251.jpg
+00003252.jpg
+00003253.jpg
+00003254.jpg
+00003255.jpg
+00003256.jpg
+00003257.jpg
+00003258.jpg
+00003259.jpg
+00003260.jpg
+00003261.jpg
+00003262.jpg
+00003263.jpg
+00003264.jpg
+00003265.jpg
+00003266.jpg
+00003267.jpg
+00003268.jpg
+00003269.jpg
+00003270.jpg
+00003271.jpg
+00003272.jpg
+00003273.jpg
+00003274.jpg
+00003275.jpg
+00003276.jpg
+00003277.jpg
+00003278.jpg
+00003279.jpg
+00003280.jpg
+00003281.jpg
+00003282.jpg
+00003283.jpg
+00003284.jpg
+00003285.jpg
+00003286.jpg
+00003287.jpg
+00003288.jpg
+00003289.jpg
+00003290.jpg
+00003291.jpg
+00003292.jpg
+00003293.jpg
+00003294.jpg
+00003295.jpg
+00003296.jpg
+00003297.jpg
+00003298.jpg
+00003299.jpg
+00003300.jpg
+00003301.jpg
+00003302.jpg
+00003303.jpg
+00003304.jpg
+00003305.jpg
+00003306.jpg
+00003307.jpg
+00003308.jpg
+00003309.jpg
+00003310.jpg
+00003311.jpg
+00003312.jpg
+00003313.jpg
+00003314.jpg
+00003315.jpg
+00003316.jpg
+00003317.jpg
+00003318.jpg
+00003319.jpg
+00003320.jpg
+00003321.jpg
+00003322.jpg
+00003323.jpg
+00003324.jpg
+00003325.jpg
+00003326.jpg
+00003327.jpg
+00003328.jpg
+00003329.jpg
+00003330.jpg
+00003331.jpg
+00003332.jpg
+00003333.jpg
+00003334.jpg
+00003335.jpg
+00003336.jpg
+00003337.jpg
+00003338.jpg
+00003339.jpg
+00003340.jpg
+00003341.jpg
+00003342.jpg
+00003343.jpg
+00003344.jpg
+00003345.jpg
+00003346.jpg
+00003347.jpg
+00003348.jpg
+00003349.jpg
+00003350.jpg
+00003351.jpg
+00003352.jpg
+00003353.jpg
+00003354.jpg
+00003355.jpg
+00003356.jpg
+00003357.jpg
+00003358.jpg
+00003359.jpg
+00003360.jpg
+00003361.jpg
+00003362.jpg
+00003363.jpg
+00003364.jpg
+00003365.jpg
+00003366.jpg
+00003367.jpg
+00003368.jpg
+00003369.jpg
+00003370.jpg
+00003371.jpg
+00003372.jpg
+00003373.jpg
+00003374.jpg
+00003375.jpg
+00003376.jpg
+00003377.jpg
+00003378.jpg
+00003379.jpg
+00003380.jpg
+00003381.jpg
+00003382.jpg
+00003383.jpg
+00003384.jpg
+00003385.jpg
+00003386.jpg
+00003387.jpg
+00003388.jpg
+00003389.jpg
+00003390.jpg
+00003391.jpg
+00003392.jpg
+00003393.jpg
+00003394.jpg
+00003395.jpg
+00003396.jpg
+00003397.jpg
+00003398.jpg
+00003399.jpg
+00003400.jpg
+00003401.jpg
+00003402.jpg
+00003403.jpg
+00003404.jpg
+00003405.jpg
+00003406.jpg
+00003407.jpg
+00003408.jpg
+00003409.jpg
+00003410.jpg
+00003411.jpg
+00003412.jpg
+00003413.jpg
+00003414.jpg
+00003415.jpg
+00003416.jpg
+00003417.jpg
+00003418.jpg
+00003419.jpg
+00003420.jpg
+00003421.jpg
+00003422.jpg
+00003423.jpg
+00003424.jpg
+00003425.jpg
+00003426.jpg
+00003427.jpg
+00003428.jpg
+00003429.jpg
+00003430.jpg
+00003431.jpg
+00003432.jpg
+00003433.jpg
+00003434.jpg
+00003435.jpg
+00003436.jpg
+00003437.jpg
+00003438.jpg
+00003439.jpg
+00003440.jpg
+00003441.jpg
+00003442.jpg
+00003443.jpg
+00003444.jpg
+00003445.jpg
+00003446.jpg
+00003447.jpg
+00003448.jpg
+00003449.jpg
+00003450.jpg
+00003451.jpg
+00003452.jpg
+00003453.jpg
+00003454.jpg
+00003455.jpg
+00003456.jpg
+00003457.jpg
+00003458.jpg
+00003459.jpg
+00003460.jpg
+00003461.jpg
+00003462.jpg
+00003463.jpg
+00003464.jpg
+00003465.jpg
+00003466.jpg
+00003467.jpg
+00003468.jpg
+00003469.jpg
+00003470.jpg
+00003471.jpg
+00003472.jpg
+00003473.jpg
+00003474.jpg
+00003475.jpg
+00003476.jpg
+00003477.jpg
+00003478.jpg
+00003479.jpg
+00003480.jpg
+00003481.jpg
+00003482.jpg
+00003483.jpg
+00003484.jpg
+00003485.jpg
+00003486.jpg
+00003487.jpg
+00003488.jpg
+00003489.jpg
+00003490.jpg
+00003491.jpg
+00003492.jpg
+00003493.jpg
+00003494.jpg
+00003495.jpg
+00003496.jpg
+00003497.jpg
+00003498.jpg
+00003499.jpg
+00003500.jpg
+00003501.jpg
+00003502.jpg
+00003503.jpg
+00003504.jpg
+00003505.jpg
+00003506.jpg
+00003507.jpg
+00003508.jpg
+00003509.jpg
+00003510.jpg
+00003511.jpg
+00003512.jpg
+00003513.jpg
+00003514.jpg
+00003515.jpg
+00003516.jpg
+00003517.jpg
+00003518.jpg
+00003519.jpg
+00003520.jpg
+00003521.jpg
+00003522.jpg
+00003523.jpg
+00003524.jpg
+00003525.jpg
+00003526.jpg
+00003527.jpg
+00003528.jpg
+00003529.jpg
+00003530.jpg
+00003531.jpg
+00003532.jpg
+00003533.jpg
+00003534.jpg
+00003535.jpg
+00003536.jpg
+00003537.jpg
+00003538.jpg
+00003539.jpg
+00003540.jpg
+00003541.jpg
+00003542.jpg
+00003543.jpg
+00003544.jpg
+00003545.jpg
+00003546.jpg
+00003547.jpg
+00003548.jpg
+00003549.jpg
+00003550.jpg
+00003551.jpg
+00003552.jpg
+00003553.jpg
+00003554.jpg
+00003555.jpg
+00003556.jpg
+00003557.jpg
+00003558.jpg
+00003559.jpg
+00003560.jpg
+00003561.jpg
+00003562.jpg
+00003563.jpg
+00003564.jpg
+00003565.jpg
+00003566.jpg
+00003567.jpg
+00003568.jpg
+00003569.jpg
+00003570.jpg
+00003571.jpg
+00003572.jpg
+00003573.jpg
+00003574.jpg
+00003575.jpg
+00003576.jpg
+00003577.jpg
+00003578.jpg
+00003579.jpg
+00003580.jpg
+00003581.jpg
+00003582.jpg
+00003583.jpg
+00003584.jpg
+00003585.jpg
+00003586.jpg
+00003587.jpg
+00003588.jpg
+00003589.jpg
+00003590.jpg
+00003591.jpg
+00003592.jpg
+00003593.jpg
+00003594.jpg
+00003595.jpg
+00003596.jpg
+00003597.jpg
+00003598.jpg
+00003599.jpg
+00003600.jpg
+00003601.jpg
+00003602.jpg
+00003603.jpg
+00003604.jpg
+00003605.jpg
+00003606.jpg
+00003607.jpg
+00003608.jpg
+00003609.jpg
+00003610.jpg
+00003611.jpg
+00003612.jpg
+00003613.jpg
+00003614.jpg
+00003615.jpg
+00003616.jpg
+00003617.jpg
+00003618.jpg
+00003619.jpg
+00003620.jpg
+00003621.jpg
+00003622.jpg
+00003623.jpg
+00003624.jpg
+00003625.jpg
+00003626.jpg
+00003627.jpg
+00003628.jpg
+00003629.jpg
+00003630.jpg
+00003631.jpg
+00003632.jpg
+00003633.jpg
+00003634.jpg
+00003635.jpg
+00003636.jpg
+00003637.jpg
+00003638.jpg
+00003639.jpg
+00003640.jpg
+00003641.jpg
+00003642.jpg
+00003643.jpg
+00003644.jpg
+00003645.jpg
+00003646.jpg
+00003647.jpg
+00003648.jpg
+00003649.jpg
+00003650.jpg
+00003651.jpg
+00003652.jpg
+00003653.jpg
+00003654.jpg
+00003655.jpg
+00003656.jpg
+00003657.jpg
+00003658.jpg
+00003659.jpg
+00003660.jpg
+00003661.jpg
+00003662.jpg
+00003663.jpg
+00003664.jpg
+00003665.jpg
+00003666.jpg
+00003667.jpg
+00003668.jpg
+00003669.jpg
+00003670.jpg
+00003671.jpg
+00003672.jpg
+00003673.jpg
+00003674.jpg
+00003675.jpg
+00003676.jpg
+00003677.jpg
+00003678.jpg
+00003679.jpg
+00003680.jpg
+00003681.jpg
+00003682.jpg
+00003683.jpg
+00003684.jpg
+00003685.jpg
+00003686.jpg
+00003687.jpg
+00003688.jpg
+00003689.jpg
+00003690.jpg
+00003691.jpg
+00003692.jpg
+00003693.jpg
+00003694.jpg
+00003695.jpg
+00003696.jpg
+00003697.jpg
+00003698.jpg
+00003699.jpg
+00003700.jpg
+00003701.jpg
+00003702.jpg
+00003703.jpg
+00003704.jpg
+00003705.jpg
+00003706.jpg
+00003707.jpg
+00003708.jpg
+00003709.jpg
+00003710.jpg
+00003711.jpg
+00003712.jpg
+00003713.jpg
+00003714.jpg
+00003715.jpg
+00003716.jpg
+00003717.jpg
+00003718.jpg
+00003719.jpg
+00003720.jpg
+00003721.jpg
+00003722.jpg
+00003723.jpg
+00003724.jpg
+00003725.jpg
+00003726.jpg
+00003727.jpg
+00003728.jpg
+00003729.jpg
+00003730.jpg
+00003731.jpg
+00003732.jpg
+00003733.jpg
+00003734.jpg
+00003735.jpg
+00003736.jpg
+00003737.jpg
+00003738.jpg
+00003739.jpg
+00003740.jpg
+00003741.jpg
+00003742.jpg
+00003743.jpg
+00003744.jpg
+00003745.jpg
+00003746.jpg
+00003747.jpg
+00003748.jpg
+00003749.jpg
+00003750.jpg
+00003751.jpg
+00003752.jpg
+00003753.jpg
+00003754.jpg
+00003755.jpg
+00003756.jpg
+00003757.jpg
+00003758.jpg
+00003759.jpg
+00003760.jpg
+00003761.jpg
+00003762.jpg
+00003763.jpg
+00003764.jpg
+00003765.jpg
+00003766.jpg
+00003767.jpg
+00003768.jpg
+00003769.jpg
+00003770.jpg
+00003771.jpg
+00003772.jpg
+00003773.jpg
+00003774.jpg
+00003775.jpg
+00003776.jpg
+00003777.jpg
+00003778.jpg
+00003779.jpg
+00003780.jpg
+00003781.jpg
+00003782.jpg
+00003783.jpg
+00003784.jpg
+00003785.jpg
+00003786.jpg
+00003787.jpg
+00003788.jpg
+00003789.jpg
+00003790.jpg
+00003791.jpg
+00003792.jpg
+00003793.jpg
+00003794.jpg
+00003795.jpg
+00003796.jpg
+00003797.jpg
+00003798.jpg
+00003799.jpg
+00003800.jpg
+00003801.jpg
+00003802.jpg
+00003803.jpg
+00003804.jpg
+00003805.jpg
+00003806.jpg
+00003807.jpg
+00003808.jpg
+00003809.jpg
+00003810.jpg
+00003811.jpg
+00003812.jpg
+00003813.jpg
+00003814.jpg
+00003815.jpg
+00003816.jpg
+00003817.jpg
+00003818.jpg
+00003819.jpg
+00003820.jpg
+00003821.jpg
+00003822.jpg
+00003823.jpg
+00003824.jpg
+00003825.jpg
+00003826.jpg
+00003827.jpg
+00003828.jpg
+00003829.jpg
+00003830.jpg
+00003831.jpg
+00003832.jpg
+00003833.jpg
+00003834.jpg
+00003835.jpg
+00003836.jpg
+00003837.jpg
+00003838.jpg
+00003839.jpg
+00003840.jpg
+00003841.jpg
+00003842.jpg
+00003843.jpg
+00003844.jpg
+00003845.jpg
+00003846.jpg
+00003847.jpg
+00003848.jpg
+00003849.jpg
+00003850.jpg
+00003851.jpg
+00003852.jpg
+00003853.jpg
+00003854.jpg
+00003855.jpg
+00003856.jpg
+00003857.jpg
+00003858.jpg
+00003859.jpg
+00003860.jpg
+00003861.jpg
+00003862.jpg
+00003863.jpg
+00003864.jpg
+00003865.jpg
+00003866.jpg
+00003867.jpg
+00003868.jpg
+00003869.jpg
+00003870.jpg
+00003871.jpg
+00003872.jpg
+00003873.jpg
+00003874.jpg
+00003875.jpg
+00003876.jpg
+00003877.jpg
+00003878.jpg
+00003879.jpg
+00003880.jpg
+00003881.jpg
+00003882.jpg
+00003883.jpg
+00003884.jpg
+00003885.jpg
+00003886.jpg
+00003887.jpg
+00003888.jpg
+00003889.jpg
+00003890.jpg
+00003891.jpg
+00003892.jpg
+00003893.jpg
+00003894.jpg
+00003895.jpg
+00003896.jpg
+00003897.jpg
+00003898.jpg
+00003899.jpg
+00003900.jpg
+00003901.jpg
+00003902.jpg
+00003903.jpg
+00003904.jpg
+00003905.jpg
+00003906.jpg
+00003907.jpg
+00003908.jpg
+00003909.jpg
+00003910.jpg
+00003911.jpg
+00003912.jpg
+00003913.jpg
+00003914.jpg
+00003915.jpg
+00003916.jpg
+00003917.jpg
+00003918.jpg
+00003919.jpg
+00003920.jpg
+00003921.jpg
+00003922.jpg
+00003923.jpg
+00003924.jpg
+00003925.jpg
+00003926.jpg
+00003927.jpg
+00003928.jpg
+00003929.jpg
+00003930.jpg
+00003931.jpg
+00003932.jpg
+00003933.jpg
+00003934.jpg
+00003935.jpg
+00003936.jpg
+00003937.jpg
+00003938.jpg
+00003939.jpg
+00003940.jpg
+00003941.jpg
+00003942.jpg
+00003943.jpg
+00003944.jpg
+00003945.jpg
+00003946.jpg
+00003947.jpg
+00003948.jpg
+00003949.jpg
+00003950.jpg
+00003951.jpg
+00003952.jpg
+00003953.jpg
+00003954.jpg
+00003955.jpg
+00003956.jpg
+00003957.jpg
+00003958.jpg
+00003959.jpg
+00003960.jpg
+00003961.jpg
+00003962.jpg
+00003963.jpg
+00003964.jpg
+00003965.jpg
+00003966.jpg
+00003967.jpg
+00003968.jpg
+00003969.jpg
+00003970.jpg
+00003971.jpg
+00003972.jpg
+00003973.jpg
+00003974.jpg
+00003975.jpg
+00003976.jpg
+00003977.jpg
+00003978.jpg
+00003979.jpg
+00003980.jpg
+00003981.jpg
+00003982.jpg
+00003983.jpg
+00003984.jpg
+00003985.jpg
+00003986.jpg
+00003987.jpg
+00003988.jpg
+00003989.jpg
+00003990.jpg
+00003991.jpg
+00003992.jpg
+00003993.jpg
+00003994.jpg
+00003995.jpg
+00003996.jpg
+00003997.jpg
+00003998.jpg
+00003999.jpg
+00004000.jpg
+00004001.jpg
+00004002.jpg
+00004003.jpg
+00004004.jpg
+00004005.jpg
+00004006.jpg
+00004007.jpg
+00004008.jpg
+00004009.jpg
+00004010.jpg
+00004011.jpg
+00004012.jpg
+00004013.jpg
+00004014.jpg
+00004015.jpg
+00004016.jpg
+00004017.jpg
+00004018.jpg
+00004019.jpg
+00004020.jpg
+00004021.jpg
+00004022.jpg
+00004023.jpg
+00004024.jpg
+00004025.jpg
+00004026.jpg
+00004027.jpg
+00004028.jpg
+00004029.jpg
+00004030.jpg
+00004031.jpg
+00004032.jpg
+00004033.jpg
+00004034.jpg
+00004035.jpg
+00004036.jpg
+00004037.jpg
+00004038.jpg
+00004039.jpg
+00004040.jpg
+00004041.jpg
+00004042.jpg
+00004043.jpg
+00004044.jpg
+00004045.jpg
+00004046.jpg
+00004047.jpg
+00004048.jpg
+00004049.jpg
+00004050.jpg
+00004051.jpg
+00004052.jpg
+00004053.jpg
+00004054.jpg
+00004055.jpg
+00004056.jpg
+00004057.jpg
+00004058.jpg
+00004059.jpg
+00004060.jpg
+00004061.jpg
+00004062.jpg
+00004063.jpg
+00004064.jpg
+00004065.jpg
+00004066.jpg
+00004067.jpg
+00004068.jpg
+00004069.jpg
+00004070.jpg
+00004071.jpg
+00004072.jpg
+00004073.jpg
+00004074.jpg
+00004075.jpg
+00004076.jpg
+00004077.jpg
+00004078.jpg
+00004079.jpg
+00004080.jpg
+00004081.jpg
+00004082.jpg
+00004083.jpg
+00004084.jpg
+00004085.jpg
+00004086.jpg
+00004087.jpg
+00004088.jpg
+00004089.jpg
+00004090.jpg
+00004091.jpg
+00004092.jpg
+00004093.jpg
+00004094.jpg
+00004095.jpg
+00004096.jpg
+00004097.jpg
+00004098.jpg
+00004099.jpg
+00004100.jpg
+00004101.jpg
+00004102.jpg
+00004103.jpg
+00004104.jpg
+00004105.jpg
+00004106.jpg
+00004107.jpg
+00004108.jpg
+00004109.jpg
+00004110.jpg
+00004111.jpg
+00004112.jpg
+00004113.jpg
+00004114.jpg
+00004115.jpg
+00004116.jpg
+00004117.jpg
+00004118.jpg
+00004119.jpg
+00004120.jpg
+00004121.jpg
+00004122.jpg
+00004123.jpg
+00004124.jpg
+00004125.jpg
+00004126.jpg
+00004127.jpg
+00004128.jpg
+00004129.jpg
+00004130.jpg
+00004131.jpg
+00004132.jpg
+00004133.jpg
+00004134.jpg
+00004135.jpg
+00004136.jpg
+00004137.jpg
+00004138.jpg
+00004139.jpg
+00004140.jpg
+00004141.jpg
+00004142.jpg
+00004143.jpg
+00004144.jpg
+00004145.jpg
+00004146.jpg
+00004147.jpg
+00004148.jpg
+00004149.jpg
+00004150.jpg
+00004151.jpg
+00004152.jpg
+00004153.jpg
+00004154.jpg
+00004155.jpg
+00004156.jpg
+00004157.jpg
+00004158.jpg
+00004159.jpg
+00004160.jpg
+00004161.jpg
+00004162.jpg
+00004163.jpg
+00004164.jpg
+00004165.jpg
+00004166.jpg
+00004167.jpg
+00004168.jpg
+00004169.jpg
+00004170.jpg
+00004171.jpg
+00004172.jpg
+00004173.jpg
+00004174.jpg
+00004175.jpg
+00004176.jpg
+00004177.jpg
+00004178.jpg
+00004179.jpg
+00004180.jpg
+00004181.jpg
+00004182.jpg
+00004183.jpg
+00004184.jpg
+00004185.jpg
+00004186.jpg
+00004187.jpg
+00004188.jpg
+00004189.jpg
+00004190.jpg
+00004191.jpg
+00004192.jpg
+00004193.jpg
+00004194.jpg
+00004195.jpg
+00004196.jpg
+00004197.jpg
+00004198.jpg
+00004199.jpg
+00004200.jpg
+00004201.jpg
+00004202.jpg
+00004203.jpg
+00004204.jpg
+00004205.jpg
+00004206.jpg
+00004207.jpg
+00004208.jpg
+00004209.jpg
+00004210.jpg
+00004211.jpg
+00004212.jpg
+00004213.jpg
+00004214.jpg
+00004215.jpg
+00004216.jpg
+00004217.jpg
+00004218.jpg
+00004219.jpg
+00004220.jpg
+00004221.jpg
+00004222.jpg
+00004223.jpg
+00004224.jpg
+00004225.jpg
+00004226.jpg
+00004227.jpg
+00004228.jpg
+00004229.jpg
+00004230.jpg
+00004231.jpg
+00004232.jpg
+00004233.jpg
+00004234.jpg
+00004235.jpg
+00004236.jpg
+00004237.jpg
+00004238.jpg
+00004239.jpg
+00004240.jpg
+00004241.jpg
+00004242.jpg
+00004243.jpg
+00004244.jpg
+00004245.jpg
+00004246.jpg
+00004247.jpg
+00004248.jpg
+00004249.jpg
+00004250.jpg
+00004251.jpg
+00004252.jpg
+00004253.jpg
+00004254.jpg
+00004255.jpg
+00004256.jpg
+00004257.jpg
+00004258.jpg
+00004259.jpg
+00004260.jpg
+00004261.jpg
+00004262.jpg
+00004263.jpg
+00004264.jpg
+00004265.jpg
+00004266.jpg
+00004267.jpg
+00004268.jpg
+00004269.jpg
+00004270.jpg
+00004271.jpg
+00004272.jpg
+00004273.jpg
+00004274.jpg
+00004275.jpg
+00004276.jpg
+00004277.jpg
+00004278.jpg
+00004279.jpg
+00004280.jpg
+00004281.jpg
+00004282.jpg
+00004283.jpg
+00004284.jpg
+00004285.jpg
+00004286.jpg
+00004287.jpg
+00004288.jpg
+00004289.jpg
+00004290.jpg
+00004291.jpg
+00004292.jpg
+00004293.jpg
+00004294.jpg
+00004295.jpg
+00004296.jpg
+00004297.jpg
+00004298.jpg
+00004299.jpg
+00004300.jpg
+00004301.jpg
+00004302.jpg
+00004303.jpg
+00004304.jpg
+00004305.jpg
+00004306.jpg
+00004307.jpg
+00004308.jpg
+00004309.jpg
+00004310.jpg
+00004311.jpg
+00004312.jpg
+00004313.jpg
+00004314.jpg
+00004315.jpg
+00004316.jpg
+00004317.jpg
+00004318.jpg
+00004319.jpg
+00004320.jpg
+00004321.jpg
+00004322.jpg
+00004323.jpg
+00004324.jpg
+00004325.jpg
+00004326.jpg
+00004327.jpg
+00004328.jpg
+00004329.jpg
+00004330.jpg
+00004331.jpg
+00004332.jpg
+00004333.jpg
+00004334.jpg
+00004335.jpg
+00004336.jpg
+00004337.jpg
+00004338.jpg
+00004339.jpg
+00004340.jpg
+00004341.jpg
+00004342.jpg
+00004343.jpg
+00004344.jpg
+00004345.jpg
+00004346.jpg
+00004347.jpg
+00004348.jpg
+00004349.jpg
+00004350.jpg
+00004351.jpg
+00004352.jpg
+00004353.jpg
+00004354.jpg
+00004355.jpg
+00004356.jpg
+00004357.jpg
+00004358.jpg
+00004359.jpg
+00004360.jpg
+00004361.jpg
+00004362.jpg
+00004363.jpg
+00004364.jpg
+00004365.jpg
+00004366.jpg
+00004367.jpg
+00004368.jpg
+00004369.jpg
+00004370.jpg
+00004371.jpg
+00004372.jpg
+00004373.jpg
+00004374.jpg
+00004375.jpg
+00004376.jpg
+00004377.jpg
+00004378.jpg
+00004379.jpg
+00004380.jpg
+00004381.jpg
+00004382.jpg
+00004383.jpg
+00004384.jpg
+00004385.jpg
+00004386.jpg
+00004387.jpg
+00004388.jpg
+00004389.jpg
+00004390.jpg
+00004391.jpg
+00004392.jpg
+00004393.jpg
+00004394.jpg
+00004395.jpg
+00004396.jpg
+00004397.jpg
+00004398.jpg
+00004399.jpg
+00004400.jpg
+00006281.jpg
+00006282.jpg
+00006283.jpg
+00006284.jpg
+00006285.jpg
+00006286.jpg
+00006287.jpg
+00006288.jpg
+00006289.jpg
+00006290.jpg
+00006291.jpg
+00006292.jpg
+00006293.jpg
+00006294.jpg
+00006295.jpg
+00006296.jpg
+00006297.jpg
+00006298.jpg
+00006299.jpg
+00006300.jpg
+00006301.jpg
+00006302.jpg
+00006303.jpg
+00006304.jpg
+00006305.jpg
+00006306.jpg
+00006307.jpg
+00006308.jpg
+00006309.jpg
+00006310.jpg
+00006311.jpg
+00006312.jpg
+00006313.jpg
+00006314.jpg
+00006315.jpg
+00006316.jpg
+00006317.jpg
+00006318.jpg
+00006319.jpg
+00006320.jpg
+00006321.jpg
+00006322.jpg
+00006323.jpg
+00006324.jpg
+00006325.jpg
+00006326.jpg
+00006327.jpg
+00006328.jpg
+00006329.jpg
+00006330.jpg
+00006331.jpg
+00006332.jpg
+00006333.jpg
+00006334.jpg
+00006335.jpg
+00006336.jpg
+00006337.jpg
+00006338.jpg
+00006339.jpg
+00006340.jpg
+00006341.jpg
+00006342.jpg
+00006343.jpg
+00006344.jpg
+00006345.jpg
+00006346.jpg
+00006347.jpg
+00006348.jpg
+00006349.jpg
+00006350.jpg
+00006351.jpg
+00006352.jpg
+00006353.jpg
+00006354.jpg
+00006355.jpg
+00006356.jpg
+00006357.jpg
+00006358.jpg
+00006359.jpg
+00006360.jpg
+00006361.jpg
+00006362.jpg
+00006363.jpg
+00006364.jpg
+00006365.jpg
+00006366.jpg
+00006367.jpg
+00006368.jpg
+00006369.jpg
+00006370.jpg
+00006371.jpg
+00006372.jpg
+00006373.jpg
+00006374.jpg
+00006375.jpg
+00006376.jpg
+00006377.jpg
+00006378.jpg
+00006379.jpg
+00006380.jpg
+00006381.jpg
+00006382.jpg
+00006383.jpg
+00006384.jpg
+00006385.jpg
+00006386.jpg
+00006387.jpg
+00006388.jpg
+00006389.jpg
+00006390.jpg
+00006391.jpg
+00006392.jpg
+00006393.jpg
+00006394.jpg
+00006395.jpg
+00006396.jpg
+00006397.jpg
+00006398.jpg
+00006399.jpg
+00006400.jpg
+00006401.jpg
+00006402.jpg
+00006403.jpg
+00006404.jpg
+00006405.jpg
+00006406.jpg
+00006407.jpg
+00006408.jpg
+00006409.jpg
+00006410.jpg
+00006411.jpg
+00006412.jpg
+00006413.jpg
+00006414.jpg
+00006415.jpg
+00006416.jpg
+00006417.jpg
+00006418.jpg
+00006419.jpg
+00006420.jpg
+00006421.jpg
+00006422.jpg
+00006423.jpg
+00006424.jpg
+00006425.jpg
+00006426.jpg
+00006427.jpg
+00006428.jpg
+00006429.jpg
+00006430.jpg
+00006431.jpg
+00006432.jpg
+00006433.jpg
+00006434.jpg
+00006435.jpg
+00006436.jpg
+00006437.jpg
+00006438.jpg
+00006439.jpg
+00006440.jpg
+00006441.jpg
+00006442.jpg
+00006443.jpg
+00006444.jpg
+00006445.jpg
+00006446.jpg
+00006447.jpg
+00006448.jpg
+00006449.jpg
+00006450.jpg
+00006451.jpg
+00006452.jpg
+00006453.jpg
+00006454.jpg
+00006455.jpg
+00006456.jpg
+00006457.jpg
+00006458.jpg
+00006459.jpg
+00006460.jpg
+00006461.jpg
+00006462.jpg
+00006463.jpg
+00006464.jpg
+00006465.jpg
+00006466.jpg
+00006467.jpg
+00006468.jpg
+00006469.jpg
+00006470.jpg
+00006471.jpg
+00006472.jpg
+00006473.jpg
+00006474.jpg
+00006475.jpg
+00006476.jpg
+00006477.jpg
+00006478.jpg
+00006479.jpg
+00006480.jpg
+00006481.jpg
+00006482.jpg
+00006483.jpg
+00006484.jpg
+00006485.jpg
+00006486.jpg
+00006487.jpg
+00006488.jpg
+00006489.jpg
+00006490.jpg
+00006491.jpg
+00006492.jpg
+00006493.jpg
+00006494.jpg
+00006495.jpg
+00006496.jpg
+00006497.jpg
+00006498.jpg
+00006499.jpg
+00006500.jpg
+00006501.jpg
+00006502.jpg
+00006503.jpg
+00006504.jpg
+00006505.jpg
+00006506.jpg
+00006507.jpg
+00006508.jpg
+00006509.jpg
+00006510.jpg
+00006511.jpg
+00006512.jpg
+00006513.jpg
+00006514.jpg
+00006515.jpg
+00006516.jpg
+00006517.jpg
+00006518.jpg
+00006519.jpg
+00006520.jpg
+00006521.jpg
+00006522.jpg
+00006523.jpg
+00006524.jpg
+00006525.jpg
+00006526.jpg
+00006527.jpg
+00006528.jpg
+00006529.jpg
+00006530.jpg
+00006531.jpg
+00006532.jpg
+00006533.jpg
+00006534.jpg
+00006535.jpg
+00006536.jpg
+00006537.jpg
+00006538.jpg
+00006539.jpg
+00006540.jpg
+00006541.jpg
+00006542.jpg
+00006543.jpg
+00006544.jpg
+00006545.jpg
+00006546.jpg
+00006547.jpg
+00006548.jpg
+00006549.jpg
+00006550.jpg
+00006551.jpg
+00006552.jpg
+00006553.jpg
+00006554.jpg
+00006555.jpg
+00006556.jpg
+00006557.jpg
+00006558.jpg
+00006559.jpg
+00006560.jpg
+00006561.jpg
+00006562.jpg
+00006563.jpg
+00006564.jpg
+00006565.jpg
+00006566.jpg
+00006567.jpg
+00006568.jpg
+00006569.jpg
+00006570.jpg
+00006571.jpg
+00006572.jpg
+00006573.jpg
+00006574.jpg
+00006575.jpg
+00006576.jpg
+00006577.jpg
+00006578.jpg
+00006579.jpg
+00006580.jpg
+00006581.jpg
+00006582.jpg
+00006583.jpg
+00006584.jpg
+00006585.jpg
+00006586.jpg
+00006587.jpg
+00006588.jpg
+00006589.jpg
+00006590.jpg
+00006591.jpg
+00006592.jpg
+00006593.jpg
+00006594.jpg
+00006595.jpg
+00006596.jpg
+00006597.jpg
+00006598.jpg
+00006599.jpg
+00006600.jpg
+00006601.jpg
+00006602.jpg
+00006603.jpg
+00006604.jpg
+00006605.jpg
+00006606.jpg
+00006607.jpg
+00006608.jpg
+00006609.jpg
+00006610.jpg
+00006611.jpg
+00006612.jpg
+00006613.jpg
+00006614.jpg
+00006615.jpg
+00006616.jpg
+00006617.jpg
+00006618.jpg
+00006619.jpg
+00006620.jpg
+00006621.jpg
+00006622.jpg
+00006623.jpg
+00006624.jpg
+00006625.jpg
+00006626.jpg
+00006627.jpg
+00006628.jpg
+00006629.jpg
+00006630.jpg
+00006631.jpg
+00006632.jpg
+00006633.jpg
+00006634.jpg
+00006635.jpg
+00006636.jpg
+00006637.jpg
+00006638.jpg
+00006639.jpg
+00006640.jpg
+00006641.jpg
+00006642.jpg
+00006643.jpg
+00006644.jpg
+00006645.jpg
+00006646.jpg
+00006647.jpg
+00006648.jpg
+00006649.jpg
+00006650.jpg
+00006651.jpg
+00006652.jpg
+00006653.jpg
+00006654.jpg
+00006655.jpg
+00006656.jpg
+00006657.jpg
+00006658.jpg
+00006659.jpg
+00006660.jpg
+00006661.jpg
+00006662.jpg
+00006663.jpg
+00006664.jpg
+00006665.jpg
+00006666.jpg
+00006667.jpg
+00006668.jpg
+00006669.jpg
+00006670.jpg
+00006671.jpg
+00006672.jpg
+00006673.jpg
+00006674.jpg
+00006675.jpg
+00006676.jpg
+00006677.jpg
+00006678.jpg
+00006679.jpg
+00006680.jpg
+00006681.jpg
+00006682.jpg
+00006683.jpg
+00006684.jpg
+00006685.jpg
+00006686.jpg
+00006687.jpg
+00006688.jpg
+00006689.jpg
+00006690.jpg
+00006691.jpg
+00006692.jpg
+00006693.jpg
+00006694.jpg
+00006695.jpg
+00006696.jpg
+00006697.jpg
+00006698.jpg
+00006699.jpg
+00006700.jpg
+00006701.jpg
+00006702.jpg
+00006703.jpg
+00006704.jpg
+00006705.jpg
+00006706.jpg
+00006707.jpg
+00006708.jpg
+00006709.jpg
+00006710.jpg
+00006711.jpg
+00006712.jpg
+00006713.jpg
+00006714.jpg
+00006715.jpg
+00006716.jpg
+00006717.jpg
+00006718.jpg
+00006719.jpg
+00006720.jpg
+00006721.jpg
+00006722.jpg
+00006723.jpg
+00006724.jpg
+00006725.jpg
+00006726.jpg
+00006727.jpg
+00006728.jpg
+00006729.jpg
+00006730.jpg
+00006731.jpg
+00006732.jpg
+00006733.jpg
+00006734.jpg
+00006735.jpg
+00006736.jpg
+00006737.jpg
+00006738.jpg
+00006739.jpg
+00006740.jpg
+00006741.jpg
+00006742.jpg
+00006743.jpg
+00006744.jpg
+00006745.jpg
+00006746.jpg
+00006747.jpg
+00006748.jpg
+00006749.jpg
+00006750.jpg
+00006751.jpg
+00006752.jpg
+00006753.jpg
+00006754.jpg
+00006755.jpg
+00006756.jpg
+00006757.jpg
+00006758.jpg
+00006759.jpg
+00006760.jpg
+00006761.jpg
+00006762.jpg
+00006763.jpg
+00006764.jpg
+00006765.jpg
+00006766.jpg
+00006767.jpg
+00006768.jpg
+00006769.jpg
+00006770.jpg
+00006771.jpg
+00006772.jpg
+00006773.jpg
+00006774.jpg
+00006775.jpg
+00006776.jpg
+00006777.jpg
+00006778.jpg
+00006779.jpg
+00006780.jpg
+00006781.jpg
+00006782.jpg
+00006783.jpg
+00006784.jpg
+00006785.jpg
+00006786.jpg
+00006787.jpg
+00006788.jpg
+00006789.jpg
+00006790.jpg
+00006791.jpg
+00006792.jpg
+00006793.jpg
+00006794.jpg
+00006795.jpg
+00006796.jpg
+00006797.jpg
+00006798.jpg
+00006799.jpg
+00006800.jpg
+00006801.jpg
+00006802.jpg
+00006803.jpg
+00006804.jpg
+00006805.jpg
+00006806.jpg
+00006807.jpg
+00006808.jpg
+00006809.jpg
+00006810.jpg
+00006811.jpg
+00006812.jpg
+00006813.jpg
+00006814.jpg
+00006815.jpg
+00006816.jpg
+00006817.jpg
+00006818.jpg
+00006819.jpg
+00006820.jpg
+00006821.jpg
+00006822.jpg
+00006823.jpg
+00006824.jpg
+00006825.jpg
+00006826.jpg
+00006827.jpg
+00006828.jpg
+00006829.jpg
+00006830.jpg
+00006831.jpg
+00006832.jpg
+00006833.jpg
+00006834.jpg
+00006835.jpg
+00006836.jpg
+00006837.jpg
+00006838.jpg
+00006839.jpg
+00006840.jpg
+00006841.jpg
+00006842.jpg
+00006843.jpg
+00006844.jpg
+00006845.jpg
+00006846.jpg
+00006847.jpg
+00006848.jpg
+00006849.jpg
+00006850.jpg
+00006851.jpg
+00006852.jpg
+00006853.jpg
+00006854.jpg
+00006855.jpg
+00006856.jpg
+00006857.jpg
+00006858.jpg
+00006859.jpg
+00006860.jpg
+00006861.jpg
+00006862.jpg
+00006863.jpg
+00006864.jpg
+00006865.jpg
+00006866.jpg
diff --git a/FoodSeg103/data/FoodSeg103/Images/.DS_Store b/FoodSeg103/data/FoodSeg103/Images/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..549dc8d10e921d0b147e0b1907d99dad705ffb02
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/.DS_Store differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/.DS_Store b/FoodSeg103/data/FoodSeg103/Images/ann_dir/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..b6004015cb6db73a36e56a441e0341bf8973cd53
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/.DS_Store differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004458.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004458.png
new file mode 100644
index 0000000000000000000000000000000000000000..a40693bf5c5c39c0dbc134ecbae41888e4fa4f4d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004458.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004464.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004464.png
new file mode 100644
index 0000000000000000000000000000000000000000..02ee9c0e01296f20b9a4bb45ac9d3f26f03a9a21
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004464.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004470.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004470.png
new file mode 100644
index 0000000000000000000000000000000000000000..00634d78afa3cd7f938daa37d84f61b76aa7b23d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004470.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004504.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004504.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b5821d349d2819ddde580d85edd6d98088c42ab
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004504.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004505.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004505.png
new file mode 100644
index 0000000000000000000000000000000000000000..f710916cd2dc78866af56f3d72963aaa23f64f25
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004505.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004510.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004510.png
new file mode 100644
index 0000000000000000000000000000000000000000..b59e08dc2c686d62c2690d2768437c86fc6ee474
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004510.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004511.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004511.png
new file mode 100644
index 0000000000000000000000000000000000000000..16dbabaf2d7dff42da205236869bd17ad8844ceb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004511.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004538.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004538.png
new file mode 100644
index 0000000000000000000000000000000000000000..a677c9bbef78c45d7c2057598cc86cad8b2081f5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004538.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004539.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004539.png
new file mode 100644
index 0000000000000000000000000000000000000000..bbfb6712018139d84f1b0ac35197447cc9cc261e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004539.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004666.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004666.png
new file mode 100644
index 0000000000000000000000000000000000000000..af1e980ddb28437d894b97a6e71e88c405a57fa8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004666.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004672.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004672.png
new file mode 100644
index 0000000000000000000000000000000000000000..77089d96a782052c18a3e06df693d75853f99621
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004672.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004699.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004699.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c20b18d592e591ecbb10d80e35941cdfe6898c5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004699.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004706.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004706.png
new file mode 100644
index 0000000000000000000000000000000000000000..19b5621c7688fa20426cb557814565e869c2aeba
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004706.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004707.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004707.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebfd9bfcbc7bd87bea7913b9eb4bf1a3094b41ae
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004707.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004712.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004712.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba007ebb648645b1a4e1f78cdedd21fde86d6b8a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004712.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004713.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004713.png
new file mode 100644
index 0000000000000000000000000000000000000000..b25b460c5f87f52ebf1e1d0998356484bf925a00
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004713.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004841.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004841.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1490c4b92946f9d38502e4bcba4ec4c4984b4fc
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004841.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004855.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004855.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae15f34a511245fc919ea15e9000e445a22e82f2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004855.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004869.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004869.png
new file mode 100644
index 0000000000000000000000000000000000000000..db7f11449df43d9205c2184d0e2bbea4af07c5d0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004869.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004882.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004882.png
new file mode 100644
index 0000000000000000000000000000000000000000..c11ae217b41c1e05a052cdda6c56ff3c471232c9
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004882.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004896.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004896.png
new file mode 100644
index 0000000000000000000000000000000000000000..b4efbb913f68fb7475b659a3cb21fdbe23c87609
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004896.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004908.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004908.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3a723b8e7ab19ac010e80d7887c44905a9fca75
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004908.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004909.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004909.png
new file mode 100644
index 0000000000000000000000000000000000000000..b261800a96cce33d2aa0d6b129ac99db36ad0990
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004909.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004921.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004921.png
new file mode 100644
index 0000000000000000000000000000000000000000..830e8c4e40222a4fc0d3274a57eec26f8c1098ac
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004921.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004935.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004935.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d0c1d29af361413443d6f2d2111ec76a16342d8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00004935.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005008.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005008.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e1b4fd35504cca879995795b2ffc8537569c2b6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005008.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005020.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005020.png
new file mode 100644
index 0000000000000000000000000000000000000000..021f242a70b95556382f7f8b5663d713e4d65054
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005020.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005034.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005034.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f6611c685cdf912ca26844e83687880863c687e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005034.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005140.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005140.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc9a604d8960c9700472518a7cb80e9f5e2aaec8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005140.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005141.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005141.png
new file mode 100644
index 0000000000000000000000000000000000000000..5fed0f5364468a4e1603f04cc0819f23e1da5e65
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005141.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005154.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005154.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f17851200d2771c5bad6bfb26b3977d3f095062
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005154.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005155.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005155.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2999cca0784f399c2b68494ea7e2939e0507b2d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005155.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005168.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005168.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ee876b5190cc3a396f57643b1e0b86d7c6d917e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005168.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005169.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005169.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5892392cf8bb9e1046dacfcce02eb8f986a9f7c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005169.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005182.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005182.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce8f7d4b2262ff81fddc1ffdd62345b2d0576c31
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005182.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005183.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005183.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf35eff494e78b1e80f94e66c507b51baa1622d2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005183.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005196.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005196.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d95c42e7cc9da57cd21878fce0a1b5ba8f8c41d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005196.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005197.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005197.png
new file mode 100644
index 0000000000000000000000000000000000000000..0991f4f9221de78848f809bbe154f3ead71b7b47
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005197.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005222.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005222.png
new file mode 100644
index 0000000000000000000000000000000000000000..7acee0783f88ce3a7572f56811d7c0bca7054f39
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005222.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005236.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005236.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab4699763b948cc289c9216170a2d854692d7bbe
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005236.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005342.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005342.png
new file mode 100644
index 0000000000000000000000000000000000000000..84168bc3e80a82c3cdcb7d7f7e3005739fe2be90
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005342.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005343.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005343.png
new file mode 100644
index 0000000000000000000000000000000000000000..50a65efa51feb52a45777e4c0579d685b396bc8e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005343.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005356.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005356.png
new file mode 100644
index 0000000000000000000000000000000000000000..61868c09e408f15a2c0cca0ea8e33d65d895b1f2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005356.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005357.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005357.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b080dcdd65f89c2aa988f4b813424fdb3b14a68
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005357.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005381.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005381.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a111c2a59f8380517dcfd23cbbe6c2e56e02a1a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005381.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005395.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005395.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd7c7699847f0792404dbe61c1cdd151afbc98a3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005395.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005418.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005418.png
new file mode 100644
index 0000000000000000000000000000000000000000..42625f1bd72ef2ff2dcb69978d761c9808f34448
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005418.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005419.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005419.png
new file mode 100644
index 0000000000000000000000000000000000000000..563b906e327c799c4a313330037f62ad4ad72645
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005419.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005424.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005424.png
new file mode 100644
index 0000000000000000000000000000000000000000..86478baf1788a2cda3bc6ac6951e3f478f1c9d87
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005424.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005425.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005425.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2d7d2064e7d36de7272cb507285bf833c77c3d2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005425.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005430.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005430.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bbc7e39d19172adbd38960d1d93482c48d3b01a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005430.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005431.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005431.png
new file mode 100644
index 0000000000000000000000000000000000000000..78eb1f18ab6b756e71654718551ed4dad1c523b6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005431.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005544.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005544.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ae942c1a5c897fb8fda254e48247bb4cfe5d496
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005544.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005550.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005550.png
new file mode 100644
index 0000000000000000000000000000000000000000..f30b0af9fc5c49e309eaea606991ad10cecee4b2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005550.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005578.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005578.png
new file mode 100644
index 0000000000000000000000000000000000000000..f755d0885b2743c1331865ac20235dcc5000f1e7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005578.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005587.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005587.png
new file mode 100644
index 0000000000000000000000000000000000000000..86bb7e8ecf247702202364f7f665e7f044ecd459
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005587.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005593.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005593.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1d9e264fddb19e454fa8c7771984e477e7cec14
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005593.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005626.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005626.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfd7c91daff90c7e26e753fb5660a7abff1c4609
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005626.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005627.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005627.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ae27d126f6ff154e13d48cb8587f19a6f181405
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005627.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005632.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005632.png
new file mode 100644
index 0000000000000000000000000000000000000000..378cf70af746bb9e1a8ce7e8e961fdcfc04b34c6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005632.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005633.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005633.png
new file mode 100644
index 0000000000000000000000000000000000000000..699baf7422d15062bdd666aefd29f10cccce8786
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005633.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005746.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005746.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9502cb7a86100be539e54afe0d8524128781949
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005746.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005752.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005752.png
new file mode 100644
index 0000000000000000000000000000000000000000..7424ac33b260c7ccb95b012a5e3ecfccaf72d376
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005752.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005785.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005785.png
new file mode 100644
index 0000000000000000000000000000000000000000..f62a2cffd7aaa27f9b1b8113481339bb910eb8e9
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005785.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005791.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005791.png
new file mode 100644
index 0000000000000000000000000000000000000000..7913a7e9c6c440225be819a5a3c49e2eb4a4fb0d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005791.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005800.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005800.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bef015a03d02a5155d3f42228f4e8d504fe5c80
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005800.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005801.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005801.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc28d745c903a233385c30dd9eaa7c8c7bca38a5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005801.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005814.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005814.png
new file mode 100644
index 0000000000000000000000000000000000000000..3bdd82e27f9357b931062914d5efc9eeba11cdb1
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005814.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005815.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005815.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c3aa789056681a6db1cfd427043016740bad98d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005815.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005828.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005828.png
new file mode 100644
index 0000000000000000000000000000000000000000..5df2a18bc9da0edfa1219158e22713d08c1bb29a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005828.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005829.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005829.png
new file mode 100644
index 0000000000000000000000000000000000000000..86d67309a4b580b6082a335c1e423b0c56a3ae69
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005829.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005949.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005949.png
new file mode 100644
index 0000000000000000000000000000000000000000..3514f013fa665f428a873a17682864625a1ff8f8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005949.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005961.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005961.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f0222ecfcd73eb814e3a0a7efe3859f9fb85ad6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005961.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005975.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005975.png
new file mode 100644
index 0000000000000000000000000000000000000000..5bbd2425329a62eceb64932dcda6cdaf0e229b5d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00005975.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006059.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006059.png
new file mode 100644
index 0000000000000000000000000000000000000000..1653f2a1ca073361b6d4999619b5d18d4cb90fa0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006059.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006065.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006065.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1ebf2a8984090d5340c2583debb9f38fa878e0c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006065.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006071.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006071.png
new file mode 100644
index 0000000000000000000000000000000000000000..06e354f116347e13a733e57aafb34f4911bf7c25
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006071.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006104.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006104.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0b4b1cead4531ee55a32a3ec9f259a5c3e68a04
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006104.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006105.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006105.png
new file mode 100644
index 0000000000000000000000000000000000000000..6dc0193706f1280df469757c44d8b14a6b0be2ae
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006105.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006110.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006110.png
new file mode 100644
index 0000000000000000000000000000000000000000..59669a7c98aa2f3fab2dc2c8c600b9a13b135dea
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006110.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006111.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006111.png
new file mode 100644
index 0000000000000000000000000000000000000000..0aedfd01b093e0cea55b2fd0c8d8aa57f2704820
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006111.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006138.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006138.png
new file mode 100644
index 0000000000000000000000000000000000000000..59dc91c02f70bd9476bbddeac9876c764504a5a8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006138.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006139.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006139.png
new file mode 100644
index 0000000000000000000000000000000000000000..799c4c69ad0b1046be938f9b0e540f9b639258ea
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006139.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006267.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006267.png
new file mode 100644
index 0000000000000000000000000000000000000000..d75ef666050577fa4d61378653f7bab6df718da4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006267.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006273.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006273.png
new file mode 100644
index 0000000000000000000000000000000000000000..15986f62874d35c63fc00480b52cc6b9774fa325
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006273.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006878.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006878.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b9e49de6fc53a41b5482bcb58f45516c8774ab7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006878.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006879.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006879.png
new file mode 100644
index 0000000000000000000000000000000000000000..f898aa41c0e67bd31762d760ddf6c93c7358c89f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006879.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006886.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006886.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae3cb09e1b924d95e9e465a9d6abef3f4c7e2cc4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006886.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006887.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006887.png
new file mode 100644
index 0000000000000000000000000000000000000000..f7f8c79cccf8364aaca365568f8588409d11752a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006887.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006892.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006892.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca4d60615e6fe5a8282203babcdedaeb98ade469
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006892.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006893.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006893.png
new file mode 100644
index 0000000000000000000000000000000000000000..aca7629168a374f2a244678d6070628b9cb62976
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006893.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006918.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006918.png
new file mode 100644
index 0000000000000000000000000000000000000000..cac95cddbad18f373a8c00f14601c9b451c392e8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006918.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006924.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006924.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bac5c0b594b5ecc3535608797097fbaebe44ce2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006924.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006930.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006930.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ab931b86e2dce9d71990ea1a0c8024eced3cab4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00006930.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007018.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007018.png
new file mode 100644
index 0000000000000000000000000000000000000000..7de4e310aec34335c378d2801469d439f323e12d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007018.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007019.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007019.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee9c4a44650c2cffa7a7ab344d59e87b863a090f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007019.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007024.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007024.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bcdc76c9e89742acfa0ab41f9f3b65ef4d44117
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007024.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007025.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007025.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b3b254d5f77595accf0d51706c1509ca47bd8e5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007025.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007030.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007030.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcf7de477474a31b25aac6c0d7e977c30217c6b8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007030.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007031.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007031.png
new file mode 100644
index 0000000000000000000000000000000000000000..82ff20b45b5a0c560474b88a01b1c6a5ab95f159
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/test/00007031.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000158.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000158.png
new file mode 100644
index 0000000000000000000000000000000000000000..0931a44a1340812ba9c1b920d991e17a32ba1b56
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000158.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000164.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000164.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea33185eafe5ce90d4e61b1068c2eb4cb0a3a097
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000164.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000170.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000170.png
new file mode 100644
index 0000000000000000000000000000000000000000..90a4d0adc2df152376c05ade445581b7d5419db6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000170.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000366.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000366.png
new file mode 100644
index 0000000000000000000000000000000000000000..a99a25fb2b4018659da94d26db3f5096f0d33007
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000366.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000372.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000372.png
new file mode 100644
index 0000000000000000000000000000000000000000..c97ecbdd974b8ec0535d51cec6e1fc292648702e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000372.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000399.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000399.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fe582c0e9e40bd3530779cd35fe543b2f60533f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000399.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000400.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000400.png
new file mode 100644
index 0000000000000000000000000000000000000000..79234ecaa77f4710571bc465a0ef6a4e3804b181
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000400.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000414.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000414.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fbfa00ea10edb51b3c6d05d766afcdafb8ce2a5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000414.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000428.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000428.png
new file mode 100644
index 0000000000000000000000000000000000000000..f16c52e470a355f28f933c2e1bd651eb56fa215e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000428.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000548.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000548.png
new file mode 100644
index 0000000000000000000000000000000000000000..0efa5409f39e3eae0897b0332a7a0e38dfe82923
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000548.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000602.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000602.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe7c40ea7ed0be416621d247a3a15692cc49e2a6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000602.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000616.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000616.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b0bde52a995375f62a2717b604749d2bac16dd4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000616.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000819.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000819.png
new file mode 100644
index 0000000000000000000000000000000000000000..16d6d072f59483c6855546a497fbecc0936b81f8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000819.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000825.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000825.png
new file mode 100644
index 0000000000000000000000000000000000000000..a94ce8a0d5bdd2ad273a1d0d239a20daae073da0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000825.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000831.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000831.png
new file mode 100644
index 0000000000000000000000000000000000000000..e927b1ee4ed42bbb1c400ace58eb573d94dee71f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00000831.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001044.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001044.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c7e98e6ca2f01c769eaf0bdbe91d360870cd6df
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001044.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001050.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001050.png
new file mode 100644
index 0000000000000000000000000000000000000000..86232249c284cbc2cb3befd92a581cbf7c2c1b19
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001050.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001078.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001078.png
new file mode 100644
index 0000000000000000000000000000000000000000..40f91c085428be3c1e25f42a3e1738463671b940
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001078.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001087.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001087.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8781ed756f9c1d17320b5eaf47430060dcdce11
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001087.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001093.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001093.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6b3129af10ec841c2bd85de5991de0290ec9bc2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001093.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001124.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001124.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a504e05c2583f2fe3357bf698be4f5b7847a3a1
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001124.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001130.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001130.png
new file mode 100644
index 0000000000000000000000000000000000000000..13f34a20c6d9e8d301517d2a3726d09c42cbf88c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001130.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001246.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001246.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc1f2736e5754f4bc85dc21ef0c75908aab4db79
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001246.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001252.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001252.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a7b8f648f17f32af17cffca43854ef6643001e6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001252.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001285.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001285.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c13e1a4e862d0fff3a3f8e31b499b3a3eb8a173
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001285.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001291.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001291.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdadf597906d300c12f1621793ba67b7130f6b89
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001291.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001508.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001508.png
new file mode 100644
index 0000000000000000000000000000000000000000..57c99dc1a286360ea45c71746d5e588d9208430f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001508.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001520.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001520.png
new file mode 100644
index 0000000000000000000000000000000000000000..f71e24cbf3c580f9a35c9aaa557606bfb7e67718
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001520.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001534.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001534.png
new file mode 100644
index 0000000000000000000000000000000000000000..13f1e783b0dc5b9de98b159c61a428602c0c84d2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001534.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001642.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001642.png
new file mode 100644
index 0000000000000000000000000000000000000000..236d7700cd64550fa09c0582222ea5139d7a85cb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001642.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001656.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001656.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1c97f80a0376e125f31b4a700272fdb046ff6aa
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001656.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001681.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001681.png
new file mode 100644
index 0000000000000000000000000000000000000000..88b4d88e25fac040e31a51ae8bdb6e202443144e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001681.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001695.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001695.png
new file mode 100644
index 0000000000000000000000000000000000000000..22c76468392d846f11dc597c48be51ddae63352c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001695.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001722.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001722.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f8a40011357898364641ef589e95e852185c289
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001722.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001736.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001736.png
new file mode 100644
index 0000000000000000000000000000000000000000..b96f77f9622d69daf59ac4958e2fdac18e30775c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001736.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001859.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001859.png
new file mode 100644
index 0000000000000000000000000000000000000000..6833f3ce618cf0c2836f1ba3944b5a1be7eb1746
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001859.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001865.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001865.png
new file mode 100644
index 0000000000000000000000000000000000000000..4c4a928bc5dcd3cff1e5da9dc01f8af0b971f80e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001865.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001871.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001871.png
new file mode 100644
index 0000000000000000000000000000000000000000..766b585069fd3de1d8b6a1de450a70ae3044fe81
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001871.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001905.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001905.png
new file mode 100644
index 0000000000000000000000000000000000000000..efaad2a7a568d6a101799a95a1cd6cddcc1c4562
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001905.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001911.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001911.png
new file mode 100644
index 0000000000000000000000000000000000000000..58848a1824048af6d951a2c08877a50563765db4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001911.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001939.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001939.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef7eba1a0e5ccb268d98e220dee626dde6bb613b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00001939.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002001.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002001.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ea28463cf43c323fe83673f130fead4c8b9a5e3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002001.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002015.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002015.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e0986b80d9dc9520e89a452f024ae31c9067942
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002015.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002029.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002029.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff136e6e69560842801f1d51130e3b96557cdace
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002029.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002203.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002203.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a871d5179c04ed976fc60a98899688366631ffc
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002203.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002217.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002217.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3a1d46abc42e867aacd2a19f5c9af6e273b6bdc
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002217.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002388.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002388.png
new file mode 100644
index 0000000000000000000000000000000000000000..44856fd87a3cf2e14462222d1a199cd802962fae
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002388.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002439.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002439.png
new file mode 100644
index 0000000000000000000000000000000000000000..d89ec91b131b6040aea0b1097643bbd7b37ed37e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002439.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002559.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002559.png
new file mode 100644
index 0000000000000000000000000000000000000000..a7ab27aaa7a502751b12f1211c87f0c570b68aa4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002559.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002565.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002565.png
new file mode 100644
index 0000000000000000000000000000000000000000..92377258539854113d0b76538f3f10a48b8208b8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002565.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002571.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002571.png
new file mode 100644
index 0000000000000000000000000000000000000000..415130a7c01252a9ebb0aad4eee04dcb925e7d07
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002571.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002767.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002767.png
new file mode 100644
index 0000000000000000000000000000000000000000..93bf55c3182340b1fc9c0f0c39461372f732ff10
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002767.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002773.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002773.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffe3b62f93e5d26aa990608b7c407aab73716450
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002773.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002798.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002798.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9482cc3878149dc9fa32cebbfa022e716ee20bb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002798.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002940.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002940.png
new file mode 100644
index 0000000000000000000000000000000000000000..b84622eab79121942f14f9c2cbc6f2ac8d58d9c2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002940.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002954.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002954.png
new file mode 100644
index 0000000000000000000000000000000000000000..61250ee151342aaf976d87e60479cfa03f3a6168
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002954.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002968.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002968.png
new file mode 100644
index 0000000000000000000000000000000000000000..0aa68e3ee2d136a47905c2e578250d9f530f66e5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002968.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002983.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002983.png
new file mode 100644
index 0000000000000000000000000000000000000000..292a7f72deed5d0c518190bccbcfdf18d16e5539
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002983.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002997.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002997.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d8acbff86fdb02df9698904a74540b86a2ab420
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00002997.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003041.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003041.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcf23e72dc7bfa6c8684294bdaad7fa923286498
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003041.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003055.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003055.png
new file mode 100644
index 0000000000000000000000000000000000000000..87b2059535f74cdbf35fecfc04e4e4d73f71fc25
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003055.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003082.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003082.png
new file mode 100644
index 0000000000000000000000000000000000000000..590bb440eca6c0447496a975589204424965b7f4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003082.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003096.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003096.png
new file mode 100644
index 0000000000000000000000000000000000000000..126eb9dcea25431fbc4145b2ce5be5a98b749f45
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003096.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003109.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003109.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8950225865ebada042caa776a3e3a813d21c49b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003109.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003121.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003121.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0df6736d4892aff5be50b630ea2aaca1ca924b8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003121.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003135.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003135.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b51208e496d1213ba44c2c4f29893b290cd5fa1
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003135.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003323.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003323.png
new file mode 100644
index 0000000000000000000000000000000000000000..63297edbeec7c8accca4eb24ffbe6b122597cfa6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003323.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003337.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003337.png
new file mode 100644
index 0000000000000000000000000000000000000000..01afe226f4c9db35b7393a93c38215bbc233a81a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003337.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003445.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003445.png
new file mode 100644
index 0000000000000000000000000000000000000000..24882446806cdf2be390e432c26f977997e7e2d0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003445.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003451.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003451.png
new file mode 100644
index 0000000000000000000000000000000000000000..3541e8360c01e25da76666cdd50edb3fdd90d1de
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003451.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003479.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003479.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7793c289e3c05f6df335540a1a79942b4020381
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003479.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003486.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003486.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e9ba41802d02595a2a8b88ca0f923e633969ead
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003486.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003492.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003492.png
new file mode 100644
index 0000000000000000000000000000000000000000..95148bedc51a4da196440fb7dc345598dc9e3213
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003492.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003647.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003647.png
new file mode 100644
index 0000000000000000000000000000000000000000..d771b9c9c3288a95bc710f6a841416844ef98971
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003647.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003653.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003653.png
new file mode 100644
index 0000000000000000000000000000000000000000..75a910ec72566ebc3724987723bef07d3c037edb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003653.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003684.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003684.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ef1ddf08cb343b994a70e934e3d9825ad928b62
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003684.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003690.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003690.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b95df6c6eb950ed3d8d5a06dba4f84b12e72391
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003690.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003727.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003727.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee8899810ca0e4f7d50f2e2b76edbaa6aa620265
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003727.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003733.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003733.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8f50d9f05ad971120664a7e182a828e582825f5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003733.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003848.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003848.png
new file mode 100644
index 0000000000000000000000000000000000000000..7bce1a16c32413fb6d33969a1e9fc6778add677a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003848.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003860.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003860.png
new file mode 100644
index 0000000000000000000000000000000000000000..b35d2a236fad90e2c9accc6793a68953ad06d1d5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003860.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003874.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003874.png
new file mode 100644
index 0000000000000000000000000000000000000000..35c24141c9c24af3089431081f82effdeb77c331
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003874.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003900.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003900.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9f78349abd8daac8bcf17037cd2ac6c8bc83802
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003900.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003914.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003914.png
new file mode 100644
index 0000000000000000000000000000000000000000..26ae2f6cb127d43f0edc49483efcd5776835989f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003914.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003928.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003928.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b3a5eb66a7726deeb2d09ffc1f3c9950ec9c2b7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00003928.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004048.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004048.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb247f1a786e7db1e2c2915b56105d8799a3ef97
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004048.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004100.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004100.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab536ce95ac9bee3da09819728eac7f80fa79671
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004100.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004114.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004114.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cbeb82f33da2e48ed2c8287cd4df3f2845c0e01
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004114.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004128.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004128.png
new file mode 100644
index 0000000000000000000000000000000000000000..4789ec5f5aad284822fec14a1cce944b1daf11ae
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004128.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004302.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004302.png
new file mode 100644
index 0000000000000000000000000000000000000000..2aed4a19092b670a0c532b20364f578629eb6300
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004302.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004316.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004316.png
new file mode 100644
index 0000000000000000000000000000000000000000..b72eeda747c69ae77a0728e8888935c8ce211856
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00004316.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006298.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006298.png
new file mode 100644
index 0000000000000000000000000000000000000000..5da8cf03a09afa2dfa10b4797e7e206e50a942db
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006298.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006501.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006501.png
new file mode 100644
index 0000000000000000000000000000000000000000..b17349ae49e69e7611c817e61f5b09715c96fb03
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006501.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006515.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006515.png
new file mode 100644
index 0000000000000000000000000000000000000000..052fa6cebe67a402c848ebcf6a0c63842cf47aec
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006515.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006529.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006529.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b45ad24758933bc247b570f0bfa8a5a60afed46
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006529.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006688.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006688.png
new file mode 100644
index 0000000000000000000000000000000000000000..13e45f2094eeb3b97bffc83104dbe8afed02ec95
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006688.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006703.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006703.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb57fd83245275facb8ce3d9dfee887a91e9b8cd
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006703.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006717.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006717.png
new file mode 100644
index 0000000000000000000000000000000000000000..68c4af0b2a71416bf9eab783e925fe16b48e1bc0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006717.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006844.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006844.png
new file mode 100644
index 0000000000000000000000000000000000000000..89bb9d7771e44e460e898b9093c0ae00d8839055
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006844.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006850.png b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006850.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4a0e4d0a8f2ebce36bab5cd3cdb8c3ebc8214df
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/ann_dir/train/00006850.png differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/.DS_Store b/FoodSeg103/data/FoodSeg103/Images/img_dir/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..2bf8d9712a348ca22b4fc05135fabfec19e91410
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/.DS_Store differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004458.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004458.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..908bdd82dfb6a456ac259d748a7c70499c742307
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004458.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004464.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004464.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..574fd1f9ea672c705f6333af3055b609e330df00
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004464.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004470.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004470.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..176acbfee17e048130d93958f3cc02bc16349fb6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004470.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004504.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004504.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bb8f555f4a201db84508b9c662e3e629e2cec275
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004504.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004505.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004505.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9ee010a4f938459375f5b74e291efa2ba7fc5a55
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004505.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004510.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004510.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e708fce647eecb9e29c5c143722fd2046c1acb19
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004510.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004511.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004511.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..393a0f890183bb12f7535637d2f6a148f90bf507
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004511.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004538.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004538.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e0e01d8dd17eafd1db7bf6b54dc590d8c315194b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004538.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004539.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004539.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c080a00b4e5930f3187c2453384f3899f5a58f3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004539.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004666.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004666.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2fccd60c7d3900d7800c8fac4dd102a639aefdcc
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004666.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004672.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004672.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6134257e4b48ca55cd79bdfef9e2353c7d291079
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004672.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004699.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004699.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8413bf6e11a5e9a9e0137d0a0eea48378c97dfb0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004699.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004706.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004706.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..babd3dac188f16deaac30a73f660a10458d59b6a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004706.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004707.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004707.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..722f49fe4c9e11a1af58d70c2936ca032ebeb409
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004707.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004712.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004712.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..733cd32e3b4be7fae0f4d5a065d6ccd31d20ab6d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004712.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004713.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004713.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cb2530faf0983f6efe42954f4cbc63fb307e3f4f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004713.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004841.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004841.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..16f5350e17f27939570b82cdad2f5dbe943b8857
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004841.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004855.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004855.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a33e51b08af5208222dcae6391d374c80016f3c8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004855.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004869.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004869.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..513f0194b6a0feae59beda2d9eaf9f5190343d4b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004869.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004882.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004882.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9a22e57e0989fb7b82d618fae99d0fe0f637afa3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004882.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004896.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004896.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b87ade391366f4aa1a449fee68413eabf1042e2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004896.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004908.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004908.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7ce92d8af033c19c373b90f2cc6f26fbe611d85c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004908.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004909.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004909.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a4a0754aa0ae7b09cc05412d283e61d78b4e48f2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004909.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004920.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004920.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1caa2c9bf574a1242e01520cf1546688f12fa500
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004920.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004921.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004921.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2e60e08e50830cedea3f3a2d30019cc1a040927e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004921.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004934.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004934.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c36dd7d22d1d7716264fc0bd50a1a19436d7f65
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004934.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004935.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004935.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dabc039c2e47b91ca5966dab1b248497c50bb846
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00004935.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005008.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005008.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b28c133ef15ed2fe5dd74db8dab3317afafae237
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005008.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005020.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005020.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..de519062ed77ea6e6c2d45630a41f5e732ff0f55
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005020.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005034.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005034.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..df9fe4f022728d9bdf7ef9ffda43081db4c8d182
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005034.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005140.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005140.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..80d722ad67a5edc82469adbe11223d1435570771
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005140.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005154.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005154.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f9ffcc0d20e0f21629fd68e30c56390f47cad3e5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005154.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005168.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005168.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..62fb0107cf1513a9af9bdf1abd312dbcc1182830
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005168.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005169.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005169.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b13f6c6db541fe515af2ab5151da758ce016faf
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005169.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005182.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005182.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1a8efebf288d5fd13d7ff4a7cdcc89901b32212b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005182.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005183.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005183.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cc38e69f1ab4d2fb51e442d9a2e95fe01b6a559c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005183.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005196.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005196.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1dbb73d3118604dc8fa7429ee5190196198e12cd
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005196.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005197.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005197.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0aeab575228988ad3ed960afd991d589bf4f9bf4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005197.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005222.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005222.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ea96aec355d056672b7326473a8545b99ea07677
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005222.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005236.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005236.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c2569caa5118695180fb1dcea9fb99791dce9e12
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005236.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005342.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005342.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d9bd0fe8394a4bc7968599d2260b65656bf1b17a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005342.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005343.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005343.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1d473912b5d94ab62f496ea170741ef4cf804a3d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005343.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005356.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005356.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..70640c90446460fec42db69424aa4341aa07a3e5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005356.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005357.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005357.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bf8a4d308d5e730991c01953b7525b165b1f3dc9
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005357.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005380.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005380.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7210d0ecf851ee03d18d6ed9a3e4e64814c27160
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005380.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005381.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005381.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fa5e7078d31bca51c2aaab64eb8fef66264f753b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005381.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005394.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005394.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3ae3b2866bcb8c2d5ed9a03188e59c71fb93eddb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005394.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005395.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005395.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..750222a875c85e249a0a84598bb286a594cc6027
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005395.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005418.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005418.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8842035ff465b9134029c9f12e85ec2431865b16
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005418.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005419.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005419.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..310af9f5423b1e4b23c2f5cb159f344ef3800ec7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005419.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005424.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005424.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..78969221385dd130765b072a8dedaee9ea13893c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005424.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005425.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005425.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..40d8b2cb9bafac3d2801c02eda5cd1ea188c4644
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005425.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005430.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005430.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a84d519fd770dac82671b36cd5b3306f543d6f9a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005430.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005431.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005431.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f58fa4f0d7c680112955e69845132754a19018be
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005431.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005544.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005544.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..da21f3d1efdf72bb57b328a4e8ebbd45039a963a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005544.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005550.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005550.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0822cbe2af313027d845eb618dbf6dfaa0b20bdd
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005550.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005578.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005578.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cfa894be723fc81a438743b4360c8b5fb764fa1f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005578.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005587.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005587.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4cb6ef8fd70e2acdbb0f23018a2f9b396e8bd031
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005587.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005593.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005593.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..23a814fb71e60b3d6ba1bcfa39fe6df3a1df5d4d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005593.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005626.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005626.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bea2bd4055e2ddc33a307def25efca3fbad40d33
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005626.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005627.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005627.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2e704cc59d43192aa7c882d3ca7f699ef31ee35a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005627.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005632.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005632.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..94b8b6e9d3265cad34c8a80a25176a21440f71df
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005632.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005746.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005746.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fc82f63c09537b95d85826f6db654b0f078a47a0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005746.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005752.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005752.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a0d6c13e3930dcf556aa88e43dc851917a3ad21e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005752.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005785.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005785.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f20e2a9711d21e18d85b568f0ee37f841731e15f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005785.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005791.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005791.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4b806311915ac92725b30ba5a781ed75c26f11c5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005791.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005800.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005800.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1ad9e31326be41fba48a2b985cc00aaa742495b8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005800.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005801.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005801.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..63c732cc6bfd699bd67c8fd63f2e028f1e4c04d8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005801.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005814.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005814.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0a03814fa8e7af8db37253355479a2517446aa77
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005814.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005815.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005815.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..34f036734de7876f33a3d9818e65768badf24caf
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005815.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005828.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005828.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c9cd8bc9b00a4a805910e3f8edda24607025bcbf
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005828.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005829.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005829.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..89286beb6bc4f00999a2ec7409be8e26ec32413c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005829.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005949.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005949.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..abcbcf25aa0947d1c6796be1d69dc89ad4a35a10
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005949.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005961.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005961.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b2ae8d9c5443702469e54da9f987c674ccc2d773
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005961.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005975.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005975.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8a4282c56cef6a26ea30086a0977d98fbf639efe
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00005975.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006059.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006059.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aef5cd86f17428173062c7ae5a0f65b2d1310571
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006059.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006065.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006065.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..367f994907e484e35cb0ac2bca884608edebd25d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006065.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006071.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006071.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..157512e20a9441e6500fe2b15957f765352086d8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006071.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006104.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006104.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f4ab2e58755576350428703358ef688f5ac9fb07
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006104.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006105.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006105.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..273627b495ad84b9015104a546027593393796f7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006105.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006110.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006110.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3489f548125afc90920aabcd95afcffeaf247c3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006110.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006111.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006111.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..92d1b8b6ca4b2dd092a87c92ff1b7100356e29c3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006111.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006138.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006138.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..88455cf42cd9bafd4d54784eda445d8ca60c1a5e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006138.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006139.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006139.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2b01a2eb9820917c913b95df5c2257930e3a082d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006139.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006267.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006267.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..532f411a03b8218f9c213fff8d152cc28262ace4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006267.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006273.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006273.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a34c8fd1be474015eb641adb00a337a45d6cb875
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006273.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006878.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006878.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6a1305a4c4ca51d885a6695d33017d9487a81f85
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006878.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006879.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006879.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0c28e248331b9dd3aadcda551f0982882541402b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006879.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006886.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006886.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8429779babc71021db32b863e51d3b53a4f640f7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006886.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006887.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006887.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3cda7bcbb296be4df301c2124ad2c7360cba1017
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006887.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006892.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006892.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c19611d015958e5254a78f7d2c164253acbda5f0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006892.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006893.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006893.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b4123c73e7bc4b8bf4f7c9d60f6292be83da26b1
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006893.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006918.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006918.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c246c9436f2c15090f516733da955c779ea9c49a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006918.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006924.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006924.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..79eedc62b13a5ed43e450fe496bdcdd0209bc5a5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006924.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006930.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006930.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..700607d3fdac036cbe5e8b5a7c9fbd6c369705cb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00006930.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007018.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007018.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f72dfb86128070e7629acc930173bbba05f919b7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007018.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007019.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007019.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eb53a2d3cefb471db58b3c949dc5fb0469def94c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007019.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007025.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007025.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..75a3d8cc363db70a8b6e20db285e97160447fafd
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007025.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007030.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007030.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a2c30150f34a4cdfb86579bc876843100782fb4d
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007030.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007031.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007031.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1bc67d2b1d09bcf09eda32a48db93712fc5cfbe8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/test/00007031.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000010.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000010.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d1e7b88ff2926a79c45538619d849bab65e1c76e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000010.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000038.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000038.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5889a4284f1eaceb5534d460c29dad1f7c5a0d00
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000038.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000158.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000158.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..39e14918cc1a45510e97ee4e50a3f5ea5789446f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000158.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000164.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000164.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9ba5fcedd44043e50b7f2c9e41d542de5656df9e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000164.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000170.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000170.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a39a958b05dec4c52bca95bb6b11d636c0a89c13
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000170.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000366.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000366.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e445864c49476c33f776469b2cd498af8cffbdf3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000366.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000372.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000372.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9a483e01c93d2b99859d92a7a6efdede4a00bcdb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000372.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000399.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000399.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..04cfa9abb5e59fa8b7a801ba2f12ef7b4b9f9c65
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000399.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3680fdc77094d22c58fd0295e0681a9346a8d7d16f89a617546cdccd3b8f3b38
+size 1630029
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000400.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000400.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e62b2a87495b2ed41817b22a0af7bfc8378835e2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000400.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000414.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000414.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fcf3c7e09bf63248f6963c9104fbed449652c3f2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000414.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000428.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000428.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..57c2d9034e51ec41532b79a2cba3ed8bf86541b0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000428.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000602.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000602.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..998103a84d45ae1b2e95a74c0151fc2451e75e5f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000602.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000616.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000616.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4ac6671abdd0f20782a4d9f0128f3095bf9ca0fe
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000616.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000762.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000762.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6dc491c070b1ac1cc5e7486fcec66d670f461327
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000762.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000776.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000776.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fd40c32f7e527a9c942163d3b1b7af367ccb9b7a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000776.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000819.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000819.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fb524278d5a7c0b5c749a5c484b0c2ea27d893da
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000819.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000825.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000825.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6b76dbdcb3aebc9626099a11ff3132faac5343be
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000825.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000831.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000831.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..248d87be0ad18f95bab5d57861ef9aeb10cdcdeb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000831.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000986.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000986.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c932071909ec1c3ba4fc31f9f260aa7c4bc0061b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000986.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000992.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000992.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60f35fc0a14ef682cc19670d3e80deb607f42fe7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00000992.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001044.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001044.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cfe1c0ec0046d289c71d370cb98fd6c66d815a48
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001044.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001050.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001050.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..949b0a73d9c68e5f40a84355edf3cd5d6399245f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001050.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001078.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001078.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..db90cc9d924cc25ea92a3ddd6806cce4497cc18c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001078.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001087.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001087.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8788616f92198f9085afba718abfae8b96103c3f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001087.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001093.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001093.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8fe354c0fb891ba12d11220a5dba2f48446e04d3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001093.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001246.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001246.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d78e755848d3eb9fae01c90d041e5cbc5fc7439e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001246.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001252.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001252.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d76d8ef3f20aaa8ee789bdfe94170895b969491c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001252.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001285.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001285.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..eb9861e7c8a8ebb552427b226ddb5c1bc4926af6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001285.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001291.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001291.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6cc499f5e1aa6fd7c71ce0effcebd380c5bc424c
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001291.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001326.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001326.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5c2734caa4fe9aeab944692d4a0199162c4f58b5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001326.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001332.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001332.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c062282ba8826b7f7fe6553e5c0f6179e47947e1
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001332.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001440.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001440.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fc8fe5c67a6abbb476be595c2208ba03a366426e
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001440.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001454.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001454.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..83c1211ed9ad485053ceb6a2f187e67ba9c6d6c4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001454.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001468.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001468.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d3671c61d60084d82217b654fd42f40391af8a3f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001468.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001508.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001508.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..059d777de35d19837bd785af3d5e36dea388558b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001508.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001520.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001520.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..65a8b08716b219d96a3f4b2440920ec5b0436714
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001520.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:12847a7a556a7764749df4179558e7934bd5c86cb6e65bd41660e278799532fd
+size 3515605
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001534.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001534.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..22c043935abb0364773d12ad4cd7fd74b7b6cc6a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001534.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001722.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001722.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2c138b25b2ee6ec411cc3c55b2433268df747ca8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001722.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001736.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001736.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..581d9441b6617882d8974737ee7b1c248795b04f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001736.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001905.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001905.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..30a060d21c76901a171e13e5b19c621bcbdd9bfa
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001905.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:617f201a7fd0330814737e57ea0849578548cf929fefad091ac3c943e1ac95c5
+size 1330618
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001911.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001911.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8f94db960e5b2124e2d644d9bc87226e07a23094
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001911.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001939.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001939.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6d6101c12d0de8606e51442b139123017867aafb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00001939.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002001.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002001.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..dd976abc2aa504ccc514abbf0e52b44ae4186cc9
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002001.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002015.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002015.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d6e6d04138ada873df877271428b4c480d801208
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002015.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002029.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002029.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c26c8511f48db3e9a8c1b97baf453c33925f3387
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002029.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002149.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002149.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3322fdc81e319a618774de6c22e08f59549b9e19
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002149.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002161.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002161.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cd7a9d7761ca155878f4e727fe4ca58d82a0037a
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002161.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002175.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002175.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e646c5d87ab73582b13127ae7ee26a7b66318fb3
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002175.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002203.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002203.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..59ad77f413736c86d75f2f6d90fda7db6791b10f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002203.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002217.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002217.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6a148747fba1c1bc72697bc7013751e5820c8f7b
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002217.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002559.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002559.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c74727eeccbcbdfc36a4139890851a3ea604ba45
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002559.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:81cdba332381550f7cf74084a6cbe8c60afa7506c2053d257573c87c065f82f2
+size 1218352
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002565.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002565.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..07c8028a356552a4a42a9af8ac6039b826d91ec7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002565.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002571.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002571.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4a505b9665d86cd68ddef822ca170d84dea3eb02
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002571.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002607.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002607.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7074c5ae975267b3ce8c891c99d0a8e443287536
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002607.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002767.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002767.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ddb87196a9f087098478fd060abeeff51bfb5b79
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002767.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002773.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002773.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1b55cec9128097093bd0cac481e6fb7ffcddfe88
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002773.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002798.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002798.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b499acc2d4843fc7f13fa226625e49f81af9c2fa
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002798.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002940.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002940.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6c51d36e16067053140b289ee6912826f27613c2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002940.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002954.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002954.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f88a696542c8c3bc572e4d6e56e9ba6e3251fd41
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002954.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002968.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002968.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..091bd93570f4571cb42a63ac05df416a5b3ccc60
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002968.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002983.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002983.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a69fcc0a33087aab907fcbe81e718eba37591f48
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002983.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002997.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002997.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b920f2910e0e4fc9ddb482719e84924d8dee81c8
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00002997.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003109.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003109.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fbd458d027f357864b1492b13fad4605bcc11641
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003109.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003121.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003121.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..77ecd467cfb7c12163eb26a4d4402c559092aba6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003121.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003135.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003135.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..830cbc0a1efeaa1c2537f2a4d886a37c44e69c42
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003135.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003243.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003243.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..58325bfd57fbf0db0e07899bad76d2cabe374dde
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003243.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003257.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003257.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a4bbe86baf7ac7b5a5befbaca4dab649aecab300
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003257.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003323.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003323.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..4224a58c34517d99046f3f1c07373279f4802dbb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003323.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003337.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003337.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5d43ac492c890321c5462c3c5b7b2ef90662c90e
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003337.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:298d7aca68117c8e716cda756092169d48ff8f092d11461a40de51b7ba0db795
+size 1195363
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003445.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003445.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c47dfa832102ee87584eb8b10bae2df14ab7d989
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003445.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003451.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003451.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3cf92fdbd5190c5901e45a3cba6af57bcd22510f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003451.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003479.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003479.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3bd2dd8136638224991914ea79635ecd1a2dc541
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003479.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003486.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003486.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..944ab4d8481b5f481ca45491c473cf9ccad45975
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003486.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003492.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003492.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..add60d74fba0bf03eb4374186729c435023eea23
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003492.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003519.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003519.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f5bca1f026094a6552bcc40c64e8b3baa41b4a60
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003519.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003525.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003525.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3f9c09f1861b9e36f05696a8040f37aa99bd7047
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003525.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003531.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003531.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6fda39736b722b5ea5f3463cfa665fd609b3c0c4
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003531.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003647.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003647.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e12278dddffa8ad5151710d9eb905922967537bb
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003647.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003653.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003653.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..531298d54219a1391f36c7fcd6d5c12db10e5eca
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003653.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003684.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003684.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e056b1e2bcf94e56049ad31088f0beb25f555a8f
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003684.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003690.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003690.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b86b60f62a2e552aa3bc42d3cba1089f062a5d75
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003690.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003848.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003848.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..cf39b5008b77d9f242849a120a40b7cb2d3375c0
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003848.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003860.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003860.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f528e81320ed6591a5d1aaf48e3deec6394265f7
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003860.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003874.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003874.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..91bcea0166cfc20f89c15cacbcdb65993235fb40
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00003874.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004100.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004100.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e5932c93d9772af127344c6ca6248233db41899
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004100.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004114.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004114.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..781986e0d5b315cb2ec6c267f43c07389ca906e6
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004114.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d4c2deacd7304b964d4345e56abe7981d7b4fa990466897dcdfeccba375fbd7c
+size 1304924
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004128.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004128.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6d1ebd14b30e7678238f18b85dd149db8eb052e5
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004128.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004276.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004276.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..145f83022acabeb612b2ebff30e805ed294968a6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004276.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004302.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004302.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..87b9f213c9ddb06018b57ecdf2c70624fcb77b72
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004302.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004316.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004316.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3f1831b1da772fc84bad892e1dd6413281978bec
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00004316.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006298.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006298.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8777f7db56ea38456706eb72527da7dd74867638
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006298.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006307.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006307.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..88678f33fa0934731379e27e4a1c124fb2736b18
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006307.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e8d28713c834f415665769084f17ee3f3c6857b131cb5455bebd6a5c37cf1f92
+size 1212646
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006313.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006313.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a33b4d279028bff1b764fe016d8d84bdb996bd64
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006313.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006449.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006449.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6aa1401f83dc3b03959116e1a0052735594462c6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006449.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006461.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006461.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9a46c697f8a56eacdb457869ab099ab3034380d6
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006461.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006501.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006501.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5a8ab011604996f4049d2ce0b69634bd521bb492
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006501.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006515.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006515.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f04f8471063295736b7d47e005e517e7230e008
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006515.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006529.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006529.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..f671f248b2c51d0ff2e0d4a762eddda973cdbdad
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006529.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006703.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006703.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2aa040e83b71afea26f6fcd4b6e4dc4572086459
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006703.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006717.jpg b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006717.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..55054500c0a56de9cf36809859abaf090b0144c2
Binary files /dev/null and b/FoodSeg103/data/FoodSeg103/Images/img_dir/train/00006717.jpg differ
diff --git a/FoodSeg103/data/FoodSeg103/Readme.txt b/FoodSeg103/data/FoodSeg103/Readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..664e0807510b84280162dfee0fc37d1190d5889d
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/Readme.txt
@@ -0,0 +1,17 @@
+``ImageSets'' folder, store the image ids of train and test sets of FoodSeg103:
+ - train.txt
+ - test.txt
+
+``Images'' folder, contains the raw images and masks:
+ - img_dir
+ - train
+ - test
+ - ann_dir
+ - train
+ - test
+
+category_id.txt: store the category ids and names
+
+test_recipe1m_id.txt, train_test_recipe1m_id.txt: store the original image ids in Recipe1M dataset of FoodSeg103. You may explore more information based on these original image ids & recipe information in Recipe1M.
+
+(NOTE: There are some images in the list we do not use in the final FoodSeg103.)
\ No newline at end of file
diff --git a/FoodSeg103/data/FoodSeg103/category_id(old).txt b/FoodSeg103/data/FoodSeg103/category_id(old).txt
new file mode 100644
index 0000000000000000000000000000000000000000..1b5a5c02a4a2bcb73968f8348253af7a1ecfce80
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/category_id(old).txt
@@ -0,0 +1 @@
+['backbone.patch_embed.proj.weight', 'backbone.patch_embed.proj.bias', 'backbone.patch_embed.norm.weight', 'backbone.patch_embed.norm.bias', 'backbone.layers.0.blocks.0.norm1.weight', 'backbone.layers.0.blocks.0.norm1.bias', 'backbone.layers.0.blocks.0.attn.relative_position_bias_table', 'backbone.layers.0.blocks.0.attn.relative_position_index', 'backbone.layers.0.blocks.0.attn.qkv.weight', 'backbone.layers.0.blocks.0.attn.qkv.bias', 'backbone.layers.0.blocks.0.attn.proj.weight', 'backbone.layers.0.blocks.0.attn.proj.bias', 'backbone.layers.0.blocks.0.norm2.weight', 'backbone.layers.0.blocks.0.norm2.bias', 'backbone.layers.0.blocks.0.mlp.fc1.weight', 'backbone.layers.0.blocks.0.mlp.fc1.bias', 'backbone.layers.0.blocks.0.mlp.fc2.weight', 'backbone.layers.0.blocks.0.mlp.fc2.bias', 'backbone.layers.0.blocks.1.norm1.weight', 'backbone.layers.0.blocks.1.norm1.bias', 'backbone.layers.0.blocks.1.attn.relative_position_bias_table', 'backbone.layers.0.blocks.1.attn.relative_position_index', 'backbone.layers.0.blocks.1.attn.qkv.weight', 'backbone.layers.0.blocks.1.attn.qkv.bias', 'backbone.layers.0.blocks.1.attn.proj.weight', 'backbone.layers.0.blocks.1.attn.proj.bias', 'backbone.layers.0.blocks.1.norm2.weight', 'backbone.layers.0.blocks.1.norm2.bias', 'backbone.layers.0.blocks.1.mlp.fc1.weight', 'backbone.layers.0.blocks.1.mlp.fc1.bias', 'backbone.layers.0.blocks.1.mlp.fc2.weight', 'backbone.layers.0.blocks.1.mlp.fc2.bias', 'backbone.layers.0.downsample.reduction.weight', 'backbone.layers.0.downsample.norm.weight', 'backbone.layers.0.downsample.norm.bias', 'backbone.layers.1.blocks.0.norm1.weight', 'backbone.layers.1.blocks.0.norm1.bias', 'backbone.layers.1.blocks.0.attn.relative_position_bias_table', 'backbone.layers.1.blocks.0.attn.relative_position_index', 'backbone.layers.1.blocks.0.attn.qkv.weight', 'backbone.layers.1.blocks.0.attn.qkv.bias', 'backbone.layers.1.blocks.0.attn.proj.weight', 'backbone.layers.1.blocks.0.attn.proj.bias', 'backbone.layers.1.blocks.0.norm2.weight', 'backbone.layers.1.blocks.0.norm2.bias', 'backbone.layers.1.blocks.0.mlp.fc1.weight', 'backbone.layers.1.blocks.0.mlp.fc1.bias', 'backbone.layers.1.blocks.0.mlp.fc2.weight', 'backbone.layers.1.blocks.0.mlp.fc2.bias', 'backbone.layers.1.blocks.1.norm1.weight', 'backbone.layers.1.blocks.1.norm1.bias', 'backbone.layers.1.blocks.1.attn.relative_position_bias_table', 'backbone.layers.1.blocks.1.attn.relative_position_index', 'backbone.layers.1.blocks.1.attn.qkv.weight', 'backbone.layers.1.blocks.1.attn.qkv.bias', 'backbone.layers.1.blocks.1.attn.proj.weight', 'backbone.layers.1.blocks.1.attn.proj.bias', 'backbone.layers.1.blocks.1.norm2.weight', 'backbone.layers.1.blocks.1.norm2.bias', 'backbone.layers.1.blocks.1.mlp.fc1.weight', 'backbone.layers.1.blocks.1.mlp.fc1.bias', 'backbone.layers.1.blocks.1.mlp.fc2.weight', 'backbone.layers.1.blocks.1.mlp.fc2.bias', 'backbone.layers.1.downsample.reduction.weight', 'backbone.layers.1.downsample.norm.weight', 'backbone.layers.1.downsample.norm.bias', 'backbone.layers.2.blocks.0.norm1.weight', 'backbone.layers.2.blocks.0.norm1.bias', 'backbone.layers.2.blocks.0.attn.relative_position_bias_table', 'backbone.layers.2.blocks.0.attn.relative_position_index', 'backbone.layers.2.blocks.0.attn.qkv.weight', 'backbone.layers.2.blocks.0.attn.qkv.bias', 'backbone.layers.2.blocks.0.attn.proj.weight', 'backbone.layers.2.blocks.0.attn.proj.bias', 'backbone.layers.2.blocks.0.norm2.weight', 'backbone.layers.2.blocks.0.norm2.bias', 'backbone.layers.2.blocks.0.mlp.fc1.weight', 'backbone.layers.2.blocks.0.mlp.fc1.bias', 'backbone.layers.2.blocks.0.mlp.fc2.weight', 'backbone.layers.2.blocks.0.mlp.fc2.bias', 'backbone.layers.2.blocks.1.norm1.weight', 'backbone.layers.2.blocks.1.norm1.bias', 'backbone.layers.2.blocks.1.attn.relative_position_bias_table', 'backbone.layers.2.blocks.1.attn.relative_position_index', 'backbone.layers.2.blocks.1.attn.qkv.weight', 'backbone.layers.2.blocks.1.attn.qkv.bias', 'backbone.layers.2.blocks.1.attn.proj.weight', 'backbone.layers.2.blocks.1.attn.proj.bias', 'backbone.layers.2.blocks.1.norm2.weight', 'backbone.layers.2.blocks.1.norm2.bias', 'backbone.layers.2.blocks.1.mlp.fc1.weight', 'backbone.layers.2.blocks.1.mlp.fc1.bias', 'backbone.layers.2.blocks.1.mlp.fc2.weight', 'backbone.layers.2.blocks.1.mlp.fc2.bias', 'backbone.layers.2.blocks.2.norm1.weight', 'backbone.layers.2.blocks.2.norm1.bias', 'backbone.layers.2.blocks.2.attn.relative_position_bias_table', 'backbone.layers.2.blocks.2.attn.relative_position_index', 'backbone.layers.2.blocks.2.attn.qkv.weight', 'backbone.layers.2.blocks.2.attn.qkv.bias', 'backbone.layers.2.blocks.2.attn.proj.weight', 'backbone.layers.2.blocks.2.attn.proj.bias', 'backbone.layers.2.blocks.2.norm2.weight', 'backbone.layers.2.blocks.2.norm2.bias', 'backbone.layers.2.blocks.2.mlp.fc1.weight', 'backbone.layers.2.blocks.2.mlp.fc1.bias', 'backbone.layers.2.blocks.2.mlp.fc2.weight', 'backbone.layers.2.blocks.2.mlp.fc2.bias', 'backbone.layers.2.blocks.3.norm1.weight', 'backbone.layers.2.blocks.3.norm1.bias', 'backbone.layers.2.blocks.3.attn.relative_position_bias_table', 'backbone.layers.2.blocks.3.attn.relative_position_index', 'backbone.layers.2.blocks.3.attn.qkv.weight', 'backbone.layers.2.blocks.3.attn.qkv.bias', 'backbone.layers.2.blocks.3.attn.proj.weight', 'backbone.layers.2.blocks.3.attn.proj.bias', 'backbone.layers.2.blocks.3.norm2.weight', 'backbone.layers.2.blocks.3.norm2.bias', 'backbone.layers.2.blocks.3.mlp.fc1.weight', 'backbone.layers.2.blocks.3.mlp.fc1.bias', 'backbone.layers.2.blocks.3.mlp.fc2.weight', 'backbone.layers.2.blocks.3.mlp.fc2.bias', 'backbone.layers.2.blocks.4.norm1.weight', 'backbone.layers.2.blocks.4.norm1.bias', 'backbone.layers.2.blocks.4.attn.relative_position_bias_table', 'backbone.layers.2.blocks.4.attn.relative_position_index', 'backbone.layers.2.blocks.4.attn.qkv.weight', 'backbone.layers.2.blocks.4.attn.qkv.bias', 'backbone.layers.2.blocks.4.attn.proj.weight', 'backbone.layers.2.blocks.4.attn.proj.bias', 'backbone.layers.2.blocks.4.norm2.weight', 'backbone.layers.2.blocks.4.norm2.bias', 'backbone.layers.2.blocks.4.mlp.fc1.weight', 'backbone.layers.2.blocks.4.mlp.fc1.bias', 'backbone.layers.2.blocks.4.mlp.fc2.weight', 'backbone.layers.2.blocks.4.mlp.fc2.bias', 'backbone.layers.2.blocks.5.norm1.weight', 'backbone.layers.2.blocks.5.norm1.bias', 'backbone.layers.2.blocks.5.attn.relative_position_bias_table', 'backbone.layers.2.blocks.5.attn.relative_position_index', 'backbone.layers.2.blocks.5.attn.qkv.weight', 'backbone.layers.2.blocks.5.attn.qkv.bias', 'backbone.layers.2.blocks.5.attn.proj.weight', 'backbone.layers.2.blocks.5.attn.proj.bias', 'backbone.layers.2.blocks.5.norm2.weight', 'backbone.layers.2.blocks.5.norm2.bias', 'backbone.layers.2.blocks.5.mlp.fc1.weight', 'backbone.layers.2.blocks.5.mlp.fc1.bias', 'backbone.layers.2.blocks.5.mlp.fc2.weight', 'backbone.layers.2.blocks.5.mlp.fc2.bias', 'backbone.layers.2.blocks.6.norm1.weight', 'backbone.layers.2.blocks.6.norm1.bias', 'backbone.layers.2.blocks.6.attn.relative_position_bias_table', 'backbone.layers.2.blocks.6.attn.relative_position_index', 'backbone.layers.2.blocks.6.attn.qkv.weight', 'backbone.layers.2.blocks.6.attn.qkv.bias', 'backbone.layers.2.blocks.6.attn.proj.weight', 'backbone.layers.2.blocks.6.attn.proj.bias', 'backbone.layers.2.blocks.6.norm2.weight', 'backbone.layers.2.blocks.6.norm2.bias', 'backbone.layers.2.blocks.6.mlp.fc1.weight', 'backbone.layers.2.blocks.6.mlp.fc1.bias', 'backbone.layers.2.blocks.6.mlp.fc2.weight', 'backbone.layers.2.blocks.6.mlp.fc2.bias', 'backbone.layers.2.blocks.7.norm1.weight', 'backbone.layers.2.blocks.7.norm1.bias', 'backbone.layers.2.blocks.7.attn.relative_position_bias_table', 'backbone.layers.2.blocks.7.attn.relative_position_index', 'backbone.layers.2.blocks.7.attn.qkv.weight', 'backbone.layers.2.blocks.7.attn.qkv.bias', 'backbone.layers.2.blocks.7.attn.proj.weight', 'backbone.layers.2.blocks.7.attn.proj.bias', 'backbone.layers.2.blocks.7.norm2.weight', 'backbone.layers.2.blocks.7.norm2.bias', 'backbone.layers.2.blocks.7.mlp.fc1.weight', 'backbone.layers.2.blocks.7.mlp.fc1.bias', 'backbone.layers.2.blocks.7.mlp.fc2.weight', 'backbone.layers.2.blocks.7.mlp.fc2.bias', 'backbone.layers.2.blocks.8.norm1.weight', 'backbone.layers.2.blocks.8.norm1.bias', 'backbone.layers.2.blocks.8.attn.relative_position_bias_table', 'backbone.layers.2.blocks.8.attn.relative_position_index', 'backbone.layers.2.blocks.8.attn.qkv.weight', 'backbone.layers.2.blocks.8.attn.qkv.bias', 'backbone.layers.2.blocks.8.attn.proj.weight', 'backbone.layers.2.blocks.8.attn.proj.bias', 'backbone.layers.2.blocks.8.norm2.weight', 'backbone.layers.2.blocks.8.norm2.bias', 'backbone.layers.2.blocks.8.mlp.fc1.weight', 'backbone.layers.2.blocks.8.mlp.fc1.bias', 'backbone.layers.2.blocks.8.mlp.fc2.weight', 'backbone.layers.2.blocks.8.mlp.fc2.bias', 'backbone.layers.2.blocks.9.norm1.weight', 'backbone.layers.2.blocks.9.norm1.bias', 'backbone.layers.2.blocks.9.attn.relative_position_bias_table', 'backbone.layers.2.blocks.9.attn.relative_position_index', 'backbone.layers.2.blocks.9.attn.qkv.weight', 'backbone.layers.2.blocks.9.attn.qkv.bias', 'backbone.layers.2.blocks.9.attn.proj.weight', 'backbone.layers.2.blocks.9.attn.proj.bias', 'backbone.layers.2.blocks.9.norm2.weight', 'backbone.layers.2.blocks.9.norm2.bias', 'backbone.layers.2.blocks.9.mlp.fc1.weight', 'backbone.layers.2.blocks.9.mlp.fc1.bias', 'backbone.layers.2.blocks.9.mlp.fc2.weight', 'backbone.layers.2.blocks.9.mlp.fc2.bias', 'backbone.layers.2.blocks.10.norm1.weight', 'backbone.layers.2.blocks.10.norm1.bias', 'backbone.layers.2.blocks.10.attn.relative_position_bias_table', 'backbone.layers.2.blocks.10.attn.relative_position_index', 'backbone.layers.2.blocks.10.attn.qkv.weight', 'backbone.layers.2.blocks.10.attn.qkv.bias', 'backbone.layers.2.blocks.10.attn.proj.weight', 'backbone.layers.2.blocks.10.attn.proj.bias', 'backbone.layers.2.blocks.10.norm2.weight', 'backbone.layers.2.blocks.10.norm2.bias', 'backbone.layers.2.blocks.10.mlp.fc1.weight', 'backbone.layers.2.blocks.10.mlp.fc1.bias', 'backbone.layers.2.blocks.10.mlp.fc2.weight', 'backbone.layers.2.blocks.10.mlp.fc2.bias', 'backbone.layers.2.blocks.11.norm1.weight', 'backbone.layers.2.blocks.11.norm1.bias', 'backbone.layers.2.blocks.11.attn.relative_position_bias_table', 'backbone.layers.2.blocks.11.attn.relative_position_index', 'backbone.layers.2.blocks.11.attn.qkv.weight', 'backbone.layers.2.blocks.11.attn.qkv.bias', 'backbone.layers.2.blocks.11.attn.proj.weight', 'backbone.layers.2.blocks.11.attn.proj.bias', 'backbone.layers.2.blocks.11.norm2.weight', 'backbone.layers.2.blocks.11.norm2.bias', 'backbone.layers.2.blocks.11.mlp.fc1.weight', 'backbone.layers.2.blocks.11.mlp.fc1.bias', 'backbone.layers.2.blocks.11.mlp.fc2.weight', 'backbone.layers.2.blocks.11.mlp.fc2.bias', 'backbone.layers.2.blocks.12.norm1.weight', 'backbone.layers.2.blocks.12.norm1.bias', 'backbone.layers.2.blocks.12.attn.relative_position_bias_table', 'backbone.layers.2.blocks.12.attn.relative_position_index', 'backbone.layers.2.blocks.12.attn.qkv.weight', 'backbone.layers.2.blocks.12.attn.qkv.bias', 'backbone.layers.2.blocks.12.attn.proj.weight', 'backbone.layers.2.blocks.12.attn.proj.bias', 'backbone.layers.2.blocks.12.norm2.weight', 'backbone.layers.2.blocks.12.norm2.bias', 'backbone.layers.2.blocks.12.mlp.fc1.weight', 'backbone.layers.2.blocks.12.mlp.fc1.bias', 'backbone.layers.2.blocks.12.mlp.fc2.weight', 'backbone.layers.2.blocks.12.mlp.fc2.bias', 'backbone.layers.2.blocks.13.norm1.weight', 'backbone.layers.2.blocks.13.norm1.bias', 'backbone.layers.2.blocks.13.attn.relative_position_bias_table', 'backbone.layers.2.blocks.13.attn.relative_position_index', 'backbone.layers.2.blocks.13.attn.qkv.weight', 'backbone.layers.2.blocks.13.attn.qkv.bias', 'backbone.layers.2.blocks.13.attn.proj.weight', 'backbone.layers.2.blocks.13.attn.proj.bias', 'backbone.layers.2.blocks.13.norm2.weight', 'backbone.layers.2.blocks.13.norm2.bias', 'backbone.layers.2.blocks.13.mlp.fc1.weight', 'backbone.layers.2.blocks.13.mlp.fc1.bias', 'backbone.layers.2.blocks.13.mlp.fc2.weight', 'backbone.layers.2.blocks.13.mlp.fc2.bias', 'backbone.layers.2.blocks.14.norm1.weight', 'backbone.layers.2.blocks.14.norm1.bias', 'backbone.layers.2.blocks.14.attn.relative_position_bias_table', 'backbone.layers.2.blocks.14.attn.relative_position_index', 'backbone.layers.2.blocks.14.attn.qkv.weight', 'backbone.layers.2.blocks.14.attn.qkv.bias', 'backbone.layers.2.blocks.14.attn.proj.weight', 'backbone.layers.2.blocks.14.attn.proj.bias', 'backbone.layers.2.blocks.14.norm2.weight', 'backbone.layers.2.blocks.14.norm2.bias', 'backbone.layers.2.blocks.14.mlp.fc1.weight', 'backbone.layers.2.blocks.14.mlp.fc1.bias', 'backbone.layers.2.blocks.14.mlp.fc2.weight', 'backbone.layers.2.blocks.14.mlp.fc2.bias', 'backbone.layers.2.blocks.15.norm1.weight', 'backbone.layers.2.blocks.15.norm1.bias', 'backbone.layers.2.blocks.15.attn.relative_position_bias_table', 'backbone.layers.2.blocks.15.attn.relative_position_index', 'backbone.layers.2.blocks.15.attn.qkv.weight', 'backbone.layers.2.blocks.15.attn.qkv.bias', 'backbone.layers.2.blocks.15.attn.proj.weight', 'backbone.layers.2.blocks.15.attn.proj.bias', 'backbone.layers.2.blocks.15.norm2.weight', 'backbone.layers.2.blocks.15.norm2.bias', 'backbone.layers.2.blocks.15.mlp.fc1.weight', 'backbone.layers.2.blocks.15.mlp.fc1.bias', 'backbone.layers.2.blocks.15.mlp.fc2.weight', 'backbone.layers.2.blocks.15.mlp.fc2.bias', 'backbone.layers.2.blocks.16.norm1.weight', 'backbone.layers.2.blocks.16.norm1.bias', 'backbone.layers.2.blocks.16.attn.relative_position_bias_table', 'backbone.layers.2.blocks.16.attn.relative_position_index', 'backbone.layers.2.blocks.16.attn.qkv.weight', 'backbone.layers.2.blocks.16.attn.qkv.bias', 'backbone.layers.2.blocks.16.attn.proj.weight', 'backbone.layers.2.blocks.16.attn.proj.bias', 'backbone.layers.2.blocks.16.norm2.weight', 'backbone.layers.2.blocks.16.norm2.bias', 'backbone.layers.2.blocks.16.mlp.fc1.weight', 'backbone.layers.2.blocks.16.mlp.fc1.bias', 'backbone.layers.2.blocks.16.mlp.fc2.weight', 'backbone.layers.2.blocks.16.mlp.fc2.bias', 'backbone.layers.2.blocks.17.norm1.weight', 'backbone.layers.2.blocks.17.norm1.bias', 'backbone.layers.2.blocks.17.attn.relative_position_bias_table', 'backbone.layers.2.blocks.17.attn.relative_position_index', 'backbone.layers.2.blocks.17.attn.qkv.weight', 'backbone.layers.2.blocks.17.attn.qkv.bias', 'backbone.layers.2.blocks.17.attn.proj.weight', 'backbone.layers.2.blocks.17.attn.proj.bias', 'backbone.layers.2.blocks.17.norm2.weight', 'backbone.layers.2.blocks.17.norm2.bias', 'backbone.layers.2.blocks.17.mlp.fc1.weight', 'backbone.layers.2.blocks.17.mlp.fc1.bias', 'backbone.layers.2.blocks.17.mlp.fc2.weight', 'backbone.layers.2.blocks.17.mlp.fc2.bias', 'backbone.layers.2.downsample.reduction.weight', 'backbone.layers.2.downsample.norm.weight', 'backbone.layers.2.downsample.norm.bias', 'backbone.layers.3.blocks.0.norm1.weight', 'backbone.layers.3.blocks.0.norm1.bias', 'backbone.layers.3.blocks.0.attn.relative_position_bias_table', 'backbone.layers.3.blocks.0.attn.relative_position_index', 'backbone.layers.3.blocks.0.attn.qkv.weight', 'backbone.layers.3.blocks.0.attn.qkv.bias', 'backbone.layers.3.blocks.0.attn.proj.weight', 'backbone.layers.3.blocks.0.attn.proj.bias', 'backbone.layers.3.blocks.0.norm2.weight', 'backbone.layers.3.blocks.0.norm2.bias', 'backbone.layers.3.blocks.0.mlp.fc1.weight', 'backbone.layers.3.blocks.0.mlp.fc1.bias', 'backbone.layers.3.blocks.0.mlp.fc2.weight', 'backbone.layers.3.blocks.0.mlp.fc2.bias', 'backbone.layers.3.blocks.1.norm1.weight', 'backbone.layers.3.blocks.1.norm1.bias', 'backbone.layers.3.blocks.1.attn.relative_position_bias_table', 'backbone.layers.3.blocks.1.attn.relative_position_index', 'backbone.layers.3.blocks.1.attn.qkv.weight', 'backbone.layers.3.blocks.1.attn.qkv.bias', 'backbone.layers.3.blocks.1.attn.proj.weight', 'backbone.layers.3.blocks.1.attn.proj.bias', 'backbone.layers.3.blocks.1.norm2.weight', 'backbone.layers.3.blocks.1.norm2.bias', 'backbone.layers.3.blocks.1.mlp.fc1.weight', 'backbone.layers.3.blocks.1.mlp.fc1.bias', 'backbone.layers.3.blocks.1.mlp.fc2.weight', 'backbone.layers.3.blocks.1.mlp.fc2.bias', 'backbone.norm0.weight', 'backbone.norm0.bias', 'backbone.norm1.weight', 'backbone.norm1.bias', 'backbone.norm2.weight', 'backbone.norm2.bias', 'backbone.norm3.weight', 'backbone.norm3.bias', 'decode_head.conv_seg.weight', 'decode_head.conv_seg.bias', 'decode_head.psp_modules.0.1.conv.weight', 'decode_head.psp_modules.0.1.bn.weight', 'decode_head.psp_modules.0.1.bn.bias', 'decode_head.psp_modules.0.1.bn.running_mean', 'decode_head.psp_modules.0.1.bn.running_var', 'decode_head.psp_modules.0.1.bn.num_batches_tracked', 'decode_head.psp_modules.1.1.conv.weight', 'decode_head.psp_modules.1.1.bn.weight', 'decode_head.psp_modules.1.1.bn.bias', 'decode_head.psp_modules.1.1.bn.running_mean', 'decode_head.psp_modules.1.1.bn.running_var', 'decode_head.psp_modules.1.1.bn.num_batches_tracked', 'decode_head.psp_modules.2.1.conv.weight', 'decode_head.psp_modules.2.1.bn.weight', 'decode_head.psp_modules.2.1.bn.bias', 'decode_head.psp_modules.2.1.bn.running_mean', 'decode_head.psp_modules.2.1.bn.running_var', 'decode_head.psp_modules.2.1.bn.num_batches_tracked', 'decode_head.psp_modules.3.1.conv.weight', 'decode_head.psp_modules.3.1.bn.weight', 'decode_head.psp_modules.3.1.bn.bias', 'decode_head.psp_modules.3.1.bn.running_mean', 'decode_head.psp_modules.3.1.bn.running_var', 'decode_head.psp_modules.3.1.bn.num_batches_tracked', 'decode_head.bottleneck.conv.weight', 'decode_head.bottleneck.bn.weight', 'decode_head.bottleneck.bn.bias', 'decode_head.bottleneck.bn.running_mean', 'decode_head.bottleneck.bn.running_var', 'decode_head.bottleneck.bn.num_batches_tracked', 'decode_head.lateral_convs.0.conv.weight', 'decode_head.lateral_convs.0.bn.weight', 'decode_head.lateral_convs.0.bn.bias', 'decode_head.lateral_convs.0.bn.running_mean', 'decode_head.lateral_convs.0.bn.running_var', 'decode_head.lateral_convs.0.bn.num_batches_tracked', 'decode_head.lateral_convs.1.conv.weight', 'decode_head.lateral_convs.1.bn.weight', 'decode_head.lateral_convs.1.bn.bias', 'decode_head.lateral_convs.1.bn.running_mean', 'decode_head.lateral_convs.1.bn.running_var', 'decode_head.lateral_convs.1.bn.num_batches_tracked', 'decode_head.lateral_convs.2.conv.weight', 'decode_head.lateral_convs.2.bn.weight', 'decode_head.lateral_convs.2.bn.bias', 'decode_head.lateral_convs.2.bn.running_mean', 'decode_head.lateral_convs.2.bn.running_var', 'decode_head.lateral_convs.2.bn.num_batches_tracked', 'decode_head.fpn_convs.0.conv.weight', 'decode_head.fpn_convs.0.bn.weight', 'decode_head.fpn_convs.0.bn.bias', 'decode_head.fpn_convs.0.bn.running_mean', 'decode_head.fpn_convs.0.bn.running_var', 'decode_head.fpn_convs.0.bn.num_batches_tracked', 'decode_head.fpn_convs.1.conv.weight', 'decode_head.fpn_convs.1.bn.weight', 'decode_head.fpn_convs.1.bn.bias', 'decode_head.fpn_convs.1.bn.running_mean', 'decode_head.fpn_convs.1.bn.running_var', 'decode_head.fpn_convs.1.bn.num_batches_tracked', 'decode_head.fpn_convs.2.conv.weight', 'decode_head.fpn_convs.2.bn.weight', 'decode_head.fpn_convs.2.bn.bias', 'decode_head.fpn_convs.2.bn.running_mean', 'decode_head.fpn_convs.2.bn.running_var', 'decode_head.fpn_convs.2.bn.num_batches_tracked', 'decode_head.fpn_bottleneck.conv.weight', 'decode_head.fpn_bottleneck.bn.weight', 'decode_head.fpn_bottleneck.bn.bias', 'decode_head.fpn_bottleneck.bn.running_mean', 'decode_head.fpn_bottleneck.bn.running_var', 'decode_head.fpn_bottleneck.bn.num_batches_tracked', 'auxiliary_head.conv_seg.weight', 'auxiliary_head.conv_seg.bias', 'auxiliary_head.convs.0.conv.weight', 'auxiliary_head.convs.0.bn.weight', 'auxiliary_head.convs.0.bn.bias', 'auxiliary_head.convs.0.bn.running_mean', 'auxiliary_head.convs.0.bn.running_var', 'auxiliary_head.convs.0.bn.num_batches_tracked'])
\ No newline at end of file
diff --git a/FoodSeg103/data/FoodSeg103/category_id.txt b/FoodSeg103/data/FoodSeg103/category_id.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dbf1ac8b4ada2f466611eeb6e002b1cf96b559b5
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/category_id.txt
@@ -0,0 +1,104 @@
+0 background
+1 candy
+2 egg tart
+3 french fries
+4 chocolate
+5 biscuit
+6 popcorn
+7 pudding
+8 ice cream
+9 cheese butter
+10 cake
+11 wine
+12 milkshake
+13 coffee
+14 juice
+15 milk
+16 tea
+17 almond
+18 red beans
+19 cashew
+20 dried cranberries
+21 soy
+22 walnut
+23 peanut
+24 egg
+25 apple
+26 date
+27 apricot
+28 avocado
+29 banana
+30 strawberry
+31 cherry
+32 blueberry
+33 raspberry
+34 mango
+35 olives
+36 peach
+37 lemon
+38 pear
+39 fig
+40 pineapple
+41 grape
+42 kiwi
+43 melon
+44 orange
+45 watermelon
+46 steak
+47 pork
+48 chicken duck
+49 sausage
+50 fried meat
+51 lamb
+52 sauce
+53 crab
+54 fish
+55 shellfish
+56 shrimp
+57 soup
+58 bread
+59 corn
+60 hamburg
+61 pizza
+62 hanamaki baozi
+63 wonton dumplings
+64 pasta
+65 noodles
+66 rice
+67 pie
+68 tofu
+69 eggplant
+70 potato
+71 garlic
+72 cauliflower
+73 tomato
+74 kelp
+75 seaweed
+76 spring onion
+77 rape
+78 ginger
+79 okra
+80 lettuce
+81 pumpkin
+82 cucumber
+83 white radish
+84 carrot
+85 asparagus
+86 bamboo shoots
+87 broccoli
+88 celery stick
+89 cilantro mint
+90 snow peas
+91 cabbage
+92 bean sprouts
+93 onion
+94 pepper
+95 green beans
+96 French beans
+97 king oyster mushroom
+98 shiitake
+99 enoki mushroom
+100 oyster mushroom
+101 white button mushroom
+102 salad
+103 other ingredients
\ No newline at end of file
diff --git a/FoodSeg103/data/FoodSeg103/test_recipe1m_id.txt b/FoodSeg103/data/FoodSeg103/test_recipe1m_id.txt
new file mode 100644
index 0000000000000000000000000000000000000000..baa85ebffb476cbb6a03f1cd658a4c73dd6da6a2
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/test_recipe1m_id.txt
@@ -0,0 +1,2416 @@
+00d68c5fa3.jpg
+0191f5f062.jpg
+01d5819c58.jpg
+01edebcbce.jpg
+0206acee79.jpg
+022edef9a2.jpg
+02d021b259.jpg
+02e4cccb07.jpg
+03041dc01c.jpg
+03e3ae939c.jpg
+03f8f24712.jpg
+04d33728da.jpg
+0822b058f0.jpg
+09d4103619.jpg
+09d62734c3.jpg
+0af3dd4fdc.jpg
+0b195c7d99.jpg
+0b6d7e1daa.jpg
+0bd98665f9.jpg
+0c1efa2832.jpg
+0c26cf3536.jpg
+0c390c2f4b.jpg
+0cb1254837.jpg
+0e5bea5d02.jpg
+0fb6b629ef.jpg
+10fc3e7cf2.jpg
+1275b11468.jpg
+12c6cd5830.jpg
+12d3763c33.jpg
+130515a7a8.jpg
+13c176f8b8.jpg
+15280bb6f7.jpg
+15d9921016.jpg
+160cf233eb.jpg
+1727f7984b.jpg
+17c9f975ed.jpg
+1818eb93a4.jpg
+182240a5f8.jpg
+18c6abcfa0.jpg
+1adf4bb236.jpg
+1bd8ff40cd.jpg
+1bf974682d.jpg
+1cc4ea05e8.jpg
+1cd6075a07.jpg
+1e4decced6.jpg
+1ed1cf2056.jpg
+1fc6c0ef98.jpg
+1fc860debd.jpg
+1fdd1367a2.jpg
+21f113feac.jpg
+227335bc14.jpg
+22dbe74913.jpg
+22ddd60052.jpg
+2314c0ded6.jpg
+23fd7cb4a6.jpg
+2412f58cac.jpg
+25997b88d3.jpg
+2612bad6c5.jpg
+27d009cfad.jpg
+29c9aacac5.jpg
+29d020b028.jpg
+2a46655e25.jpg
+2a76865d1c.jpg
+2af385af25.jpg
+2b13b82ead.jpg
+2bebc0c0e3.jpg
+2dd8c59ace.jpg
+2e15170436.jpg
+31fa443bf2.jpg
+33d494df10.jpg
+37384ea36c.jpg
+379ea5dbf3.jpg
+37eabd3c50.jpg
+39d1413c42.jpg
+3aae6a34c6.jpg
+3ac35247a6.jpg
+3b24474de7.jpg
+3b947ef176.jpg
+3ce184723f.jpg
+3d3b30b677.jpg
+3e12c234a3.jpg
+3f335e6d88.jpg
+3fea66a254.jpg
+40097c6800.jpg
+401f8f7a2b.jpg
+43a99c333d.jpg
+43cb80319e.jpg
+454ea61c0a.jpg
+45aabd808c.jpg
+4603ee3a1a.jpg
+4815c35662.jpg
+49b8b16d6a.jpg
+49ff3ba904.jpg
+4bc31a1e57.jpg
+4bda87720a.jpg
+4cd7c9a1eb.jpg
+505f216748.jpg
+50734b6209.jpg
+514991348a.jpg
+51d34fbe0a.jpg
+52d9d04b7e.jpg
+52de73a667.jpg
+545c81cc72.jpg
+54d1530a58.jpg
+55accb0df8.jpg
+56c9d29eb8.jpg
+56ff44ba44.jpg
+58d357163c.jpg
+58d6300e3b.jpg
+5a6f3c54a3.jpg
+5bd36dc0dc.jpg
+5cc2562363.jpg
+5d58f14d51.jpg
+5dc50f1d81.jpg
+5dd5811373.jpg
+5e14c8b5a1.jpg
+5ed24c0d60.jpg
+60862c905a.jpg
+61c7f176d4.jpg
+62c5c94630.jpg
+62e2c7b796.jpg
+63dae45462.jpg
+63e483e612.jpg
+64d9548ab3.jpg
+660622d236.jpg
+66a3eacd66.jpg
+66bb9db1ad.jpg
+66c88b059e.jpg
+67064fad7b.jpg
+67827a91f9.jpg
+678ab2ea13.jpg
+6ac1f2d41c.jpg
+6c0156aab8.jpg
+6cc51bedff.jpg
+6d18abe16a.jpg
+6eda135434.jpg
+6ee1601085.jpg
+6f41749b6b.jpg
+6fe0924dec.jpg
+70ab084799.jpg
+712216f5ad.jpg
+71be9e0226.jpg
+735df12326.jpg
+739b9f851e.jpg
+73d83028df.jpg
+73daf3d8ed.jpg
+758fefa848.jpg
+76d36885be.jpg
+77c4a6fe2f.jpg
+78f787aee7.jpg
+7a12965aeb.jpg
+7cc71229a5.jpg
+7efc149640.jpg
+7fdd694ae3.jpg
+80d5656ebf.jpg
+80eae77779.jpg
+81d8f0b54b.jpg
+81db0f1524.jpg
+81e862cac9.jpg
+82c2e03612.jpg
+841ed7f917.jpg
+85fa9881dc.jpg
+87d2414123.jpg
+8a339b0fda.jpg
+8ad26d38e1.jpg
+8b2c4f1c0d.jpg
+8b7e44a3a0.jpg
+8bc8f22dd8.jpg
+8d118b659b.jpg
+8ed145e6f0.jpg
+8fab9d6512.jpg
+8fc788763e.jpg
+9282528cc7.jpg
+92d66f7340.jpg
+93318880e9.jpg
+93e01af057.jpg
+93e70a7fe3.jpg
+940f8ef0ec.jpg
+95b17a452f.jpg
+96c6a593bc.jpg
+97f491104d.jpg
+99b11f3cab.jpg
+99cc65caea.jpg
+99ed9238f0.jpg
+9b39d7c23e.jpg
+9cc9d2a497.jpg
+9cf35693f2.jpg
+9dbba7780f.jpg
+9dcaad7d3e.jpg
+9e87b6f9dd.jpg
+9fc54e11a0.jpg
+9febd53e0f.jpg
+a0004ee17b.jpg
+a015d11a03.jpg
+a0e39d9975.jpg
+a3d34a5167.jpg
+a4655a9970.jpg
+a4ce1dcc34.jpg
+a53be5bbad.jpg
+a72ccdde9f.jpg
+a965b847e0.jpg
+aa000237f6.jpg
+aad93c022e.jpg
+aad9c0a5d4.jpg
+ab24262d6d.jpg
+abefc43402.jpg
+abfc3ba5d6.jpg
+acaf9a72fa.jpg
+ad12e4998e.jpg
+ad8c9ae3b7.jpg
+aef8bc53a5.jpg
+af7086f34a.jpg
+afe841696b.jpg
+b144043a27.jpg
+b1e20ef0c7.jpg
+b20e3f0351.jpg
+b2e5502c1e.jpg
+b3c3ebb34e.jpg
+b3c74e915a.jpg
+b3ea360f81.jpg
+b3f8a6d2c3.jpg
+b3fcb198bd.jpg
+b4023b997c.jpg
+b425fe2c96.jpg
+b4443553cf.jpg
+b44e393780.jpg
+b4588caffe.jpg
+b45c2ade13.jpg
+b45da763c1.jpg
+b474944163.jpg
+b48a4c9263.jpg
+b49d7c5a0a.jpg
+b49ef87f58.jpg
+b4a3655f72.jpg
+b4acd37467.jpg
+b4c08601fd.jpg
+b4d93b9564.jpg
+b4dda95f17.jpg
+b4e82c0a90.jpg
+b4eb4378eb.jpg
+b4f8054cd1.jpg
+b4f932020c.jpg
+b4f9c0daee.jpg
+b506c6ead3.jpg
+b50e1a9588.jpg
+b510ee6d52.jpg
+b52ea8b8d7.jpg
+b539275275.jpg
+b554a2a678.jpg
+b55c0defeb.jpg
+b56856674b.jpg
+b56faff103.jpg
+b57834ccd0.jpg
+b598195847.jpg
+b59cdd471b.jpg
+b59ea377fc.jpg
+b5b14d906f.jpg
+b5c3cadf89.jpg
+b5c9dce4ea.jpg
+b5ca04fc73.jpg
+b5cd3e4d3d.jpg
+b5ed51a7d3.jpg
+b5ef80c532.jpg
+b5f9e44e6e.jpg
+b5fbf94e9f.jpg
+b60037e282.jpg
+b601cb87a2.jpg
+b606abad20.jpg
+b61049bc2a.jpg
+b61a885545.jpg
+b61b16e01e.jpg
+b62b522ee7.jpg
+b62d33a770.jpg
+b6322d48b0.jpg
+b6353110a4.jpg
+b6582c297f.jpg
+b65a3d67d1.jpg
+b662cf7a25.jpg
+b66dea22c6.jpg
+b675e50542.jpg
+b677e1c76d.jpg
+b6804e1eba.jpg
+b6938abe4f.jpg
+b693bd1c5a.jpg
+b6a35d1b5d.jpg
+b6aa1c69e8.jpg
+b6aafe2d28.jpg
+b6b1d646f9.jpg
+b6b698eeee.jpg
+b6bbc6ff44.jpg
+b6caeebc65.jpg
+b6cafea251.jpg
+b6ceb137e8.jpg
+b6d2514e01.jpg
+b6db23bcc1.jpg
+b6ee082d7b.jpg
+b6ee61af76.jpg
+b6fa3dd3d0.jpg
+b6fa57baa7.jpg
+b70027d169.jpg
+b700929f2c.jpg
+b703b46557.jpg
+b70e1869fd.jpg
+b70f2f4f3e.jpg
+b72c1346d6.jpg
+b73917164f.jpg
+b758ce78b5.jpg
+b760db2eaf.jpg
+b7643bda23.jpg
+b76c4978dc.jpg
+b776d35856.jpg
+b78ed9dade.jpg
+b79e5ae2e2.jpg
+b7a417a2fd.jpg
+b7c6377b74.jpg
+b7cedc6b95.jpg
+b7cf18629b.jpg
+b7d494d374.jpg
+b7d65293e7.jpg
+b7d9586b33.jpg
+b7dac8a2a1.jpg
+b7dc73df0f.jpg
+b7e4b0598a.jpg
+b7e9bd5841.jpg
+b7ed92e5ac.jpg
+b7efc6f578.jpg
+b7fc00d066.jpg
+b7fcb7f2a9.jpg
+b804dd359e.jpg
+b80db8bcfa.jpg
+b85beb82ae.jpg
+b864d02bfa.jpg
+b86f6e4147.jpg
+b87c9c5d2b.jpg
+b87e4be539.jpg
+b87fafd940.jpg
+b885908e90.jpg
+b88b4df291.jpg
+b8966c93b5.jpg
+b897ef28f2.jpg
+b89fc16e84.jpg
+b8be9123c2.jpg
+b8c03c2730.jpg
+b8c14ba0da.jpg
+b8c268c5b1.jpg
+b8c7ee9faa.jpg
+b8c9fd913b.jpg
+b8cc5eda55.jpg
+b8cf2c86d4.jpg
+b8d403d5e3.jpg
+b8d80fb83e.jpg
+b8e00033a6.jpg
+b8ebf5655a.jpg
+b8f78ea26a.jpg
+b906cb7745.jpg
+b91be171a3.jpg
+b9222cf29f.jpg
+b933129f3c.jpg
+b93d8ed9b3.jpg
+b94d974153.jpg
+b959aecb1a.jpg
+b96948dd79.jpg
+b96a0276a6.jpg
+b96dfcd62f.jpg
+b977f143f4.jpg
+b9795beeae.jpg
+b9804a10c5.jpg
+b98ead1bd3.jpg
+b9ad7c4eae.jpg
+b9b31c499d.jpg
+b9be3e6585.jpg
+b9c9bd81b3.jpg
+b9cc63d1e4.jpg
+b9d3c5b5fd.jpg
+b9ddf180db.jpg
+b9de0e7ab7.jpg
+b9e260321f.jpg
+b9e2d9cf76.jpg
+b9e3c4afa4.jpg
+b9ef56217a.jpg
+b9efbe2e6e.jpg
+b9f17f582f.jpg
+b9f6dc90d4.jpg
+b9fb10ef3c.jpg
+ba043911e5.jpg
+ba12f25338.jpg
+ba2c2fa8ca.jpg
+ba2ee0775c.jpg
+ba2fad5ec9.jpg
+ba3057a3ba.jpg
+ba3c976d89.jpg
+ba5e28cfba.jpg
+ba6281dbce.jpg
+ba62993855.jpg
+ba6b13cbf4.jpg
+ba719ae52c.jpg
+ba7c7cfe38.jpg
+ba7c9caca3.jpg
+ba8477e463.jpg
+ba9460d1ab.jpg
+ba9b24e1c6.jpg
+baab705764.jpg
+bab6eb364a.jpg
+baba01a651.jpg
+babafbef75.jpg
+bad289b1da.jpg
+bad3039996.jpg
+bada3c5741.jpg
+badb27dd35.jpg
+bade630725.jpg
+badea05ab8.jpg
+badec96a9d.jpg
+bae4cf0dd7.jpg
+baeb1dfdb8.jpg
+bb08e7c636.jpg
+bb10c8691f.jpg
+bb24132ffe.jpg
+bb3d6c2fc7.jpg
+bb69ac181d.jpg
+bb6a6f953d.jpg
+bb75a214d7.jpg
+bb80cf12f1.jpg
+bba00814dd.jpg
+bbad147555.jpg
+bbafae272f.jpg
+bbc07f4dd4.jpg
+bbc49e6468.jpg
+bbc66fef95.jpg
+bbc8265d3b.jpg
+bbd0cbc068.jpg
+bbd6022e71.jpg
+bbd942f417.jpg
+bbdab0ac49.jpg
+bbe2ed3aec.jpg
+bbec946e3e.jpg
+bbee622301.jpg
+bbfdb31a12.jpg
+bbfe570570.jpg
+bbff29c0bb.jpg
+bc0092fba8.jpg
+bc015b023a.jpg
+bc2ef704e4.jpg
+bc6b6e3737.jpg
+bc6d8c2008.jpg
+bc80ea7f88.jpg
+bc9836d343.jpg
+bca103f0eb.jpg
+bcb4426b6b.jpg
+bcc2943ace.jpg
+bcc5bd722d.jpg
+bccb2ab9da.jpg
+bcd189af43.jpg
+bcd1cfd8dd.jpg
+bcd3c41b87.jpg
+bcd56169a2.jpg
+bcdd544b76.jpg
+bce0e4ed0d.jpg
+bce3e89e1a.jpg
+bce4575711.jpg
+bce9081d29.jpg
+bceef32102.jpg
+bd0065c0fc.jpg
+bd143e9760.jpg
+bd14b60ae8.jpg
+bd26ae81e9.jpg
+bd2e85da31.jpg
+bd49556825.jpg
+bd52123d7a.jpg
+bd63d83988.jpg
+bd688f8a05.jpg
+bd7ca7806f.jpg
+bd8cd75e87.jpg
+bd994f8616.jpg
+bd9caea7e6.jpg
+bda4a4a1bc.jpg
+bda9b419eb.jpg
+bdabe3b79d.jpg
+bdb69d2721.jpg
+bdc07e4dac.jpg
+bdc75f9fe1.jpg
+bdd32d35a0.jpg
+bdd9d4cb31.jpg
+bde2b91998.jpg
+bdeadea939.jpg
+bdee86e2c2.jpg
+bdf38ca55f.jpg
+bdfb4a6ee3.jpg
+be0425cb9b.jpg
+be26a34d1f.jpg
+be2a16d939.jpg
+be2be4ec29.jpg
+be490a646d.jpg
+be4b0d7edd.jpg
+be5a4ab3b4.jpg
+be7454d19c.jpg
+be8732728f.jpg
+be9a2a29e9.jpg
+bece13a17a.jpg
+bed483d502.jpg
+bed660c6ab.jpg
+bedb8587fa.jpg
+bedebedf81.jpg
+bee46256c0.jpg
+bef2afb102.jpg
+bef4b5ece1.jpg
+befbc05353.jpg
+bf065e0e18.jpg
+bf08a2244f.jpg
+bf24a90d2b.jpg
+bf2be86ea1.jpg
+bf30db52d9.jpg
+bf3200af07.jpg
+bf3e0469c1.jpg
+bf60971469.jpg
+bf67387993.jpg
+bfa4c50b1c.jpg
+bfaf5cdcb8.jpg
+bfb555dd1f.jpg
+bfb716206e.jpg
+bfb84e0176.jpg
+bfc6b4eca9.jpg
+bfcc346e35.jpg
+bfcf4d5ac7.jpg
+bfe6e3aeae.jpg
+bfefcd9c6a.jpg
+bff6c02842.jpg
+bffa673c43.jpg
+c0049d3e6f.jpg
+c021039df0.jpg
+c04289a4e6.jpg
+c06291ebe4.jpg
+c08a1c4553.jpg
+c0972208fc.jpg
+c097db5101.jpg
+c0a1a614a7.jpg
+c0a621e03d.jpg
+c0c010dfdb.jpg
+c0c55f72df.jpg
+c0c7604196.jpg
+c0c7c885cf.jpg
+c0c9f95d2e.jpg
+c0d500c107.jpg
+c0d90358b3.jpg
+c0dd3d0754.jpg
+c0ea9b99a8.jpg
+c0ee9babf4.jpg
+c0ef27358d.jpg
+c0efe6b772.jpg
+c0f00a13dc.jpg
+c0f4ab1ad8.jpg
+c0f6b63a35.jpg
+c10084edc5.jpg
+c108a2adb5.jpg
+c10fef288c.jpg
+c110760eab.jpg
+c111b7639b.jpg
+c127f65312.jpg
+c12ec0b053.jpg
+c137265b1d.jpg
+c140865619.jpg
+c142480461.jpg
+c1490382b2.jpg
+c16639ff09.jpg
+c16bbc2dbe.jpg
+c1871db78d.jpg
+c194aba626.jpg
+c1a0b685ce.jpg
+c1ac79d7d3.jpg
+c1c033cd38.jpg
+c1c3e424f1.jpg
+c1d121af72.jpg
+c1d339f995.jpg
+c1dad80b23.jpg
+c1db2d9d21.jpg
+c1dfc29b14.jpg
+c1e59a4288.jpg
+c1e5e658ab.jpg
+c1f31cddfe.jpg
+c1fc7ade9e.jpg
+c2048678d1.jpg
+c20ac208c7.jpg
+c2233df153.jpg
+c22d511747.jpg
+c22faa7f82.jpg
+c265f2477b.jpg
+c2836f78f3.jpg
+c28beb5721.jpg
+c28fdbac8a.jpg
+c2a13a5b69.jpg
+c2ad1f9207.jpg
+c2af4e2ce1.jpg
+c2c17bf415.jpg
+c2c31256d0.jpg
+c2c59dcf04.jpg
+c2c9be3ad4.jpg
+c2cf1d5c16.jpg
+c2d2ff0066.jpg
+c2d461e4cd.jpg
+c2dfe9ab5a.jpg
+c2e2de0c2a.jpg
+c2e5d0a30e.jpg
+c2e6f9653e.jpg
+c2e884ea70.jpg
+c2f01c7c26.jpg
+c300921db0.jpg
+c316cd7933.jpg
+c31818614a.jpg
+c31d0c79a6.jpg
+c31fae26f4.jpg
+c321b7f223.jpg
+c321f20de5.jpg
+c341a5b021.jpg
+c360862cb8.jpg
+c3644c52a1.jpg
+c3686eb948.jpg
+c36d336f79.jpg
+c3709c2513.jpg
+c37b88e370.jpg
+c396a451c3.jpg
+c3a6dc70b4.jpg
+c3a8157788.jpg
+c3a95b2f11.jpg
+c3aba46a00.jpg
+c3b2153b5b.jpg
+c3b721838d.jpg
+c3bf7d4c60.jpg
+c3c571e812.jpg
+c3c7f8a86e.jpg
+c3cdeb0660.jpg
+c3d20624bf.jpg
+c3d627b2df.jpg
+c3d6ae1b03.jpg
+c3dc12ede6.jpg
+c3de96bc8d.jpg
+c3e063d469.jpg
+c3e3df3f27.jpg
+c3e65c927a.jpg
+c3e7962913.jpg
+c3e7d947d8.jpg
+c3eece3bf0.jpg
+c3f049193f.jpg
+c3f16ea570.jpg
+c400cb19fb.jpg
+c41e5f5dcd.jpg
+c436e37764.jpg
+c465f680aa.jpg
+c47f4c9b10.jpg
+c487452ecf.jpg
+c497e7e049.jpg
+c4a6bc6a62.jpg
+c4a7dfaa6c.jpg
+c4ae295169.jpg
+c4beb2744c.jpg
+c4becf6b4b.jpg
+c4bf8a73c5.jpg
+c4dea06b64.jpg
+c4e2baba0d.jpg
+c4e40fbb3e.jpg
+c4e6ecaa3f.jpg
+c4eee2f0b7.jpg
+c4f3acdba8.jpg
+c4f6573e26.jpg
+c4f97b7011.jpg
+c4fc8d9d94.jpg
+c513f387a0.jpg
+c51b532e4e.jpg
+c51b5d1983.jpg
+c55aba4154.jpg
+c576bb2b2f.jpg
+c57f38837c.jpg
+c58fc095c4.jpg
+c590b2cf41.jpg
+c5ae59cd4c.jpg
+c5b1ad8c2f.jpg
+c5bcb1dc7a.jpg
+c5bd23d1dd.jpg
+c5bda853a7.jpg
+c5c4218b09.jpg
+c5c4f19c88.jpg
+c5c85f22b3.jpg
+c5d1a2d773.jpg
+c5d334458e.jpg
+c5d8c8032b.jpg
+c5e6a25b4f.jpg
+c5e892eef0.jpg
+c5eff7ecb1.jpg
+c5f0f9daba.jpg
+c5f3217f8f.jpg
+c5f3933042.jpg
+c5fe72e422.jpg
+c609230f48.jpg
+c6159fa27a.jpg
+c6164924d9.jpg
+c61d05c6ad.jpg
+c6248ddb9e.jpg
+c627b2dc57.jpg
+c62f9728e1.jpg
+c63dd1887e.jpg
+c67434f57f.jpg
+c67af78a33.jpg
+c68d1e42c0.jpg
+c68f0c09b4.jpg
+c692979230.jpg
+c696d99156.jpg
+c69ac5a308.jpg
+c6a669254b.jpg
+c6aa8b7898.jpg
+c6b574df26.jpg
+c6be770922.jpg
+c6cf8e0418.jpg
+c6d060c22a.jpg
+c6ddc2e3a2.jpg
+c6e1d8a950.jpg
+c6e4e06152.jpg
+c6f0501137.jpg
+c6f2fb579f.jpg
+c6f3406dce.jpg
+c6f9a8a4d7.jpg
+c6faaf07ca.jpg
+c707b66aed.jpg
+c715ecb116.jpg
+c717486082.jpg
+c71933b1f6.jpg
+c71f695b65.jpg
+c722cd6fb7.jpg
+c72983e80a.jpg
+c753bcd031.jpg
+c783e3de04.jpg
+c7857c7abb.jpg
+c7b31ae9cd.jpg
+c7b48b805f.jpg
+c7d445337a.jpg
+c7d446613e.jpg
+c7dd9e9cf7.jpg
+c7e24e8bb7.jpg
+c7e95eb754.jpg
+c7ec7b98cb.jpg
+c7ee06614a.jpg
+c7f064c7bf.jpg
+c7f0b7e139.jpg
+c7fcabebee.jpg
+c80b757ffa.jpg
+c81cbcc222.jpg
+c82134ca61.jpg
+c823b00785.jpg
+c833a9fea9.jpg
+c8492be1fa.jpg
+c8522f7d68.jpg
+c85539079a.jpg
+c85aaf5ea7.jpg
+c86a17ee96.jpg
+c86f2e50a6.jpg
+c86faebe03.jpg
+c8839a441f.jpg
+c88ed83a0b.jpg
+c89beb110b.jpg
+c89ec3cd28.jpg
+c8bb9751d7.jpg
+c8d1841141.jpg
+c8de929eed.jpg
+c8e2a35667.jpg
+c8e81dcb95.jpg
+c8e83da1ff.jpg
+c8ecc4e5ad.jpg
+c8f46b9ab1.jpg
+c8f54c1cdf.jpg
+c8fa720618.jpg
+c906c57281.jpg
+c913e7fed0.jpg
+c913ea9494.jpg
+c91f328c79.jpg
+c91fe5952b.jpg
+c9333e81ef.jpg
+c9355491c0.jpg
+c93c1f20e7.jpg
+c943a7aa89.jpg
+c949419b08.jpg
+c951e51e8d.jpg
+c994d6627e.jpg
+c99920f3a8.jpg
+c9af6ed6b1.jpg
+c9af83e1ca.jpg
+c9afd88cb0.jpg
+c9bd3a50a1.jpg
+c9c5d39e8e.jpg
+c9d40c8b10.jpg
+c9d98b7e43.jpg
+c9da74649c.jpg
+c9e13e249b.jpg
+c9e212c39a.jpg
+c9e295d476.jpg
+c9e5e4e5af.jpg
+c9ea94b815.jpg
+c9f6294835.jpg
+ca15337fca.jpg
+ca181fb375.jpg
+ca2ddc004e.jpg
+ca316a99f3.jpg
+ca43c834e2.jpg
+ca4d0a473c.jpg
+ca6666333a.jpg
+ca72a47817.jpg
+ca7c98ae8a.jpg
+ca8e9f34e7.jpg
+ca9af373d8.jpg
+cab13d117b.jpg
+cab7bb8a63.jpg
+cab938d84d.jpg
+cabafc0e12.jpg
+cac03580db.jpg
+cac791a248.jpg
+caca0644c7.jpg
+cacaebfd21.jpg
+cad26248bb.jpg
+cad48d88e0.jpg
+cad605ff85.jpg
+cadc6d01ad.jpg
+cadd0e5d11.jpg
+cae1f6a6d6.jpg
+cae21e7161.jpg
+caee5133e1.jpg
+caef32bba9.jpg
+caf2c1f7e8.jpg
+caf4178d10.jpg
+caf81a8292.jpg
+cafc99244c.jpg
+cb017d8a54.jpg
+cb0391ed68.jpg
+cb04cf2ba3.jpg
+cb05ba3834.jpg
+cb1ba2009e.jpg
+cb1f955ed4.jpg
+cb1fbf9809.jpg
+cb321d98df.jpg
+cb3662fc7d.jpg
+cb41b1b213.jpg
+cb4ce8f4f0.jpg
+cb5be7ec51.jpg
+cb5e732332.jpg
+cb6391fbf4.jpg
+cb6c21f1d5.jpg
+cb6e95c775.jpg
+cb6fbeae00.jpg
+cb72812bd4.jpg
+cb80f47d91.jpg
+cb84d1dd8c.jpg
+cb8d0b8b1d.jpg
+cb8d6b6f00.jpg
+cb90b1d4f3.jpg
+cb9d65f437.jpg
+cba7d81b99.jpg
+cbb211eac6.jpg
+cbbfb06344.jpg
+cbc85faf47.jpg
+cbd151867a.jpg
+cbd1e4e875.jpg
+cbd71b2aca.jpg
+cbd7753147.jpg
+cbdbfc5978.jpg
+cbe3bf10fe.jpg
+cbe3d82daa.jpg
+cbe3ee6b27.jpg
+cbe5050d0d.jpg
+cbe5eb6696.jpg
+cbe6542626.jpg
+cbf47a2e17.jpg
+cbfb07d1d6.jpg
+cc0a587391.jpg
+cc0d3d2b12.jpg
+cc16df94c1.jpg
+cc1c4305f1.jpg
+cc2e6f7376.jpg
+cc2efaec22.jpg
+cc39e651e3.jpg
+cc5324dfbf.jpg
+cc765cba88.jpg
+cc766e4e6a.jpg
+cc7e0caed0.jpg
+cc9600fb25.jpg
+ccb00d349a.jpg
+ccb2f113dc.jpg
+ccc2cd9d63.jpg
+ccc4e0a939.jpg
+ccc584f82d.jpg
+cccb928e07.jpg
+cceb8d60ff.jpg
+ccf20b8bc2.jpg
+ccfdbf82df.jpg
+cd011d4899.jpg
+cd11b33940.jpg
+cd3a631856.jpg
+cd3df7a8e9.jpg
+cd42d53ebd.jpg
+cd52e3f2fe.jpg
+cd5420f681.jpg
+cd62492877.jpg
+cd648c062e.jpg
+cd67f7d265.jpg
+cd69563263.jpg
+cd90e30a1e.jpg
+cd98e62c8f.jpg
+cda2fc2df0.jpg
+cdaa784932.jpg
+cdaf68d4ad.jpg
+cdb2353f60.jpg
+cdb89349bf.jpg
+cdb8945620.jpg
+cdb9a4a0ea.jpg
+cdc1f4b107.jpg
+cdc3ee1b24.jpg
+cdc583254a.jpg
+cdc6c28796.jpg
+cdc7ed032d.jpg
+cdc7ef5c9d.jpg
+cdc97e5056.jpg
+cdcd471f12.jpg
+cdce14b70f.jpg
+cde29ab29f.jpg
+cde9cf4217.jpg
+cdf2007659.jpg
+cdfeb4e489.jpg
+ce01392613.jpg
+ce039ff3d4.jpg
+ce135e26dd.jpg
+ce1491b390.jpg
+ce29b9979c.jpg
+ce408eb5cf.jpg
+ce54d1e381.jpg
+ce5fac18d9.jpg
+ce60e54766.jpg
+ce673267ea.jpg
+ce6b23aa71.jpg
+ce73863a6c.jpg
+ce7969ad4b.jpg
+ce7eb74818.jpg
+ce8ca9bffb.jpg
+cea105a876.jpg
+cea1c54379.jpg
+cea5173375.jpg
+ceaf3903af.jpg
+ceb7190c60.jpg
+cec57cc583.jpg
+cecb797629.jpg
+cecce5c6c2.jpg
+cecd3fc8c3.jpg
+cedc14af2f.jpg
+cedc79186e.jpg
+ceddcc6b85.jpg
+cee2d2dba3.jpg
+cee48efd07.jpg
+ceefc58ef3.jpg
+cef44dcb17.jpg
+cef775459d.jpg
+cf05ddb0d4.jpg
+cf12ba2abc.jpg
+cf2cc9c314.jpg
+cf2e6999ce.jpg
+cf4769299d.jpg
+cf5341b194.jpg
+cf58d81280.jpg
+cf7082aaa1.jpg
+cf7aaa1009.jpg
+cf826699b0.jpg
+cf836d295b.jpg
+cf8b687c1c.jpg
+cfa7bf3f47.jpg
+cfa8b0dbbc.jpg
+cfc4a746ac.jpg
+cfc9f7b2f2.jpg
+cfccf96c6e.jpg
+cfcdcc086f.jpg
+cfe0dcf244.jpg
+cfe2e1c708.jpg
+cffba276ec.jpg
+d00036ecd7.jpg
+d014c494dc.jpg
+d03a78328b.jpg
+d04ddc5fd9.jpg
+d058f2919c.jpg
+d05b3297cf.jpg
+d05e33069a.jpg
+d05ed6c6f8.jpg
+d0873ef123.jpg
+d08958142b.jpg
+d099255c0a.jpg
+d0b64d6491.jpg
+d0b9d8777f.jpg
+d0c3efb066.jpg
+d0c655554a.jpg
+d0cadfbc89.jpg
+d0e586e5ef.jpg
+d0fc895a1a.jpg
+d10587f9ab.jpg
+d105b884c8.jpg
+d12de0e958.jpg
+d135869f4c.jpg
+d141c35e3c.jpg
+d1475c2dc0.jpg
+d14fff221d.jpg
+d15fa51eab.jpg
+d1675065f9.jpg
+d1742f3bfa.jpg
+d184086155.jpg
+d19565a007.jpg
+d1a9a88f49.jpg
+d1af317242.jpg
+d1b78cc6db.jpg
+d1c7072696.jpg
+d1c7d61a42.jpg
+d1cbae6be7.jpg
+d1d31c8f0e.jpg
+d1d466cf4a.jpg
+d1d642437d.jpg
+d1d6675da4.jpg
+d1e539fac8.jpg
+d1e78c6508.jpg
+d1fec8a32a.jpg
+d2001a1e33.jpg
+d2075ab1b7.jpg
+d20b3c1233.jpg
+d20e385a13.jpg
+d229ee50c6.jpg
+d22ab437cc.jpg
+d24009bcc4.jpg
+d2436ab6a8.jpg
+d25abb5702.jpg
+d25db7d5ec.jpg
+d26d9bd742.jpg
+d29927635e.jpg
+d2b9beebaf.jpg
+d2c10d84db.jpg
+d2c46d53e8.jpg
+d2c62282bf.jpg
+d2ccba890d.jpg
+d2cf48d3ea.jpg
+d2d29e81eb.jpg
+d2d2ac244a.jpg
+d2d53e5a48.jpg
+d2d7ad5926.jpg
+d2de2684b7.jpg
+d2e550cb12.jpg
+d2e695d3c4.jpg
+d2e9a0fa67.jpg
+d2e9c329c4.jpg
+d2eaf85d93.jpg
+d2f6e95b3f.jpg
+d30c2f84a1.jpg
+d322b94e9d.jpg
+d33ce47122.jpg
+d33d7592ba.jpg
+d33dd837bf.jpg
+d33effb9b9.jpg
+d378dc2815.jpg
+d379710dc0.jpg
+d37e064711.jpg
+d38c639500.jpg
+d3a3e5e678.jpg
+d3b39db71b.jpg
+d3c13e3ae1.jpg
+d3c7087729.jpg
+d3d5ce767f.jpg
+d3d604aa99.jpg
+d3d82f8722.jpg
+d3e8385411.jpg
+d3ef4692bc.jpg
+d3f00e2c80.jpg
+d410d30e39.jpg
+d4119e6646.jpg
+d415367b34.jpg
+d416ed8f37.jpg
+d419d014b1.jpg
+d42b28b985.jpg
+d42b781f87.jpg
+d4538671b4.jpg
+d45e3fcb85.jpg
+d460db4979.jpg
+d4702cf61f.jpg
+d47769d0b9.jpg
+d485c2e9bb.jpg
+d48b4985de.jpg
+d48bda7efe.jpg
+d48e193a2c.jpg
+d4acf0b0bd.jpg
+d4b44b0850.jpg
+d4c380f13b.jpg
+d4c3c8060f.jpg
+d4c46edd3e.jpg
+d4cdbb4299.jpg
+d4cffc4752.jpg
+d4d1382b70.jpg
+d4d5653b60.jpg
+d4d613de78.jpg
+d4de54c2c6.jpg
+d4df4c8163.jpg
+d4e001cfe5.jpg
+d4eaa1a91e.jpg
+d4ffacdf1d.jpg
+d505ef9e66.jpg
+d50a013518.jpg
+d5120f23ba.jpg
+d51e770b5e.jpg
+d529e578d8.jpg
+d551e09afe.jpg
+d56f0d3fd5.jpg
+d57944c6c3.jpg
+d57b611364.jpg
+d58317c12d.jpg
+d5951ff8df.jpg
+d59bdafab9.jpg
+d5a9faa59c.jpg
+d5ac799607.jpg
+d5ad2ce934.jpg
+d5b105ff1d.jpg
+d5b71ff889.jpg
+d5d23d8f21.jpg
+d5d500a866.jpg
+d5d6165384.jpg
+d5deb14bf4.jpg
+d5e57a9ff3.jpg
+d5fc45ab9f.jpg
+d603ab5d4f.jpg
+d62be075dd.jpg
+d62c0e9261.jpg
+d62e21aeb6.jpg
+d632a659b4.jpg
+d65c82370c.jpg
+d65e1b081f.jpg
+d6689dda1e.jpg
+d66e65c368.jpg
+d67acb461d.jpg
+d67e56d550.jpg
+d69e531384.jpg
+d6aa1d4561.jpg
+d6b3bfb989.jpg
+d6b8c10533.jpg
+d6b8f9b74b.jpg
+d6b9d5d6d1.jpg
+d6c57c383a.jpg
+d6c61ab099.jpg
+d6d094d366.jpg
+d6d8057538.jpg
+d6d959ce95.jpg
+d6d991ed2b.jpg
+d6d9c482a1.jpg
+d6dd1d6cec.jpg
+d6df68fc4e.jpg
+d6e5b8cab2.jpg
+d6f79b6e2d.jpg
+d6fe5e2828.jpg
+d70056bc7c.jpg
+d7127c96ae.jpg
+d712bd2788.jpg
+d71c3a8176.jpg
+d7217b590d.jpg
+d72ca354ee.jpg
+d733d56d15.jpg
+d73cb8f701.jpg
+d7589a1d8c.jpg
+d76151111a.jpg
+d7653c5f75.jpg
+d76e76762e.jpg
+d777321a3e.jpg
+d77ca92485.jpg
+d781494ce2.jpg
+d78a478529.jpg
+d78d5cd977.jpg
+d790312a52.jpg
+d799b48228.jpg
+d79b52e09b.jpg
+d7a614cb10.jpg
+d7adf480d0.jpg
+d7c6d18fe6.jpg
+d7ce1d52b2.jpg
+d7d9313640.jpg
+d7dfca5c47.jpg
+d7e3c7e348.jpg
+d7e99b6259.jpg
+d7edcf727d.jpg
+d7ee7d0487.jpg
+d7eefdccc8.jpg
+d7f14ee663.jpg
+d7f1ddf8dd.jpg
+d7f236b392.jpg
+d7f7d797c6.jpg
+d7f8d79e78.jpg
+d801293214.jpg
+d805fbc5b5.jpg
+d83d53d778.jpg
+d83de3f4c9.jpg
+d84d39c8f3.jpg
+d85ae16835.jpg
+d86e5b1c39.jpg
+d874cd3f0b.jpg
+d8aeab65af.jpg
+d8b1e21926.jpg
+d8b65cbf2a.jpg
+d8c059d60c.jpg
+d8c1423196.jpg
+d8c6f61473.jpg
+d8c9c0935f.jpg
+d8ca4cbcff.jpg
+d8cb60d447.jpg
+d8d2b51355.jpg
+d8d8c31b97.jpg
+d8e537f666.jpg
+d8ed71b4e6.jpg
+d8f193f307.jpg
+d8fe45bd8e.jpg
+d91111b364.jpg
+d9115e5edb.jpg
+d9152313cb.jpg
+d918e65388.jpg
+d91b717086.jpg
+d91e76998b.jpg
+d91ed1f131.jpg
+d91ef12bcc.jpg
+d953dde89a.jpg
+d954d521d0.jpg
+d95a0544ce.jpg
+d95a4b2cdb.jpg
+d95d89e45b.jpg
+d95e1c9924.jpg
+d96109257b.jpg
+d963189c42.jpg
+d964bff4cb.jpg
+d9737885d6.jpg
+d987a1397f.jpg
+d99267a987.jpg
+d99f7fd1c8.jpg
+d9af976585.jpg
+d9b4601624.jpg
+d9c3926f71.jpg
+d9cf6a6e56.jpg
+d9d0c7e0ce.jpg
+d9d108d1b9.jpg
+d9d227c60e.jpg
+d9d2932eb9.jpg
+d9d48c11ac.jpg
+d9d703626e.jpg
+d9d71e731b.jpg
+d9e2210f32.jpg
+d9e492cdcf.jpg
+d9e707621b.jpg
+d9f0f20d86.jpg
+d9f150d8f0.jpg
+d9fa8d549a.jpg
+da02b3d8e3.jpg
+da0ce9d51b.jpg
+da142e5c2f.jpg
+da2c6c922c.jpg
+da2ecef181.jpg
+da2ef729a8.jpg
+da3180f2da.jpg
+da34e6ccfb.jpg
+da3893d1e2.jpg
+da4fdc279c.jpg
+da53f58c50.jpg
+da62d6fcae.jpg
+da651f04fd.jpg
+da6c35cbf9.jpg
+da702ffbf7.jpg
+da76d6477b.jpg
+da79dcd616.jpg
+da7ae7af4c.jpg
+da95c751b0.jpg
+dab0c180ea.jpg
+dab53ceeee.jpg
+dabb75c707.jpg
+dabca6968f.jpg
+dac4293a65.jpg
+dac47b7e91.jpg
+dac6f6e398.jpg
+dac84c3309.jpg
+dad3b63df7.jpg
+daebd802ba.jpg
+daef20a8a2.jpg
+daf23f296f.jpg
+db18aa43ef.jpg
+db1c010668.jpg
+db33f568f2.jpg
+db384d8da4.jpg
+db3a803998.jpg
+db5dbad747.jpg
+db61f00a69.jpg
+db65f82b29.jpg
+db67367a89.jpg
+db6afaf677.jpg
+db6ca3f326.jpg
+db6d44ff40.jpg
+db87658602.jpg
+db8a00e666.jpg
+db97519894.jpg
+dbac7993f4.jpg
+dbad3423f7.jpg
+dbb9856c8c.jpg
+dbc1634a75.jpg
+dbc31310a1.jpg
+dbc3fc18c2.jpg
+dbd22c9154.jpg
+dbd382e9e9.jpg
+dbdd2fb273.jpg
+dbe2cd2c6f.jpg
+dbf669a342.jpg
+dc0ce0c2c2.jpg
+dc16e46e77.jpg
+dc18731819.jpg
+dc2a92eb5a.jpg
+dc2c1cfefa.jpg
+dc4151bd30.jpg
+dc417da570.jpg
+dc4eaae42d.jpg
+dc7633b08a.jpg
+dc7e3dcadf.jpg
+dc862ae8aa.jpg
+dc9da0561d.jpg
+dc9ddf27f4.jpg
+dc9dfd6250.jpg
+dca45da90e.jpg
+dca7880fce.jpg
+dcb6d1098e.jpg
+dcc7900801.jpg
+dccc15d8a1.jpg
+dcd069b245.jpg
+dcd0b25de1.jpg
+dcd143cc81.jpg
+dcd6036462.jpg
+dcde817c42.jpg
+dcdf21d450.jpg
+dce12f581e.jpg
+dd050b138d.jpg
+dd0c0579a4.jpg
+dd0ef458c3.jpg
+dd226d618a.jpg
+dd29490d19.jpg
+dd2e1804fa.jpg
+dd3d7610cb.jpg
+dd3d86d4ef.jpg
+dd5905222c.jpg
+dd78927fd3.jpg
+dd94740974.jpg
+dd95c56993.jpg
+dda7ee0a77.jpg
+ddafe46b38.jpg
+ddb718d257.jpg
+ddc0202960.jpg
+ddd416ddd6.jpg
+ddd8b5363e.jpg
+ddd9058eb7.jpg
+ddded69049.jpg
+dde76d45fc.jpg
+de0558d40b.jpg
+de0cb936c8.jpg
+de1525ca66.jpg
+de1e18c44a.jpg
+de1e325f68.jpg
+de23d49364.jpg
+de25f55745.jpg
+de3f383dae.jpg
+de5c5040b1.jpg
+de6e804239.jpg
+de7e43efcc.jpg
+de8c8ee8f2.jpg
+dea09311cb.jpg
+dec050626d.jpg
+dec15232a6.jpg
+dec5489394.jpg
+decad9b151.jpg
+ded592bda8.jpg
+ded5953ee9.jpg
+dedb0e552a.jpg
+dee4d9ed27.jpg
+deee42dc2b.jpg
+def9b26096.jpg
+df024881b9.jpg
+df035e8f69.jpg
+df1bd9e04f.jpg
+df1c28ab75.jpg
+df24af750e.jpg
+df26d1dd80.jpg
+df292f8e6d.jpg
+df2c48d7c7.jpg
+df2d2ddd20.jpg
+df68866b1e.jpg
+df72ab0cd2.jpg
+df7f93f180.jpg
+df8e5aa1be.jpg
+df9c5153e4.jpg
+df9d63ee14.jpg
+dfa3003de7.jpg
+dfae026f6d.jpg
+dfb102819a.jpg
+dfb676d53e.jpg
+dfc219c56a.jpg
+dfc295113b.jpg
+dfc3f3b0b9.jpg
+dfc55c9152.jpg
+dfcaeb611e.jpg
+dfd265e60a.jpg
+dfd7780d9d.jpg
+dfd8af91e6.jpg
+dfd8d6904b.jpg
+dfd933e53e.jpg
+dfe113f4ee.jpg
+dfe4485c97.jpg
+dfe8706be5.jpg
+dfea4826bd.jpg
+dff9f11f50.jpg
+e0006f0f41.jpg
+e01371bd33.jpg
+e01ae85fc1.jpg
+e023a824d6.jpg
+e025ea9b42.jpg
+e02826d3da.jpg
+e03c948e22.jpg
+e044af4d1c.jpg
+e050bceada.jpg
+e068b69e5b.jpg
+e0824aa93b.jpg
+e084aba76b.jpg
+e08ae32a68.jpg
+e08ef1a83d.jpg
+e0a728a02e.jpg
+e0aa61e4bf.jpg
+e0ab12b9a7.jpg
+e0aed36f6a.jpg
+e0cc1f6237.jpg
+e0ce83825c.jpg
+e0d073c945.jpg
+e0dbaffa04.jpg
+e0e5da3707.jpg
+e0f0abe9f8.jpg
+e0f99505ef.jpg
+e10025dcac.jpg
+e111113868.jpg
+e1135ab381.jpg
+e113d4f031.jpg
+e12ebdbf91.jpg
+e140e245e9.jpg
+e147bfc52a.jpg
+e1595c8686.jpg
+e162036a47.jpg
+e168b6a549.jpg
+e195d1b2b1.jpg
+e1a0a62adc.jpg
+e1aa025444.jpg
+e1afdf2240.jpg
+e1b0d89e75.jpg
+e1d10c2b93.jpg
+e1d3319f0f.jpg
+e1e28a1e83.jpg
+e1e82e7dd3.jpg
+e1eabf3a60.jpg
+e1ed53d17e.jpg
+e1f46b5e53.jpg
+e200a0888f.jpg
+e20f7bd016.jpg
+e215137374.jpg
+e224d59487.jpg
+e22bab4350.jpg
+e244e46111.jpg
+e24e37e7db.jpg
+e250abd7b2.jpg
+e261f8c936.jpg
+e281e09d4c.jpg
+e282839f0e.jpg
+e2929a6a6d.jpg
+e29cd48980.jpg
+e2a350f1bf.jpg
+e2a94a61ae.jpg
+e2ad33196a.jpg
+e2b6a5d47c.jpg
+e2c2c2a874.jpg
+e2ce32211d.jpg
+e2ce77a5a8.jpg
+e2d54b2b7a.jpg
+e2d55836cd.jpg
+e2d8779fb9.jpg
+e2db412ea1.jpg
+e2dfad9dcc.jpg
+e2e796fc0c.jpg
+e2f87929b1.jpg
+e2f9d6d274.jpg
+e2fe3ee140.jpg
+e306c9b71a.jpg
+e306d09bad.jpg
+e3097c26e7.jpg
+e32158ae36.jpg
+e324b38006.jpg
+e3534b24d6.jpg
+e353b0f4f5.jpg
+e3552b949b.jpg
+e35f22cbdd.jpg
+e3626273d1.jpg
+e36c261ecd.jpg
+e36e80c8fb.jpg
+e3703002a1.jpg
+e37c7d3add.jpg
+e38256ea99.jpg
+e38c1c764a.jpg
+e3926a62ca.jpg
+e39e571962.jpg
+e3a0abc49d.jpg
+e3a631d658.jpg
+e3a9e6f2be.jpg
+e3af66042a.jpg
+e3c3a4bf28.jpg
+e3c57ee552.jpg
+e3c5e7d760.jpg
+e3c97b6e58.jpg
+e3d36428cf.jpg
+e3d3827bd0.jpg
+e3e05ec64a.jpg
+e3e6883f3a.jpg
+e3e87dc520.jpg
+e3f7f7ec34.jpg
+e400379a58.jpg
+e400f1b151.jpg
+e40773b435.jpg
+e40d68836b.jpg
+e42a478372.jpg
+e42e379880.jpg
+e433a04dd6.jpg
+e442db5ed4.jpg
+e44dc4ab74.jpg
+e45a162b6d.jpg
+e463852b82.jpg
+e46639fce9.jpg
+e46e03b413.jpg
+e477c5d906.jpg
+e47f9092f7.jpg
+e48fb4f324.jpg
+e497a20f60.jpg
+e4988de583.jpg
+e49b25fe22.jpg
+e4a47122a5.jpg
+e4a542babd.jpg
+e4b18fcc9d.jpg
+e4bddde3ff.jpg
+e4c0f3f929.jpg
+e4cabb2288.jpg
+e4cda0e11d.jpg
+e4ce16849b.jpg
+e4d0e1365c.jpg
+e4da32c8fe.jpg
+e4da3b6bf3.jpg
+e4e12477d4.jpg
+e4e271d26d.jpg
+e4e3e70171.jpg
+e4e54f7848.jpg
+e4e733241b.jpg
+e4f128a3ec.jpg
+e4f793cbdb.jpg
+e4fea86130.jpg
+e4ff86da58.jpg
+e501638b8c.jpg
+e503e3f36d.jpg
+e5045d3749.jpg
+e51ee3a030.jpg
+e520556c37.jpg
+e53141c362.jpg
+e538b6a155.jpg
+e53d14fb4e.jpg
+e56d464f9e.jpg
+e56efdaa5e.jpg
+e572af8532.jpg
+e578d5306f.jpg
+e57b04af85.jpg
+e57f3d56c4.jpg
+e585701f4a.jpg
+e58b7f1fc5.jpg
+e5968e30e7.jpg
+e5a38f57cd.jpg
+e5a8dffb1e.jpg
+e5abe81609.jpg
+e5b58cda4c.jpg
+e5cadba2fa.jpg
+e5ccf59b44.jpg
+e5d344b6d9.jpg
+e5d4fc895c.jpg
+e5d9e35412.jpg
+e5dddfb237.jpg
+e5e0754cf3.jpg
+e5f6608455.jpg
+e60061b224.jpg
+e605e6f297.jpg
+e60886de71.jpg
+e60b538beb.jpg
+e635b20db7.jpg
+e6429c4260.jpg
+e6507eedf4.jpg
+e6577bad84.jpg
+e66b0bf434.jpg
+e67874255f.jpg
+e6942b2456.jpg
+e699f615c2.jpg
+e69bc8243b.jpg
+e6a4218479.jpg
+e6ae6930d8.jpg
+e6cb0e28d0.jpg
+e6cd40782e.jpg
+e6d19b14f1.jpg
+e6d82e944c.jpg
+e6d929c138.jpg
+e6df5d430b.jpg
+e6e46215b9.jpg
+e6fa22ba34.jpg
+e6fc15bdef.jpg
+e7035a08a6.jpg
+e717c0e13a.jpg
+e71e056753.jpg
+e732b782a9.jpg
+e7437938a0.jpg
+e74545717a.jpg
+e74c43a49d.jpg
+e750d77f8b.jpg
+e75a58950a.jpg
+e75c34287d.jpg
+e75e2d8e77.jpg
+e764d24e96.jpg
+e770eb67d0.jpg
+e786246e51.jpg
+e791da4018.jpg
+e79b1d40d8.jpg
+e79ef6cbd3.jpg
+e79f9979ee.jpg
+e7a7e08300.jpg
+e7aa12d8a6.jpg
+e7c494541a.jpg
+e7c9f9d564.jpg
+e7cba41883.jpg
+e7ccf54f8d.jpg
+e7cd21d7f3.jpg
+e7d0240c30.jpg
+e7deab7eb2.jpg
+e7df9e7d2e.jpg
+e7e7aa5039.jpg
+e7f53f22b8.jpg
+e8080c7598.jpg
+e81230d563.jpg
+e8146628f4.jpg
+e8188f0072.jpg
+e81b7688b2.jpg
+e82a55e866.jpg
+e8305e07ba.jpg
+e837c2b02e.jpg
+e838ddceea.jpg
+e83cbe7e37.jpg
+e83fe7ac7d.jpg
+e86313b8a4.jpg
+e86e8552ab.jpg
+e86f01e606.jpg
+e876b47068.jpg
+e884d8cee6.jpg
+e8abe073bd.jpg
+e8b9f886f8.jpg
+e8bfb3609b.jpg
+e8c12da3c8.jpg
+e8c4636f10.jpg
+e8cb6b4c66.jpg
+e8d4256e5a.jpg
+e8d7d00977.jpg
+e8d88c23ec.jpg
+e8da0004f7.jpg
+e8db3d5fae.jpg
+e8f69cb744.jpg
+e905c2a019.jpg
+e905e9850a.jpg
+e9079c4921.jpg
+e908a004ba.jpg
+e908ad9444.jpg
+e90b504e7c.jpg
+e9261a627f.jpg
+e93a2afea4.jpg
+e93cfb5a6b.jpg
+e93ee6cdd3.jpg
+e94385ea63.jpg
+e946b377ed.jpg
+e95255b608.jpg
+e9631f47d5.jpg
+e9632f11af.jpg
+e964042ec4.jpg
+e96867a9b4.jpg
+e972a9e3b4.jpg
+e976a5cf61.jpg
+e9a11ed1d0.jpg
+e9a120914d.jpg
+e9a30d15c7.jpg
+e9a310f424.jpg
+e9abe9ce29.jpg
+e9b0661361.jpg
+e9d22f8968.jpg
+e9d4088d3b.jpg
+e9d600a7e9.jpg
+e9d6824b13.jpg
+e9d7f5c753.jpg
+e9dbc47153.jpg
+e9ddd64edc.jpg
+e9de51ae12.jpg
+e9e5d4095e.jpg
+ea01d15db0.jpg
+ea1fbb8391.jpg
+ea27f112b3.jpg
+ea304b5364.jpg
+ea40b60bad.jpg
+ea4ae02598.jpg
+ea5656d0cf.jpg
+ea5a23b508.jpg
+ea60f5e77f.jpg
+ea71f42a76.jpg
+ea781fbdac.jpg
+ea9b6f6c1a.jpg
+eaa2534a45.jpg
+eaaf1ad71a.jpg
+eaafb18ab3.jpg
+eac8c90db7.jpg
+eaca3d5f05.jpg
+eacfeb3e2a.jpg
+ead42e4782.jpg
+eae1b37df0.jpg
+eae4382bc6.jpg
+eae44e5c4f.jpg
+eaf451a994.jpg
+eaf55cb993.jpg
+eaf9084220.jpg
+eafd6847da.jpg
+eb0ea62abe.jpg
+eb27177d02.jpg
+eb2a66fcb8.jpg
+eb2c6031a0.jpg
+eb359044c6.jpg
+eb42e1a461.jpg
+eb44289a53.jpg
+eb47b89ba0.jpg
+eb4dc7f162.jpg
+eb52138988.jpg
+eb566639a5.jpg
+eb694b42cc.jpg
+eb894b9ecd.jpg
+eb900a1041.jpg
+eb98ec5901.jpg
+eba4f49101.jpg
+eba7fe58d8.jpg
+ebaa7c1b61.jpg
+ebac31e552.jpg
+ebb10d4d5f.jpg
+ebb729383d.jpg
+ebc16b8cc2.jpg
+ebc45de34e.jpg
+ebc4c57f50.jpg
+ebccbe38ca.jpg
+ebd2dd4b80.jpg
+ebd7747063.jpg
+ebd885bc1f.jpg
+ebe3414516.jpg
+ebe6dfaa45.jpg
+ebedeaf347.jpg
+ec081fb786.jpg
+ec10c7beab.jpg
+ec10c9c58d.jpg
+ec188b256f.jpg
+ec1c72a001.jpg
+ec258de1aa.jpg
+ec2c20c6b5.jpg
+ec34b91092.jpg
+ec390ea90f.jpg
+ec3f2b8131.jpg
+ec3f318740.jpg
+ec5d9ae940.jpg
+ec65271b73.jpg
+ec71afb268.jpg
+ec72247f2f.jpg
+ec7cd6ebee.jpg
+ec7cfb0e2c.jpg
+ec902ee7e8.jpg
+ec9cb6c33e.jpg
+ecaac63437.jpg
+ecbfe60f66.jpg
+ecc388d0da.jpg
+eccd77ef34.jpg
+ecd24613cd.jpg
+ece1f9cc04.jpg
+ecf1f516bd.jpg
+ecf4384906.jpg
+ecfe40ad99.jpg
+ed025cb385.jpg
+ed0c62db49.jpg
+ed1e1dff48.jpg
+ed22be82db.jpg
+ed6bc92ed5.jpg
+ed6bea58db.jpg
+ed6cb97bdc.jpg
+ed6ff3b2bf.jpg
+ed7941d125.jpg
+ed7a82ad7d.jpg
+ed7f1910ee.jpg
+ed81180504.jpg
+ed8a8fb799.jpg
+ed8b464e61.jpg
+ed8bfd8efe.jpg
+edace1f767.jpg
+edad5e6979.jpg
+edaf8f18b9.jpg
+edb15b09bd.jpg
+edbac0fb07.jpg
+edcde5c4d5.jpg
+edd4ce1184.jpg
+edd801ae75.jpg
+edda4919a8.jpg
+eddc9bdbff.jpg
+eddd0539c3.jpg
+eddec94da7.jpg
+edf02a0bd8.jpg
+edfa7575c5.jpg
+edfb0f8573.jpg
+ee0abe2262.jpg
+ee0d13b763.jpg
+ee297fadbb.jpg
+ee33d09958.jpg
+ee38a407d4.jpg
+ee45f0625c.jpg
+ee4aafc392.jpg
+ee64707c9a.jpg
+ee69f5f847.jpg
+ee8a35eff2.jpg
+ee8af6406e.jpg
+ee8cba9b03.jpg
+ee92c64c4c.jpg
+ee9c89ab4f.jpg
+ee9f12c28e.jpg
+eea788d49b.jpg
+eea828af89.jpg
+eeadcdc883.jpg
+eeb44df39b.jpg
+eece091209.jpg
+eed8346233.jpg
+eedc52b015.jpg
+eedd3caf9b.jpg
+eedd842bd4.jpg
+eedeec1833.jpg
+eee540b814.jpg
+eeef28d4f2.jpg
+eeefb3889c.jpg
+eef16260c3.jpg
+eef7a4aac3.jpg
+eef95fed0e.jpg
+eefabb1856.jpg
+ef064e2efe.jpg
+ef09679693.jpg
+ef1dde3b3a.jpg
+ef281ae43d.jpg
+ef2cfe52f1.jpg
+ef2f4b491e.jpg
+ef45886efa.jpg
+ef4cf74215.jpg
+ef581fab36.jpg
+ef5bf0ae22.jpg
+ef5f713cac.jpg
+ef67751b04.jpg
+ef6c9aa252.jpg
+ef6e6c6f4f.jpg
+ef743558fd.jpg
+ef87574743.jpg
+ef9485a3d8.jpg
+ef94875e33.jpg
+ef95d0da3b.jpg
+efa6496e67.jpg
+efaa599eb8.jpg
+efac19a2d5.jpg
+efc093a763.jpg
+efc6257759.jpg
+efd67da2de.jpg
+efd7734530.jpg
+efd960cf0f.jpg
+efdc27cf84.jpg
+efe3ddb4cd.jpg
+efeb5d4109.jpg
+efebe5cf76.jpg
+efeea29d60.jpg
+eff0d9d2bd.jpg
+eff254ead6.jpg
+eff7e509c1.jpg
+f000bce0cb.jpg
+f002664226.jpg
+f009e1838b.jpg
+f00ee79625.jpg
+f0155948a6.jpg
+f01ed35bd6.jpg
+f021079aaf.jpg
+f023e66bb0.jpg
+f023fe7c8a.jpg
+f024b7e240.jpg
+f02b5a203e.jpg
+f02e5275e0.jpg
+f060179162.jpg
+f06230df37.jpg
+f0833d0bcf.jpg
+f085a4bbf2.jpg
+f09be06af8.jpg
+f0b152091d.jpg
+f0bd1c31f7.jpg
+f0d3dd760b.jpg
+f0d9095d3d.jpg
+f0de31a50a.jpg
+f0e1252199.jpg
+f0e1b5d00d.jpg
+f0e3070813.jpg
+f0e368014c.jpg
+f0e540254d.jpg
+f0ed5c0da7.jpg
+f0f026d431.jpg
+f0f0b6d565.jpg
+f0f1d96e4a.jpg
+f0f370f2d6.jpg
+f0f40785b2.jpg
+f0f48445e0.jpg
+f0f937090f.jpg
+f0ff1e1fa3.jpg
+f100043ec0.jpg
+f1072f7082.jpg
+f10938160a.jpg
+f130c7d621.jpg
+f14860234a.jpg
+f14bdc6ae2.jpg
+f150c77056.jpg
+f1595c12a1.jpg
+f161dd9a79.jpg
+f17dc2d316.jpg
+f17dd023d0.jpg
+f187f4f801.jpg
+f18e31cfdb.jpg
+f18f51352e.jpg
+f1941cce89.jpg
+f1ac96118a.jpg
+f1acc1c5bc.jpg
+f1b9a04723.jpg
+f1b9f90a8d.jpg
+f1bee42b76.jpg
+f1da75d72f.jpg
+f1dc4ae917.jpg
+f1e840eed1.jpg
+f1f6c57f91.jpg
+f1fcf52e62.jpg
+f20ad4e46f.jpg
+f20ce255e6.jpg
+f2155b0dce.jpg
+f218b7dbb3.jpg
+f221e2b9cf.jpg
+f22398714d.jpg
+f224098250.jpg
+f23885e558.jpg
+f244c231d9.jpg
+f246926909.jpg
+f257c713e1.jpg
+f25d95ef71.jpg
+f26c120010.jpg
+f27177e65f.jpg
+f28d0b7c1e.jpg
+f2a198af42.jpg
+f2a503b8f5.jpg
+f2ac5ae9ef.jpg
+f2b5e8804e.jpg
+f2bd71e871.jpg
+f2bef79f35.jpg
+f2c4998f5e.jpg
+f2c7307e80.jpg
+f2ca64ff21.jpg
+f2cd50cf05.jpg
+f2ce974123.jpg
+f2d143b7eb.jpg
+f2d599908f.jpg
+f2db9483ec.jpg
+f2e9ef6f83.jpg
+f2ee39cb18.jpg
+f2f276072a.jpg
+f2fe0bdbc6.jpg
+f30419b330.jpg
+f30ba97237.jpg
+f30bc8dd02.jpg
+f3104f82e0.jpg
+f324bbcf69.jpg
+f324bc3468.jpg
+f32abb455d.jpg
+f32b2a0705.jpg
+f32e9dc62a.jpg
+f32f47dae3.jpg
+f33121211c.jpg
+f3373dd7ed.jpg
+f3418b7625.jpg
+f3429e3b49.jpg
+f35c2a73a5.jpg
+f36071fd7e.jpg
+f36831a791.jpg
+f36ffa9bfd.jpg
+f38641e176.jpg
+f38809ef39.jpg
+f39191bf60.jpg
+f3a5e9d530.jpg
+f3ace53166.jpg
+f3c4efec63.jpg
+f3c5a78ba7.jpg
+f3c7dcd5d1.jpg
+f3ca599f02.jpg
+f3d25ee7c8.jpg
+f3d5f98878.jpg
+f3d621d1ff.jpg
+f3d7afe7cb.jpg
+f3db0dcf5c.jpg
+f3e1f4faaf.jpg
+f3e37884c8.jpg
+f41206c55f.jpg
+f4151401ec.jpg
+f42256e812.jpg
+f43503c98d.jpg
+f43eede7e1.jpg
+f44decf1ae.jpg
+f44e36a8b0.jpg
+f4529f1487.jpg
+f4681e55f1.jpg
+f46b5595ec.jpg
+f46d01181a.jpg
+f47077b123.jpg
+f476d30f77.jpg
+f48e03b69c.jpg
+f493c96aa8.jpg
+f496efdf51.jpg
+f49e7a9e85.jpg
+f4af70630b.jpg
+f4c2579d99.jpg
+f4c4bc7110.jpg
+f4c5a615c2.jpg
+f4c5b538a1.jpg
+f4d40b4746.jpg
+f4db2ac66b.jpg
+f4dd76da02.jpg
+f4e71e0826.jpg
+f4f371364c.jpg
+f4fa6bbb18.jpg
+f4fb0823af.jpg
+f5102d464a.jpg
+f521e7d9bc.jpg
+f526e99c1d.jpg
+f52a0c174a.jpg
+f52c47226d.jpg
+f52d567c77.jpg
+f52d95f3f2.jpg
+f5304733a4.jpg
+f541dcd6ae.jpg
+f56673ee2d.jpg
+f56c482e0c.jpg
+f56ef7c25f.jpg
+f570337f9b.jpg
+f579f6c1ac.jpg
+f57a90c5ee.jpg
+f57b69a246.jpg
+f582a217a6.jpg
+f583e03bf0.jpg
+f59313deaf.jpg
+f595261887.jpg
+f59b1cc3fd.jpg
+f59cd92806.jpg
+f5b7baac80.jpg
+f5c09e7aa3.jpg
+f5c9f45799.jpg
+f5ca962644.jpg
+f5ce4a6b25.jpg
+f5dc837547.jpg
+f5e019c574.jpg
+f5e0ba250f.jpg
+f5e117f768.jpg
+f5e5745b02.jpg
+f5ef9a962e.jpg
+f5f282fd5a.jpg
+f5f5d1352a.jpg
+f5fa41a1b7.jpg
+f5fdee9c5a.jpg
+f601d45831.jpg
+f6023f9414.jpg
+f61f56e28d.jpg
+f62096f01a.jpg
+f620dd6a22.jpg
+f6256c3788.jpg
+f62a400740.jpg
+f63e97d752.jpg
+f64386010d.jpg
+f654d25aaf.jpg
+f655313abc.jpg
+f65d7fcbe7.jpg
+f66317ea4e.jpg
+f67285c244.jpg
+f679fc7610.jpg
+f68f68a7e7.jpg
+f6a30c1a34.jpg
+f6b0db8e3a.jpg
+f6b4684472.jpg
+f6cb734783.jpg
+f6d29447ce.jpg
+f6d4b56ead.jpg
+f6e59937fe.jpg
+f6e5a0ad93.jpg
+f6e6cfd1d8.jpg
+f6f475c668.jpg
+f71741fbec.jpg
+f7180c7f12.jpg
+f720da2e34.jpg
+f72d8619d5.jpg
+f73262da47.jpg
+f73c3656b5.jpg
+f742e36eaf.jpg
+f74426ff3c.jpg
+f789ffdeeb.jpg
+f78d2bccaa.jpg
+f78fcc6b58.jpg
+f792dcfb02.jpg
+f7954faa07.jpg
+f7b0d10ed0.jpg
+f7c9054ca7.jpg
+f7ca5ff8f3.jpg
+f7d0d357b7.jpg
+f7d0e62782.jpg
+f7d33c8ce5.jpg
+f7db0aeaa3.jpg
+f7db17a545.jpg
+f7de0a9d76.jpg
+f7e68821ce.jpg
+f7eadd56da.jpg
+f8043aa26f.jpg
+f8188efcc8.jpg
+f81b3d6c07.jpg
+f81ccaa506.jpg
+f82898bf83.jpg
+f8309569e2.jpg
+f839a879d5.jpg
+f83c851eed.jpg
+f84ea4ee57.jpg
+f84eac40cf.jpg
+f85968710c.jpg
+f85f6afb5b.jpg
+f86718f0b9.jpg
+f870122a8e.jpg
+f88cd9cb43.jpg
+f8a051d47b.jpg
+f8a47a9000.jpg
+f8a790a92c.jpg
+f8b8c68a45.jpg
+f8bc0af218.jpg
+f8c3a02c93.jpg
+f8c4ae3735.jpg
+f8c9c393c0.jpg
+f8d0bca885.jpg
+f8d3316d9e.jpg
+f8d41c7c83.jpg
+f8d4db89f1.jpg
+f8db271663.jpg
+f8df3f65c1.jpg
+f8e7ff27ef.jpg
+f8e8d20edf.jpg
+f8f4c3f8f2.jpg
+f8ffa48886.jpg
+f900a03006.jpg
+f9015aec38.jpg
+f9040d6527.jpg
+f90a53c5b3.jpg
+f90d03b9ae.jpg
+f9141f4421.jpg
+f920b3f617.jpg
+f93a0897ea.jpg
+f93bedd42a.jpg
+f9472ace4d.jpg
+f95c1f229a.jpg
+f961289a1a.jpg
+f96ab2c8e2.jpg
+f972bad39f.jpg
+f9748797fb.jpg
+f977c04311.jpg
+f97ff33824.jpg
+f9847422d6.jpg
+f98b4ea01a.jpg
+f98ec7e7be.jpg
+f99835f64c.jpg
+f9b3d6fc40.jpg
+f9b9359ea3.jpg
+f9c2cc9e67.jpg
+f9c2fd0156.jpg
+f9c8c2d72f.jpg
+f9d224cf37.jpg
+f9d428c247.jpg
+f9da44d887.jpg
+f9dbb719d4.jpg
+f9e215f6c1.jpg
+f9e647a263.jpg
+f9e915b69f.jpg
+f9eb732282.jpg
+f9ebe0422c.jpg
+f9ee45e677.jpg
+f9eea5543c.jpg
+f9f29a14c5.jpg
+f9f421a804.jpg
+f9f57c4db7.jpg
+f9f62f0b2b.jpg
+f9f7d4837d.jpg
+f9ff1f2e43.jpg
+fa27e83a3d.jpg
+fa29dfb2b8.jpg
+fa3752de76.jpg
+fa3ec248be.jpg
+fa4baab93c.jpg
+fa590765bf.jpg
+fa638ccf56.jpg
+fa70be5f12.jpg
+fa813e4d05.jpg
+fa8c616057.jpg
+fa8ce256cf.jpg
+fa9286015b.jpg
+fa93585ccd.jpg
+fa942964ae.jpg
+faa38c20af.jpg
+faa84debb4.jpg
+fab25a98aa.jpg
+fabab3b5b5.jpg
+fac5671d7a.jpg
+fac70e561c.jpg
+fac8fa96bc.jpg
+fad20ebf41.jpg
+fad22762f1.jpg
+fad46e91b1.jpg
+fad581b5b8.jpg
+fad9caf352.jpg
+fadc388205.jpg
+fadd41fb5d.jpg
+fade4b9315.jpg
+fadf90c407.jpg
+fae57f5974.jpg
+fae584df46.jpg
+fae70ad247.jpg
+faf3474850.jpg
+faf43b7283.jpg
+faf4533938.jpg
+fb03513f48.jpg
+fb038c9374.jpg
+fb0e99ead2.jpg
+fb228a0b3f.jpg
+fb28c567a5.jpg
+fb340ace2e.jpg
+fb34cd8704.jpg
+fb3ec13c4d.jpg
+fb42ef2835.jpg
+fb4548e8f8.jpg
+fb4c364566.jpg
+fb4d2e8e88.jpg
+fb5259dbd9.jpg
+fb7b88f8cf.jpg
+fb7ce59a1b.jpg
+fb800d7a6f.jpg
+fb9b7a7f45.jpg
+fb9ea031d6.jpg
+fba1c788bd.jpg
+fba99f5df9.jpg
+fbba14b0e2.jpg
+fbbee3053f.jpg
+fbc0a2bcbd.jpg
+fbc13d017d.jpg
+fbc522b43f.jpg
+fbc8c7d584.jpg
+fbd8a31067.jpg
+fbe7bf5bf7.jpg
+fbe97e3a95.jpg
+fbea2dc389.jpg
+fbee0859b1.jpg
+fbefbdccd4.jpg
+fbf07591f3.jpg
+fbf3e834ea.jpg
+fbfcd92c4e.jpg
+fbfd9fa139.jpg
+fbfdf2f1e3.jpg
+fc06de1d9d.jpg
+fc0db3f4ad.jpg
+fc0dbf8e1f.jpg
+fc0e8f7876.jpg
+fc2a63d2b2.jpg
+fc3ed0012f.jpg
+fc3fd24d12.jpg
+fc4c590cb1.jpg
+fc52d6007b.jpg
+fc579c828e.jpg
+fc761dca1d.jpg
+fc7a212b9d.jpg
+fc8ea183be.jpg
+fc99763178.jpg
+fca31dd881.jpg
+fcaadd368b.jpg
+fcac1ed9a7.jpg
+fcbe148582.jpg
+fcc07ea9a8.jpg
+fcc4143787.jpg
+fcc69ea51e.jpg
+fcc7f82ce0.jpg
+fcda90fe71.jpg
+fcdbe38b82.jpg
+fcde9ae93a.jpg
+fce7784b79.jpg
+fce9c92932.jpg
+fcedb2ab99.jpg
+fcf9c856da.jpg
+fd02504e6e.jpg
+fd140163ff.jpg
+fd162d7502.jpg
+fd17814e0a.jpg
+fd1bfedf71.jpg
+fd20fe76cc.jpg
+fd258cb2d6.jpg
+fd33cf9dd4.jpg
+fd45d40d4a.jpg
+fd59afc8dc.jpg
+fd5ce5e1b3.jpg
+fd6cb68f69.jpg
+fd6e426be7.jpg
+fd8d13f171.jpg
+fda20489de.jpg
+fda45b5266.jpg
+fda5d6a16c.jpg
+fdb179ae53.jpg
+fdbe07cbdb.jpg
+fdc4deb59a.jpg
+fdcb68c1b6.jpg
+fdcef8f7d9.jpg
+fdd20a486d.jpg
+fdd566bafd.jpg
+fddd4793c0.jpg
+fde48a2d1f.jpg
+fde50fe566.jpg
+fde547487c.jpg
+fde684638b.jpg
+fdead1249f.jpg
+fdefafbb68.jpg
+fdf8df9f55.jpg
+fdfa4baf9f.jpg
+fdfdef9956.jpg
+fe15f23201.jpg
+fe18299961.jpg
+fe188ababd.jpg
+fe1e8c7d7f.jpg
+fe1f14da0c.jpg
+fe24bf3e4e.jpg
+fe29776c5c.jpg
+fe35a4b222.jpg
+fe36845f27.jpg
+fe3d6a9206.jpg
+fe4b226c9e.jpg
+fe50609214.jpg
+fe5062701c.jpg
+fe59749d78.jpg
+fe623168b9.jpg
+fe771a8464.jpg
+fe78ce0f33.jpg
+fe7aa5b59d.jpg
+fe7e782603.jpg
+fe7eb2f711.jpg
+fe8a433602.jpg
+fe908d212e.jpg
+fe9a5fd3bc.jpg
+fe9abc89a1.jpg
+fea3504677.jpg
+fea72a6707.jpg
+fea9b374d6.jpg
+feac3675d4.jpg
+febf3ddf72.jpg
+fec71714fb.jpg
+fec919e0bd.jpg
+fecbd4e02c.jpg
+fecdf654da.jpg
+fed13b967b.jpg
+fed4317a3c.jpg
+fed47f53dd.jpg
+fed7391781.jpg
+fed92a7767.jpg
+fedbe6a98a.jpg
+feefd9e1ba.jpg
+fef39b2805.jpg
+fef57e19c5.jpg
+fefc2aef0c.jpg
+fefdc069da.jpg
+ff0e05b330.jpg
+ff107fa1dd.jpg
+ff3b6be5f6.jpg
+ff4091a5c1.jpg
+ff4ddde631.jpg
+ff574eb682.jpg
+ff59357e75.jpg
+ff5a278ce2.jpg
+ff618d0698.jpg
+ff672f2b5c.jpg
+ff6c081c3a.jpg
+ff7603f56c.jpg
+ff7e4bcc1e.jpg
+ff832a44b2.jpg
+ff83643180.jpg
+ffae0373d2.jpg
+ffb19880c1.jpg
+ffba632b59.jpg
+ffbb518aed.jpg
+ffc3b83fa2.jpg
+ffc811f3f7.jpg
+ffc8ce4288.jpg
+ffca6a355b.jpg
+ffcad78225.jpg
+ffcbef0a69.jpg
+ffcd6496c0.jpg
+ffd3659fa6.jpg
+ffd58c0e39.jpg
+ffd6c40af1.jpg
+ffd7999571.jpg
+ffe91252e8.jpg
+ffeaa2778a.jpg
+ffed2bf1b7.jpg
+fffa0d5bf4.jpg
+fffb1bae06.jpg
diff --git a/FoodSeg103/data/FoodSeg103/train_test_recipe1m_id.txt b/FoodSeg103/data/FoodSeg103/train_test_recipe1m_id.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8431882666f2d90ed2df772ac6ebc124d06a5fdc
--- /dev/null
+++ b/FoodSeg103/data/FoodSeg103/train_test_recipe1m_id.txt
@@ -0,0 +1,7392 @@
+000e2242f4.jpg
+001ba88662.jpg
+002ec68cc0.jpg
+0035d6e852.jpg
+005b8ca3c7.jpg
+0065d1fd90.jpg
+008246daa6.jpg
+009aadfee3.jpg
+009d406a46.jpg
+009e5c1b61.jpg
+00a4369321.jpg
+00b8167a9e.jpg
+00c2d2b3c3.jpg
+00c5af983f.jpg
+00c9473bf6.jpg
+00d1d9526e.jpg
+00d68c5fa3.jpg
+00db260287.jpg
+00e2436568.jpg
+00eb8ea6a7.jpg
+00ee30333b.jpg
+00ef614918.jpg
+00f0fd1d40.jpg
+00f1f3b98b.jpg
+01095b5241.jpg
+0125ccb360.jpg
+012d496758.jpg
+0134b5efc7.jpg
+013f42161e.jpg
+0145f2a6da.jpg
+014d1370c8.jpg
+0179284f82.jpg
+017a9dec4c.jpg
+018abf908a.jpg
+018dacb6e4.jpg
+018dbb78c7.jpg
+0191f5f062.jpg
+0193a799db.jpg
+01a8f6611e.jpg
+01c27319df.jpg
+01c85029ec.jpg
+01cac9914d.jpg
+01d32b09fc.jpg
+01d5819c58.jpg
+01df87d9f6.jpg
+01e511dd0a.jpg
+01e59422b4.jpg
+01edebcbce.jpg
+01ef116440.jpg
+01f1b8341e.jpg
+0206acee79.jpg
+022bfc4821.jpg
+022d215634.jpg
+022edef9a2.jpg
+02316c8186.jpg
+0238bbb2bb.jpg
+0239d0d5a7.jpg
+023a796a76.jpg
+024ecbe636.jpg
+025cfec5be.jpg
+0278898711.jpg
+028a5cc045.jpg
+028f33ab7c.jpg
+028f6f02dc.jpg
+029dccef6c.jpg
+02aa4dd8e0.jpg
+02b6041220.jpg
+02c69f4bba.jpg
+02ca0bd11a.jpg
+02d021b259.jpg
+02d6fdde8f.jpg
+02dc80bb2c.jpg
+02e4cccb07.jpg
+02eba48e14.jpg
+02f5bba666.jpg
+02fa3d9b8f.jpg
+02fbd005a8.jpg
+02fddb62d6.jpg
+030032ca2e.jpg
+03041dc01c.jpg
+031dc349ff.jpg
+032e125685.jpg
+035c53bf20.jpg
+036a2defb7.jpg
+03738629b3.jpg
+03746f23c4.jpg
+037cc04300.jpg
+037f30a4e3.jpg
+038b7aa019.jpg
+0393c27955.jpg
+03a6a8a570.jpg
+03ad81c7b5.jpg
+03c2d7f857.jpg
+03c32dddf8.jpg
+03c47ef88d.jpg
+03cc1edd0e.jpg
+03cd09c91f.jpg
+03cd80ed06.jpg
+03d149d165.jpg
+03d22720aa.jpg
+03d3c27f7a.jpg
+03e3ae939c.jpg
+03e3b90ca4.jpg
+03f356fe17.jpg
+03f8f24712.jpg
+03fae3159a.jpg
+04036c7252.jpg
+041cd91ca1.jpg
+04273762f8.jpg
+043269baaf.jpg
+04422875b1.jpg
+04485d9a84.jpg
+0452977bb1.jpg
+04847008b9.jpg
+049c923c84.jpg
+04a734e8fe.jpg
+04abde7da2.jpg
+04bb1e0060.jpg
+04c3d716fe.jpg
+04c6959507.jpg
+04d33728da.jpg
+04d8254fae.jpg
+04d91746ac.jpg
+04da4eae15.jpg
+04e627551d.jpg
+04eead3204.jpg
+04f8432a85.jpg
+04fae812b6.jpg
+051940c6a8.jpg
+051c6e7953.jpg
+051cd8938b.jpg
+052848d83f.jpg
+0561a723c2.jpg
+056f2717f0.jpg
+0593141037.jpg
+05964ba10f.jpg
+059724fedf.jpg
+059f59685b.jpg
+05aa6bd703.jpg
+05b1c6eb5e.jpg
+05ba0fbc8b.jpg
+05bc8981ae.jpg
+05c61c4de6.jpg
+05cfbcd37e.jpg
+05d3daf506.jpg
+05d717f3f1.jpg
+05dcd69230.jpg
+05dcfc5d65.jpg
+05dd944449.jpg
+05e1e680c4.jpg
+05e7b956a1.jpg
+05f554924d.jpg
+05f877bb0f.jpg
+05fb2c51b4.jpg
+05fe631f10.jpg
+060ce9d3b2.jpg
+0614b84c02.jpg
+0621aae746.jpg
+06280e0e90.jpg
+063213d78d.jpg
+0643c063b4.jpg
+06484d73cd.jpg
+0654d29579.jpg
+065be5032f.jpg
+065cd93b30.jpg
+066bd76a53.jpg
+067a6aa6b2.jpg
+06835c0a9b.jpg
+0688cfa5b0.jpg
+068d858210.jpg
+068eb22d54.jpg
+069b06412b.jpg
+06b55befef.jpg
+06bd9b5d5d.jpg
+06c4788dc8.jpg
+06c703d6c0.jpg
+06cf3bdbd3.jpg
+06d75254e9.jpg
+06eb65e412.jpg
+06ecfa577b.jpg
+06f98e4d59.jpg
+07013bcfad.jpg
+07028bd256.jpg
+0724a69146.jpg
+072d349b8c.jpg
+072f9c71e2.jpg
+0766698b5b.jpg
+0792fbfc5f.jpg
+079924a993.jpg
+079a5a59b6.jpg
+079ae89273.jpg
+079ec30196.jpg
+07a5cc719e.jpg
+07bd801e60.jpg
+07c38a0173.jpg
+07ca89c1bc.jpg
+07d0d23063.jpg
+07d2fe875b.jpg
+07de525f7e.jpg
+07e415c279.jpg
+07e520a249.jpg
+07efb71591.jpg
+07fb4f4204.jpg
+08003e498c.jpg
+0803501c37.jpg
+080dc1a3ae.jpg
+081480fce5.jpg
+0821b23834.jpg
+0822b058f0.jpg
+08552469cb.jpg
+088e2f2031.jpg
+08bcbf1ef6.jpg
+08bce8125e.jpg
+08c3509acc.jpg
+08c48211cf.jpg
+08c85fa5da.jpg
+08c8b5e5ec.jpg
+08df7b8dff.jpg
+08dfa2a4af.jpg
+08e430193c.jpg
+08e545731e.jpg
+08e7706a76.jpg
+08e9b77f69.jpg
+08eb787186.jpg
+08fab173b1.jpg
+091d0a6004.jpg
+092352d4b5.jpg
+092f69576c.jpg
+093e1dfa3c.jpg
+093e5804fc.jpg
+094d99950f.jpg
+096f0043fc.jpg
+097644b0bc.jpg
+098cbe56d6.jpg
+09985ebeae.jpg
+09aa34390a.jpg
+09b4301033.jpg
+09bd1764de.jpg
+09c33dc374.jpg
+09cc594c9d.jpg
+09d4103619.jpg
+09d62734c3.jpg
+09d7b2b2d2.jpg
+09f449e0e2.jpg
+09f6c5633b.jpg
+09f9dcacc4.jpg
+0a063d3b6c.jpg
+0a171577e4.jpg
+0a19b1cc1c.jpg
+0a2aacf4f1.jpg
+0a3091ecbc.jpg
+0a4c8f7d0f.jpg
+0a4fc6271d.jpg
+0a6ab701f1.jpg
+0a9afbf719.jpg
+0abf6a45cc.jpg
+0ac1292dea.jpg
+0ac55a5b7e.jpg
+0ac7727a6e.jpg
+0acae8f493.jpg
+0acbe91a79.jpg
+0acde8999a.jpg
+0ad78a9010.jpg
+0ae65d92ec.jpg
+0aeae60b72.jpg
+0aee3b209a.jpg
+0aef935a2e.jpg
+0af3dd4fdc.jpg
+0af5f94d33.jpg
+0b182945e3.jpg
+0b195c7d99.jpg
+0b1a066d82.jpg
+0b2ba8649e.jpg
+0b2bddd667.jpg
+0b30f680db.jpg
+0b514c4934.jpg
+0b5d7152d0.jpg
+0b6c2debff.jpg
+0b6d7e1daa.jpg
+0b8e369385.jpg
+0b8e43390e.jpg
+0b9ddd4512.jpg
+0ba09a8bdb.jpg
+0bae1f29a1.jpg
+0baf714b04.jpg
+0bc0416dce.jpg
+0bc2b4b7b1.jpg
+0bccdc6987.jpg
+0bd24c214e.jpg
+0bd98665f9.jpg
+0bdce5b08e.jpg
+0bded8f743.jpg
+0bdf5bb0d1.jpg
+0beb979657.jpg
+0beebf87ed.jpg
+0c003d0c29.jpg
+0c04399618.jpg
+0c08129941.jpg
+0c0b57a78a.jpg
+0c135cb04b.jpg
+0c1efa2832.jpg
+0c2263c920.jpg
+0c232a54ab.jpg
+0c26cf3536.jpg
+0c2b705853.jpg
+0c2e04a08d.jpg
+0c304a4ff3.jpg
+0c390c2f4b.jpg
+0c3ef7f144.jpg
+0c59058810.jpg
+0c71cf2630.jpg
+0c7acc1825.jpg
+0c7d923e02.jpg
+0c956284b1.jpg
+0caa11b5d4.jpg
+0cac96a888.jpg
+0caf4525bc.jpg
+0cb1254837.jpg
+0cbd7768e3.jpg
+0cbe310ae5.jpg
+0cc61221c0.jpg
+0cd617999d.jpg
+0cd9f7db4a.jpg
+0cdcffe483.jpg
+0cddc1311f.jpg
+0cde690540.jpg
+0cdf21510a.jpg
+0cdfa5296b.jpg
+0cdfc959e2.jpg
+0ced00666a.jpg
+0cf26a167f.jpg
+0cf43265b1.jpg
+0cfb95a072.jpg
+0d083776ba.jpg
+0d11c49af9.jpg
+0d2c37a71a.jpg
+0d37f2728d.jpg
+0d4d00f3ed.jpg
+0d4d894d96.jpg
+0d4d8ba6fc.jpg
+0d5b3d55b0.jpg
+0d5dabbb26.jpg
+0d633aa172.jpg
+0d69047b0c.jpg
+0d6b6f2735.jpg
+0d72d16574.jpg
+0d7a27c574.jpg
+0d8f22c724.jpg
+0d9a8cb6fa.jpg
+0d9e7979c4.jpg
+0d9f92d646.jpg
+0da9ae0dcd.jpg
+0dbfd1fee0.jpg
+0dcbc9737d.jpg
+0dd5aece23.jpg
+0dddd2c218.jpg
+0de95a6876.jpg
+0def2c71d9.jpg
+0df1403d58.jpg
+0df1f4904a.jpg
+0e000f7de6.jpg
+0e1f444d47.jpg
+0e1fc02b80.jpg
+0e47bc1579.jpg
+0e48e58488.jpg
+0e541f9bdd.jpg
+0e5bea5d02.jpg
+0e6283108d.jpg
+0e65f28295.jpg
+0e66320fbe.jpg
+0e7127de63.jpg
+0e74b6efe5.jpg
+0e791ea9a4.jpg
+0e7b1231b4.jpg
+0e7bf8c62c.jpg
+0eac3e0250.jpg
+0eacbcee9a.jpg
+0eb1e470a9.jpg
+0ec3ebb974.jpg
+0ec7d23b02.jpg
+0ec7e10f15.jpg
+0ec8a31f51.jpg
+0ed0e1dfbd.jpg
+0ed6d872ec.jpg
+0edd209330.jpg
+0edda912c4.jpg
+0ee6b4a092.jpg
+0ee737b7d6.jpg
+0ef36a04fa.jpg
+0efa8bea3e.jpg
+0efb6bcd25.jpg
+0efbf2cb55.jpg
+0f0ef0763a.jpg
+0f0f31f45b.jpg
+0f1e23a821.jpg
+0f32f1f007.jpg
+0f4bfd02c6.jpg
+0f61066af8.jpg
+0f6e7e856b.jpg
+0f76597651.jpg
+0f78cc0bb7.jpg
+0f79a18e5e.jpg
+0f86cfedb5.jpg
+0f86e3bff3.jpg
+0f9d2ecaad.jpg
+0fa70ae245.jpg
+0fb6b629ef.jpg
+0fbbd13a46.jpg
+0fc38c3ebf.jpg
+0fc3b8cc4c.jpg
+0fd1ced2e9.jpg
+0fdda22904.jpg
+0feac1473f.jpg
+0ff9de5e04.jpg
+0ffc787f30.jpg
+100042e57f.jpg
+100238cc9a.jpg
+10037c35f0.jpg
+1010c2c9d5.jpg
+1018c2dc90.jpg
+101e152ba2.jpg
+1026d89758.jpg
+102eefe79c.jpg
+1035241ae8.jpg
+10353d120d.jpg
+10355a5693.jpg
+1037e5fa9c.jpg
+10598ea5f0.jpg
+105e6c78bb.jpg
+106059feee.jpg
+10632ce742.jpg
+106f49c70c.jpg
+106ff651c2.jpg
+1076de97b3.jpg
+108ab35fa6.jpg
+1094c72cc7.jpg
+10a2bde9b4.jpg
+10a66686d2.jpg
+10a7df1164.jpg
+10abaae8d8.jpg
+10bc205943.jpg
+10c5520861.jpg
+10cb0a3001.jpg
+10cbc0fa73.jpg
+10d057d0e0.jpg
+10d651d87d.jpg
+10db452333.jpg
+10ddfecce0.jpg
+10df5d7f4e.jpg
+10df6f4a9a.jpg
+10e632ef99.jpg
+10ed34bc30.jpg
+10f066fb8e.jpg
+10f61d159d.jpg
+10fc3e7cf2.jpg
+110ed916b5.jpg
+112bdd852a.jpg
+112d616168.jpg
+11542f2920.jpg
+115737a627.jpg
+116b0a8482.jpg
+117ee56e2b.jpg
+1180d01d5d.jpg
+11957c8bda.jpg
+11c14d047a.jpg
+11d004253e.jpg
+11d54de10a.jpg
+11d671723f.jpg
+11d931cbfa.jpg
+11daa3e486.jpg
+11dce53da0.jpg
+11e3e446dc.jpg
+11e472ea95.jpg
+11e8ede6a9.jpg
+11e9ec9652.jpg
+11fc010999.jpg
+120a9929a4.jpg
+1220df4d8a.jpg
+1224c4ce8c.jpg
+12276f9762.jpg
+1227d2f511.jpg
+1232dc6eb7.jpg
+1238c792c8.jpg
+1246398e48.jpg
+125ea03033.jpg
+12635233d7.jpg
+1264734b0e.jpg
+12656aa63f.jpg
+126d287d4b.jpg
+126f8af52b.jpg
+1275b11468.jpg
+1279223077.jpg
+1287d90a11.jpg
+128cda091a.jpg
+12a4048442.jpg
+12b75eb6a1.jpg
+12c6cd5830.jpg
+12d1b2fb88.jpg
+12d3763c33.jpg
+12d842cbdc.jpg
+12d87845ed.jpg
+12d93bf184.jpg
+12e535ae3d.jpg
+12ea9832d3.jpg
+130515a7a8.jpg
+130e3f1b87.jpg
+1325b56071.jpg
+1326625c16.jpg
+1330cdf81c.jpg
+133a789a1e.jpg
+1351c1c7c9.jpg
+135392d039.jpg
+135433f328.jpg
+135f449f68.jpg
+136e39657a.jpg
+1374b31454.jpg
+137c90cb27.jpg
+137f2a6891.jpg
+1386824d7a.jpg
+1387cd8162.jpg
+13bd790622.jpg
+13bfd56239.jpg
+13c176f8b8.jpg
+13c902757a.jpg
+13cb630a69.jpg
+13cc1f5ad5.jpg
+13ce17a1b2.jpg
+13d5454679.jpg
+13d8024a90.jpg
+13db3406ff.jpg
+13e739fec9.jpg
+13eb6f3154.jpg
+1406f4cac3.jpg
+1407f87147.jpg
+140b100346.jpg
+140d275340.jpg
+140df1c8fe.jpg
+1410b27ac6.jpg
+1416fa6f6a.jpg
+1420eb832a.jpg
+142aaec83c.jpg
+142b5b4734.jpg
+145c49c671.jpg
+145f612e6e.jpg
+14604aafc3.jpg
+14682ed227.jpg
+1470b4d430.jpg
+1479d8f07f.jpg
+147b6ab08f.jpg
+149f9af31d.jpg
+14c086bc32.jpg
+14cd9b118e.jpg
+14d16e5632.jpg
+14d206a3a0.jpg
+14d2157d92.jpg
+14d3a530cf.jpg
+14e7baf099.jpg
+14eb23e5c2.jpg
+14f316b423.jpg
+14f42fa5e1.jpg
+14fe19cb8e.jpg
+15280bb6f7.jpg
+152cdf47f8.jpg
+153bfa77f1.jpg
+15421aec54.jpg
+1542c84c4d.jpg
+154e86dcf6.jpg
+154e9756c6.jpg
+15531ad586.jpg
+15592c2381.jpg
+156606a82f.jpg
+15688120aa.jpg
+15806afab4.jpg
+15934dc3bc.jpg
+1598c75335.jpg
+159b1942a3.jpg
+15a3a5d104.jpg
+15b5577a55.jpg
+15c41b9219.jpg
+15c486bb61.jpg
+15c70b5be8.jpg
+15cf3b2f26.jpg
+15d3cd244d.jpg
+15d9921016.jpg
+15d9ca47b1.jpg
+15dda1c602.jpg
+15e665b55e.jpg
+15e69f1158.jpg
+15e6bdf1ea.jpg
+15ed6eeda0.jpg
+15ef743b2b.jpg
+15f6d322e9.jpg
+1606bd62e5.jpg
+160a9d7f37.jpg
+160cf233eb.jpg
+161c460afc.jpg
+161f763355.jpg
+162a689ded.jpg
+162e79b756.jpg
+1641bfb29f.jpg
+16542ee965.jpg
+1658b11c29.jpg
+165d061c3e.jpg
+1666f7c9c4.jpg
+166da9ae4c.jpg
+168d2182c0.jpg
+168da00144.jpg
+169269120d.jpg
+1693b0138d.jpg
+16983c107e.jpg
+169ae64f73.jpg
+16a1e63bbb.jpg
+16a3ac5447.jpg
+16a60d6a6f.jpg
+16bea00358.jpg
+16c55921b9.jpg
+16c76896a0.jpg
+16dbc1e91b.jpg
+16f552b4a4.jpg
+16f66331e6.jpg
+16fdb6fac0.jpg
+17043d4ea8.jpg
+170be51f68.jpg
+170d163d2f.jpg
+1718d68fdf.jpg
+171c89eff8.jpg
+1724c9a90f.jpg
+1727f7984b.jpg
+172d06a45e.jpg
+174efd5f2f.jpg
+174fe15531.jpg
+1754d7d3fc.jpg
+1759c28bc9.jpg
+175a1290ad.jpg
+1760e37e82.jpg
+1762d5ae0f.jpg
+1765856838.jpg
+177318c696.jpg
+177cffb6fb.jpg
+17872c73b5.jpg
+1792b2f6f8.jpg
+179f24ecca.jpg
+17abc9cf88.jpg
+17ba190d71.jpg
+17c6c112aa.jpg
+17c9f975ed.jpg
+17cd064dc8.jpg
+17cd413068.jpg
+17cf4923e1.jpg
+17d1aa2f3c.jpg
+17e8326606.jpg
+17ebb7e636.jpg
+17f4d7d1d2.jpg
+17f8bd9bc5.jpg
+17faf5aa10.jpg
+180789c774.jpg
+180f2122bb.jpg
+1810f4be03.jpg
+1815c32f98.jpg
+181896bff6.jpg
+1818eb93a4.jpg
+181d53ce86.jpg
+181dd25635.jpg
+181e94f15c.jpg
+181fb527dc.jpg
+182240a5f8.jpg
+182d383285.jpg
+184e148514.jpg
+185a807f1a.jpg
+186d59ed96.jpg
+186f151502.jpg
+1872ad111b.jpg
+1878d8273b.jpg
+18822c112a.jpg
+189585d1c6.jpg
+1895b250ac.jpg
+18c6abcfa0.jpg
+18ce9a3330.jpg
+18d289b39f.jpg
+18e2d97fcd.jpg
+191c49bff3.jpg
+191cfa1c8a.jpg
+1942e1af5e.jpg
+19520a7a5f.jpg
+197ca1588f.jpg
+198bc22f13.jpg
+19948823bc.jpg
+199a20f910.jpg
+199c05a788.jpg
+199e49c557.jpg
+19a2ee8b32.jpg
+19a4226f0d.jpg
+19af302f29.jpg
+19b552211d.jpg
+19b70e45a8.jpg
+19bdd4622a.jpg
+19c1cde389.jpg
+19ce4b10df.jpg
+19d2332070.jpg
+19d587fb80.jpg
+19dec01b2c.jpg
+19e45cfea3.jpg
+19f0b8969e.jpg
+19f24d9ec6.jpg
+19fe677413.jpg
+1a0124169d.jpg
+1a01902f2b.jpg
+1a0319bb85.jpg
+1a045b66ba.jpg
+1a284ceb3c.jpg
+1a35f6f228.jpg
+1a374bb63a.jpg
+1a3ae61f9d.jpg
+1a53856b44.jpg
+1a542383ea.jpg
+1a6337a46d.jpg
+1a6e57fe4a.jpg
+1a73e9a66e.jpg
+1a82e248fc.jpg
+1a87efb8c8.jpg
+1a8c6ae384.jpg
+1a988e8eb7.jpg
+1aa33c815f.jpg
+1aaf7ce177.jpg
+1ab10dff64.jpg
+1ab7656852.jpg
+1abc86ee10.jpg
+1ac6f0206b.jpg
+1acc61b070.jpg
+1acdf03b95.jpg
+1ad1047a73.jpg
+1adf4bb236.jpg
+1ae2d4864d.jpg
+1aee965cf7.jpg
+1af229b12d.jpg
+1affcfa05b.jpg
+1b01560260.jpg
+1b031e28b3.jpg
+1b27b961c6.jpg
+1b299a318d.jpg
+1b379b3bd3.jpg
+1b3e517f38.jpg
+1b6f72c45e.jpg
+1b7ca3010f.jpg
+1b80dfad06.jpg
+1b824b72d4.jpg
+1b84723605.jpg
+1b8745334b.jpg
+1b8a2b4eea.jpg
+1b96810073.jpg
+1ba7012db7.jpg
+1bb0cb4d26.jpg
+1bbc64465e.jpg
+1bc2d2bb08.jpg
+1bc5848101.jpg
+1bc8c79a4c.jpg
+1bca704f23.jpg
+1bd8ff40cd.jpg
+1bdb63afd8.jpg
+1bdf48bab8.jpg
+1bf974682d.jpg
+1c042aae77.jpg
+1c0b0afb0b.jpg
+1c192fa4a7.jpg
+1c2e600b67.jpg
+1c33dc15c5.jpg
+1c3aaad9a0.jpg
+1c4c474579.jpg
+1c5768f044.jpg
+1c5b40df80.jpg
+1c7d015cbc.jpg
+1c7fa2aab4.jpg
+1c86a355cd.jpg
+1c9a578d6a.jpg
+1cb2cca9ca.jpg
+1cbafd783b.jpg
+1cc481e0df.jpg
+1cc4ea05e8.jpg
+1ccd6c2940.jpg
+1cd148399b.jpg
+1cd6075a07.jpg
+1cdb1e44e1.jpg
+1cdc19f7e2.jpg
+1cded3f00d.jpg
+1ce0a35072.jpg
+1ce12646f2.jpg
+1ce9e04492.jpg
+1cffb1948b.jpg
+1d1371f3ea.jpg
+1d150d0674.jpg
+1d1b057a9a.jpg
+1d2177e9d5.jpg
+1d23a229d5.jpg
+1d2a241ec4.jpg
+1d2a7bbb65.jpg
+1d2a9006d0.jpg
+1d2f4a8689.jpg
+1d318cf2a7.jpg
+1d38f0f70b.jpg
+1d49bf2d0e.jpg
+1d4bfc4ed9.jpg
+1d52f0f9ba.jpg
+1d5c2c59fa.jpg
+1d5dedb8c3.jpg
+1d6d63595b.jpg
+1d6fa4df6b.jpg
+1d73418abb.jpg
+1d81383aaa.jpg
+1d8d6dd5a4.jpg
+1d99797e25.jpg
+1da741c658.jpg
+1db2057f7d.jpg
+1db220edc7.jpg
+1db23dc150.jpg
+1db49e30ea.jpg
+1db7e31c43.jpg
+1dbc887ef3.jpg
+1dc9c667b2.jpg
+1dd332a2a8.jpg
+1dd3bb5f72.jpg
+1dd77c682e.jpg
+1ddcd9e7c7.jpg
+1dddb4bdab.jpg
+1dded0c1f8.jpg
+1de9df5e05.jpg
+1df363b0b6.jpg
+1e175c30f8.jpg
+1e1ed231c2.jpg
+1e1fb08f8b.jpg
+1e40cc31c9.jpg
+1e46504144.jpg
+1e4decced6.jpg
+1e6805aa58.jpg
+1e6c577b87.jpg
+1e7f951e65.jpg
+1e9426779c.jpg
+1e951eefae.jpg
+1e96e5bfe3.jpg
+1e9b656b08.jpg
+1ea72b04b6.jpg
+1ec0e7f6c3.jpg
+1ec58b4b7a.jpg
+1ec8e6135c.jpg
+1eca98abd8.jpg
+1ed1cf2056.jpg
+1ed4c5ab96.jpg
+1ed52a133f.jpg
+1edb0fdd46.jpg
+1ee1c5be98.jpg
+1ee9fb6080.jpg
+1eed09cbfa.jpg
+1eed0ff4a3.jpg
+1eed3d60c0.jpg
+1eee53201d.jpg
+1ef019c2f6.jpg
+1efbba4ed8.jpg
+1f044328cd.jpg
+1f1ab7f715.jpg
+1f1f95e6c4.jpg
+1f23dda965.jpg
+1f2526c587.jpg
+1f28bfc381.jpg
+1f33deefd7.jpg
+1f3aba1930.jpg
+1f4104ffbc.jpg
+1f4aaa2728.jpg
+1f4d297a3e.jpg
+1f51eea028.jpg
+1f6c577a27.jpg
+1f73b33c8d.jpg
+1f7f2fbc57.jpg
+1f95199144.jpg
+1fa3e586bf.jpg
+1fa44ddd29.jpg
+1faaff6953.jpg
+1facaec831.jpg
+1fb785c088.jpg
+1fc0340826.jpg
+1fc2696914.jpg
+1fc6c0ef98.jpg
+1fc860debd.jpg
+1fca4d3580.jpg
+1fcb5a5582.jpg
+1fcd637f36.jpg
+1fcdae465c.jpg
+1fcf27a85c.jpg
+1fd239ceb9.jpg
+1fd5b6f19f.jpg
+1fdd1367a2.jpg
+1ff104206c.jpg
+1ffa0f2c14.jpg
+200b4e755f.jpg
+2017d59af1.jpg
+20234db29b.jpg
+203f6023a0.jpg
+204530cdcb.jpg
+20498bd310.jpg
+2057baddae.jpg
+2060fd64b9.jpg
+206a34fee4.jpg
+209f2fc2f5.jpg
+20a99beb3d.jpg
+20b3b2edd8.jpg
+20b8a23875.jpg
+20bdaca3a9.jpg
+20c60c83f1.jpg
+20c9444828.jpg
+20ca619a11.jpg
+20d544dd68.jpg
+20d7be20df.jpg
+20db77d84d.jpg
+20e5291f14.jpg
+20e6e69fde.jpg
+20eae143a5.jpg
+20f1d7ec75.jpg
+210d365ae0.jpg
+21168c9487.jpg
+211786e79d.jpg
+2117c08f77.jpg
+211d825b0d.jpg
+2120b1d2e1.jpg
+214dad7eba.jpg
+2165757401.jpg
+2174f98387.jpg
+2176c1949b.jpg
+2178bdedb2.jpg
+2189b810f3.jpg
+2189e7cecc.jpg
+218d4d2dbd.jpg
+21963ff531.jpg
+21c2b6ab89.jpg
+21c3357ea5.jpg
+21c4efbaa3.jpg
+21c5b24405.jpg
+21d9c768e7.jpg
+21d9d680f2.jpg
+21e63d0b78.jpg
+21e67c7e0b.jpg
+21eea9ee95.jpg
+21f113feac.jpg
+21f2149c9f.jpg
+21f890998c.jpg
+21f93e488e.jpg
+21fe2b050e.jpg
+2204c16a4b.jpg
+220e000ac6.jpg
+220f883b7b.jpg
+2217b45885.jpg
+22194e054b.jpg
+22284c6c4c.jpg
+223210ee56.jpg
+225f7bb56f.jpg
+226eb2e742.jpg
+227335bc14.jpg
+227db2879d.jpg
+228b75e14c.jpg
+228fb87425.jpg
+22a4de5af9.jpg
+22a9672d76.jpg
+22ba78ec04.jpg
+22c05cbf0b.jpg
+22c5427e4a.jpg
+22c946d35c.jpg
+22cc3d2dcc.jpg
+22d4b9d2a4.jpg
+22dbe74913.jpg
+22ddd60052.jpg
+22df5af41d.jpg
+22dfe58afa.jpg
+22f0400166.jpg
+22f278cd4d.jpg
+22fde93fe0.jpg
+22ff5900ff.jpg
+2301f97931.jpg
+23049ff496.jpg
+2306d0d515.jpg
+23072cfd09.jpg
+2314c0ded6.jpg
+2315bc9015.jpg
+232c71c92c.jpg
+234f6b6ccf.jpg
+234fb5a197.jpg
+235254cfe2.jpg
+2358ee9dae.jpg
+235e0f9b2b.jpg
+235e304960.jpg
+238ba4d6ae.jpg
+239968fc2b.jpg
+23a2ba5807.jpg
+23b63f2b20.jpg
+23bb9395a0.jpg
+23c283de23.jpg
+23c3e69301.jpg
+23cb782b40.jpg
+23cfca0463.jpg
+23d133aed1.jpg
+23d9c07708.jpg
+23db64bbaa.jpg
+23e3102640.jpg
+23e3e97fd0.jpg
+23e814b9e9.jpg
+23f159fc6f.jpg
+23f4833bb4.jpg
+23fcb8fd0d.jpg
+23fd7cb4a6.jpg
+240034f269.jpg
+24050ec976.jpg
+2407dbe469.jpg
+2412f58cac.jpg
+243257f4eb.jpg
+2434e23aa8.jpg
+243c7caeab.jpg
+244020d5df.jpg
+244b327271.jpg
+244d08a347.jpg
+246dab1e13.jpg
+2470461d92.jpg
+24798308df.jpg
+24876b7f88.jpg
+249cbd5b43.jpg
+24a098332a.jpg
+24ac7aecff.jpg
+24acce11bc.jpg
+24c1e063f6.jpg
+24c5c599fc.jpg
+24c9d79f17.jpg
+24d244bbcb.jpg
+24d30aba80.jpg
+24d3467858.jpg
+24d3dbe446.jpg
+24d4ea3def.jpg
+24dd084656.jpg
+24e139cdca.jpg
+24e9cf442a.jpg
+24efe8c2ab.jpg
+24fc0ca3d3.jpg
+24ffbffd4f.jpg
+24ffcd0084.jpg
+2509bb05d2.jpg
+250cbb62f8.jpg
+25264958c9.jpg
+25466a2e20.jpg
+25673bc6b3.jpg
+256e700cf2.jpg
+2588a7749c.jpg
+2593614346.jpg
+2597f94b50.jpg
+25997b88d3.jpg
+259b80ee58.jpg
+259e9d5357.jpg
+259f2e0d9f.jpg
+25a673744b.jpg
+25afaa5204.jpg
+25b5740bf5.jpg
+25b975c5d2.jpg
+25bb04ccdf.jpg
+25c0367664.jpg
+25c64f4b46.jpg
+25c8d17a5a.jpg
+25d617ecdb.jpg
+25d73a607d.jpg
+25dc077e29.jpg
+25dfc3e644.jpg
+25e2364bc5.jpg
+25ee5727e3.jpg
+25f6148b88.jpg
+2612bad6c5.jpg
+261e367f83.jpg
+262a4a4558.jpg
+262a6ac352.jpg
+264726dd50.jpg
+264e1195b9.jpg
+264e1f2514.jpg
+264f53ac00.jpg
+265c354481.jpg
+2662012948.jpg
+267ccc5cb1.jpg
+268aefbfe4.jpg
+268c35f9f4.jpg
+26948ac5f2.jpg
+2697d313c8.jpg
+269eacf173.jpg
+269f346871.jpg
+26a32f2b3c.jpg
+26b4d3f93d.jpg
+26cbc4bfa1.jpg
+26d1c4a6cb.jpg
+26d297e26e.jpg
+26d460b6e5.jpg
+26df6c8373.jpg
+26e06762de.jpg
+26e21e4871.jpg
+26ea34ede6.jpg
+26f2da4672.jpg
+26ff5b9368.jpg
+270ad27295.jpg
+2722d48b25.jpg
+27303f93ec.jpg
+273184a519.jpg
+2732d0cb88.jpg
+274812f6cb.jpg
+2768f4c3cc.jpg
+27747c2ffe.jpg
+27752973a4.jpg
+2775dc4f36.jpg
+278b4a9223.jpg
+278c13af87.jpg
+27a4944974.jpg
+27b59aad99.jpg
+27b7bbc937.jpg
+27c9bff601.jpg
+27d009cfad.jpg
+27d9a151b6.jpg
+27dd1dfff9.jpg
+27e1bcd34c.jpg
+27e5fb1a22.jpg
+27fb6e7ecb.jpg
+27fd68b0ef.jpg
+280a45057f.jpg
+282c67714f.jpg
+282d352f0a.jpg
+282eb2d540.jpg
+283a89daa5.jpg
+283b9d6370.jpg
+28495f140f.jpg
+28511fb11e.jpg
+285c0ed9a0.jpg
+288ce1a364.jpg
+289b3b190f.jpg
+28a2badea4.jpg
+28c746cd92.jpg
+28ce5ad5b4.jpg
+28d1d577e3.jpg
+28d21b8ef9.jpg
+28db26f35a.jpg
+28e295e3ad.jpg
+28f2dacbb6.jpg
+28f9c13504.jpg
+2902e8c0b0.jpg
+2907b934b5.jpg
+290a3a3811.jpg
+291f47c406.jpg
+291fafca91.jpg
+292ed99145.jpg
+295335ec54.jpg
+2958d6bd31.jpg
+296de4bc83.jpg
+29750a17b0.jpg
+297766ca83.jpg
+29778c7a88.jpg
+2982d0c680.jpg
+2985d93847.jpg
+299021ff24.jpg
+2999396e50.jpg
+29b5db2061.jpg
+29c1979a1f.jpg
+29c87791c0.jpg
+29c9aacac5.jpg
+29cd643dc7.jpg
+29d020b028.jpg
+29d2ad5d48.jpg
+29d404a5a3.jpg
+29d8e2432b.jpg
+29de2bddda.jpg
+29debf9472.jpg
+29e11632ba.jpg
+29e2d12147.jpg
+29fa5b54fd.jpg
+2a03045925.jpg
+2a06986e7d.jpg
+2a0bf546b0.jpg
+2a0f0cf323.jpg
+2a1ba1b6f4.jpg
+2a1cfad9d3.jpg
+2a23d3c77e.jpg
+2a3051c049.jpg
+2a37a3e95a.jpg
+2a4138dd9b.jpg
+2a432d3df0.jpg
+2a46655e25.jpg
+2a503483d8.jpg
+2a59ab4017.jpg
+2a59e50b49.jpg
+2a621bb147.jpg
+2a76865d1c.jpg
+2a872a675e.jpg
+2aabea8fe5.jpg
+2ac9c16c5e.jpg
+2acb855d49.jpg
+2acbb58837.jpg
+2adb8e5f75.jpg
+2ae47dab6f.jpg
+2aeec1f648.jpg
+2af385af25.jpg
+2afe54db38.jpg
+2afe744e20.jpg
+2b063917d4.jpg
+2b07685141.jpg
+2b126cff01.jpg
+2b13b82ead.jpg
+2b15ada604.jpg
+2b22a552d3.jpg
+2b22b25945.jpg
+2b27c5113b.jpg
+2b31b85ce7.jpg
+2b386deb7a.jpg
+2b40c73cea.jpg
+2b41d81215.jpg
+2b5278ec0b.jpg
+2b62c1a1fe.jpg
+2b6851fef4.jpg
+2b729ab583.jpg
+2b7f741336.jpg
+2b80692474.jpg
+2b9741e802.jpg
+2b97b411c1.jpg
+2b9e548289.jpg
+2bab9bd485.jpg
+2bc3311fc7.jpg
+2bc53baefd.jpg
+2bc5b32f07.jpg
+2bc9a70455.jpg
+2bcaa0952a.jpg
+2bcb94f40c.jpg
+2bccbbb586.jpg
+2bd0bef1b0.jpg
+2bd625964c.jpg
+2bdb01deab.jpg
+2bdcb7f738.jpg
+2bdd617760.jpg
+2be5ee456d.jpg
+2bebc0c0e3.jpg
+2bed94883e.jpg
+2bedb2db73.jpg
+2c030a50c5.jpg
+2c1928ba8d.jpg
+2c4425fa5c.jpg
+2c4829c0d8.jpg
+2c51bfd67d.jpg
+2c6f2a4553.jpg
+2c6fd04fbe.jpg
+2c7aa17512.jpg
+2c804f261d.jpg
+2c82657315.jpg
+2c94827ea4.jpg
+2caac0a658.jpg
+2cabc070de.jpg
+2cc5d0d36d.jpg
+2ccaa53145.jpg
+2cce4ccafc.jpg
+2ccf5d8d51.jpg
+2cd1135bbb.jpg
+2cdb79d93d.jpg
+2cdbf3701a.jpg
+2cdf699a42.jpg
+2cff5508ab.jpg
+2d0d258abc.jpg
+2d125a2750.jpg
+2d131bea99.jpg
+2d2603fe6a.jpg
+2d3247c5ab.jpg
+2d38818607.jpg
+2d4d05e184.jpg
+2d54495a40.jpg
+2d60fa95f2.jpg
+2d67bd63ce.jpg
+2d6f310618.jpg
+2d70786107.jpg
+2d7a79f999.jpg
+2d7fc374a1.jpg
+2d84f76ecd.jpg
+2d871c5d2d.jpg
+2d8d493285.jpg
+2d9297b006.jpg
+2d94236cf4.jpg
+2db314c970.jpg
+2dc3839775.jpg
+2dc6edf768.jpg
+2dc8e7ab68.jpg
+2dcaf4f1ae.jpg
+2dd45f13d7.jpg
+2dd8c59ace.jpg
+2dd95d82ef.jpg
+2dd99a60a4.jpg
+2dd99fe83a.jpg
+2dda2b515a.jpg
+2ddadc8ee8.jpg
+2ddca3e307.jpg
+2de079c0d4.jpg
+2de1295ec8.jpg
+2df7675678.jpg
+2df7db0398.jpg
+2df95b6bb6.jpg
+2dfc7e562c.jpg
+2dfed7b9a8.jpg
+2e0204afb1.jpg
+2e037d0348.jpg
+2e04274b65.jpg
+2e06038e86.jpg
+2e08500b6b.jpg
+2e0c6a3426.jpg
+2e15170436.jpg
+2e17194184.jpg
+2e20e24d05.jpg
+2e497b59b9.jpg
+2e4d50d9b5.jpg
+2e50bb7112.jpg
+2e5378f4e9.jpg
+2e548cf3cd.jpg
+2e6c18d4d1.jpg
+2e6ef86d11.jpg
+2e75827c95.jpg
+2e7fb1643f.jpg
+2e8873a75c.jpg
+2e9d39f020.jpg
+2eb21afce4.jpg
+2eb61c4aa6.jpg
+2ebe7ad44e.jpg
+2ec7bfdd42.jpg
+2ec7fbcb0a.jpg
+2ec8b2e403.jpg
+2edd6a9510.jpg
+2edd7f6426.jpg
+2eefbd311b.jpg
+2ef269215d.jpg
+2ef58d055d.jpg
+2efaeff89f.jpg
+2f0008de6a.jpg
+2f0c07b18d.jpg
+2f0faa8ec3.jpg
+2f1158d876.jpg
+2f1609d0ef.jpg
+2f1c47a72f.jpg
+2f1eaa286e.jpg
+2f24d3de52.jpg
+2f38df326c.jpg
+2f43cc2cf4.jpg
+2f5d01f24f.jpg
+2f60e2e1eb.jpg
+2f6a70ef7e.jpg
+2f6c63d1f1.jpg
+2f6e86181d.jpg
+2f81739e78.jpg
+2f8b8ee24f.jpg
+2f8f3d0911.jpg
+2fa15ee1a8.jpg
+2fa5bdaf8b.jpg
+2fac9a2c9d.jpg
+2fb7f7f441.jpg
+2fc747c9aa.jpg
+2fcb5b8b1b.jpg
+2fd3ac2e81.jpg
+2fd48c2d80.jpg
+2fda7a3145.jpg
+2fe0d0d947.jpg
+2fe51bf0d1.jpg
+3002b59676.jpg
+30051ee4a1.jpg
+3005430d29.jpg
+30075005ca.jpg
+3013a4c452.jpg
+301c11ee1c.jpg
+301db4839b.jpg
+304fe3afed.jpg
+305ec569bc.jpg
+306d1ff7be.jpg
+3076a5d361.jpg
+3083b0d08d.jpg
+308b4dbd6a.jpg
+309465d496.jpg
+30a6321da3.jpg
+30bc6ec89a.jpg
+30bcd78bd3.jpg
+30bede681f.jpg
+30c2c46109.jpg
+30c3c24113.jpg
+30c5fe4aeb.jpg
+30ca6254e7.jpg
+30cd7c7327.jpg
+30d0225e76.jpg
+30da287e62.jpg
+30df788a2b.jpg
+30e01d60e5.jpg
+30ea1ea341.jpg
+30fa73558b.jpg
+30fea35e76.jpg
+3100469503.jpg
+3106c00667.jpg
+310cf979ea.jpg
+310e8a5104.jpg
+3111a28983.jpg
+31185ad749.jpg
+311fa37c20.jpg
+312a1206ca.jpg
+312a9c874d.jpg
+313272b44a.jpg
+313b86c342.jpg
+314a36b899.jpg
+316b3720a1.jpg
+318b34c8ba.jpg
+319e707641.jpg
+31a3464eed.jpg
+31b6cee24a.jpg
+31be528ec0.jpg
+31c42d8d49.jpg
+31c6dfc997.jpg
+31ccb84ea3.jpg
+31ddfb4110.jpg
+31f298fb32.jpg
+31f38e649b.jpg
+31f85f532f.jpg
+31fa443bf2.jpg
+31fa9c1f5a.jpg
+31fd959687.jpg
+32045e78a3.jpg
+32133cf143.jpg
+322ed74368.jpg
+323a350f92.jpg
+323ea75397.jpg
+325f868e6e.jpg
+3262f8be53.jpg
+3269b71332.jpg
+3270803ec4.jpg
+327200cf59.jpg
+32835a4b6d.jpg
+3295271038.jpg
+32a47cb30f.jpg
+32a55996ec.jpg
+32a8508223.jpg
+32b7563849.jpg
+32ba785964.jpg
+32c51954fd.jpg
+32c5c1d8fd.jpg
+32c7dc03dc.jpg
+32c991be20.jpg
+32ca65987e.jpg
+32cc378a8d.jpg
+32d0ec6236.jpg
+32da4646e7.jpg
+32dfcd6359.jpg
+32e3a074ab.jpg
+32e70b0f53.jpg
+32f18e96db.jpg
+3305411c03.jpg
+3317432703.jpg
+331e369e0d.jpg
+3322e6491b.jpg
+3328abc4b0.jpg
+334b934ab2.jpg
+3357caf6ed.jpg
+33617b8dfa.jpg
+336d676d05.jpg
+337d2d900f.jpg
+33836b8ad0.jpg
+3395333a74.jpg
+3398a95e41.jpg
+33a2e66f7f.jpg
+33a7e37c0e.jpg
+33c028b6d4.jpg
+33c44d1886.jpg
+33c4659ae9.jpg
+33c48f1697.jpg
+33d494df10.jpg
+33d948a76a.jpg
+33e0c452f8.jpg
+33e2dadde0.jpg
+33e6cac66f.jpg
+33e7ef56d3.jpg
+33eb9f3d74.jpg
+33f01c31b3.jpg
+33f7ea3937.jpg
+33fe91efc4.jpg
+34204b79dd.jpg
+34214f8e73.jpg
+342605b812.jpg
+3426ca8534.jpg
+342d8b1f6d.jpg
+3433da4dcf.jpg
+343425c845.jpg
+34366016da.jpg
+343f724081.jpg
+3440f61518.jpg
+3441284576.jpg
+344a4aa3a4.jpg
+34529ae106.jpg
+345de705b9.jpg
+3479d2550b.jpg
+3483deb353.jpg
+348740609a.jpg
+348d6ded0d.jpg
+349537d78f.jpg
+349fbbee75.jpg
+34a5c6b9e7.jpg
+34ac57cf71.jpg
+34ade396a5.jpg
+34b8e5f702.jpg
+34bd0272d7.jpg
+34c054d349.jpg
+34c1bbc000.jpg
+34c8d0344b.jpg
+34cb76a905.jpg
+34d483f136.jpg
+34d619687c.jpg
+34dbc418f1.jpg
+34dcc16e48.jpg
+34dd57b626.jpg
+34e2242cb8.jpg
+34e48eacf9.jpg
+34e4dece1e.jpg
+34ec442c8c.jpg
+34ee85ac88.jpg
+3505ce9121.jpg
+351cdcc015.jpg
+353ef36e99.jpg
+35588a9aba.jpg
+35596f3a61.jpg
+35597f8ddc.jpg
+358430f1fe.jpg
+35b961cc96.jpg
+35c318b935.jpg
+35c563c044.jpg
+35ca4a89e5.jpg
+35d77fd8f9.jpg
+35d9fdf333.jpg
+35de99bb2f.jpg
+35e4fbbc00.jpg
+35f2a46b6e.jpg
+35f4fe89de.jpg
+35f7a48dac.jpg
+35f9d3ffdd.jpg
+3612656538.jpg
+3618f9ada2.jpg
+3628d7e3ee.jpg
+362e9bf2ef.jpg
+3636f65e5a.jpg
+363dd687ba.jpg
+36458e3d67.jpg
+3652524eec.jpg
+3656ceecea.jpg
+365fb7d1d9.jpg
+3664cfcf0c.jpg
+366b0a14e0.jpg
+368706589f.jpg
+368d7b7b1e.jpg
+369bb06041.jpg
+369c32e7b4.jpg
+369f9b268e.jpg
+36a7e316a6.jpg
+36b1550969.jpg
+36c17f90ab.jpg
+36c64f9cff.jpg
+36cbc9a7f4.jpg
+36cdc5282c.jpg
+36d467c1d6.jpg
+36e017ff4a.jpg
+36e746984a.jpg
+36f2158219.jpg
+36fe6a372f.jpg
+37065ce5c2.jpg
+3708605ebf.jpg
+371c920a7e.jpg
+37384ea36c.jpg
+3744cbf028.jpg
+374c977066.jpg
+375cae9a99.jpg
+375e1cb026.jpg
+376f099775.jpg
+379ea5dbf3.jpg
+37a288a16d.jpg
+37a6a1c4e7.jpg
+37c71f4e61.jpg
+37d04fdb5d.jpg
+37d34392eb.jpg
+37db19610e.jpg
+37db198c6c.jpg
+37e228bfa6.jpg
+37eabd3c50.jpg
+37ee76df71.jpg
+37f9c9eb9b.jpg
+37fe73ce26.jpg
+3826264e4a.jpg
+383439dee0.jpg
+383b6c27b5.jpg
+383ec64ad3.jpg
+38431292d1.jpg
+38496ff638.jpg
+3857adf671.jpg
+386756e960.jpg
+38777c3868.jpg
+388066a94e.jpg
+3881ae02d1.jpg
+3891555950.jpg
+389ddcfc3a.jpg
+38b21591f0.jpg
+38ba45bc18.jpg
+38cab74b1b.jpg
+38ce25cbea.jpg
+38d23dc53a.jpg
+38d37d5e8c.jpg
+38d550f892.jpg
+38d5594831.jpg
+38dca6c3c5.jpg
+38dcfca863.jpg
+38e24e78ab.jpg
+38eec993d6.jpg
+38f6b1b0d6.jpg
+392bf1da68.jpg
+392c5e79ca.jpg
+39385b8cc7.jpg
+393b58ad51.jpg
+393c047300.jpg
+393f2ad1fc.jpg
+3949310211.jpg
+39565df5d9.jpg
+396a433bcc.jpg
+396b3d55ae.jpg
+396fbd2d52.jpg
+3978ebdb51.jpg
+3979fb907b.jpg
+397febea5d.jpg
+3982493a8c.jpg
+398dad15f1.jpg
+398f0a7ae9.jpg
+3994c80bc9.jpg
+3995620f3e.jpg
+39a777179d.jpg
+39b4076e5e.jpg
+39b742f7da.jpg
+39bb3b2290.jpg
+39cce3ef08.jpg
+39ccf756d1.jpg
+39ce7be06b.jpg
+39d1413c42.jpg
+39d2eaf92b.jpg
+39d3058618.jpg
+39d58b0d3b.jpg
+39d5c57c75.jpg
+39dc13e015.jpg
+39e0045b3e.jpg
+39e296bf64.jpg
+39e54d3e8d.jpg
+39eb12071d.jpg
+39eb960ef5.jpg
+39ec607202.jpg
+39ef3afe35.jpg
+39f1343628.jpg
+39f418a23a.jpg
+39ff4f6aa6.jpg
+3a1e71a749.jpg
+3a2c7d8876.jpg
+3a2cf07216.jpg
+3a3953c910.jpg
+3a3ba14306.jpg
+3a6402028c.jpg
+3a6c975555.jpg
+3a8edbd8c0.jpg
+3a8fe6ebbc.jpg
+3a9668c3e4.jpg
+3aadc614b8.jpg
+3aae6a34c6.jpg
+3abb3f0d99.jpg
+3abded4a8e.jpg
+3ac002a6a4.jpg
+3ac35247a6.jpg
+3ad19d2ce3.jpg
+3ad4bbd50f.jpg
+3ad4e37858.jpg
+3adbad140f.jpg
+3ae1bf28c5.jpg
+3aeda49909.jpg
+3af6d490f4.jpg
+3afece59ef.jpg
+3b000c05ef.jpg
+3b071b72bc.jpg
+3b0a48dd0b.jpg
+3b24474de7.jpg
+3b2d0b5ecd.jpg
+3b2e40eb64.jpg
+3b2e56b2b6.jpg
+3b42514797.jpg
+3b585358a9.jpg
+3b5999ca2f.jpg
+3b702c1124.jpg
+3b7a55e193.jpg
+3b7e6fcd66.jpg
+3b80b7181f.jpg
+3b810c3f73.jpg
+3b8b507571.jpg
+3b8d1a03ce.jpg
+3b8f0a607f.jpg
+3b947ef176.jpg
+3b99dd481c.jpg
+3bbe6889e9.jpg
+3bcba416cb.jpg
+3bd15af01c.jpg
+3bd2106a64.jpg
+3bd4855adb.jpg
+3bd4977a86.jpg
+3be135305b.jpg
+3bedbf0df0.jpg
+3bf19389b8.jpg
+3bf3577778.jpg
+3bfa57c53a.jpg
+3bfece5b2f.jpg
+3bfffa7edd.jpg
+3c004c5a27.jpg
+3c04cb78f1.jpg
+3c17cc854a.jpg
+3c25a8d9ad.jpg
+3c504accf1.jpg
+3c53d67788.jpg
+3c56b492ca.jpg
+3c5b821f4a.jpg
+3c6b723d86.jpg
+3c6f3b63e4.jpg
+3c76c4ab55.jpg
+3c7cb9abae.jpg
+3c7dc24622.jpg
+3c8abf17a4.jpg
+3c8d168a89.jpg
+3c8fc39a68.jpg
+3cad6563a5.jpg
+3cadc4a7b4.jpg
+3cae0ce4c3.jpg
+3cb0963d0b.jpg
+3cb6ccf410.jpg
+3cbb3a416a.jpg
+3cc829a98c.jpg
+3cc9a6acb5.jpg
+3cd1cc4347.jpg
+3cde274cd1.jpg
+3ce184723f.jpg
+3ce3248c0c.jpg
+3ce347b251.jpg
+3ce7825862.jpg
+3cf10340e3.jpg
+3cf438a2ad.jpg
+3cf9efbd13.jpg
+3cfa0e2280.jpg
+3cfc54bfd2.jpg
+3cfd065aca.jpg
+3cfeb45c63.jpg
+3d054888a4.jpg
+3d0d49e74d.jpg
+3d0e25c7fc.jpg
+3d20771f58.jpg
+3d23ef35a6.jpg
+3d2d274acb.jpg
+3d2f657bc0.jpg
+3d3b30b677.jpg
+3d4c7dcaad.jpg
+3d50f7f5d5.jpg
+3d51679110.jpg
+3d62272f71.jpg
+3d6ae3952e.jpg
+3d8020dc10.jpg
+3d822cf01d.jpg
+3d8275de25.jpg
+3d8a49e2de.jpg
+3d959e53f6.jpg
+3d97f73b9e.jpg
+3db71009fb.jpg
+3dbaada79f.jpg
+3dcdbaabf9.jpg
+3dcf220ea0.jpg
+3dd64fd861.jpg
+3dd7c1c9d6.jpg
+3ddca27320.jpg
+3ddeb400bc.jpg
+3de0c9b504.jpg
+3de1ddee98.jpg
+3de27609ae.jpg
+3de6c5d3b8.jpg
+3de91d290f.jpg
+3de9e0d226.jpg
+3dfd2060e7.jpg
+3dfd90c4a3.jpg
+3e02f32726.jpg
+3e0e7db41c.jpg
+3e12c234a3.jpg
+3e227d3797.jpg
+3e2be0c1da.jpg
+3e3940c0d3.jpg
+3e3abb7458.jpg
+3e4a495588.jpg
+3e4e72ae08.jpg
+3e63e8d575.jpg
+3e770156e4.jpg
+3e88fc0138.jpg
+3e8c8fa2e0.jpg
+3e9105d4eb.jpg
+3eb9c4747c.jpg
+3ec32e10cb.jpg
+3ec480ee42.jpg
+3ec9ee626c.jpg
+3eccb61abb.jpg
+3ed1347071.jpg
+3ed992795a.jpg
+3edcaac9fe.jpg
+3ee3e0c120.jpg
+3eeaa4eac2.jpg
+3ef506707c.jpg
+3ef5ad979d.jpg
+3f017cb874.jpg
+3f0431b5a5.jpg
+3f1abdb411.jpg
+3f27c891b4.jpg
+3f293f8622.jpg
+3f335e6d88.jpg
+3f5c43ea8d.jpg
+3f66a7d89d.jpg
+3f6814fca7.jpg
+3f709c9cdf.jpg
+3f74a50507.jpg
+3f7ac5dd62.jpg
+3f7e178bfa.jpg
+3fba58950d.jpg
+3fbced6b04.jpg
+3fc4a0dfc2.jpg
+3fc6eaaeae.jpg
+3fcb1ba50e.jpg
+3fd70338f6.jpg
+3fd85569aa.jpg
+3fdb9693af.jpg
+3fdc0fb07c.jpg
+3fdd54522e.jpg
+3fdf128260.jpg
+3fea66a254.jpg
+3ff30e49b8.jpg
+3ffa095829.jpg
+40097c6800.jpg
+401f8f7a2b.jpg
+4023d9b0e9.jpg
+4026f135b0.jpg
+402a9d3357.jpg
+403c70eae9.jpg
+40515916d7.jpg
+4080607c2c.jpg
+408d0dccf4.jpg
+4093c46846.jpg
+40956af9e0.jpg
+40a4629187.jpg
+40a7cae762.jpg
+40b6cd77b6.jpg
+40bc503ea1.jpg
+40c905b749.jpg
+40c95e4a11.jpg
+40cc0ed4e2.jpg
+40ccf98e36.jpg
+40cde6e513.jpg
+40db0cdd42.jpg
+40dff054f4.jpg
+40e8d3d9c7.jpg
+40ebd1c22f.jpg
+40f0b7d547.jpg
+41021c5dcc.jpg
+410d72108a.jpg
+412ba526a2.jpg
+4155fa3210.jpg
+415b8c063d.jpg
+416203fc7a.jpg
+4162367bb8.jpg
+4162f457e4.jpg
+41974680ae.jpg
+419b2c7f49.jpg
+41a4db0866.jpg
+41b4d3566c.jpg
+41c1f35f3d.jpg
+41c5f1847d.jpg
+41d438d114.jpg
+41db3affa8.jpg
+41dcf78aa4.jpg
+41e204f3c3.jpg
+41e5d9ddcb.jpg
+4205530bc5.jpg
+420feb877e.jpg
+4219812fd8.jpg
+422e2b1a85.jpg
+422e42f8cd.jpg
+423d5d74fc.jpg
+424491a6dd.jpg
+424a763110.jpg
+424f501cf7.jpg
+425b262026.jpg
+427daa3582.jpg
+4280b69f69.jpg
+428a74971a.jpg
+428b0caffd.jpg
+429465cef7.jpg
+42948ee45a.jpg
+4297b15943.jpg
+429f416305.jpg
+42a63bc866.jpg
+42b1b08167.jpg
+42baaaae33.jpg
+42c186d9fd.jpg
+42cdbff20b.jpg
+42d933f346.jpg
+42df55664a.jpg
+42e40d395d.jpg
+42ed7614f3.jpg
+42ef00a305.jpg
+42f1efb2bb.jpg
+42f6416514.jpg
+431997d3bd.jpg
+432616cbf0.jpg
+435251367e.jpg
+435d7f641e.jpg
+4360a8c278.jpg
+4370455b95.jpg
+43812483cf.jpg
+438d1db371.jpg
+439b6073a7.jpg
+43a384bb59.jpg
+43a99c333d.jpg
+43aa6b932e.jpg
+43ac85caa0.jpg
+43b75378de.jpg
+43b7e3207e.jpg
+43ba578038.jpg
+43bdade3cb.jpg
+43cb80319e.jpg
+43cbb9624d.jpg
+43cc023a72.jpg
+43d18ba037.jpg
+43d2999ffd.jpg
+43d8788b03.jpg
+43de9812a4.jpg
+43ee33ab7c.jpg
+43ef7d3ba6.jpg
+43f2d719e7.jpg
+43fafa453a.jpg
+441aa9d6fd.jpg
+441d58ea7c.jpg
+441e385636.jpg
+442c0d82a6.jpg
+4431e89ecf.jpg
+44384a3eab.jpg
+444ad81931.jpg
+444de721cc.jpg
+4452b10bc8.jpg
+4459db57ba.jpg
+44839e9b2f.jpg
+448c5b86a0.jpg
+44a391efc6.jpg
+44ac06003d.jpg
+44ae190763.jpg
+44b1e91408.jpg
+44b929c161.jpg
+44bd4c7f4c.jpg
+44c182e193.jpg
+44c186332c.jpg
+44c590c718.jpg
+44ccd867f2.jpg
+44d954b314.jpg
+44db32ba57.jpg
+44de52f710.jpg
+44e30cea99.jpg
+44ec12a7c4.jpg
+44f3762dfa.jpg
+44fd525c15.jpg
+450ea8abef.jpg
+4518c17b13.jpg
+4530a7dbb7.jpg
+454ea61c0a.jpg
+455397c36e.jpg
+45572eea27.jpg
+455aedcda9.jpg
+4583567b25.jpg
+4585850fed.jpg
+458b9774da.jpg
+459aae5aa1.jpg
+459f3bd0db.jpg
+45a1ca49b9.jpg
+45a47cb80b.jpg
+45aabd808c.jpg
+45c11e3ea4.jpg
+45c4abecda.jpg
+45ca06baa9.jpg
+45ca230d4f.jpg
+45d489eca3.jpg
+45d793f0c7.jpg
+45d8aea413.jpg
+45d8c28fba.jpg
+45d9df57c8.jpg
+45da843e30.jpg
+45dd2c471f.jpg
+45e25635fd.jpg
+45e434d7cc.jpg
+45e4f32ac2.jpg
+45e794f612.jpg
+45e9498999.jpg
+45fc08221e.jpg
+460083b654.jpg
+4601b694e9.jpg
+4603d6c59e.jpg
+4603ee3a1a.jpg
+460c7ec872.jpg
+46232abfba.jpg
+462e34e96a.jpg
+462e3776ea.jpg
+464e557a32.jpg
+46599a2d64.jpg
+465f15ec92.jpg
+46608be135.jpg
+46659e5819.jpg
+46686eeaeb.jpg
+4668fee098.jpg
+466e7e7717.jpg
+467c6e1585.jpg
+4686a262b6.jpg
+468b37adc9.jpg
+46aa555acf.jpg
+46d248f0c3.jpg
+46d705d157.jpg
+46d71ef06a.jpg
+46db9edd4c.jpg
+46dccd77fe.jpg
+46dd321ba3.jpg
+46f140e9f3.jpg
+46f7310a60.jpg
+46f866dea3.jpg
+47033cc933.jpg
+471ad4ac7f.jpg
+471bb4e1ed.jpg
+471c9fa56d.jpg
+4720e2f414.jpg
+472e4f266a.jpg
+47303db6bc.jpg
+4730e94e10.jpg
+473804fd06.jpg
+473bcf5316.jpg
+47497c44bd.jpg
+4756fabca7.jpg
+476590243c.jpg
+4775eaa65d.jpg
+4787d24f49.jpg
+47897d5159.jpg
+47983a947b.jpg
+47af7b339d.jpg
+47b9777596.jpg
+47c772b0ad.jpg
+47d47c5ae3.jpg
+47d71bccac.jpg
+47e6809353.jpg
+47e9067be7.jpg
+47ed469723.jpg
+47edc0c4cd.jpg
+47ee6acc4d.jpg
+47f3e70a7d.jpg
+47fa9a7a11.jpg
+47fcc3313c.jpg
+480510ef30.jpg
+4815c35662.jpg
+4818b46cb3.jpg
+4829b537d4.jpg
+482a029bd6.jpg
+482eb005fb.jpg
+482f0d08ea.jpg
+4841da2637.jpg
+484c8d6ce7.jpg
+484e26de95.jpg
+4866b33258.jpg
+486c075e6a.jpg
+4876f9a672.jpg
+488aef0f8e.jpg
+48931a19ce.jpg
+4899bcbc65.jpg
+489e5891d0.jpg
+48c03e44f4.jpg
+48c06b57cb.jpg
+48c6a427c5.jpg
+48c8ee7119.jpg
+48d48b0f29.jpg
+48dfa723fb.jpg
+48e985db94.jpg
+48f0842ab6.jpg
+48f2c14356.jpg
+490bdcf936.jpg
+490d1461ce.jpg
+490e0f2aae.jpg
+4923a00256.jpg
+492ef65ddc.jpg
+493b71e6ba.jpg
+493cf0c01e.jpg
+494a728f9d.jpg
+495e4374c9.jpg
+495e64dd1b.jpg
+495f713219.jpg
+497440facf.jpg
+497bb7f5c5.jpg
+4986225098.jpg
+4994418593.jpg
+499ba2bc2d.jpg
+49abd8bbff.jpg
+49b0d5b994.jpg
+49b8b16d6a.jpg
+49c1cc6ceb.jpg
+49d0910e21.jpg
+49de2785a8.jpg
+49df495fd8.jpg
+49dfe170d6.jpg
+49e86725c0.jpg
+49f1d00657.jpg
+49ff3ba904.jpg
+4a07b020b8.jpg
+4a140a77ed.jpg
+4a21d874dd.jpg
+4a2746422b.jpg
+4a533f368c.jpg
+4a6745eb79.jpg
+4a7b786513.jpg
+4a7f3536d0.jpg
+4a81cd24bb.jpg
+4a846911e0.jpg
+4a8b443dc2.jpg
+4a9761a1bc.jpg
+4aa363fcfa.jpg
+4aae6b06af.jpg
+4aaf742676.jpg
+4aafe4cdf5.jpg
+4abb1b579b.jpg
+4ac078b19a.jpg
+4ac315c2c7.jpg
+4ac5a8dbbc.jpg
+4ac5d452d1.jpg
+4ad00cb6de.jpg
+4ad49df96e.jpg
+4adab3e58c.jpg
+4ade1b82c5.jpg
+4adfe4151f.jpg
+4ae3a12f1e.jpg
+4ae76fa7c0.jpg
+4af0a9c189.jpg
+4af8fb2ee1.jpg
+4b164aa005.jpg
+4b38e755cb.jpg
+4b43b0fc27.jpg
+4b450a0eda.jpg
+4b45c8131b.jpg
+4b4ed49b66.jpg
+4b615898b8.jpg
+4b822085e4.jpg
+4b85cb03a1.jpg
+4b8cdbd157.jpg
+4b8dcf65d4.jpg
+4b8f1200a0.jpg
+4b8f67d12a.jpg
+4b928dbe81.jpg
+4bb2bc874a.jpg
+4bc31a1e57.jpg
+4bc355359a.jpg
+4bcb285fb8.jpg
+4bd98a1855.jpg
+4bda804263.jpg
+4bda87720a.jpg
+4bdf11fae9.jpg
+4be292a6f2.jpg
+4bed79be4c.jpg
+4c032c52ee.jpg
+4c05334e8d.jpg
+4c05426aca.jpg
+4c118ce8a2.jpg
+4c1bdb7644.jpg
+4c21a39b9e.jpg
+4c227bcb61.jpg
+4c4d304c80.jpg
+4c4eab83a9.jpg
+4c58165f8c.jpg
+4c5d558d1f.jpg
+4c85152cdd.jpg
+4c8634f7a0.jpg
+4c8cb69155.jpg
+4cbceb341d.jpg
+4cc4a897f8.jpg
+4cc58ce310.jpg
+4ccaf75e7b.jpg
+4ccb238ce3.jpg
+4cd254e5ca.jpg
+4cd3d9710c.jpg
+4cd7c9a1eb.jpg
+4cdde45fdf.jpg
+4ce1b83f21.jpg
+4ceab60ade.jpg
+4cf055f543.jpg
+4cfb2762f6.jpg
+4d2a76ff7d.jpg
+4d2cfda952.jpg
+4d4afb13a2.jpg
+4d4e901a28.jpg
+4d60a5dbae.jpg
+4d68c8e210.jpg
+4d69b57c3d.jpg
+4d6d81e201.jpg
+4d789c32db.jpg
+4d857d129b.jpg
+4da3b39ea0.jpg
+4da406a1bf.jpg
+4da78d192f.jpg
+4dad6e87f7.jpg
+4dc2c2f9d2.jpg
+4dc3577a5c.jpg
+4dc74840c6.jpg
+4dd562b6fe.jpg
+4de1141339.jpg
+4de20e7246.jpg
+4de7d38fc6.jpg
+4de89f9051.jpg
+4dea82009d.jpg
+4df218300f.jpg
+4dfc7ac873.jpg
+4dfc7f0fc7.jpg
+4e043d7abc.jpg
+4e12e5d02a.jpg
+4e17929c8e.jpg
+4e1ad244ba.jpg
+4e20f3a8e3.jpg
+4e312c9d9d.jpg
+4e4f2df517.jpg
+4e65b706e3.jpg
+4e76b82aed.jpg
+4e7d0a17ef.jpg
+4e8c890470.jpg
+4e94d46219.jpg
+4e9520d026.jpg
+4ed162759c.jpg
+4ed4fd87c0.jpg
+4ed9e510bd.jpg
+4eda151e77.jpg
+4edd042d41.jpg
+4ef2a1badd.jpg
+4efec9f327.jpg
+4f079f3f03.jpg
+4f12c26e8c.jpg
+4f174f35dd.jpg
+4f2a753097.jpg
+4f2bb3f937.jpg
+4f3834fdae.jpg
+4f3b038aa6.jpg
+4f41348492.jpg
+4f4f461b7a.jpg
+4f5bd6ed43.jpg
+4f5fea3883.jpg
+4f60276500.jpg
+4f6b8e0748.jpg
+4f9ad511ec.jpg
+4f9ff55bb0.jpg
+4fa33c29f2.jpg
+4fac1a1123.jpg
+4fb3cb4f52.jpg
+4fb499f12d.jpg
+4fd5982a88.jpg
+4fd7bb7b48.jpg
+4fd814b738.jpg
+4fda3c8227.jpg
+4fdf485381.jpg
+4fe5fe2e88.jpg
+4fe788d5b1.jpg
+4fe804ea50.jpg
+4fe94696cc.jpg
+4ffb835fb9.jpg
+4ffce76192.jpg
+500238d0da.jpg
+500599e84e.jpg
+50075692d9.jpg
+500a6e6c0c.jpg
+502998e75d.jpg
+503bf41744.jpg
+5042ce5fe4.jpg
+50562948c1.jpg
+505f216748.jpg
+506ce552b2.jpg
+506e270291.jpg
+50734b6209.jpg
+507781203e.jpg
+508b87dbf0.jpg
+509c7a8a7a.jpg
+50b1df22bb.jpg
+50c2643d3f.jpg
+50cc8f5800.jpg
+50cd2b41ac.jpg
+50f0348fc4.jpg
+50f15ece16.jpg
+50fb6229af.jpg
+50ffbe6a3f.jpg
+5106956359.jpg
+51097ac8e7.jpg
+510f8f0812.jpg
+5110f9d1c8.jpg
+511a28741f.jpg
+5120440559.jpg
+51214eb753.jpg
+512a742992.jpg
+513dfe5269.jpg
+514991348a.jpg
+5155c6479e.jpg
+5158dbb65b.jpg
+515c97d7a7.jpg
+515f5e961e.jpg
+5163cbf0ad.jpg
+516848ea8b.jpg
+517229eb0c.jpg
+518d6b06fc.jpg
+518f223b2c.jpg
+519a77f6a5.jpg
+519b1f0b7e.jpg
+51a499a584.jpg
+51a7fbb971.jpg
+51b4ba2085.jpg
+51cb94fc4d.jpg
+51cd72470b.jpg
+51d0950f88.jpg
+51d1a2a390.jpg
+51d34fbe0a.jpg
+51dd261ef3.jpg
+51de345256.jpg
+51e0623c04.jpg
+51e0d38808.jpg
+51e3a2d8c9.jpg
+51ea3fa1e6.jpg
+51f7f963f0.jpg
+51fdcf7974.jpg
+52004a56db.jpg
+5200554700.jpg
+52077c2d56.jpg
+5207ae7bf4.jpg
+522ff0c12a.jpg
+5247b36c3c.jpg
+5249e639b6.jpg
+52504396e8.jpg
+525b3b8d8e.jpg
+525d22e50e.jpg
+5268b47b91.jpg
+527954d870.jpg
+527a63b62c.jpg
+5285d87233.jpg
+529f296efb.jpg
+52b5616956.jpg
+52ba6502f8.jpg
+52c9df8d7f.jpg
+52d3976131.jpg
+52d9d04b7e.jpg
+52de401699.jpg
+52de73a667.jpg
+52e1ca47c1.jpg
+52e85d1f6b.jpg
+52e9fa4522.jpg
+52fd9ba558.jpg
+52fe387570.jpg
+5300689d5f.jpg
+5308c8b3e0.jpg
+53225d663b.jpg
+5324ea1e23.jpg
+5325094c91.jpg
+532b557500.jpg
+53490e0317.jpg
+53874a4f5e.jpg
+538bb5674a.jpg
+539e08811b.jpg
+53a5bb3bf6.jpg
+53c15dc005.jpg
+53c2c80626.jpg
+53cbf82ebc.jpg
+53d33841f6.jpg
+53d45ca1cd.jpg
+53d47c3620.jpg
+53dc68ae2c.jpg
+53dca96741.jpg
+53ddc0d277.jpg
+53e7f6ba1e.jpg
+53ef61effe.jpg
+53fc9cafac.jpg
+5408f3d0cb.jpg
+540dd4050c.jpg
+5434e0d027.jpg
+5439a18aae.jpg
+5449847e56.jpg
+544b3085b0.jpg
+544d780d7a.jpg
+544e4e6089.jpg
+545733ac3a.jpg
+5458ce416f.jpg
+545c81cc72.jpg
+54718b2eb9.jpg
+548ed9f097.jpg
+5491bd7f07.jpg
+54a22f82e2.jpg
+54a7d2c2e6.jpg
+54b90db20c.jpg
+54c777ff92.jpg
+54cdb035c3.jpg
+54d0ed031e.jpg
+54d1530a58.jpg
+54d2f5bd55.jpg
+54d439da4c.jpg
+54e6dbd327.jpg
+54eb4991ef.jpg
+54f13fd672.jpg
+54fb00e8ec.jpg
+55025f5532.jpg
+5509dabe01.jpg
+5509f3ad1a.jpg
+55149fbde6.jpg
+55162b8b20.jpg
+551b70b659.jpg
+551e87de65.jpg
+5520d8317b.jpg
+5536aca8f5.jpg
+5544cc5678.jpg
+554c7d7c6e.jpg
+555e420ce8.jpg
+556ebd6c3a.jpg
+556ec8c705.jpg
+556f37b366.jpg
+557d224922.jpg
+5584a988b7.jpg
+5593b35725.jpg
+55ac245de7.jpg
+55accb0df8.jpg
+55b2494ac3.jpg
+55c2ec0015.jpg
+55c8f96ac7.jpg
+55cc9f5074.jpg
+55d2106072.jpg
+55d3a5c11f.jpg
+55d748c4db.jpg
+55db266b4a.jpg
+55eb7c3691.jpg
+55f1a3a7a3.jpg
+561e61a8ed.jpg
+562bcb869e.jpg
+562c4875cf.jpg
+56323fa71b.jpg
+5641abb2bb.jpg
+5643b5f02d.jpg
+565c3bf955.jpg
+565e1b3b93.jpg
+5666ee0caf.jpg
+56711b9a43.jpg
+5680f76757.jpg
+568276dd51.jpg
+569313f1b3.jpg
+569477d282.jpg
+56aa83267c.jpg
+56bbaef7fd.jpg
+56c13c2565.jpg
+56c5e7e56e.jpg
+56c9d29eb8.jpg
+56cc2924fb.jpg
+56ce77bd51.jpg
+56d94523aa.jpg
+56dda3df1b.jpg
+56defd68a1.jpg
+56e5df295a.jpg
+56f3ba3b7a.jpg
+56f4ef9754.jpg
+56fb9f6de4.jpg
+56ff44ba44.jpg
+570de92d14.jpg
+571b1faad8.jpg
+5725097380.jpg
+572ec26e26.jpg
+572f1c5688.jpg
+57388a802e.jpg
+573dc09c4a.jpg
+574227a243.jpg
+5752582166.jpg
+5752b5e1f6.jpg
+5760a61944.jpg
+5766a98e96.jpg
+576f229924.jpg
+577403859e.jpg
+577ddf8cbc.jpg
+5786d14075.jpg
+578ff10825.jpg
+5791e84be5.jpg
+579d309c67.jpg
+57a71e8c40.jpg
+57aace8d6d.jpg
+57d4d79f6f.jpg
+57d4f1affd.jpg
+57d856da13.jpg
+57df468295.jpg
+57e2e37c16.jpg
+57e8fac630.jpg
+57e9c5b96c.jpg
+57f2834652.jpg
+57fb682e85.jpg
+57fc5d953d.jpg
+58046d8ea1.jpg
+580aedb9e8.jpg
+580b11a9b0.jpg
+580ee050fe.jpg
+5812f65402.jpg
+5831d42227.jpg
+583cc773f4.jpg
+5848ec3604.jpg
+584c85c694.jpg
+584eefab86.jpg
+585daf7aaa.jpg
+5861dae004.jpg
+586d517a27.jpg
+5878155838.jpg
+587ab3b8fe.jpg
+587ca0804c.jpg
+587e2aa0d1.jpg
+58860a9e53.jpg
+5894f12a88.jpg
+589cff3624.jpg
+58c33bb1fa.jpg
+58c6dbb15b.jpg
+58c834978a.jpg
+58c8394b9c.jpg
+58c9da27e3.jpg
+58cb5ad81b.jpg
+58cff4e55c.jpg
+58d0b2233b.jpg
+58d357163c.jpg
+58d527ad59.jpg
+58d6300e3b.jpg
+58d8f1abe0.jpg
+58da3b1ed7.jpg
+58dab6b015.jpg
+58dacdc3fe.jpg
+58ebd09d97.jpg
+58ef27bc6f.jpg
+58f0551d9f.jpg
+59021ecccb.jpg
+590e3a02f2.jpg
+5912f2e148.jpg
+592e50d009.jpg
+593a7e147a.jpg
+593c043b09.jpg
+5940db00e9.jpg
+5944732d83.jpg
+594c4cfe7e.jpg
+594db0c77a.jpg
+59585037e7.jpg
+596bd20a56.jpg
+598a111816.jpg
+5990fe2008.jpg
+599285c92c.jpg
+59a5357183.jpg
+59a5b38d24.jpg
+59b6679359.jpg
+59c5be94d1.jpg
+59c65a861d.jpg
+59c9195d9a.jpg
+59cafa2e55.jpg
+59ccfcdf64.jpg
+59dd48340a.jpg
+59de70687a.jpg
+59dfda7404.jpg
+59eb4e4f8b.jpg
+59ed8059d6.jpg
+59eddcc363.jpg
+59f0029b6b.jpg
+59fc432e67.jpg
+5a06efcb98.jpg
+5a2709badc.jpg
+5a288a8dcc.jpg
+5a2e776068.jpg
+5a3ef2aaef.jpg
+5a446355aa.jpg
+5a54558824.jpg
+5a6b319dc6.jpg
+5a6f3c54a3.jpg
+5a756552c0.jpg
+5a75f23137.jpg
+5a76c39155.jpg
+5a7c35b12c.jpg
+5a7ed0d685.jpg
+5aad7704dc.jpg
+5ab3f08686.jpg
+5abadb8505.jpg
+5acbb99ae1.jpg
+5adb207f31.jpg
+5adfe46863.jpg
+5ae03d46af.jpg
+5ae5bbe40b.jpg
+5ae6e73667.jpg
+5aec518e85.jpg
+5af01fb5d1.jpg
+5afb6bd872.jpg
+5b0018ef0a.jpg
+5b0c0faa16.jpg
+5b0f1530f9.jpg
+5b13cdca80.jpg
+5b1e29f549.jpg
+5b29437a74.jpg
+5b2bab096c.jpg
+5b3870d4fa.jpg
+5b4bef995c.jpg
+5b4bf7aeed.jpg
+5b56559e7a.jpg
+5b58cfa3dc.jpg
+5b5cc01e62.jpg
+5b62917c9a.jpg
+5b6660b31a.jpg
+5b9325feda.jpg
+5b96e0769a.jpg
+5baa6ec254.jpg
+5bd36dc0dc.jpg
+5bdadc6c75.jpg
+5be091d0b1.jpg
+5be285787c.jpg
+5be44a3fe4.jpg
+5be7bc2463.jpg
+5bf04cd09c.jpg
+5bf5a63ee9.jpg
+5bf7f0a54d.jpg
+5c1d02e7da.jpg
+5c256b19f8.jpg
+5c3f1df607.jpg
+5c444854bb.jpg
+5c48288033.jpg
+5c4cd7c604.jpg
+5c5a7de594.jpg
+5c5f6ab739.jpg
+5c646574d1.jpg
+5c67819b7e.jpg
+5c6b6fc34a.jpg
+5c7d060f5a.jpg
+5c82f1a8eb.jpg
+5c8a4263d4.jpg
+5c8c8cef43.jpg
+5c90b65fca.jpg
+5c944ef9ab.jpg
+5cc2562363.jpg
+5cc6adf75e.jpg
+5cd16a2157.jpg
+5cd22e4189.jpg
+5cd54de13a.jpg
+5cda058595.jpg
+5ced45cd42.jpg
+5cf3386b55.jpg
+5d08c39177.jpg
+5d10c46ffe.jpg
+5d11e4982a.jpg
+5d1756f5ce.jpg
+5d1d85f3d4.jpg
+5d27b4da50.jpg
+5d353a2e18.jpg
+5d3a0efe5a.jpg
+5d3bee1e40.jpg
+5d3dff8144.jpg
+5d509b09c4.jpg
+5d5803cbae.jpg
+5d58f14d51.jpg
+5d615d87be.jpg
+5d6e7f4ef4.jpg
+5d7042a4b9.jpg
+5d7b1863af.jpg
+5d7c89b387.jpg
+5d8e0163b2.jpg
+5d9322f552.jpg
+5db4bac5bb.jpg
+5dbac2d1d8.jpg
+5dbcf2c918.jpg
+5dc2ed0800.jpg
+5dc50f1d81.jpg
+5dc61a6319.jpg
+5dc79e1dec.jpg
+5dcd9de6b7.jpg
+5dd5811373.jpg
+5ddbf9305f.jpg
+5dde1bd74e.jpg
+5de3187e9e.jpg
+5dee2ac99d.jpg
+5e02881bac.jpg
+5e1029f60a.jpg
+5e14c8b5a1.jpg
+5e1df8fe72.jpg
+5e2a1e0ed3.jpg
+5e31bf7d29.jpg
+5e6ef94332.jpg
+5e7162ea09.jpg
+5e785714b4.jpg
+5e8076175b.jpg
+5e8a365312.jpg
+5e8f201fdc.jpg
+5e974b5b2a.jpg
+5ec1887cbd.jpg
+5ec8a73eea.jpg
+5ecadcb3ca.jpg
+5ed24c0d60.jpg
+5ee04d0975.jpg
+5ee06f31bc.jpg
+5ee51624f7.jpg
+5ee6ef7b16.jpg
+5ee8408aa2.jpg
+5eea6ea5cc.jpg
+5ef5ae14c0.jpg
+5eff150e8d.jpg
+5f0bcba571.jpg
+5f0e7454e2.jpg
+5f0eaa330e.jpg
+5f2bddd646.jpg
+5f2e533772.jpg
+5f3166ff92.jpg
+5f43c6a673.jpg
+5f4c2e1d2f.jpg
+5f57c9cb02.jpg
+5f7d3972b1.jpg
+5f7fdd8f9f.jpg
+5f87304b89.jpg
+5f95b8ea80.jpg
+5f95beded8.jpg
+5faaa92f03.jpg
+5facfceb08.jpg
+5fb120821f.jpg
+5fc21c172c.jpg
+5fc59ecfc5.jpg
+5fc5a2aa90.jpg
+5fd11c7f1a.jpg
+5fd1376543.jpg
+5fd6a753b4.jpg
+5fdabd74be.jpg
+5fdce43b7a.jpg
+5fdd879301.jpg
+5fe366306a.jpg
+5fe918eb70.jpg
+5fe967c808.jpg
+5fe9b84128.jpg
+5ff1be002c.jpg
+5ff358149f.jpg
+5ff7b53e10.jpg
+5ffe832b69.jpg
+60070381b6.jpg
+601f22ff38.jpg
+603b997ad8.jpg
+604b56a0ae.jpg
+6053495556.jpg
+605d5be57a.jpg
+605feb233c.jpg
+606f035981.jpg
+60740588f3.jpg
+608501aa55.jpg
+608530dda4.jpg
+60862c905a.jpg
+6095a9ba11.jpg
+609d1d9fae.jpg
+60a299f361.jpg
+60c66227ad.jpg
+60cb64755b.jpg
+60cc53e796.jpg
+60d238d3ac.jpg
+60d47b7038.jpg
+60db18fcef.jpg
+60deb136d8.jpg
+60debddfcc.jpg
+60e70f5033.jpg
+60e859fe4a.jpg
+60ecd4e607.jpg
+60fa75a6b0.jpg
+60ffd3d303.jpg
+610073f8d9.jpg
+61028e2f1b.jpg
+6113fa809f.jpg
+6114a423d5.jpg
+612babb1b9.jpg
+613281f9c3.jpg
+613b949f0e.jpg
+614e5b7498.jpg
+61615f7053.jpg
+6164ebd76b.jpg
+616a604c3c.jpg
+61771eb2f7.jpg
+617b1c970a.jpg
+617bac782a.jpg
+617ce24f75.jpg
+61802ea85b.jpg
+618afc45a4.jpg
+6192e2361d.jpg
+61a961cc7b.jpg
+61c1ea1682.jpg
+61c7f176d4.jpg
+61c90e6521.jpg
+61d021ba55.jpg
+61d35f33bb.jpg
+61d636fed4.jpg
+61d7cae943.jpg
+61de337ecc.jpg
+61e530e5b4.jpg
+61e700ca97.jpg
+61ea660def.jpg
+61ebb842e2.jpg
+620feb3b42.jpg
+622c812da0.jpg
+6235bc36a5.jpg
+623b5965ab.jpg
+623c2a3444.jpg
+625e31527a.jpg
+626608ab55.jpg
+626f31f552.jpg
+6273dbe670.jpg
+627ce675be.jpg
+627eb539f1.jpg
+62926d033c.jpg
+629655ce7b.jpg
+629c0aa814.jpg
+62b2290155.jpg
+62c2c6101d.jpg
+62c5c94630.jpg
+62c7d49490.jpg
+62d4614c82.jpg
+62da85e04e.jpg
+62dab407c3.jpg
+62df951ba6.jpg
+62e2c7b796.jpg
+62f9ee370a.jpg
+62fa056269.jpg
+62fdffdaef.jpg
+630a321be2.jpg
+632030a0cc.jpg
+6320bd64a2.jpg
+632b51c683.jpg
+632f12e104.jpg
+6345f731d9.jpg
+634bfbb4f3.jpg
+637a059cf8.jpg
+638014bef1.jpg
+638bf68b53.jpg
+638bf8fcd0.jpg
+638dfaa981.jpg
+639aa05c0c.jpg
+63aca7f84d.jpg
+63ba3d6e2b.jpg
+63bbb210e4.jpg
+63c61efeb3.jpg
+63cb1d4bc4.jpg
+63cfb56e66.jpg
+63dae45462.jpg
+63e483e612.jpg
+63ea8dbc2b.jpg
+63edbebc1d.jpg
+63f150ce18.jpg
+63fe622a97.jpg
+6402df9aa1.jpg
+6403d926ad.jpg
+640afbba4d.jpg
+6450767d64.jpg
+64619b1bfc.jpg
+64774901b5.jpg
+64779a56c3.jpg
+647c08cc32.jpg
+6486b7e268.jpg
+648b2d2c84.jpg
+648c1d2050.jpg
+648cf55145.jpg
+649109fa9d.jpg
+64b9ce9544.jpg
+64c35ad53b.jpg
+64c904a0ba.jpg
+64d096f6c8.jpg
+64d9548ab3.jpg
+64dbe9407e.jpg
+64dc8a1fe1.jpg
+64dcb8d860.jpg
+64ddd255e2.jpg
+64ddebd16d.jpg
+64de168bba.jpg
+64df6db409.jpg
+64e110579d.jpg
+64e16315c6.jpg
+6500bbd377.jpg
+650568c763.jpg
+65071ac365.jpg
+6508a69e36.jpg
+650c2b5ac7.jpg
+6512b46c75.jpg
+65143fe5ad.jpg
+651b9b612c.jpg
+654e958552.jpg
+65558955d8.jpg
+655b7c7da2.jpg
+655e9f530f.jpg
+6565bc54a3.jpg
+65a286e3d1.jpg
+65b06cee66.jpg
+65b561ffa5.jpg
+65c8b7f023.jpg
+65d479ece6.jpg
+65d7075e0c.jpg
+65d7134410.jpg
+65de8b75cf.jpg
+65dfa3643b.jpg
+65f2f06c89.jpg
+65fdd4facb.jpg
+660622d236.jpg
+661d0936d9.jpg
+661daef7ed.jpg
+6622273dad.jpg
+6635be6a5a.jpg
+664d0c09dd.jpg
+66561ab77b.jpg
+66587264f8.jpg
+66617d051b.jpg
+66696a5775.jpg
+666d80a54e.jpg
+666e3f5a73.jpg
+66802c2246.jpg
+6695e8f5c2.jpg
+669f82cd26.jpg
+66a245da06.jpg
+66a349dab0.jpg
+66a3eacd66.jpg
+66a50de09c.jpg
+66af5ff752.jpg
+66bb9db1ad.jpg
+66c88b059e.jpg
+66cd412990.jpg
+66d1afbeb0.jpg
+66d23ca7d8.jpg
+66d274e1f0.jpg
+66d2f98e51.jpg
+66dc3d2cc1.jpg
+66e2ff0be6.jpg
+66e4bc9440.jpg
+66e63ae728.jpg
+66e7ed6865.jpg
+66e8b8b6dc.jpg
+66ea988a7d.jpg
+66f7ba4732.jpg
+66fac1975a.jpg
+66fc0d7c36.jpg
+67001afee3.jpg
+67064fad7b.jpg
+670e004027.jpg
+67199a60ed.jpg
+67266cbecc.jpg
+6744fd2bb8.jpg
+674e0b31f4.jpg
+674e3c0a09.jpg
+675d800f87.jpg
+6768b29751.jpg
+676fd31ecb.jpg
+67827a91f9.jpg
+678ab2ea13.jpg
+678afd3e20.jpg
+679405a670.jpg
+6798372c08.jpg
+679b811827.jpg
+679f10db89.jpg
+67aa3188fe.jpg
+67ac0aa670.jpg
+67bb213f33.jpg
+67bee37c7a.jpg
+67c4bec4c6.jpg
+67c82a0f0d.jpg
+67c8394802.jpg
+67c9174d81.jpg
+67d1e7ac11.jpg
+67d3787cfa.jpg
+67d389b5f4.jpg
+67d4da8828.jpg
+67e5783c4e.jpg
+67e911383a.jpg
+67f18528ce.jpg
+67fe7768b7.jpg
+68077fe0bc.jpg
+6818aa0105.jpg
+681ddda26b.jpg
+682d4087a7.jpg
+683d3d3f24.jpg
+68438520f6.jpg
+687f54400a.jpg
+688b048f08.jpg
+6894e8da4c.jpg
+6897f2d0bb.jpg
+689cd413bd.jpg
+68acd7880a.jpg
+68b6418be2.jpg
+68b8241411.jpg
+68c596c720.jpg
+68cb81135b.jpg
+68cc4ac95b.jpg
+68ceb11799.jpg
+68ceb20bc5.jpg
+68d547b311.jpg
+68d6148556.jpg
+68d7b629ba.jpg
+68dcd5dea5.jpg
+68dd6486b6.jpg
+68e29eb255.jpg
+68e54ca6c6.jpg
+68e5e2d756.jpg
+68e7c0dcdf.jpg
+68ea7b51bf.jpg
+68f5e7064a.jpg
+69067fb4fb.jpg
+691dd29538.jpg
+6945fb3eb8.jpg
+694cfb1269.jpg
+6951947730.jpg
+6966924621.jpg
+6975c98cef.jpg
+6984fa30eb.jpg
+69a4f314a8.jpg
+69baf9d474.jpg
+69caa6d17e.jpg
+69ceab316b.jpg
+69d5ad9730.jpg
+69d6df42e0.jpg
+69d8cfa604.jpg
+69e3e370dc.jpg
+69e5225541.jpg
+6a00f63712.jpg
+6a0de82e4d.jpg
+6a1016412a.jpg
+6a16ba1a2f.jpg
+6a1e4cbe28.jpg
+6a1eaab2ff.jpg
+6a37b31875.jpg
+6a43a6c57a.jpg
+6a47edbebc.jpg
+6a64107599.jpg
+6a6486711b.jpg
+6a67d8e132.jpg
+6a6de47cd7.jpg
+6a7640d69b.jpg
+6a8442e1fb.jpg
+6a8724ebc3.jpg
+6a8b965ba1.jpg
+6a9cabc513.jpg
+6aa102fdd8.jpg
+6ab18b5951.jpg
+6ab351f001.jpg
+6ac06cc852.jpg
+6ac1f2d41c.jpg
+6acee71f3f.jpg
+6ad6b27d80.jpg
+6adab5e725.jpg
+6adfb51b5c.jpg
+6adfd81cbb.jpg
+6ae9635673.jpg
+6aea228257.jpg
+6aeb18e951.jpg
+6aef34a797.jpg
+6aefc82529.jpg
+6af2105ce6.jpg
+6afa0c6ad8.jpg
+6b02d25d04.jpg
+6b05410c5f.jpg
+6b16dc4c9a.jpg
+6b1c39d74e.jpg
+6b316ac331.jpg
+6b40b98e8f.jpg
+6b4a618a95.jpg
+6b5320a01c.jpg
+6b5667ec6e.jpg
+6b6c53165a.jpg
+6b7713f4a2.jpg
+6b7ee26536.jpg
+6b8527d645.jpg
+6b8e8e3c31.jpg
+6b9aab1044.jpg
+6bab6e3ec2.jpg
+6bd45139d3.jpg
+6bd779d5ee.jpg
+6bda3da6d7.jpg
+6bf11ac260.jpg
+6bf157ea92.jpg
+6bf5a03f1f.jpg
+6bfd4bae8d.jpg
+6c0156aab8.jpg
+6c0fd7035b.jpg
+6c11e6178f.jpg
+6c13efb46d.jpg
+6c159ddb98.jpg
+6c215c18d5.jpg
+6c2ca39f47.jpg
+6c3265ec97.jpg
+6c3a0e5b8f.jpg
+6c41a322d9.jpg
+6c59bd8f1f.jpg
+6c6aeba071.jpg
+6c75837500.jpg
+6c81f91c3b.jpg
+6c851bc5cd.jpg
+6c8a3f18db.jpg
+6c8c8baff8.jpg
+6c9577a2f9.jpg
+6c981771c0.jpg
+6c9857aa32.jpg
+6c9dd306b6.jpg
+6caa7f9cf1.jpg
+6cb90ddea7.jpg
+6cc51bedff.jpg
+6cd075f143.jpg
+6cd0c43cd9.jpg
+6ce1490279.jpg
+6ce26dec07.jpg
+6ce40d00b1.jpg
+6ce48ef329.jpg
+6cf340ceb8.jpg
+6cf526651e.jpg
+6cfa97e75b.jpg
+6cff5f6361.jpg
+6d11ebccfd.jpg
+6d131e1628.jpg
+6d18abe16a.jpg
+6d25cdb9bc.jpg
+6d2ef59644.jpg
+6d3233f9b4.jpg
+6d4c16ea58.jpg
+6d4dcac0e7.jpg
+6d5f826248.jpg
+6d64fdccba.jpg
+6d65125c53.jpg
+6d7cbe849d.jpg
+6d7f55084d.jpg
+6d89ea86c5.jpg
+6d90517f3f.jpg
+6da66ba982.jpg
+6db01c37ae.jpg
+6dc451010f.jpg
+6dd215d6c4.jpg
+6de188105b.jpg
+6de2f92198.jpg
+6de810d29c.jpg
+6deaba3bf1.jpg
+6deade086e.jpg
+6df09e736f.jpg
+6df907b0b3.jpg
+6e0294669b.jpg
+6e227603c0.jpg
+6e59ac9e6f.jpg
+6e66333515.jpg
+6e6bfd6b50.jpg
+6e759f2590.jpg
+6e86672002.jpg
+6e891b56c9.jpg
+6e909b0c02.jpg
+6e91512ca3.jpg
+6e9971f0df.jpg
+6e9ad0ea17.jpg
+6ea53f3303.jpg
+6ead3e4b87.jpg
+6eb0188053.jpg
+6ec4d8495c.jpg
+6ec5a84bd9.jpg
+6ecb763533.jpg
+6ecc5e4fa1.jpg
+6ed104f4c1.jpg
+6ed4dfe30c.jpg
+6eda135434.jpg
+6ee1601085.jpg
+6ee9351b16.jpg
+6eec228c7e.jpg
+6eecd787bb.jpg
+6ef26e9a49.jpg
+6efbbf84b0.jpg
+6f167b216f.jpg
+6f1da6ad83.jpg
+6f234e4562.jpg
+6f25c3ab65.jpg
+6f364f47e7.jpg
+6f41749b6b.jpg
+6f50459f10.jpg
+6f62952887.jpg
+6f62d092a7.jpg
+6f66506efb.jpg
+6f6e8229a8.jpg
+6f7284c81c.jpg
+6f8bf874d1.jpg
+6f9c8de503.jpg
+6fa96d76a1.jpg
+6faa478441.jpg
+6fb616875e.jpg
+6fb9f98f56.jpg
+6fba401871.jpg
+6fc009ccbc.jpg
+6fc75de0d4.jpg
+6fd298ee31.jpg
+6fd302a241.jpg
+6fd59e213b.jpg
+6fd6d90af0.jpg
+6fde541068.jpg
+6fdf586629.jpg
+6fdf62a42f.jpg
+6fdf8c27c0.jpg
+6fe0924dec.jpg
+6fe4f7724a.jpg
+6ff433aec4.jpg
+6ff4b42c21.jpg
+6ffd07c2e3.jpg
+700a420c62.jpg
+7020f6f39a.jpg
+702bc2bc2a.jpg
+70321d0c50.jpg
+7039157baa.jpg
+703bffa333.jpg
+70435ad287.jpg
+70483bb011.jpg
+704ae8aa91.jpg
+704e6fe216.jpg
+7052b49a36.jpg
+705a551c18.jpg
+70703ab023.jpg
+707cfb0749.jpg
+707df45167.jpg
+707fde35c7.jpg
+709fd97ff2.jpg
+70a2987306.jpg
+70ab084799.jpg
+70ba868fb3.jpg
+70c188f274.jpg
+70c1fc8ce7.jpg
+70c361b1fe.jpg
+70c45db041.jpg
+70ca54172c.jpg
+70cbd3d323.jpg
+70cc26499f.jpg
+70ceb2fae7.jpg
+70d18dd65c.jpg
+70d654c341.jpg
+70dd43ce37.jpg
+70e245bb0c.jpg
+70eaf7274b.jpg
+70f31b70cd.jpg
+70fb21e3a3.jpg
+71134ff0c2.jpg
+712216f064.jpg
+712216f5ad.jpg
+7124f5ce90.jpg
+712c1837c3.jpg
+713c14f023.jpg
+7149ee6f0e.jpg
+715070ad6b.jpg
+715221e110.jpg
+715a513301.jpg
+717967d863.jpg
+7189c225b5.jpg
+719209904f.jpg
+7194777526.jpg
+719ebd50eb.jpg
+71a3d4815c.jpg
+71be9e0226.jpg
+71c76c2423.jpg
+71c9817899.jpg
+71cabb58ee.jpg
+71cb7c432f.jpg
+71d142a629.jpg
+71d311f933.jpg
+71d8791cbc.jpg
+71dfdaca84.jpg
+71e73dc634.jpg
+71efe6d40b.jpg
+71f5abb145.jpg
+72040d895a.jpg
+7204c30e88.jpg
+72187eb2e3.jpg
+72200eb473.jpg
+72208f732e.jpg
+72209a97e3.jpg
+722661ea66.jpg
+7227c70fcd.jpg
+722d5f4afb.jpg
+723a9f0930.jpg
+725a4ac1b7.jpg
+726c3c5613.jpg
+727974efb3.jpg
+72838757f2.jpg
+7292f3ca4c.jpg
+72a432d2ef.jpg
+72a9f8d5dd.jpg
+72c183d06f.jpg
+72ce48c197.jpg
+72d172883b.jpg
+72de7be99b.jpg
+72e076c5f1.jpg
+72e18779bf.jpg
+72e38d5eb5.jpg
+72eddd5449.jpg
+72f96bb24d.jpg
+72f9d91c14.jpg
+73078abfe8.jpg
+731cd398c5.jpg
+73215f5975.jpg
+732d21d0b6.jpg
+732ed4f479.jpg
+7349bc2cda.jpg
+734b0781c6.jpg
+734e0ca057.jpg
+734fbb2722.jpg
+735df12326.jpg
+735f65b906.jpg
+7365808834.jpg
+737dd892fe.jpg
+739550b738.jpg
+739a4b0aa2.jpg
+739a5f4f5a.jpg
+739b9f851e.jpg
+739d048893.jpg
+73a083b70e.jpg
+73a89c881c.jpg
+73af80abe2.jpg
+73c5bdf068.jpg
+73d1ab2cfe.jpg
+73d3b40fad.jpg
+73d3d01cf4.jpg
+73d6152589.jpg
+73d83028df.jpg
+73d8af07f5.jpg
+73da81552d.jpg
+73daf3d8ed.jpg
+73db354128.jpg
+73e6246714.jpg
+73ed9fdfcc.jpg
+73ee637603.jpg
+73f40f4c5f.jpg
+73fa67fcbe.jpg
+7401c06155.jpg
+74032e560a.jpg
+740382c048.jpg
+740539d76f.jpg
+7415ce0b47.jpg
+742162a2eb.jpg
+7465ce9dc6.jpg
+746af9a6e3.jpg
+74771dbf8c.jpg
+7479ea76b2.jpg
+74888bfa60.jpg
+749a424954.jpg
+749b01b28b.jpg
+749b8f3c96.jpg
+74ae76058d.jpg
+74c986de71.jpg
+74ce48ea06.jpg
+74d69a6a93.jpg
+74d8899da7.jpg
+74ef447bd9.jpg
+74f5998f5a.jpg
+74fc4dff54.jpg
+75039e1f6c.jpg
+7528e4576c.jpg
+752ba5d2c8.jpg
+755a68bf49.jpg
+755c5d749f.jpg
+756d1e5bd5.jpg
+75751aaa81.jpg
+757c38bb8c.jpg
+757d6ee48b.jpg
+757f1e6a50.jpg
+758a75c9ed.jpg
+758c8fb20c.jpg
+758fefa848.jpg
+7591e0cda3.jpg
+75a00982bb.jpg
+75a1d164c3.jpg
+75b3279d66.jpg
+75c0023814.jpg
+75c9c5e9dc.jpg
+75ccf1d791.jpg
+75db7110a8.jpg
+75e1f95c11.jpg
+75ea8ff077.jpg
+75f3027229.jpg
+75fb494041.jpg
+76005433f3.jpg
+7604313470.jpg
+7606d341c4.jpg
+7609f842ab.jpg
+76273fd6d4.jpg
+762be21feb.jpg
+762d90b239.jpg
+762e6e143d.jpg
+7658916964.jpg
+765a3931c1.jpg
+765e3844c1.jpg
+766ef8666c.jpg
+7672084b9c.jpg
+76728f61ed.jpg
+7674e0c5bf.jpg
+7676d59b08.jpg
+768bd97752.jpg
+76a9dc1337.jpg
+76b61c4a34.jpg
+76bd2bb960.jpg
+76ca6baab7.jpg
+76d36885be.jpg
+76d46ea344.jpg
+76d7765fec.jpg
+76d7e2ea1d.jpg
+76d9e44bc3.jpg
+76db7a3598.jpg
+76e131b081.jpg
+76e2c6a8fc.jpg
+76e2d3b7e6.jpg
+76e94f63f0.jpg
+7700ac5cdc.jpg
+77027ff036.jpg
+7704194a88.jpg
+770a91539c.jpg
+770eaa21de.jpg
+771b6cba53.jpg
+771c058c09.jpg
+7739b8b9fe.jpg
+774570af04.jpg
+7748f3466f.jpg
+7757afc1e6.jpg
+775900f26a.jpg
+777e575632.jpg
+7783358e78.jpg
+77859239d5.jpg
+7787e80b02.jpg
+77be7c68de.jpg
+77bf6139ee.jpg
+77c4a6fe2f.jpg
+77c639c76a.jpg
+77c6764157.jpg
+77cb5fd082.jpg
+77d28d711c.jpg
+77d2f7f462.jpg
+77d40d49fd.jpg
+77d89ad5e8.jpg
+77e42c6f7f.jpg
+77e520f65e.jpg
+77e8818d95.jpg
+77f4244e79.jpg
+780fe4e3b8.jpg
+7813fc0e56.jpg
+7815d8e551.jpg
+781da87812.jpg
+781fb8ed8d.jpg
+782e19561e.jpg
+7831d9e960.jpg
+783e2110dd.jpg
+7842678dba.jpg
+7844ab20e4.jpg
+784dbc0024.jpg
+785257a6bb.jpg
+785c1f36c7.jpg
+785d8f7fdc.jpg
+786e81a2b3.jpg
+786ea8078b.jpg
+787ab2ecd8.jpg
+787ab64dc5.jpg
+78801a773e.jpg
+789257322e.jpg
+789c33a1c7.jpg
+78af38df6b.jpg
+78cdd692b5.jpg
+78d4c775bc.jpg
+78ec4ff918.jpg
+78f054adcb.jpg
+78f4f55267.jpg
+78f787aee7.jpg
+78fd6ef5c2.jpg
+7923dc877b.jpg
+793e2b7c38.jpg
+794c49d9e4.jpg
+794ca6d27f.jpg
+7953972839.jpg
+795a493665.jpg
+795c8164ee.jpg
+7973fb266b.jpg
+7974b99d54.jpg
+797a8eff69.jpg
+797b5f8fa0.jpg
+7980346fbd.jpg
+798b90eaa0.jpg
+798c2c9b3b.jpg
+798ea5936e.jpg
+79a7dcb00f.jpg
+79a9c5f77b.jpg
+79ac0ec398.jpg
+79aebca8e0.jpg
+79bddbf219.jpg
+79c00f4f0d.jpg
+79c5baaf18.jpg
+79c7d57822.jpg
+79cf25b3ca.jpg
+79d6895235.jpg
+79d90bba6c.jpg
+79de0c9625.jpg
+79dfa2fefe.jpg
+79e8f713f7.jpg
+79eacdd6bf.jpg
+79f79e9fd4.jpg
+79fe56cb30.jpg
+7a092a8f5c.jpg
+7a12965aeb.jpg
+7a1a8a09b3.jpg
+7a1af73907.jpg
+7a20bfd0b6.jpg
+7a20db4982.jpg
+7a22b3de9a.jpg
+7a42924c41.jpg
+7a443b0e2d.jpg
+7a4f87c3e2.jpg
+7a587310a4.jpg
+7a6c2dfe45.jpg
+7a752ed824.jpg
+7a80d5cc5e.jpg
+7a835bdceb.jpg
+7a85bc8960.jpg
+7a8cf8a8e4.jpg
+7a97af5e2f.jpg
+7aa56a51db.jpg
+7aab1ebb47.jpg
+7ab376d7c2.jpg
+7ac3ac3dff.jpg
+7ac6684347.jpg
+7acc247f22.jpg
+7ad4e65ff5.jpg
+7ad98e6f6f.jpg
+7adc12316d.jpg
+7add9fb269.jpg
+7ade5adbf4.jpg
+7aea50857a.jpg
+7aecc61378.jpg
+7af870e87f.jpg
+7afb200e0d.jpg
+7b1017b86c.jpg
+7b11d74a52.jpg
+7b246afdc1.jpg
+7b2e5d9027.jpg
+7b382480c3.jpg
+7b426760da.jpg
+7b47d249a2.jpg
+7b4da6cc38.jpg
+7b51e3f5ac.jpg
+7b57df0c9b.jpg
+7b6b481810.jpg
+7b751b0fb1.jpg
+7b7711cfdb.jpg
+7b873fa7ab.jpg
+7b8c7d8241.jpg
+7ba1286c53.jpg
+7bb9921563.jpg
+7bbba79a53.jpg
+7bd46aedcb.jpg
+7bf102627f.jpg
+7bf2324994.jpg
+7bf9171824.jpg
+7bfa67b3ca.jpg
+7c01694b96.jpg
+7c02e53845.jpg
+7c20ef43a2.jpg
+7c2aa3ec4a.jpg
+7c2f518f7e.jpg
+7c395040c6.jpg
+7c4ea661bc.jpg
+7c5258f276.jpg
+7c55d5e3c1.jpg
+7c658791aa.jpg
+7c6ee0be57.jpg
+7c7965e769.jpg
+7c824556d7.jpg
+7c8a145ab3.jpg
+7c9eb3ca46.jpg
+7ca41c8ae7.jpg
+7ca70a6955.jpg
+7ca9512455.jpg
+7cb138f841.jpg
+7cb52e181f.jpg
+7cba900ed1.jpg
+7cc35c3dd2.jpg
+7cc71229a5.jpg
+7cc8802072.jpg
+7cd32028d3.jpg
+7cd495cdf6.jpg
+7cdab22b2a.jpg
+7cdb8604d5.jpg
+7ce000144c.jpg
+7ce1426760.jpg
+7ce158d1aa.jpg
+7d0ce4062b.jpg
+7d20fca9ae.jpg
+7d2151b821.jpg
+7d2f9d252d.jpg
+7d3a735383.jpg
+7d6734f960.jpg
+7d6e8b51e3.jpg
+7d7b897da1.jpg
+7d7cffdc53.jpg
+7d9bbf29a4.jpg
+7dac011ef8.jpg
+7dae242b60.jpg
+7dbc8329a4.jpg
+7dc539f945.jpg
+7dc5463ede.jpg
+7dcd19a68f.jpg
+7dcdc4527a.jpg
+7dd3ce8c97.jpg
+7dd4319b36.jpg
+7dd43e4fcd.jpg
+7dd84e612c.jpg
+7dda593d9f.jpg
+7ddcb9b2fa.jpg
+7de242d875.jpg
+7de8cd2fa2.jpg
+7df32a992e.jpg
+7df9f2fc23.jpg
+7e1a5dd9e8.jpg
+7e1ee37c06.jpg
+7e2cec7cb3.jpg
+7e3634f7da.jpg
+7e3e60c344.jpg
+7e8da867f5.jpg
+7e9b716c27.jpg
+7ebb4fb49c.jpg
+7ebd107d2a.jpg
+7ec2708f11.jpg
+7ec3e5dc05.jpg
+7ec999d5cc.jpg
+7ecb90a979.jpg
+7ed117156b.jpg
+7ed3b361bb.jpg
+7ee80af193.jpg
+7ee97d3c97.jpg
+7eec5cf913.jpg
+7ef5fd4b9c.jpg
+7efc149640.jpg
+7eff14d613.jpg
+7f02ef7ff2.jpg
+7f066a6ebf.jpg
+7f09fce652.jpg
+7f1969bb3f.jpg
+7f1e2949a9.jpg
+7f34ae953e.jpg
+7f36e8259a.jpg
+7f41332baa.jpg
+7f4658fb5b.jpg
+7f4e806dcf.jpg
+7f5432bd87.jpg
+7f589113d6.jpg
+7f5af15e1b.jpg
+7f5e21b0e1.jpg
+7f5f7c5924.jpg
+7f68d3cd29.jpg
+7f7d9a0d68.jpg
+7f83438459.jpg
+7fb10c1d3c.jpg
+7fb6726fe8.jpg
+7fc854ae57.jpg
+7fcd6d6718.jpg
+7fda424bfe.jpg
+7fdbc7f4eb.jpg
+7fdd694ae3.jpg
+7fdf78861c.jpg
+7fe12fd989.jpg
+8015dfbd5a.jpg
+801cf35754.jpg
+802b7272c3.jpg
+8037b9ac60.jpg
+804e6feaeb.jpg
+805c332c7b.jpg
+806440c580.jpg
+806c9720de.jpg
+808ddbd0c6.jpg
+808e05f105.jpg
+80915bfa79.jpg
+809b5ea14b.jpg
+809cc1b445.jpg
+80a9d6c414.jpg
+80adad1410.jpg
+80be64ef86.jpg
+80c1a5dafc.jpg
+80cd98738f.jpg
+80d5656ebf.jpg
+80d59addc5.jpg
+80eae77779.jpg
+8100d1be0d.jpg
+811255f486.jpg
+811879aa37.jpg
+81303ee38a.jpg
+813174740a.jpg
+8133cf60ba.jpg
+813823ada9.jpg
+813b008402.jpg
+814b1bac72.jpg
+81522fa666.jpg
+815eec039d.jpg
+81665f76c8.jpg
+81667ceeb7.jpg
+816d22c136.jpg
+817bbc310a.jpg
+817c41d274.jpg
+817fb8e12b.jpg
+817fd915ea.jpg
+819b9ea813.jpg
+81a6dcf294.jpg
+81a84c9f22.jpg
+81b9f041c0.jpg
+81c19569c8.jpg
+81c3053153.jpg
+81c9d34283.jpg
+81cde162bf.jpg
+81d8f0b54b.jpg
+81d9737470.jpg
+81da2e32ac.jpg
+81dac8d254.jpg
+81db0f1524.jpg
+81de70a4c0.jpg
+81deb42786.jpg
+81dfc0edbc.jpg
+81e4d21e81.jpg
+81e6bcb45e.jpg
+81e862cac9.jpg
+81ee848160.jpg
+81eeebb780.jpg
+82001639a5.jpg
+82100210d4.jpg
+82371912e5.jpg
+82402be50d.jpg
+8240db2dbc.jpg
+826065d196.jpg
+827a419093.jpg
+827ac3fd32.jpg
+8282422a45.jpg
+82833fafd4.jpg
+82a2f781e9.jpg
+82a8108174.jpg
+82a9c15e36.jpg
+82b0c91f8a.jpg
+82b71740ef.jpg
+82b9b353a9.jpg
+82b9ee0a02.jpg
+82bd5384c0.jpg
+82c2e03612.jpg
+82c49991a5.jpg
+82c82f5ca6.jpg
+82ca497aa6.jpg
+82cd61b038.jpg
+82cf084288.jpg
+82e36f5def.jpg
+82e4acff77.jpg
+82e8b0b961.jpg
+82e9641b54.jpg
+82ec730717.jpg
+82eea9ba43.jpg
+82eeb40cb4.jpg
+82fd8475ea.jpg
+83037dbd5b.jpg
+8318f99fd3.jpg
+831da973e9.jpg
+831f285d8e.jpg
+8320919df7.jpg
+8327d105b5.jpg
+833ad9ac4a.jpg
+835aa6d739.jpg
+836584a150.jpg
+83689bbe29.jpg
+836c7124e3.jpg
+8371380368.jpg
+83a4602632.jpg
+83a7faee7f.jpg
+83b209fa21.jpg
+83b7193187.jpg
+83b9b62d54.jpg
+83c0429c89.jpg
+83c58c02b4.jpg
+83c716ac7a.jpg
+83caab3234.jpg
+83cc8e7208.jpg
+83d301440d.jpg
+83d865b2d8.jpg
+83ddd4940f.jpg
+83e22278e7.jpg
+83e60d369d.jpg
+83ec89a7dc.jpg
+83faf2832a.jpg
+83fee7c981.jpg
+84021c68ec.jpg
+841cff4736.jpg
+841ed7f917.jpg
+842a8ad50d.jpg
+842cbb35fb.jpg
+843f7ddcfd.jpg
+8452abd0d2.jpg
+8462e9b6d4.jpg
+8471850c92.jpg
+8473736446.jpg
+847c588b7c.jpg
+847e6ac90c.jpg
+8483d641bd.jpg
+848bb37828.jpg
+849dfcf5f6.jpg
+849efc9f02.jpg
+849fa59435.jpg
+84adb19034.jpg
+84b9d88edf.jpg
+84c09c24e6.jpg
+84d6393b0a.jpg
+84d8c94818.jpg
+84d9aba810.jpg
+84df469cd9.jpg
+84e2cb6a0f.jpg
+84e42557fd.jpg
+84e73f9f9d.jpg
+84e7cd8de1.jpg
+84ec488c77.jpg
+84ff63d3af.jpg
+850046fdd2.jpg
+8508a13f07.jpg
+8510f76e5c.jpg
+851c07aeb8.jpg
+85262ba186.jpg
+85288e0a86.jpg
+85383c68e5.jpg
+8552803df6.jpg
+8557c9968d.jpg
+856f7226b1.jpg
+857b270e1d.jpg
+857cffc4fa.jpg
+857e32dbe5.jpg
+859baaeeaa.jpg
+859e3aa8fc.jpg
+85a104e958.jpg
+85a7ce7afb.jpg
+85ac0449de.jpg
+85b269b75e.jpg
+85c3b80253.jpg
+85c46d6be1.jpg
+85c6fdccd3.jpg
+85c9694850.jpg
+85cbff23d4.jpg
+85cd944689.jpg
+85dad90948.jpg
+85dc677526.jpg
+85f78544ad.jpg
+85fa9881dc.jpg
+860e0d5d73.jpg
+86120c1087.jpg
+86154465ac.jpg
+8629e890fe.jpg
+8648f19fcc.jpg
+864f303b32.jpg
+8650edb159.jpg
+865b98bd13.jpg
+8661e198eb.jpg
+86858ae8ba.jpg
+8690a99692.jpg
+869b1a5c7d.jpg
+86a1c5638b.jpg
+86ac807409.jpg
+86c2476f31.jpg
+86c5846cdf.jpg
+86d3720b67.jpg
+86d70f71a7.jpg
+86eb86b81a.jpg
+86facc6149.jpg
+8706c1e121.jpg
+870e70dccc.jpg
+872e666d65.jpg
+8752f2b56c.jpg
+8757030eb8.jpg
+8768274944.jpg
+87692949a1.jpg
+876e9a6703.jpg
+878084097e.jpg
+878fc75fc2.jpg
+879ca2f42b.jpg
+879da5a7b3.jpg
+87a5b84d07.jpg
+87a767e285.jpg
+87b4b3c37a.jpg
+87bb257e5f.jpg
+87bfe18518.jpg
+87c6c3ce1e.jpg
+87d2414123.jpg
+87d44ff7a3.jpg
+87e428405c.jpg
+87ed32ce92.jpg
+87efb74950.jpg
+87f4f2fe59.jpg
+87f8bf456d.jpg
+87f99f8955.jpg
+87fcbf92ea.jpg
+87fdd2e577.jpg
+8802a87849.jpg
+8819adb69e.jpg
+882113a91f.jpg
+882b9133ef.jpg
+884a3bfb8c.jpg
+884c70d547.jpg
+88544d990d.jpg
+88617a212f.jpg
+887499f9f0.jpg
+88753c454f.jpg
+88777d34fc.jpg
+88801bf33f.jpg
+888b21c0d8.jpg
+88c374692c.jpg
+88c8fde51a.jpg
+88d178a409.jpg
+88d1abdca0.jpg
+88d20528ea.jpg
+88d6cb9640.jpg
+88d8b99250.jpg
+88e12519ea.jpg
+88e2066c0d.jpg
+88e63d7975.jpg
+88e88d862f.jpg
+88ecd1b160.jpg
+8915d2e02b.jpg
+8927f2838d.jpg
+893c400c3d.jpg
+8945021dda.jpg
+894659f76a.jpg
+894ae01b79.jpg
+894f158b35.jpg
+895dc9278d.jpg
+896da36234.jpg
+897cc63d4b.jpg
+89822bde71.jpg
+898acc270b.jpg
+8991e63a1c.jpg
+899c268b49.jpg
+89a2badb86.jpg
+89ac242d6c.jpg
+89af26a1cb.jpg
+89b4e8f6d4.jpg
+89b4fb07cd.jpg
+89c3640842.jpg
+89cd3fcc4a.jpg
+89d14aac2e.jpg
+89d14faa5f.jpg
+89dd1b503a.jpg
+89e0b63aaf.jpg
+89e2db54d1.jpg
+89eafa8fb9.jpg
+89f760d49c.jpg
+8a076cf400.jpg
+8a0b6b82f8.jpg
+8a26f63574.jpg
+8a339b0fda.jpg
+8a33d10c5e.jpg
+8a47e8dd21.jpg
+8a61ce9442.jpg
+8a6373b520.jpg
+8a6a2ef11c.jpg
+8a6c2786c6.jpg
+8a6ebcbc4b.jpg
+8a7df1a6f7.jpg
+8a8c1f30fc.jpg
+8aa4000edf.jpg
+8abdd78837.jpg
+8ac112cfab.jpg
+8ac3c81311.jpg
+8ad26d38e1.jpg
+8ad4422a9e.jpg
+8adcc61845.jpg
+8ae9a87b55.jpg
+8aec6b3f9a.jpg
+8aee1e68d3.jpg
+8aeecd5ecc.jpg
+8b06a65e30.jpg
+8b0e27a403.jpg
+8b110bddc1.jpg
+8b14ca4a26.jpg
+8b2311d936.jpg
+8b2c4f1c0d.jpg
+8b39e4e74d.jpg
+8b3b3da32f.jpg
+8b4a3023d8.jpg
+8b62f2cf7d.jpg
+8b6f28250b.jpg
+8b7e44a3a0.jpg
+8b8a91b4f6.jpg
+8b8d6f1610.jpg
+8b94c80a67.jpg
+8baaa8a810.jpg
+8bba594fcd.jpg
+8bc8f22dd8.jpg
+8bce21a7e1.jpg
+8bd4debafc.jpg
+8bdb2ca0c5.jpg
+8bdbf449c7.jpg
+8bdc0048f4.jpg
+8bdcf7fadd.jpg
+8bea669b1a.jpg
+8c07875b00.jpg
+8c1289b35b.jpg
+8c132f411e.jpg
+8c21ac2ca8.jpg
+8c2bbd91a0.jpg
+8c3bd9a14f.jpg
+8c4c6909ef.jpg
+8c51c775a3.jpg
+8c619c9bb5.jpg
+8c8edc1392.jpg
+8ca3960c22.jpg
+8ca608d152.jpg
+8cb626cb73.jpg
+8cba55b6bb.jpg
+8cbb73e0c4.jpg
+8cc194a403.jpg
+8cc2037bb3.jpg
+8ccb8c0d56.jpg
+8ccc4eae32.jpg
+8cce621c1e.jpg
+8ccf96a231.jpg
+8cd401405c.jpg
+8cd682a975.jpg
+8ce2db0ebb.jpg
+8cf5503cc5.jpg
+8cf79bc0e3.jpg
+8d031c12c1.jpg
+8d118b659b.jpg
+8d20983205.jpg
+8d2c7190b2.jpg
+8d48b0e610.jpg
+8d6cf5e28e.jpg
+8d7f336380.jpg
+8d9b745ae9.jpg
+8da4a567ad.jpg
+8db142902f.jpg
+8db3a09f2c.jpg
+8db8786ea1.jpg
+8dc7e511e2.jpg
+8dc8b06e30.jpg
+8dcbad4c1d.jpg
+8dd15412e1.jpg
+8de0ecf414.jpg
+8de142a6b9.jpg
+8de4d5f370.jpg
+8de8a54158.jpg
+8deb574a24.jpg
+8deea19db1.jpg
+8df01a2dd9.jpg
+8df0ae9524.jpg
+8df2d87dad.jpg
+8e13b2325c.jpg
+8e13cc43e7.jpg
+8e319188b9.jpg
+8e32461a36.jpg
+8e36da9ffe.jpg
+8e3703b7b0.jpg
+8e373e3df8.jpg
+8e41af9b65.jpg
+8e535085f9.jpg
+8e61d747e8.jpg
+8e86c3a54c.jpg
+8e8c6dbe2c.jpg
+8e96b9ebd2.jpg
+8ec1a6658a.jpg
+8ec7b5756e.jpg
+8ecbb3144d.jpg
+8ed02690f6.jpg
+8ed145e6f0.jpg
+8ed20d73e9.jpg
+8ed33dbfb6.jpg
+8ed6345ae5.jpg
+8ee589ea50.jpg
+8ee9fffbba.jpg
+8eee9c5376.jpg
+8ef1206fdc.jpg
+8ef429b011.jpg
+8ef7ec4451.jpg
+8efc2dd967.jpg
+8f00dec39c.jpg
+8f01477ff2.jpg
+8f114d3d99.jpg
+8f2fb895a1.jpg
+8f53fff43f.jpg
+8f6fd8fb65.jpg
+8f70e70996.jpg
+8f7920ff02.jpg
+8f8d888197.jpg
+8f8f1c292a.jpg
+8f9dd4224e.jpg
+8f9e52e6a9.jpg
+8f9f093533.jpg
+8fab9d6512.jpg
+8faf5dada0.jpg
+8fb041594a.jpg
+8fbe29f7de.jpg
+8fc6dffcd0.jpg
+8fc788763e.jpg
+8fc873336d.jpg
+8fc9d0aa16.jpg
+8fd928a211.jpg
+8fd970604a.jpg
+8fdc68049c.jpg
+8ff5fe39d6.jpg
+90097d78c3.jpg
+901c2ba10a.jpg
+901c71a7d8.jpg
+90232a22a7.jpg
+90298b9bb0.jpg
+9041861da4.jpg
+9044ff1291.jpg
+904c67ea98.jpg
+90581850b7.jpg
+905d1bfbed.jpg
+9062d2522b.jpg
+906a7659d9.jpg
+9074e85982.jpg
+90752c45a3.jpg
+90778f481f.jpg
+907c7947a6.jpg
+907d71f549.jpg
+907eee3c0a.jpg
+908038eb02.jpg
+908bf51fdc.jpg
+90a9a13e24.jpg
+90bef7ff24.jpg
+90c48614dd.jpg
+90c9533ad0.jpg
+90ce12d262.jpg
+90d0606c31.jpg
+90d259839e.jpg
+90d3c72c4c.jpg
+90d7a6ced6.jpg
+90db410a9b.jpg
+90dc328514.jpg
+91038e0d3f.jpg
+910ce3e83b.jpg
+910f8558e1.jpg
+911b589579.jpg
+91302d82da.jpg
+913c323753.jpg
+913fe07371.jpg
+9144d6d680.jpg
+915b281cbe.jpg
+916259e4be.jpg
+9167b2ee6b.jpg
+918a34ba11.jpg
+91be0cdf89.jpg
+91c38cce1b.jpg
+91cc5bb352.jpg
+91d08cfd18.jpg
+91d7a17deb.jpg
+91d88f2530.jpg
+91d89f44ed.jpg
+91e025d243.jpg
+91e2d4e667.jpg
+91e3ba7d77.jpg
+91e3d71e49.jpg
+91e4aa7cff.jpg
+91ed381ac0.jpg
+91ee3a35df.jpg
+920534206a.jpg
+921d412cef.jpg
+92232a6a79.jpg
+922f7cbf2b.jpg
+9233f435ba.jpg
+9234fc6022.jpg
+923792ff59.jpg
+923cec9dfe.jpg
+924a685600.jpg
+925e7fd1c3.jpg
+926348835e.jpg
+9265acbef7.jpg
+92760fc9ff.jpg
+9282528cc7.jpg
+9282cfa5f8.jpg
+92881f2b71.jpg
+928a4e9dab.jpg
+9291618987.jpg
+929a3c7820.jpg
+929f0f3144.jpg
+92a3f8f3b7.jpg
+92b108a3dc.jpg
+92b820de35.jpg
+92c067611f.jpg
+92c3b536bc.jpg
+92c9589a02.jpg
+92cfa273e2.jpg
+92d00543bf.jpg
+92d5a77649.jpg
+92d66f7340.jpg
+92daadfc66.jpg
+92e1386b8e.jpg
+92eb1668e4.jpg
+92ed8455d5.jpg
+92f7defd67.jpg
+92f8f3d0d3.jpg
+92fd5c47e6.jpg
+93049e7828.jpg
+930db89989.jpg
+930de2adb9.jpg
+930fed03bf.jpg
+932216bbf8.jpg
+93221cb870.jpg
+932a2f2ce3.jpg
+93318880e9.jpg
+934dfea6f1.jpg
+934f8d2755.jpg
+9362d5312a.jpg
+9364c0dafd.jpg
+9368c51933.jpg
+937d630ade.jpg
+937db81e93.jpg
+939a5a5bcc.jpg
+939a808588.jpg
+93a99a9e91.jpg
+93af48619a.jpg
+93bbc8b299.jpg
+93c081e579.jpg
+93c402f751.jpg
+93c5e7d4ce.jpg
+93cec220b3.jpg
+93da25a79f.jpg
+93dc66e397.jpg
+93e01af057.jpg
+93e18a47cf.jpg
+93e70a7fe3.jpg
+93ecc85e68.jpg
+93ee9bca9d.jpg
+93f2200bb8.jpg
+93f29fc9a3.jpg
+93f80a0165.jpg
+93f95fe27f.jpg
+94063bec27.jpg
+94075de1b4.jpg
+940adeac64.jpg
+940f8ef0ec.jpg
+94166f4a36.jpg
+9416ea47ad.jpg
+941bb6825f.jpg
+94402b7098.jpg
+944e42d0ad.jpg
+94563465af.jpg
+945f144dd9.jpg
+9463022bc8.jpg
+9465504cb0.jpg
+946d63fbe7.jpg
+946ef70b27.jpg
+9498bf0eb3.jpg
+949d4d93c8.jpg
+94a34617af.jpg
+94a849e530.jpg
+94b95b5e04.jpg
+94c1e6ee82.jpg
+94c5761725.jpg
+94d0a1882a.jpg
+94d41d2b3e.jpg
+94d9ee17ab.jpg
+94de08c454.jpg
+94ef3e8784.jpg
+94f575b36d.jpg
+950c66f666.jpg
+9510146318.jpg
+9515ca37d6.jpg
+95268f307c.jpg
+9527bbe6e6.jpg
+9529fb6927.jpg
+95303292ed.jpg
+9535fa76d4.jpg
+953bf74c56.jpg
+9541e42a29.jpg
+95443fbce7.jpg
+955fdb5bbe.jpg
+959a4a0501.jpg
+959b1f6e7f.jpg
+95a0e8709e.jpg
+95a7c5dc67.jpg
+95b1335f35.jpg
+95b17a452f.jpg
+95b312a691.jpg
+95bda917aa.jpg
+95c49a674d.jpg
+95c8a6ca68.jpg
+95cc499e1f.jpg
+95ce38a95c.jpg
+95d3597475.jpg
+95d4b44912.jpg
+95d4e1a6d8.jpg
+95d6a53e6c.jpg
+95d8e43ee4.jpg
+95e1805d73.jpg
+95e5178927.jpg
+95e5f73dc8.jpg
+95ea9be464.jpg
+95f35f5f0f.jpg
+95f3b80d4d.jpg
+95fc9b9efa.jpg
+95fdf31833.jpg
+96068e415e.jpg
+960de7348d.jpg
+96119dafcf.jpg
+96146e18bd.jpg
+96383673bd.jpg
+964eb76e28.jpg
+965198c137.jpg
+9658b005a7.jpg
+967c772b30.jpg
+9686ce15b0.jpg
+969e2c8c5b.jpg
+96a35df225.jpg
+96a6966afc.jpg
+96ae398932.jpg
+96c4ff8b5c.jpg
+96c6a593bc.jpg
+96c7260e4b.jpg
+96ceebdf1d.jpg
+96d32d9583.jpg
+96d579356c.jpg
+96d95c87d1.jpg
+96dfa1e656.jpg
+96e0a99d57.jpg
+96e53cb6f6.jpg
+96e9f8b3eb.jpg
+96ed242bdf.jpg
+96f1a51edc.jpg
+96f39f81f4.jpg
+971c296df4.jpg
+971def76e1.jpg
+971f75568f.jpg
+9735da7839.jpg
+973a6289a7.jpg
+9740ca5d75.jpg
+97427c60e5.jpg
+97532a18c4.jpg
+976650d4c0.jpg
+9776ab4a9d.jpg
+97963850fa.jpg
+97966a211e.jpg
+97a174da15.jpg
+97c06ea4fb.jpg
+97c5c02bb1.jpg
+97c9ee4dc7.jpg
+97cebecf43.jpg
+97d0c84278.jpg
+97d0f1cd4b.jpg
+97d6b0c5db.jpg
+97e1c754c0.jpg
+97e446a658.jpg
+97e57ebd67.jpg
+97ea6721cb.jpg
+97ef57df79.jpg
+97f491104d.jpg
+98005a58d0.jpg
+981244e9bb.jpg
+981cd02ec3.jpg
+981d154c4b.jpg
+982e99e425.jpg
+9852429ff5.jpg
+9859f4e9ba.jpg
+986c51fe99.jpg
+986d7f7161.jpg
+98887b6814.jpg
+9898bfa06f.jpg
+98a5fb1f3f.jpg
+98a7a0937b.jpg
+98a7debfa8.jpg
+98aac4f5c3.jpg
+98c5bfc5ba.jpg
+98c63b2aaa.jpg
+98cb68a7dc.jpg
+98d0cadb1a.jpg
+98d2c199f9.jpg
+98d2dc5f5c.jpg
+98d4394f9b.jpg
+98db131c41.jpg
+98dc4f9615.jpg
+98ec550483.jpg
+98ee7fe824.jpg
+98f19a96d1.jpg
+98fdfa0a67.jpg
+99030e8414.jpg
+9907ac7315.jpg
+990eee08bb.jpg
+991ffab459.jpg
+9924aea41c.jpg
+992b22a9ab.jpg
+992ba98121.jpg
+993320b99a.jpg
+9936561041.jpg
+993b5277bf.jpg
+993ea78901.jpg
+994206fe9f.jpg
+994698abc3.jpg
+994c3879a1.jpg
+994c9bcc4d.jpg
+99508ed65c.jpg
+9952267dda.jpg
+996410240c.jpg
+99667e04ae.jpg
+99692e9ff0.jpg
+9974b9cdd5.jpg
+997c32af09.jpg
+998b1b133d.jpg
+99980e0ea1.jpg
+999e5fe5a6.jpg
+99b11f3cab.jpg
+99b2525117.jpg
+99c779adb5.jpg
+99cc65caea.jpg
+99d720f2c4.jpg
+99dc7dbcac.jpg
+99de4be083.jpg
+99df183331.jpg
+99e2d2006e.jpg
+99ed9238f0.jpg
+99ee16feb6.jpg
+99fbd124dc.jpg
+99ff614098.jpg
+9a03170676.jpg
+9a17ceac8c.jpg
+9a1debcdef.jpg
+9a260f327b.jpg
+9a26f14d65.jpg
+9a3041e17b.jpg
+9a3360c8da.jpg
+9a37ac5633.jpg
+9a47ad0b5c.jpg
+9a4b39d4a0.jpg
+9a4e4f4932.jpg
+9a52e7b09b.jpg
+9a54b96fc1.jpg
+9a580908cd.jpg
+9a7c9f24ed.jpg
+9a7cc93f34.jpg
+9a8240f637.jpg
+9a82ce0405.jpg
+9a88c6d443.jpg
+9a8b401c7d.jpg
+9a9b5776bc.jpg
+9aa4f436a3.jpg
+9ac3fec7ee.jpg
+9ac4a39b57.jpg
+9acc1599f7.jpg
+9adcc827ff.jpg
+9addff771c.jpg
+9adf83bf0d.jpg
+9ae3501d98.jpg
+9aec5d5a39.jpg
+9aeda0fc27.jpg
+9aefb68154.jpg
+9af0c9d6cd.jpg
+9afa06bb45.jpg
+9afb27b25a.jpg
+9afd87cade.jpg
+9b1d222700.jpg
+9b23d4fb6c.jpg
+9b2a8fc6e0.jpg
+9b39d7c23e.jpg
+9b4bb32733.jpg
+9b4d85b0ff.jpg
+9b5c2b0e8f.jpg
+9b5f8d0fe4.jpg
+9b6367dd68.jpg
+9b6fca8b05.jpg
+9b7c32d56a.jpg
+9b97616520.jpg
+9b98e884c3.jpg
+9ba9b92275.jpg
+9bb14cfebf.jpg
+9bc0b3aaf0.jpg
+9bc2333d3d.jpg
+9bc7c93af3.jpg
+9bcdb997a9.jpg
+9bd05d090c.jpg
+9bd72bb58e.jpg
+9bd9cf6e86.jpg
+9bdcaf51db.jpg
+9c08460aaa.jpg
+9c13beb4e7.jpg
+9c13e439ba.jpg
+9c1fcac8f0.jpg
+9c31546449.jpg
+9c31f44483.jpg
+9c335c32dd.jpg
+9c3f8e06ce.jpg
+9c4cebc486.jpg
+9c52db5153.jpg
+9c5ea44a9e.jpg
+9c693fd419.jpg
+9c8e84c5bd.jpg
+9c8ec2002e.jpg
+9c919917a3.jpg
+9c928ff598.jpg
+9caed7b7ce.jpg
+9cb1f8cdb7.jpg
+9cb3569c53.jpg
+9cc2010f73.jpg
+9cc7983e5a.jpg
+9cc89bcb9a.jpg
+9cc92d8149.jpg
+9cc9d2a497.jpg
+9cc9de8835.jpg
+9ccc1dfb32.jpg
+9cd4936910.jpg
+9cd546943f.jpg
+9ce487e10e.jpg
+9ce76237f4.jpg
+9ceeff9936.jpg
+9cf35693f2.jpg
+9d0092ef3e.jpg
+9d035e1f52.jpg
+9d2586f7a4.jpg
+9d29d46249.jpg
+9d2a32c6d7.jpg
+9d3b9684d3.jpg
+9d678574d5.jpg
+9d72c1f9bf.jpg
+9d7c069634.jpg
+9d82707e8c.jpg
+9d93b540c7.jpg
+9d94391e00.jpg
+9d95064777.jpg
+9d98e5e29f.jpg
+9d9af9b28f.jpg
+9da38d38cd.jpg
+9da423d301.jpg
+9da68a758a.jpg
+9db488ea3b.jpg
+9db9ce2b59.jpg
+9dbba7780f.jpg
+9dc06c6291.jpg
+9dc20a1dc3.jpg
+9dc4d4bb59.jpg
+9dc8bf5516.jpg
+9dcaad7d3e.jpg
+9dd1077233.jpg
+9dd11720d4.jpg
+9dd176c38e.jpg
+9dde3b9264.jpg
+9de0edf5a4.jpg
+9e191a2c3a.jpg
+9e2102b082.jpg
+9e27f77e1e.jpg
+9e2e361396.jpg
+9e4a62421a.jpg
+9e4d14de85.jpg
+9e50da7457.jpg
+9e6b8e269d.jpg
+9e72aa248d.jpg
+9e785bd2d3.jpg
+9e7a93ba43.jpg
+9e7ce0facb.jpg
+9e7d2cccba.jpg
+9e87b6f9dd.jpg
+9ea72eb34b.jpg
+9eadbd2c00.jpg
+9eb93b306d.jpg
+9ebaea2702.jpg
+9ec06a3171.jpg
+9ec665bbcc.jpg
+9ed5033f4e.jpg
+9ee3ec7b99.jpg
+9eeed7ad08.jpg
+9ef15bf5d7.jpg
+9ef24dfb56.jpg
+9f05fd7a50.jpg
+9f0d5ba33f.jpg
+9f2e36a026.jpg
+9f3811d20c.jpg
+9f3bb17728.jpg
+9f549b7a5c.jpg
+9f5b3cb591.jpg
+9f6adfc23d.jpg
+9f6c2f0203.jpg
+9f6c86880a.jpg
+9f84cccfa6.jpg
+9f8bac77e3.jpg
+9f8fa5e5d0.jpg
+9f9110ea80.jpg
+9fa5c6e60d.jpg
+9faab0000b.jpg
+9facd2c4c3.jpg
+9fc244a437.jpg
+9fc2536ba4.jpg
+9fc54e11a0.jpg
+9fc78ee8d2.jpg
+9fd63575aa.jpg
+9fd69853fa.jpg
+9fd78e983a.jpg
+9fdc69f853.jpg
+9fdd5695e2.jpg
+9febd53e0f.jpg
+9fecf6b0c9.jpg
+9ff216d4a5.jpg
+9ff9e53bad.jpg
+a0004ee17b.jpg
+a005edcbc0.jpg
+a0117fcbbc.jpg
+a015d11a03.jpg
+a01b466df7.jpg
+a024de9bd4.jpg
+a029a5d254.jpg
+a02c92f16c.jpg
+a02f316edb.jpg
+a035e51ff8.jpg
+a040c11c9a.jpg
+a0496dfa4c.jpg
+a06a2a3c0a.jpg
+a07fbaddef.jpg
+a0818bf43c.jpg
+a08fe4044a.jpg
+a0962b3d43.jpg
+a09bc116d3.jpg
+a0a1143b6c.jpg
+a0af468667.jpg
+a0bc34ebb4.jpg
+a0bfcbcc0d.jpg
+a0d05d1e42.jpg
+a0d9cb3ac0.jpg
+a0e39d9975.jpg
+a0e66a0a65.jpg
+a0e6a59224.jpg
+a0f40f08dd.jpg
+a0f654c4a0.jpg
+a0fdac16c7.jpg
+a1015a2859.jpg
+a1033ab9c1.jpg
+a107e058a5.jpg
+a1104a8242.jpg
+a11cef3e9e.jpg
+a11cfb028f.jpg
+a123225126.jpg
+a140e0b14b.jpg
+a17c58f9cb.jpg
+a17e05eb09.jpg
+a1855b9bf1.jpg
+a1863303ac.jpg
+a18f7460be.jpg
+a19e9d4414.jpg
+a1a5b3c708.jpg
+a1a78a5ee7.jpg
+a1a9e6899d.jpg
+a1cda8fe39.jpg
+a1d035b065.jpg
+a1dc0a9e5f.jpg
+a1e0bc1e3f.jpg
+a1e7810ce2.jpg
+a1e7c76dee.jpg
+a1e90fd0dd.jpg
+a21743ffdd.jpg
+a22e4b09cf.jpg
+a23b924f94.jpg
+a24eab8d45.jpg
+a25c8590fd.jpg
+a26232e8aa.jpg
+a262dab701.jpg
+a2688c674f.jpg
+a28ce8065e.jpg
+a29c66e36f.jpg
+a2b68500d5.jpg
+a2c25c9ac7.jpg
+a2d414e018.jpg
+a2d6d820fb.jpg
+a2dd37641e.jpg
+a2e6230a8a.jpg
+a2f383c764.jpg
+a2fa13107b.jpg
+a2fb06a810.jpg
+a2fd940ff0.jpg
+a30345bf6c.jpg
+a305d8abb8.jpg
+a306ecdf17.jpg
+a3099e20b5.jpg
+a30dff2400.jpg
+a31dafdd87.jpg
+a3280d15a8.jpg
+a32cf75c30.jpg
+a33c22248a.jpg
+a34236d3a1.jpg
+a377d8ced1.jpg
+a37e6c783c.jpg
+a386db0d65.jpg
+a391784df7.jpg
+a3a8f3e9ce.jpg
+a3bd357d78.jpg
+a3c273cefa.jpg
+a3c819d08f.jpg
+a3ccb659da.jpg
+a3ce6c65c9.jpg
+a3d34a5167.jpg
+a3e1b8ae97.jpg
+a3e303f6e5.jpg
+a3e508ed3f.jpg
+a3e5f0a222.jpg
+a3e632c401.jpg
+a3e651e1db.jpg
+a3f0b07db6.jpg
+a3f1336a1b.jpg
+a3f5544604.jpg
+a3fb82cc48.jpg
+a41470ce3a.jpg
+a4197c5685.jpg
+a41c8721d4.jpg
+a426994af8.jpg
+a42706b0c3.jpg
+a435f50bce.jpg
+a446ac8860.jpg
+a44f87951a.jpg
+a4655a9970.jpg
+a4681a3a66.jpg
+a468622ad5.jpg
+a46d5962ae.jpg
+a48029b471.jpg
+a485b5605c.jpg
+a48e6a4bd5.jpg
+a49593b85d.jpg
+a498bce248.jpg
+a49a2e574a.jpg
+a49bc4b6c2.jpg
+a4a06ef061.jpg
+a4a171a86c.jpg
+a4aebe6dc9.jpg
+a4b416920c.jpg
+a4bc688c0f.jpg
+a4c04f72c1.jpg
+a4c3598004.jpg
+a4c44ab37b.jpg
+a4ca91eb60.jpg
+a4ce1dcc34.jpg
+a4d517229d.jpg
+a4dbd71dea.jpg
+a4dfcf112a.jpg
+a4e41d159a.jpg
+a4e563f28d.jpg
+a4e7797188.jpg
+a4ecc86a5f.jpg
+a4edca097b.jpg
+a4feaea33e.jpg
+a521451c6c.jpg
+a523736a84.jpg
+a5370e5c19.jpg
+a53be5bbad.jpg
+a53c548b15.jpg
+a5423668c0.jpg
+a5821ba670.jpg
+a59537c7a1.jpg
+a5a6a7bce5.jpg
+a5a9fa3a66.jpg
+a5bc7e85aa.jpg
+a5cb2732f4.jpg
+a5dec952e1.jpg
+a5e12c47d8.jpg
+a5e21a3faf.jpg
+a5ea98d000.jpg
+a5eb0d66ef.jpg
+a6036d93ef.jpg
+a60644d7e2.jpg
+a63633428e.jpg
+a6364585d6.jpg
+a63b3b67d8.jpg
+a64bbb0915.jpg
+a6644fca95.jpg
+a6686a5b75.jpg
+a66c6ef6d8.jpg
+a66e652bee.jpg
+a673cfa63c.jpg
+a677916714.jpg
+a67989bfa0.jpg
+a68241118d.jpg
+a68dfb6024.jpg
+a68fb7758d.jpg
+a69da3c59c.jpg
+a6bc5e2a43.jpg
+a6be6de263.jpg
+a6c7e4919c.jpg
+a6d606aa6b.jpg
+a6de0153fe.jpg
+a6e82c0c67.jpg
+a6ee097b99.jpg
+a6f123b9b6.jpg
+a6f1448adc.jpg
+a6f5f000e5.jpg
+a705ad8daa.jpg
+a709e3c7e0.jpg
+a716828258.jpg
+a7208acec2.jpg
+a72ac6d352.jpg
+a72ccdde9f.jpg
+a74dedf85c.jpg
+a75e4a0b65.jpg
+a76e8f52ad.jpg
+a7749253f6.jpg
+a774f33976.jpg
+a7857ee2ef.jpg
+a78d21207a.jpg
+a79726bd82.jpg
+a79b5e9301.jpg
+a79dc1e005.jpg
+a7ab6e9e70.jpg
+a7abb19298.jpg
+a7c06b5bba.jpg
+a7c2f50d17.jpg
+a7f9fa6ad3.jpg
+a7fccc2cee.jpg
+a7fefd661d.jpg
+a81504409f.jpg
+a81931c8d2.jpg
+a8329bf474.jpg
+a840e93a56.jpg
+a85c68adb6.jpg
+a860f20f26.jpg
+a86cef5230.jpg
+a882731aba.jpg
+a885f71ba6.jpg
+a88c90c721.jpg
+a89a9196ca.jpg
+a8b1905b7c.jpg
+a8b8d937b4.jpg
+a8b8ea5614.jpg
+a8c34104c4.jpg
+a8c9eb3390.jpg
+a8cacb8963.jpg
+a8cf476a40.jpg
+a8dd96957a.jpg
+a8e1049368.jpg
+a8e7057dbb.jpg
+a8e9509ed9.jpg
+a8f1b166b2.jpg
+a8f33a4bbd.jpg
+a90b85b6d9.jpg
+a912e70737.jpg
+a913643106.jpg
+a91668857a.jpg
+a92b3284d0.jpg
+a932bb0a5f.jpg
+a93575f0aa.jpg
+a93cbb85af.jpg
+a93e8e3481.jpg
+a946b8849a.jpg
+a952f10824.jpg
+a956a7fbf1.jpg
+a965b847e0.jpg
+a96c69651a.jpg
+a98d5b6505.jpg
+a98fbb6eaf.jpg
+a99fa8458f.jpg
+a9a12d0d32.jpg
+a9abd903ea.jpg
+a9afa976dc.jpg
+a9b95783f3.jpg
+a9c6b965eb.jpg
+a9c7759263.jpg
+a9cba2fbe3.jpg
+a9cbd3feee.jpg
+a9ce55f046.jpg
+a9d260f013.jpg
+a9d2b4ef8d.jpg
+a9d46a71e5.jpg
+a9dcba211e.jpg
+a9df2890b6.jpg
+a9dfc59a3d.jpg
+a9e332253c.jpg
+a9e5ff1f5a.jpg
+a9e81d0bae.jpg
+a9e8a558d7.jpg
+a9e94ff7bb.jpg
+a9fa7f65b7.jpg
+a9fbd1e384.jpg
+aa000237f6.jpg
+aa03414956.jpg
+aa071a1f50.jpg
+aa1b4ac828.jpg
+aa35c42ecc.jpg
+aa3f8b7310.jpg
+aa4cc72508.jpg
+aa4d6b9b2e.jpg
+aa4f4352d1.jpg
+aa6468e20c.jpg
+aa67052029.jpg
+aa68530d22.jpg
+aa6939f0d1.jpg
+aa72cecd0d.jpg
+aa7442304b.jpg
+aa75b6df15.jpg
+aa7a5d834d.jpg
+aa8077c598.jpg
+aa829bae0b.jpg
+aa8d268e61.jpg
+aa9f8ef4a0.jpg
+aaa5a505cb.jpg
+aaad8c3c47.jpg
+aaba5b6429.jpg
+aac25ccde7.jpg
+aacc17bd1f.jpg
+aacc897450.jpg
+aad1b0c8b0.jpg
+aad54a974d.jpg
+aad93c022e.jpg
+aad9c0a5d4.jpg
+aad9c48145.jpg
+aadbcceac4.jpg
+aade1b7287.jpg
+aae75be5b6.jpg
+aaebfafda4.jpg
+aaf0ac106a.jpg
+aafb4e8a3e.jpg
+ab0207cdc2.jpg
+ab05aef9eb.jpg
+ab09d72353.jpg
+ab0d6b538f.jpg
+ab13940611.jpg
+ab24262d6d.jpg
+ab29afd8dc.jpg
+ab3e51bf88.jpg
+ab42ba70f2.jpg
+ab42c5c0de.jpg
+ab4c6de3f2.jpg
+ab59c647c1.jpg
+ab6448d5af.jpg
+ab6af651c7.jpg
+ab956f6ce9.jpg
+ab98f90d6c.jpg
+ab9a1c4c7e.jpg
+aba45d0de7.jpg
+aba59d117d.jpg
+abac795d4a.jpg
+abb9bf9f6b.jpg
+abc289d2f6.jpg
+abc334e33f.jpg
+abc66bdfea.jpg
+abc86051c5.jpg
+abcabcacc5.jpg
+abcda10d20.jpg
+abd90fadcb.jpg
+abda2ca4e4.jpg
+abe5661ffb.jpg
+abe8ab5fc2.jpg
+abe9ef99cc.jpg
+abedf51bb0.jpg
+abefc43402.jpg
+abf3bc4ef2.jpg
+abfc3ba5d6.jpg
+ac02eadada.jpg
+ac0b770730.jpg
+ac0c9d8ce0.jpg
+ac3a80dd3e.jpg
+ac3ad0e3bd.jpg
+ac57d13d16.jpg
+ac6c3668b8.jpg
+ac6f48b95c.jpg
+ac7028c0ff.jpg
+ac76d6b518.jpg
+ac7caf9eea.jpg
+ac97fd87df.jpg
+aca1d8e4fe.jpg
+acabb66d8f.jpg
+acaf9a72fa.jpg
+acbfe08c4b.jpg
+acc15d8049.jpg
+acc7b28939.jpg
+acd499a093.jpg
+acd5dc4a97.jpg
+acdf83e7d6.jpg
+ace1f07867.jpg
+ace4732b6c.jpg
+ace7e1c8f8.jpg
+ace9efbf7a.jpg
+acf007eddc.jpg
+acfb4995f4.jpg
+ad0561415b.jpg
+ad1116c190.jpg
+ad12e4998e.jpg
+ad221d15b7.jpg
+ad225eddf8.jpg
+ad2648d7c9.jpg
+ad29b425a1.jpg
+ad2ac135a3.jpg
+ad3245b731.jpg
+ad3aa9050d.jpg
+ad5243d1df.jpg
+ad5498968c.jpg
+ad738627c6.jpg
+ad75c90e7f.jpg
+ad88ff5ad4.jpg
+ad8c9ae3b7.jpg
+ad9a7fe059.jpg
+ada8d4c039.jpg
+adaca89f31.jpg
+adbe8b1f08.jpg
+adc1e1f8b2.jpg
+adc61cde2b.jpg
+adcdb814a3.jpg
+add20f532c.jpg
+addb9bb043.jpg
+ade1b100fe.jpg
+ade4bf6a52.jpg
+ade5195431.jpg
+adeb5df4cb.jpg
+adf4af218e.jpg
+adf622db1c.jpg
+adfa8875f8.jpg
+ae2128c18c.jpg
+ae233416db.jpg
+ae25389994.jpg
+ae3c8158ce.jpg
+ae3d3d223a.jpg
+ae4dc4f613.jpg
+ae6c1c9f0e.jpg
+ae787d9b2f.jpg
+ae7cbb99a3.jpg
+ae7d97c32a.jpg
+ae807934d9.jpg
+ae8402b5bc.jpg
+ae94baf534.jpg
+ae952fdb9b.jpg
+ae96d2c1e3.jpg
+ae9f0efd7d.jpg
+aea7298023.jpg
+aeac1799b3.jpg
+aeb0e753df.jpg
+aeb83163bb.jpg
+aec089fb0f.jpg
+aec2eaeca9.jpg
+aec6f79910.jpg
+aed6028258.jpg
+aed917d33c.jpg
+aedd93d361.jpg
+aee0e4d3d5.jpg
+aee4c2b39f.jpg
+aeebccd1db.jpg
+aef0bd6d9a.jpg
+aef110f28a.jpg
+aef622e1a7.jpg
+aef70d7f65.jpg
+aef8bc53a5.jpg
+af033cb3de.jpg
+af0589ffa5.jpg
+af12c7a49d.jpg
+af16b3707b.jpg
+af21d32a2e.jpg
+af3c818240.jpg
+af40ac66e3.jpg
+af5163739a.jpg
+af52b53db6.jpg
+af55406bf3.jpg
+af7086f34a.jpg
+af736cf3f9.jpg
+af902f6229.jpg
+af9878aacb.jpg
+af9b8b0f6e.jpg
+afc5831f67.jpg
+afd0654525.jpg
+afd4a5fcbc.jpg
+afdba126b0.jpg
+afe1114746.jpg
+afe11eaad0.jpg
+afe241c74a.jpg
+afe2f4e325.jpg
+afe4306535.jpg
+afe841696b.jpg
+afec2fc3a5.jpg
+aff300befb.jpg
+aff83d1fc7.jpg
+b00599786e.jpg
+b009e04d6a.jpg
+b0156f53fa.jpg
+b0290b73f6.jpg
+b02e5c70d7.jpg
+b04f7d362a.jpg
+b05e44c828.jpg
+b06630e2d9.jpg
+b06e5ac68f.jpg
+b0798399ff.jpg
+b09b1bf247.jpg
+b0a63e2c90.jpg
+b0b442ad46.jpg
+b0bc8c80b8.jpg
+b0bf80ffaf.jpg
+b0c8e3304d.jpg
+b0d3972a75.jpg
+b0d63fb502.jpg
+b0d848d5af.jpg
+b0d948f6e2.jpg
+b0e06e751a.jpg
+b0eaf6770e.jpg
+b0f0a457eb.jpg
+b0f5afba5e.jpg
+b0f88e30a0.jpg
+b0fa11c81a.jpg
+b1038f6bb6.jpg
+b1117a76fb.jpg
+b11bebb769.jpg
+b12caa1c9e.jpg
+b144043a27.jpg
+b14f4436cd.jpg
+b156ae44a0.jpg
+b15b66e642.jpg
+b17466acde.jpg
+b183c54857.jpg
+b18c2bedc9.jpg
+b18c81c795.jpg
+b19bf57fcf.jpg
+b1b1c4ead8.jpg
+b1b9df2e84.jpg
+b1c04b1bed.jpg
+b1c5fe68bf.jpg
+b1d169e3e0.jpg
+b1dcabb5e0.jpg
+b1dfdaa72f.jpg
+b1e20ef0c7.jpg
+b1e6fe092c.jpg
+b1e7d115f2.jpg
+b1ef13461e.jpg
+b1fe1cded4.jpg
+b20e3f0351.jpg
+b20fda2cb7.jpg
+b215e4cafb.jpg
+b21d2d0333.jpg
+b21f5892a2.jpg
+b22a84f7bc.jpg
+b230f46d78.jpg
+b23b9bcff9.jpg
+b24e13ea57.jpg
+b2515cb937.jpg
+b25dd03617.jpg
+b26c13cd90.jpg
+b284e4c1bc.jpg
+b29e1153d5.jpg
+b2a8229436.jpg
+b2b163f100.jpg
+b2bd336508.jpg
+b2c907adff.jpg
+b2d401f368.jpg
+b2d4543970.jpg
+b2d5b8192d.jpg
+b2d7bf564d.jpg
+b2e5502c1e.jpg
+b2e846981a.jpg
+b2f9a00d39.jpg
+b307227285.jpg
+b313b08920.jpg
+b3185f3da6.jpg
+b3526cf3d7.jpg
+b37484065e.jpg
+b37aabbb39.jpg
+b39375b0d4.jpg
+b3a79255a6.jpg
+b3b9cd026e.jpg
+b3bc7fbfdc.jpg
+b3c02e8aee.jpg
+b3c3d30f73.jpg
+b3c3ebb34e.jpg
+b3c74e915a.jpg
+b3ea360f81.jpg
+b3f8a6d2c3.jpg
+b3fcb198bd.jpg
+b4023b997c.jpg
+b425e35736.jpg
+b425fe2c96.jpg
+b428aa56a8.jpg
+b4443553cf.jpg
+b44e393780.jpg
+b4588caffe.jpg
+b45c2ade13.jpg
+b45da763c1.jpg
+b474944163.jpg
+b48a4c9263.jpg
+b49d7c5a0a.jpg
+b49ef87f58.jpg
+b4a3655f72.jpg
+b4acd37467.jpg
+b4c08601fd.jpg
+b4d93b9564.jpg
+b4dda95f17.jpg
+b4e82c0a90.jpg
+b4eb4378eb.jpg
+b4f8054cd1.jpg
+b4f932020c.jpg
+b4f9c0daee.jpg
+b506c6ead3.jpg
+b50e1a9588.jpg
+b510ee6d52.jpg
+b52ea8b8d7.jpg
+b539275275.jpg
+b554a2a678.jpg
+b55c0defeb.jpg
+b56856674b.jpg
+b56faff103.jpg
+b57834ccd0.jpg
+b598195847.jpg
+b59cdd471b.jpg
+b59ea377fc.jpg
+b5b125d9e9.jpg
+b5b14d906f.jpg
+b5bf9513d9.jpg
+b5c3cadf89.jpg
+b5c9dce4ea.jpg
+b5ca04fc73.jpg
+b5cd3e4d3d.jpg
+b5d50fd2c9.jpg
+b5da5755e9.jpg
+b5ed51a7d3.jpg
+b5ef80c532.jpg
+b5f9e44e6e.jpg
+b5fbf94e9f.jpg
+b60037e282.jpg
+b601cb87a2.jpg
+b606abad20.jpg
+b61049bc2a.jpg
+b61a885545.jpg
+b61b16e01e.jpg
+b62b522ee7.jpg
+b62d33a770.jpg
+b6322d48b0.jpg
+b6353110a4.jpg
+b6582c297f.jpg
+b65a3d67d1.jpg
+b65faee402.jpg
+b662cf7a25.jpg
+b66dea22c6.jpg
+b675e50542.jpg
+b677e1c76d.jpg
+b6804e1eba.jpg
+b6938abe4f.jpg
+b693bd1c5a.jpg
+b6a35d1b5d.jpg
+b6aa1c69e8.jpg
+b6aafe2d28.jpg
+b6b1d646f9.jpg
+b6b698eeee.jpg
+b6bbc6ff44.jpg
+b6caeebc65.jpg
+b6cafea251.jpg
+b6ceb137e8.jpg
+b6d2514e01.jpg
+b6db23bcc1.jpg
+b6ee082d7b.jpg
+b6ee61af76.jpg
+b6fa3dd3d0.jpg
+b6fa57baa7.jpg
+b70027d169.jpg
+b700929f2c.jpg
+b703b46557.jpg
+b70c7babeb.jpg
+b70e1869fd.jpg
+b70f2f4f3e.jpg
+b72c1346d6.jpg
+b73917164f.jpg
+b7432e2055.jpg
+b758ce78b5.jpg
+b760db2eaf.jpg
+b7643bda23.jpg
+b76c4978dc.jpg
+b776d35856.jpg
+b78ed9dade.jpg
+b79e5ae2e2.jpg
+b7a417a2fd.jpg
+b7c59d2577.jpg
+b7c6377b74.jpg
+b7cedc6b95.jpg
+b7cf18629b.jpg
+b7d02f534f.jpg
+b7d494d374.jpg
+b7d65293e7.jpg
+b7d9586b33.jpg
+b7dac8a2a1.jpg
+b7dc73df0f.jpg
+b7e4b0598a.jpg
+b7e9bd5841.jpg
+b7ed92e5ac.jpg
+b7efc6f578.jpg
+b7fc00d066.jpg
+b7fcb7f2a9.jpg
+b804dd359e.jpg
+b80db8bcfa.jpg
+b85beb82ae.jpg
+b864d02bfa.jpg
+b868560999.jpg
+b86f6e4147.jpg
+b87c9c5d2b.jpg
+b87e4be539.jpg
+b87fafd940.jpg
+b885908e90.jpg
+b88b4df291.jpg
+b8966c93b5.jpg
+b897ef28f2.jpg
+b89fc16e84.jpg
+b8a2dea135.jpg
+b8be9123c2.jpg
+b8c03c2730.jpg
+b8c14ba0da.jpg
+b8c268c5b1.jpg
+b8c7ee9faa.jpg
+b8c9fd913b.jpg
+b8cc5eda55.jpg
+b8cf2c86d4.jpg
+b8d403d5e3.jpg
+b8d80fb83e.jpg
+b8e00033a6.jpg
+b8ebf5655a.jpg
+b8f5fc86f3.jpg
+b8f78ea26a.jpg
+b906cb7745.jpg
+b91be171a3.jpg
+b9222cf29f.jpg
+b933129f3c.jpg
+b93d8ed9b3.jpg
+b94d974153.jpg
+b959aecb1a.jpg
+b96948dd79.jpg
+b96a0276a6.jpg
+b96dfcd62f.jpg
+b9755249a2.jpg
+b977f143f4.jpg
+b9795beeae.jpg
+b9804a10c5.jpg
+b983e056a6.jpg
+b98ead1bd3.jpg
+b9ad7c4eae.jpg
+b9b31c499d.jpg
+b9be3e6585.jpg
+b9c9bd81b3.jpg
+b9cc63d1e4.jpg
+b9d3c5b5fd.jpg
+b9d72867cc.jpg
+b9ddf180db.jpg
+b9de0e7ab7.jpg
+b9e260321f.jpg
+b9e2d9cf76.jpg
+b9e3c4afa4.jpg
+b9ef56217a.jpg
+b9efbe2e6e.jpg
+b9f17f582f.jpg
+b9f6dc90d4.jpg
+b9fb10ef3c.jpg
+ba043911e5.jpg
+ba12f25338.jpg
+ba2c2fa8ca.jpg
+ba2ee0775c.jpg
+ba2fad5ec9.jpg
+ba3057a3ba.jpg
+ba3c976d89.jpg
+ba5e28cfba.jpg
+ba6281dbce.jpg
+ba62993855.jpg
+ba6b13cbf4.jpg
+ba719ae52c.jpg
+ba7c7cfe38.jpg
+ba7c9caca3.jpg
+ba8477e463.jpg
+ba9460d1ab.jpg
+ba9b24e1c6.jpg
+baab705764.jpg
+bab6eb364a.jpg
+baba01a651.jpg
+babafbef75.jpg
+bad289b1da.jpg
+bad3039996.jpg
+bada3c5741.jpg
+badb27dd35.jpg
+bade630725.jpg
+badea05ab8.jpg
+badec96a9d.jpg
+bae4cf0dd7.jpg
+baeb1dfdb8.jpg
+baf12e34a3.jpg
+bb08e7c636.jpg
+bb10c8691f.jpg
+bb24132ffe.jpg
+bb3d6c2fc7.jpg
+bb47da015e.jpg
+bb69ac181d.jpg
+bb6a6f953d.jpg
+bb75a214d7.jpg
+bb80cf12f1.jpg
+bb99cf0a90.jpg
+bba00814dd.jpg
+bbad147555.jpg
+bbafae272f.jpg
+bbbf7d9925.jpg
+bbc07f4dd4.jpg
+bbc49e6468.jpg
+bbc66fef95.jpg
+bbc8265d3b.jpg
+bbd0cbc068.jpg
+bbd6022e71.jpg
+bbd942f417.jpg
+bbdab0ac49.jpg
+bbe2ed3aec.jpg
+bbe9f6866b.jpg
+bbec946e3e.jpg
+bbee622301.jpg
+bbfdb31a12.jpg
+bbfe570570.jpg
+bbff29c0bb.jpg
+bc0092fba8.jpg
+bc015b023a.jpg
+bc096ee00e.jpg
+bc2ef704e4.jpg
+bc3e1fc435.jpg
+bc6b6e3737.jpg
+bc6d8c2008.jpg
+bc80ea7f88.jpg
+bc9836d343.jpg
+bca103f0eb.jpg
+bcb4426b6b.jpg
+bcc2943ace.jpg
+bcc5bd722d.jpg
+bccb2ab9da.jpg
+bcd189af43.jpg
+bcd1cfd8dd.jpg
+bcd3c41b87.jpg
+bcd56169a2.jpg
+bcdd544b76.jpg
+bce0e4ed0d.jpg
+bce3e89e1a.jpg
+bce4575711.jpg
+bce9081d29.jpg
+bceef32102.jpg
+bd0065c0fc.jpg
+bd143e9760.jpg
+bd14b60ae8.jpg
+bd26ae81e9.jpg
+bd2cac5554.jpg
+bd2e85da31.jpg
+bd3d289cec.jpg
+bd49556825.jpg
+bd51ff9b30.jpg
+bd52123d7a.jpg
+bd63d83988.jpg
+bd688f8a05.jpg
+bd7ca7806f.jpg
+bd8cd75e87.jpg
+bd994f8616.jpg
+bd9caea7e6.jpg
+bda4a4a1bc.jpg
+bda9b419eb.jpg
+bdabe3b79d.jpg
+bdb69d2721.jpg
+bdc07e4dac.jpg
+bdc75f9fe1.jpg
+bdd32d35a0.jpg
+bdd9d4cb31.jpg
+bde2b91998.jpg
+bde65feaee.jpg
+bdeadea939.jpg
+bdee86e2c2.jpg
+bdf38ca55f.jpg
+bdfb4a6ee3.jpg
+be0425cb9b.jpg
+be0ad300ef.jpg
+be1d23c6b9.jpg
+be26a34d1f.jpg
+be2a16d939.jpg
+be2be4ec29.jpg
+be37905aa8.jpg
+be490a646d.jpg
+be4b0d7edd.jpg
+be5096a8a1.jpg
+be544dd93d.jpg
+be5a4ab3b4.jpg
+be6ac1102b.jpg
+be7454d19c.jpg
+be8732728f.jpg
+be9a2a29e9.jpg
+bece13a17a.jpg
+bed483d502.jpg
+bed660c6ab.jpg
+bedb8587fa.jpg
+bedebedf81.jpg
+bee46256c0.jpg
+bef2afb102.jpg
+bef4b5ece1.jpg
+befbc05353.jpg
+bf065e0e18.jpg
+bf08a2244f.jpg
+bf1afee158.jpg
+bf24a90d2b.jpg
+bf2be86ea1.jpg
+bf30db52d9.jpg
+bf3200af07.jpg
+bf38f80869.jpg
+bf3e0469c1.jpg
+bf52f7e6a4.jpg
+bf5e6fac92.jpg
+bf60971469.jpg
+bf67387993.jpg
+bf8dd61722.jpg
+bfa4c50b1c.jpg
+bfaf5cdcb8.jpg
+bfb555dd1f.jpg
+bfb716206e.jpg
+bfb84e0176.jpg
+bfc6b4eca9.jpg
+bfcc346e35.jpg
+bfcf4d5ac7.jpg
+bfe6e3aeae.jpg
+bfefcd9c6a.jpg
+bff6c02842.jpg
+bffa673c43.jpg
+c0037cc45d.jpg
+c0049d3e6f.jpg
+c021039df0.jpg
+c04289a4e6.jpg
+c04c84edc0.jpg
+c06291ebe4.jpg
+c06a572a4b.jpg
+c08a1c4553.jpg
+c0972208fc.jpg
+c097db5101.jpg
+c0a1a614a7.jpg
+c0a621e03d.jpg
+c0c010dfdb.jpg
+c0c55f72df.jpg
+c0c7604196.jpg
+c0c7c885cf.jpg
+c0c7d00b9e.jpg
+c0c9f95d2e.jpg
+c0d500c107.jpg
+c0d90358b3.jpg
+c0dd3d0754.jpg
+c0e24d9907.jpg
+c0ea9b99a8.jpg
+c0ee9babf4.jpg
+c0ef27358d.jpg
+c0efe6b772.jpg
+c0f00a13dc.jpg
+c0f4ab1ad8.jpg
+c0f6b63a35.jpg
+c10084edc5.jpg
+c108a2adb5.jpg
+c10fef288c.jpg
+c110760eab.jpg
+c111b7639b.jpg
+c127f65312.jpg
+c12ec0b053.jpg
+c137265b1d.jpg
+c140865619.jpg
+c142480461.jpg
+c143c1f708.jpg
+c1490382b2.jpg
+c16639ff09.jpg
+c16bbc2dbe.jpg
+c1871db78d.jpg
+c194aba626.jpg
+c19a4ba6ea.jpg
+c19cecc203.jpg
+c1a0b685ce.jpg
+c1ac79d7d3.jpg
+c1c033cd38.jpg
+c1c3e424f1.jpg
+c1d121af72.jpg
+c1d339f995.jpg
+c1dad80b23.jpg
+c1db2d9d21.jpg
+c1dfc29b14.jpg
+c1e59a4288.jpg
+c1e5e658ab.jpg
+c1f31cddfe.jpg
+c1fc7ade9e.jpg
+c2048678d1.jpg
+c20ac208c7.jpg
+c2233df153.jpg
+c22d511747.jpg
+c22faa7f82.jpg
+c265f2477b.jpg
+c2836f78f3.jpg
+c285d22f42.jpg
+c28beb5721.jpg
+c28fdbac8a.jpg
+c296ec4b28.jpg
+c2a13a5b69.jpg
+c2ad1f9207.jpg
+c2af4e2ce1.jpg
+c2c17bf415.jpg
+c2c31256d0.jpg
+c2c59dcf04.jpg
+c2c9be3ad4.jpg
+c2cf1d5c16.jpg
+c2d2ff0066.jpg
+c2d461e4cd.jpg
+c2dfe9ab5a.jpg
+c2e2de0c2a.jpg
+c2e5d0a30e.jpg
+c2e6f9653e.jpg
+c2e884ea70.jpg
+c2f01c7c26.jpg
+c300921db0.jpg
+c316cd7933.jpg
+c31818614a.jpg
+c31d0c79a6.jpg
+c31fae26f4.jpg
+c321b7f223.jpg
+c321f20de5.jpg
+c341a5b021.jpg
+c360862cb8.jpg
+c3644c52a1.jpg
+c3686eb948.jpg
+c36d336f79.jpg
+c3709c2513.jpg
+c37b88e370.jpg
+c396a451c3.jpg
+c3a6dc70b4.jpg
+c3a8157788.jpg
+c3a95b2f11.jpg
+c3aba46a00.jpg
+c3b2153b5b.jpg
+c3b721838d.jpg
+c3bf7d4c60.jpg
+c3c571e812.jpg
+c3c7f8a86e.jpg
+c3cdeb0660.jpg
+c3d20624bf.jpg
+c3d627b2df.jpg
+c3d6ae1b03.jpg
+c3dc12ede6.jpg
+c3de96bc8d.jpg
+c3e063d469.jpg
+c3e3df3f27.jpg
+c3e65c927a.jpg
+c3e7962913.jpg
+c3e7d947d8.jpg
+c3eece3bf0.jpg
+c3f049193f.jpg
+c3f16ea570.jpg
+c400cb19fb.jpg
+c41e5f5dcd.jpg
+c436e37764.jpg
+c44f1ac1b8.jpg
+c465f680aa.jpg
+c47f4c9b10.jpg
+c487452ecf.jpg
+c497e7e049.jpg
+c4a6bc6a62.jpg
+c4a7dfaa6c.jpg
+c4ae295169.jpg
+c4beb2744c.jpg
+c4becf6b4b.jpg
+c4bf8a73c5.jpg
+c4dea06b64.jpg
+c4e2baba0d.jpg
+c4e40fbb3e.jpg
+c4e6ecaa3f.jpg
+c4eee2f0b7.jpg
+c4f3acdba8.jpg
+c4f6573e26.jpg
+c4f97b7011.jpg
+c4fc8d9d94.jpg
+c513f387a0.jpg
+c51b532e4e.jpg
+c51b5d1983.jpg
+c55aba4154.jpg
+c576bb2b2f.jpg
+c57f38837c.jpg
+c58fc095c4.jpg
+c590b2cf41.jpg
+c5ae59cd4c.jpg
+c5b1ad8c2f.jpg
+c5bcb1dc7a.jpg
+c5bd23d1dd.jpg
+c5bda853a7.jpg
+c5c4218b09.jpg
+c5c4f19c88.jpg
+c5c85f22b3.jpg
+c5d1a2d773.jpg
+c5d334458e.jpg
+c5d8c8032b.jpg
+c5e6a25b4f.jpg
+c5e892eef0.jpg
+c5eff7ecb1.jpg
+c5f0f9daba.jpg
+c5f3217f8f.jpg
+c5f3933042.jpg
+c5fe72e422.jpg
+c609230f48.jpg
+c6159fa27a.jpg
+c6164924d9.jpg
+c61d05c6ad.jpg
+c6248ddb9e.jpg
+c627b2dc57.jpg
+c62f9728e1.jpg
+c63dd1887e.jpg
+c67434f57f.jpg
+c67af78a33.jpg
+c68d1e42c0.jpg
+c68f0c09b4.jpg
+c692979230.jpg
+c696d99156.jpg
+c69ac5a308.jpg
+c6a669254b.jpg
+c6aa8b7898.jpg
+c6b574df26.jpg
+c6be770922.jpg
+c6cf8e0418.jpg
+c6d060c22a.jpg
+c6ddc2e3a2.jpg
+c6e1d8a950.jpg
+c6e4e06152.jpg
+c6f0501137.jpg
+c6f2fb579f.jpg
+c6f3406dce.jpg
+c6f9a8a4d7.jpg
+c6faaf07ca.jpg
+c707b66aed.jpg
+c715ecb116.jpg
+c717486082.jpg
+c71933b1f6.jpg
+c71f695b65.jpg
+c722cd6fb7.jpg
+c72983e80a.jpg
+c753bcd031.jpg
+c783e3de04.jpg
+c7857c7abb.jpg
+c7b31ae9cd.jpg
+c7b48b805f.jpg
+c7d445337a.jpg
+c7d446613e.jpg
+c7dd9e9cf7.jpg
+c7e24e8bb7.jpg
+c7e95eb754.jpg
+c7ec7b98cb.jpg
+c7ee06614a.jpg
+c7f064c7bf.jpg
+c7f0b7e139.jpg
+c7fcabebee.jpg
+c80b757ffa.jpg
+c81cbcc222.jpg
+c82134ca61.jpg
+c823b00785.jpg
+c833a9fea9.jpg
+c8492be1fa.jpg
+c8522f7d68.jpg
+c85539079a.jpg
+c85aaf5ea7.jpg
+c86a17ee96.jpg
+c86f2e50a6.jpg
+c86faebe03.jpg
+c8839a441f.jpg
+c88ed83a0b.jpg
+c89beb110b.jpg
+c89ec3cd28.jpg
+c8bb9751d7.jpg
+c8d1841141.jpg
+c8de929eed.jpg
+c8e2a35667.jpg
+c8e81dcb95.jpg
+c8e83da1ff.jpg
+c8ecc4e5ad.jpg
+c8f46b9ab1.jpg
+c8f54c1cdf.jpg
+c8fa720618.jpg
+c906c57281.jpg
+c913e7fed0.jpg
+c913ea9494.jpg
+c91f328c79.jpg
+c91fe5952b.jpg
+c9333e81ef.jpg
+c9355491c0.jpg
+c93c1f20e7.jpg
+c943a7aa89.jpg
+c949419b08.jpg
+c951e51e8d.jpg
+c994d6627e.jpg
+c99920f3a8.jpg
+c9af6ed6b1.jpg
+c9af83e1ca.jpg
+c9afd88cb0.jpg
+c9bd3a50a1.jpg
+c9c5d39e8e.jpg
+c9d40c8b10.jpg
+c9d98b7e43.jpg
+c9da74649c.jpg
+c9e13e249b.jpg
+c9e212c39a.jpg
+c9e295d476.jpg
+c9e5e4e5af.jpg
+c9ea94b815.jpg
+c9f6294835.jpg
+ca15337fca.jpg
+ca181fb375.jpg
+ca2ddc004e.jpg
+ca316a99f3.jpg
+ca43c834e2.jpg
+ca4d0a473c.jpg
+ca6666333a.jpg
+ca72a47817.jpg
+ca7c98ae8a.jpg
+ca8e9f34e7.jpg
+ca9af373d8.jpg
+cab13d117b.jpg
+cab7bb8a63.jpg
+cab938d84d.jpg
+cabafc0e12.jpg
+cabc2328c5.jpg
+cac03580db.jpg
+cac791a248.jpg
+caca0644c7.jpg
+cacaebfd21.jpg
+cad26248bb.jpg
+cad48d88e0.jpg
+cad605ff85.jpg
+cadc6d01ad.jpg
+cadd0e5d11.jpg
+cae1f6a6d6.jpg
+cae21e7161.jpg
+caee5133e1.jpg
+caef32bba9.jpg
+caf2c1f7e8.jpg
+caf4178d10.jpg
+caf81a8292.jpg
+cafc99244c.jpg
+cb017d8a54.jpg
+cb0391ed68.jpg
+cb04cf2ba3.jpg
+cb05ba3834.jpg
+cb1ba2009e.jpg
+cb1f955ed4.jpg
+cb1fbf9809.jpg
+cb321d98df.jpg
+cb3662fc7d.jpg
+cb41b1b213.jpg
+cb4ce8f4f0.jpg
+cb5be7ec51.jpg
+cb5e732332.jpg
+cb6391fbf4.jpg
+cb6c21f1d5.jpg
+cb6e95c775.jpg
+cb6fbeae00.jpg
+cb72812bd4.jpg
+cb80f47d91.jpg
+cb84d1dd8c.jpg
+cb8d0b8b1d.jpg
+cb8d6b6f00.jpg
+cb90b1d4f3.jpg
+cb9d65f437.jpg
+cba7d81b99.jpg
+cbb211eac6.jpg
+cbbfb06344.jpg
+cbc85faf47.jpg
+cbd151867a.jpg
+cbd1e4e875.jpg
+cbd71b2aca.jpg
+cbd7753147.jpg
+cbdbfc5978.jpg
+cbe3bf10fe.jpg
+cbe3d82daa.jpg
+cbe3ee6b27.jpg
+cbe5050d0d.jpg
+cbe5eb6696.jpg
+cbe6542626.jpg
+cbf47a2e17.jpg
+cbfb07d1d6.jpg
+cc0a587391.jpg
+cc0d3d2b12.jpg
+cc16df94c1.jpg
+cc1c4305f1.jpg
+cc2e6f7376.jpg
+cc2efaec22.jpg
+cc39e651e3.jpg
+cc5324dfbf.jpg
+cc765cba88.jpg
+cc766e4e6a.jpg
+cc7e0caed0.jpg
+cc9600fb25.jpg
+ccb00d349a.jpg
+ccb2f113dc.jpg
+ccc2cd9d63.jpg
+ccc4e0a939.jpg
+ccc584f82d.jpg
+cccb928e07.jpg
+cceb8d60ff.jpg
+ccf20b8bc2.jpg
+ccfdbf82df.jpg
+cd011d4899.jpg
+cd11b33940.jpg
+cd3a631856.jpg
+cd3df7a8e9.jpg
+cd42d53ebd.jpg
+cd52e3f2fe.jpg
+cd5420f681.jpg
+cd62492877.jpg
+cd648c062e.jpg
+cd67f7d265.jpg
+cd69563263.jpg
+cd90e30a1e.jpg
+cd98e62c8f.jpg
+cda2fc2df0.jpg
+cdaa784932.jpg
+cdaf68d4ad.jpg
+cdb2353f60.jpg
+cdb89349bf.jpg
+cdb8945620.jpg
+cdb9a4a0ea.jpg
+cdc1f4b107.jpg
+cdc3ee1b24.jpg
+cdc583254a.jpg
+cdc6c28796.jpg
+cdc7ed032d.jpg
+cdc7ef5c9d.jpg
+cdc97e5056.jpg
+cdcd471f12.jpg
+cdce14b70f.jpg
+cde29ab29f.jpg
+cde9cf4217.jpg
+cdf2007659.jpg
+cdfeb4e489.jpg
+ce01392613.jpg
+ce039ff3d4.jpg
+ce135e26dd.jpg
+ce1491b390.jpg
+ce29b9979c.jpg
+ce408eb5cf.jpg
+ce54d1e381.jpg
+ce5fac18d9.jpg
+ce60e54766.jpg
+ce673267ea.jpg
+ce6b23aa71.jpg
+ce73863a6c.jpg
+ce7969ad4b.jpg
+ce7eb74818.jpg
+ce8ca9bffb.jpg
+cea105a876.jpg
+cea1c54379.jpg
+cea5173375.jpg
+ceaf3903af.jpg
+ceb7190c60.jpg
+cec57cc583.jpg
+cecb797629.jpg
+cecce5c6c2.jpg
+cecd3fc8c3.jpg
+cedc14af2f.jpg
+cedc79186e.jpg
+ceddcc6b85.jpg
+cee2d2dba3.jpg
+cee48efd07.jpg
+ceefc58ef3.jpg
+cef44dcb17.jpg
+cef775459d.jpg
+cf05ddb0d4.jpg
+cf12ba2abc.jpg
+cf2cc9c314.jpg
+cf2e6999ce.jpg
+cf4769299d.jpg
+cf5341b194.jpg
+cf58d81280.jpg
+cf7082aaa1.jpg
+cf7aaa1009.jpg
+cf826699b0.jpg
+cf836d295b.jpg
+cf8b687c1c.jpg
+cfa7bf3f47.jpg
+cfa8b0dbbc.jpg
+cfc4a746ac.jpg
+cfc9f7b2f2.jpg
+cfccf96c6e.jpg
+cfcdcc086f.jpg
+cfe0dcf244.jpg
+cfe2e1c708.jpg
+cffba276ec.jpg
+d00036ecd7.jpg
+d014c494dc.jpg
+d03a78328b.jpg
+d04ddc5fd9.jpg
+d058f2919c.jpg
+d05b3297cf.jpg
+d05e33069a.jpg
+d05ed6c6f8.jpg
+d0873ef123.jpg
+d08958142b.jpg
+d099255c0a.jpg
+d0b64d6491.jpg
+d0b9d8777f.jpg
+d0c3efb066.jpg
+d0c655554a.jpg
+d0cadfbc89.jpg
+d0e586e5ef.jpg
+d0fc895a1a.jpg
+d10587f9ab.jpg
+d105b884c8.jpg
+d12de0e958.jpg
+d135869f4c.jpg
+d141c35e3c.jpg
+d1475c2dc0.jpg
+d14fff221d.jpg
+d15fa51eab.jpg
+d1675065f9.jpg
+d1742f3bfa.jpg
+d184086155.jpg
+d19565a007.jpg
+d1966e5294.jpg
+d1a9a88f49.jpg
+d1af317242.jpg
+d1b78cc6db.jpg
+d1c7072696.jpg
+d1c7d61a42.jpg
+d1cbae6be7.jpg
+d1d31c8f0e.jpg
+d1d466cf4a.jpg
+d1d642437d.jpg
+d1d6675da4.jpg
+d1e539fac8.jpg
+d1e78c6508.jpg
+d1fec8a32a.jpg
+d2001a1e33.jpg
+d2075ab1b7.jpg
+d20b3c1233.jpg
+d20e385a13.jpg
+d229ee50c6.jpg
+d22ab437cc.jpg
+d24009bcc4.jpg
+d2436ab6a8.jpg
+d25abb5702.jpg
+d25db7d5ec.jpg
+d26d9bd742.jpg
+d29927635e.jpg
+d2b9beebaf.jpg
+d2c10d84db.jpg
+d2c46d53e8.jpg
+d2c62282bf.jpg
+d2ccba890d.jpg
+d2cf48d3ea.jpg
+d2d29e81eb.jpg
+d2d2ac244a.jpg
+d2d53e5a48.jpg
+d2d7ad5926.jpg
+d2de2684b7.jpg
+d2e550cb12.jpg
+d2e695d3c4.jpg
+d2e9a0fa67.jpg
+d2e9c329c4.jpg
+d2eaf85d93.jpg
+d2f6e95b3f.jpg
+d30c2f84a1.jpg
+d322b94e9d.jpg
+d33ce47122.jpg
+d33d7592ba.jpg
+d33dd837bf.jpg
+d33effb9b9.jpg
+d359aa8ad5.jpg
+d378dc2815.jpg
+d379710dc0.jpg
+d37e064711.jpg
+d38c639500.jpg
+d3a3e5e678.jpg
+d3b39db71b.jpg
+d3c13e3ae1.jpg
+d3c7087729.jpg
+d3d5ce767f.jpg
+d3d604aa99.jpg
+d3d82f8722.jpg
+d3e8385411.jpg
+d3ef4692bc.jpg
+d3f00e2c80.jpg
+d410d30e39.jpg
+d4119e6646.jpg
+d415367b34.jpg
+d416ed8f37.jpg
+d419d014b1.jpg
+d42b28b985.jpg
+d42b781f87.jpg
+d4538671b4.jpg
+d45e3fcb85.jpg
+d460db4979.jpg
+d4702cf61f.jpg
+d47769d0b9.jpg
+d485c2e9bb.jpg
+d48b4985de.jpg
+d48bda7efe.jpg
+d48e193a2c.jpg
+d4acf0b0bd.jpg
+d4b44b0850.jpg
+d4c380f13b.jpg
+d4c3c8060f.jpg
+d4c46edd3e.jpg
+d4cdbb4299.jpg
+d4cffc4752.jpg
+d4d1382b70.jpg
+d4d5653b60.jpg
+d4d613de78.jpg
+d4de54c2c6.jpg
+d4df4c8163.jpg
+d4e001cfe5.jpg
+d4eaa1a91e.jpg
+d4ffacdf1d.jpg
+d505ef9e66.jpg
+d50a013518.jpg
+d5120f23ba.jpg
+d51e770b5e.jpg
+d529e578d8.jpg
+d551e09afe.jpg
+d56f0d3fd5.jpg
+d57944c6c3.jpg
+d57b611364.jpg
+d58317c12d.jpg
+d5951ff8df.jpg
+d59bdafab9.jpg
+d5a9faa59c.jpg
+d5ac799607.jpg
+d5ad2ce934.jpg
+d5b105ff1d.jpg
+d5b71ff889.jpg
+d5d23d8f21.jpg
+d5d500a866.jpg
+d5d6165384.jpg
+d5deb14bf4.jpg
+d5e57a9ff3.jpg
+d5fc45ab9f.jpg
+d603ab5d4f.jpg
+d62be075dd.jpg
+d62c0e9261.jpg
+d62e21aeb6.jpg
+d632a659b4.jpg
+d65c82370c.jpg
+d65e1b081f.jpg
+d6689dda1e.jpg
+d66e65c368.jpg
+d67acb461d.jpg
+d67e56d550.jpg
+d69e531384.jpg
+d6aa1d4561.jpg
+d6b3bfb989.jpg
+d6b8c10533.jpg
+d6b8f9b74b.jpg
+d6b9d5d6d1.jpg
+d6c57c383a.jpg
+d6c61ab099.jpg
+d6d094d366.jpg
+d6d8057538.jpg
+d6d959ce95.jpg
+d6d991ed2b.jpg
+d6d9c482a1.jpg
+d6dd1d6cec.jpg
+d6df68fc4e.jpg
+d6e5b8cab2.jpg
+d6f79b6e2d.jpg
+d6fe5e2828.jpg
+d70056bc7c.jpg
+d7127c96ae.jpg
+d712bd2788.jpg
+d71c3a8176.jpg
+d7217b590d.jpg
+d72ca354ee.jpg
+d72ee01d15.jpg
+d733d56d15.jpg
+d73cb8f701.jpg
+d7589a1d8c.jpg
+d76151111a.jpg
+d7653c5f75.jpg
+d76e76762e.jpg
+d777321a3e.jpg
+d77ca92485.jpg
+d781494ce2.jpg
+d78a478529.jpg
+d78d5cd977.jpg
+d790312a52.jpg
+d799b48228.jpg
+d79b52e09b.jpg
+d7a614cb10.jpg
+d7adf480d0.jpg
+d7c6d18fe6.jpg
+d7ce1d52b2.jpg
+d7d9313640.jpg
+d7dfca5c47.jpg
+d7e3c7e348.jpg
+d7e99b6259.jpg
+d7edcf727d.jpg
+d7ee7d0487.jpg
+d7eefdccc8.jpg
+d7f14ee663.jpg
+d7f1ddf8dd.jpg
+d7f236b392.jpg
+d7f7d797c6.jpg
+d7f8d79e78.jpg
+d801293214.jpg
+d805fbc5b5.jpg
+d83d53d778.jpg
+d83de3f4c9.jpg
+d84d39c8f3.jpg
+d85ae16835.jpg
+d86e5b1c39.jpg
+d874cd3f0b.jpg
+d8aeab65af.jpg
+d8b1e21926.jpg
+d8b65cbf2a.jpg
+d8c059d60c.jpg
+d8c1423196.jpg
+d8c6f61473.jpg
+d8c9c0935f.jpg
+d8ca4cbcff.jpg
+d8cb60d447.jpg
+d8d2b51355.jpg
+d8d8c31b97.jpg
+d8e537f666.jpg
+d8ed71b4e6.jpg
+d8f193f307.jpg
+d8fe45bd8e.jpg
+d91111b364.jpg
+d9115e5edb.jpg
+d9152313cb.jpg
+d918e65388.jpg
+d91b717086.jpg
+d91e76998b.jpg
+d91ed1f131.jpg
+d91ef12bcc.jpg
+d953dde89a.jpg
+d954d521d0.jpg
+d95a0544ce.jpg
+d95a4b2cdb.jpg
+d95d89e45b.jpg
+d95e1c9924.jpg
+d96109257b.jpg
+d963189c42.jpg
+d964bff4cb.jpg
+d9737885d6.jpg
+d987a1397f.jpg
+d99267a987.jpg
+d99f7fd1c8.jpg
+d9af976585.jpg
+d9b4601624.jpg
+d9c3926f71.jpg
+d9cf6a6e56.jpg
+d9d0c7e0ce.jpg
+d9d108d1b9.jpg
+d9d227c60e.jpg
+d9d2932eb9.jpg
+d9d48c11ac.jpg
+d9d703626e.jpg
+d9d71e731b.jpg
+d9e2210f32.jpg
+d9e492cdcf.jpg
+d9e707621b.jpg
+d9f0f20d86.jpg
+d9f150d8f0.jpg
+d9fa8d549a.jpg
+da02b3d8e3.jpg
+da0ce9d51b.jpg
+da142e5c2f.jpg
+da2c6c922c.jpg
+da2ecef181.jpg
+da2ef729a8.jpg
+da3180f2da.jpg
+da34e6ccfb.jpg
+da3893d1e2.jpg
+da4fdc279c.jpg
+da53f58c50.jpg
+da62d6fcae.jpg
+da651f04fd.jpg
+da6c35cbf9.jpg
+da702ffbf7.jpg
+da76d6477b.jpg
+da79dcd616.jpg
+da7ae7af4c.jpg
+da95c751b0.jpg
+dab0c180ea.jpg
+dab53ceeee.jpg
+dabb75c707.jpg
+dabca6968f.jpg
+dac4293a65.jpg
+dac47b7e91.jpg
+dac6f6e398.jpg
+dac84c3309.jpg
+dad3b63df7.jpg
+daebd802ba.jpg
+daef20a8a2.jpg
+daf23f296f.jpg
+db18aa43ef.jpg
+db1c010668.jpg
+db33f568f2.jpg
+db384d8da4.jpg
+db3a803998.jpg
+db5dbad747.jpg
+db61f00a69.jpg
+db65f82b29.jpg
+db67367a89.jpg
+db6afaf677.jpg
+db6ca3f326.jpg
+db6d44ff40.jpg
+db87658602.jpg
+db8a00e666.jpg
+db97519894.jpg
+db97b483e2.jpg
+dbac7993f4.jpg
+dbad3423f7.jpg
+dbb9856c8c.jpg
+dbc1634a75.jpg
+dbc31310a1.jpg
+dbc3fc18c2.jpg
+dbd22c9154.jpg
+dbd382e9e9.jpg
+dbdd2fb273.jpg
+dbe2cd2c6f.jpg
+dbf669a342.jpg
+dc0ce0c2c2.jpg
+dc16e46e77.jpg
+dc18731819.jpg
+dc21b9f400.jpg
+dc2a92eb5a.jpg
+dc2c1cfefa.jpg
+dc4151bd30.jpg
+dc417da570.jpg
+dc4eaae42d.jpg
+dc7633b08a.jpg
+dc7e3dcadf.jpg
+dc862ae8aa.jpg
+dc9da0561d.jpg
+dc9ddf27f4.jpg
+dc9dfd6250.jpg
+dca45da90e.jpg
+dca7880fce.jpg
+dcb6d1098e.jpg
+dcc7900801.jpg
+dccc15d8a1.jpg
+dcd069b245.jpg
+dcd0b25de1.jpg
+dcd143cc81.jpg
+dcd6036462.jpg
+dcde817c42.jpg
+dcdf21d450.jpg
+dce12f581e.jpg
+dd050b138d.jpg
+dd0c0579a4.jpg
+dd0ef458c3.jpg
+dd226d618a.jpg
+dd29490d19.jpg
+dd2e1804fa.jpg
+dd3d7610cb.jpg
+dd3d86d4ef.jpg
+dd5905222c.jpg
+dd78927fd3.jpg
+dd94740974.jpg
+dd95c56993.jpg
+dda7ee0a77.jpg
+ddafe46b38.jpg
+ddb718d257.jpg
+ddc0202960.jpg
+ddd416ddd6.jpg
+ddd8b5363e.jpg
+ddd9058eb7.jpg
+ddded69049.jpg
+dde76d45fc.jpg
+de0558d40b.jpg
+de0cb936c8.jpg
+de1525ca66.jpg
+de1e18c44a.jpg
+de1e325f68.jpg
+de23d49364.jpg
+de25f55745.jpg
+de3f383dae.jpg
+de5c5040b1.jpg
+de6e804239.jpg
+de7e43efcc.jpg
+de8c8ee8f2.jpg
+dea09311cb.jpg
+dec050626d.jpg
+dec15232a6.jpg
+dec5489394.jpg
+decad9b151.jpg
+ded592bda8.jpg
+ded5953ee9.jpg
+dedb0e552a.jpg
+dee4d9ed27.jpg
+deee42dc2b.jpg
+def9b26096.jpg
+df024881b9.jpg
+df035e8f69.jpg
+df1bd9e04f.jpg
+df1c28ab75.jpg
+df24af750e.jpg
+df26d1dd80.jpg
+df292f8e6d.jpg
+df2c48d7c7.jpg
+df2d2ddd20.jpg
+df68866b1e.jpg
+df72ab0cd2.jpg
+df7f93f180.jpg
+df8e5aa1be.jpg
+df9c5153e4.jpg
+df9d63ee14.jpg
+dfa3003de7.jpg
+dfae026f6d.jpg
+dfb102819a.jpg
+dfb676d53e.jpg
+dfc219c56a.jpg
+dfc295113b.jpg
+dfc3f3b0b9.jpg
+dfc55c9152.jpg
+dfcaeb611e.jpg
+dfd265e60a.jpg
+dfd7780d9d.jpg
+dfd8af91e6.jpg
+dfd8d6904b.jpg
+dfd933e53e.jpg
+dfe113f4ee.jpg
+dfe4485c97.jpg
+dfe8706be5.jpg
+dfea4826bd.jpg
+dff9f11f50.jpg
+e0006f0f41.jpg
+e01371bd33.jpg
+e01ae85fc1.jpg
+e023a824d6.jpg
+e025ea9b42.jpg
+e02826d3da.jpg
+e03c948e22.jpg
+e044af4d1c.jpg
+e050bceada.jpg
+e068b69e5b.jpg
+e0824aa93b.jpg
+e084aba76b.jpg
+e08ae32a68.jpg
+e08afd73a6.jpg
+e08ef1a83d.jpg
+e0a728a02e.jpg
+e0aa61e4bf.jpg
+e0ab12b9a7.jpg
+e0aed36f6a.jpg
+e0cc1f6237.jpg
+e0ce83825c.jpg
+e0d073c945.jpg
+e0dbaffa04.jpg
+e0e5da3707.jpg
+e0f0abe9f8.jpg
+e0f99505ef.jpg
+e10025dcac.jpg
+e111113868.jpg
+e1135ab381.jpg
+e113d4f031.jpg
+e12ebdbf91.jpg
+e140e245e9.jpg
+e147bfc52a.jpg
+e1595c8686.jpg
+e162036a47.jpg
+e168b6a549.jpg
+e195d1b2b1.jpg
+e1a0a62adc.jpg
+e1aa025444.jpg
+e1afdf2240.jpg
+e1b0d89e75.jpg
+e1d10c2b93.jpg
+e1d3319f0f.jpg
+e1e28a1e83.jpg
+e1e82e7dd3.jpg
+e1eabf3a60.jpg
+e1ed53d17e.jpg
+e1f46b5e53.jpg
+e200a0888f.jpg
+e20f7bd016.jpg
+e215137374.jpg
+e224d59487.jpg
+e22bab4350.jpg
+e244e46111.jpg
+e24e37e7db.jpg
+e250abd7b2.jpg
+e261f8c936.jpg
+e281e09d4c.jpg
+e282839f0e.jpg
+e2929a6a6d.jpg
+e29cd48980.jpg
+e2a350f1bf.jpg
+e2a94a61ae.jpg
+e2ad33196a.jpg
+e2b6a5d47c.jpg
+e2c2c2a874.jpg
+e2ce32211d.jpg
+e2ce77a5a8.jpg
+e2d54b2b7a.jpg
+e2d55836cd.jpg
+e2d8779fb9.jpg
+e2db412ea1.jpg
+e2dfad9dcc.jpg
+e2e796fc0c.jpg
+e2f87929b1.jpg
+e2f9d6d274.jpg
+e2fe3ee140.jpg
+e306c9b71a.jpg
+e306d09bad.jpg
+e3097c26e7.jpg
+e31eb71b89.jpg
+e32158ae36.jpg
+e324b38006.jpg
+e3534b24d6.jpg
+e353b0f4f5.jpg
+e3552b949b.jpg
+e35f22cbdd.jpg
+e3626273d1.jpg
+e36c261ecd.jpg
+e36e80c8fb.jpg
+e3703002a1.jpg
+e37c7d3add.jpg
+e38256ea99.jpg
+e38c1c764a.jpg
+e3926a62ca.jpg
+e39e571962.jpg
+e3a0abc49d.jpg
+e3a631d658.jpg
+e3a9e6f2be.jpg
+e3af66042a.jpg
+e3c3a4bf28.jpg
+e3c57ee552.jpg
+e3c5e7d760.jpg
+e3c97b6e58.jpg
+e3d36428cf.jpg
+e3d3827bd0.jpg
+e3e05ec64a.jpg
+e3e6883f3a.jpg
+e3e87dc520.jpg
+e3f7f7ec34.jpg
+e400379a58.jpg
+e400f1b151.jpg
+e40773b435.jpg
+e40d68836b.jpg
+e42a478372.jpg
+e42e379880.jpg
+e433a04dd6.jpg
+e442db5ed4.jpg
+e44dc4ab74.jpg
+e45a162b6d.jpg
+e463852b82.jpg
+e46639fce9.jpg
+e46e03b413.jpg
+e477c5d906.jpg
+e47f9092f7.jpg
+e48fb4f324.jpg
+e497a20f60.jpg
+e4988de583.jpg
+e49b25fe22.jpg
+e4a47122a5.jpg
+e4a542babd.jpg
+e4b18fcc9d.jpg
+e4bddde3ff.jpg
+e4c0f3f929.jpg
+e4cabb2288.jpg
+e4cda0e11d.jpg
+e4ce16849b.jpg
+e4d0e1365c.jpg
+e4da32c8fe.jpg
+e4da3b6bf3.jpg
+e4e12477d4.jpg
+e4e271d26d.jpg
+e4e3e70171.jpg
+e4e54f7848.jpg
+e4e733241b.jpg
+e4f128a3ec.jpg
+e4f793cbdb.jpg
+e4fea86130.jpg
+e4ff86da58.jpg
+e501638b8c.jpg
+e503e3f36d.jpg
+e5045d3749.jpg
+e51ee3a030.jpg
+e520556c37.jpg
+e53141c362.jpg
+e538b6a155.jpg
+e53d14fb4e.jpg
+e56d464f9e.jpg
+e56efdaa5e.jpg
+e572af8532.jpg
+e578d5306f.jpg
+e57b04af85.jpg
+e57f3d56c4.jpg
+e585701f4a.jpg
+e58b7f1fc5.jpg
+e5968e30e7.jpg
+e5a38f57cd.jpg
+e5a8dffb1e.jpg
+e5abe81609.jpg
+e5b58cda4c.jpg
+e5cadba2fa.jpg
+e5ccf59b44.jpg
+e5d344b6d9.jpg
+e5d4fc895c.jpg
+e5d9e35412.jpg
+e5dddfb237.jpg
+e5e0754cf3.jpg
+e5f6608455.jpg
+e60061b224.jpg
+e605e6f297.jpg
+e60886de71.jpg
+e60b538beb.jpg
+e635b20db7.jpg
+e6429c4260.jpg
+e6507eedf4.jpg
+e6577bad84.jpg
+e66b0bf434.jpg
+e67874255f.jpg
+e6942b2456.jpg
+e699f615c2.jpg
+e69bc8243b.jpg
+e6a4218479.jpg
+e6ae6930d8.jpg
+e6cb0e28d0.jpg
+e6cd40782e.jpg
+e6d19b14f1.jpg
+e6d82e944c.jpg
+e6d929c138.jpg
+e6df5d430b.jpg
+e6e46215b9.jpg
+e6fa22ba34.jpg
+e6fc15bdef.jpg
+e7035a08a6.jpg
+e717c0e13a.jpg
+e71e056753.jpg
+e732b782a9.jpg
+e7437938a0.jpg
+e74545717a.jpg
+e74c43a49d.jpg
+e750d77f8b.jpg
+e75a58950a.jpg
+e75c34287d.jpg
+e75e2d8e77.jpg
+e764d24e96.jpg
+e770eb67d0.jpg
+e786246e51.jpg
+e791da4018.jpg
+e79b1d40d8.jpg
+e79ef6cbd3.jpg
+e79f9979ee.jpg
+e7a7e08300.jpg
+e7aa12d8a6.jpg
+e7c494541a.jpg
+e7c9f9d564.jpg
+e7cba41883.jpg
+e7ccf54f8d.jpg
+e7cd21d7f3.jpg
+e7d0240c30.jpg
+e7deab7eb2.jpg
+e7df9e7d2e.jpg
+e7e7aa5039.jpg
+e7f53f22b8.jpg
+e8080c7598.jpg
+e81230d563.jpg
+e8146628f4.jpg
+e8188f0072.jpg
+e81b7688b2.jpg
+e82a55e866.jpg
+e8305e07ba.jpg
+e837c2b02e.jpg
+e838ddceea.jpg
+e83cbe7e37.jpg
+e83fe7ac7d.jpg
+e86313b8a4.jpg
+e86e8552ab.jpg
+e86f01e606.jpg
+e876b47068.jpg
+e884d8cee6.jpg
+e8abe073bd.jpg
+e8b9f886f8.jpg
+e8bfb3609b.jpg
+e8c12da3c8.jpg
+e8c4636f10.jpg
+e8cb6b4c66.jpg
+e8cbbac3de.jpg
+e8d4256e5a.jpg
+e8d7d00977.jpg
+e8d88c23ec.jpg
+e8da0004f7.jpg
+e8db3d5fae.jpg
+e8f69cb744.jpg
+e905c2a019.jpg
+e905e9850a.jpg
+e9079c4921.jpg
+e908a004ba.jpg
+e908ad9444.jpg
+e90b504e7c.jpg
+e9261a627f.jpg
+e93a2afea4.jpg
+e93cfb5a6b.jpg
+e93ee6cdd3.jpg
+e94385ea63.jpg
+e946b377ed.jpg
+e95255b608.jpg
+e9631f47d5.jpg
+e9632f11af.jpg
+e964042ec4.jpg
+e96867a9b4.jpg
+e972a9e3b4.jpg
+e976a5cf61.jpg
+e9a11ed1d0.jpg
+e9a120914d.jpg
+e9a30d15c7.jpg
+e9a310f424.jpg
+e9abe9ce29.jpg
+e9b0661361.jpg
+e9d22f8968.jpg
+e9d4088d3b.jpg
+e9d600a7e9.jpg
+e9d6824b13.jpg
+e9d7f5c753.jpg
+e9dbc47153.jpg
+e9ddd64edc.jpg
+e9de51ae12.jpg
+e9e5d4095e.jpg
+ea01d15db0.jpg
+ea1fbb8391.jpg
+ea27f112b3.jpg
+ea304b5364.jpg
+ea40b60bad.jpg
+ea4ae02598.jpg
+ea5656d0cf.jpg
+ea5a23b508.jpg
+ea60f5e77f.jpg
+ea71f42a76.jpg
+ea781fbdac.jpg
+ea9b6f6c1a.jpg
+eaa2534a45.jpg
+eaaf1ad71a.jpg
+eaafb18ab3.jpg
+eac8c90db7.jpg
+eaca3d5f05.jpg
+eacfeb3e2a.jpg
+ead42e4782.jpg
+eae1b37df0.jpg
+eae4382bc6.jpg
+eae44e5c4f.jpg
+eaf451a994.jpg
+eaf55cb993.jpg
+eaf9084220.jpg
+eafd6847da.jpg
+eb0ea62abe.jpg
+eb13c93b82.jpg
+eb27177d02.jpg
+eb2a66fcb8.jpg
+eb2c6031a0.jpg
+eb359044c6.jpg
+eb42e1a461.jpg
+eb44289a53.jpg
+eb47b89ba0.jpg
+eb4dc7f162.jpg
+eb52138988.jpg
+eb566639a5.jpg
+eb694b42cc.jpg
+eb894b9ecd.jpg
+eb900a1041.jpg
+eb98ec5901.jpg
+eba4f49101.jpg
+eba7fe58d8.jpg
+ebaa7c1b61.jpg
+ebac31e552.jpg
+ebb10d4d5f.jpg
+ebb729383d.jpg
+ebc16b8cc2.jpg
+ebc45de34e.jpg
+ebc4c57f50.jpg
+ebccbe38ca.jpg
+ebd2dd4b80.jpg
+ebd7747063.jpg
+ebd885bc1f.jpg
+ebe3414516.jpg
+ebe6dfaa45.jpg
+ebedeaf347.jpg
+ec081fb786.jpg
+ec10c7beab.jpg
+ec10c9c58d.jpg
+ec188b256f.jpg
+ec1c72a001.jpg
+ec258de1aa.jpg
+ec2c20c6b5.jpg
+ec34b91092.jpg
+ec390ea90f.jpg
+ec3f2b8131.jpg
+ec3f318740.jpg
+ec5d9ae940.jpg
+ec65271b73.jpg
+ec71afb268.jpg
+ec72247f2f.jpg
+ec777ca065.jpg
+ec7cd6ebee.jpg
+ec7cfb0e2c.jpg
+ec902ee7e8.jpg
+ec9cb6c33e.jpg
+eca656bb01.jpg
+ecaac63437.jpg
+ecbfe60f66.jpg
+ecc388d0da.jpg
+eccd77ef34.jpg
+ecd24613cd.jpg
+ece1f9cc04.jpg
+ecf1f516bd.jpg
+ecf4384906.jpg
+ecfe40ad99.jpg
+ed025cb385.jpg
+ed0c62db49.jpg
+ed1e1dff48.jpg
+ed22be82db.jpg
+ed6bc92ed5.jpg
+ed6bea58db.jpg
+ed6cb97bdc.jpg
+ed6ff3b2bf.jpg
+ed7941d125.jpg
+ed7a82ad7d.jpg
+ed7f1910ee.jpg
+ed81180504.jpg
+ed8a8fb799.jpg
+ed8b464e61.jpg
+ed8bfd8efe.jpg
+edace1f767.jpg
+edad5e6979.jpg
+edaf8f18b9.jpg
+edb15b09bd.jpg
+edbac0fb07.jpg
+edcde5c4d5.jpg
+edd4ce1184.jpg
+edd801ae75.jpg
+edda4919a8.jpg
+eddc9bdbff.jpg
+eddd0539c3.jpg
+eddec94da7.jpg
+edf02a0bd8.jpg
+edfa7575c5.jpg
+edfb0f8573.jpg
+ee0abe2262.jpg
+ee0d13b763.jpg
+ee297fadbb.jpg
+ee33d09958.jpg
+ee38a407d4.jpg
+ee45f0625c.jpg
+ee4aafc392.jpg
+ee64707c9a.jpg
+ee69f5f847.jpg
+ee8a35eff2.jpg
+ee8af6406e.jpg
+ee8cba9b03.jpg
+ee92c64c4c.jpg
+ee9c89ab4f.jpg
+ee9f12c28e.jpg
+eea788d49b.jpg
+eea828af89.jpg
+eeadcdc883.jpg
+eeb44df39b.jpg
+eece091209.jpg
+eed8346233.jpg
+eedc52b015.jpg
+eedd3caf9b.jpg
+eedd842bd4.jpg
+eedeec1833.jpg
+eee540b814.jpg
+eeef28d4f2.jpg
+eeefb3889c.jpg
+eef16260c3.jpg
+eef7a4aac3.jpg
+eef95fed0e.jpg
+eefabb1856.jpg
+ef064e2efe.jpg
+ef09679693.jpg
+ef1dde3b3a.jpg
+ef281ae43d.jpg
+ef2cfe52f1.jpg
+ef2f4b491e.jpg
+ef45886efa.jpg
+ef4cf74215.jpg
+ef581fab36.jpg
+ef5bf0ae22.jpg
+ef5f713cac.jpg
+ef67751b04.jpg
+ef6c9aa252.jpg
+ef6e6c6f4f.jpg
+ef743558fd.jpg
+ef87574743.jpg
+ef9485a3d8.jpg
+ef94875e33.jpg
+ef95d0da3b.jpg
+efa6496e67.jpg
+efaa599eb8.jpg
+efac19a2d5.jpg
+efc093a763.jpg
+efc6257759.jpg
+efd67da2de.jpg
+efd7734530.jpg
+efd960cf0f.jpg
+efdc27cf84.jpg
+efe3ddb4cd.jpg
+efeb5d4109.jpg
+efebe5cf76.jpg
+efeea29d60.jpg
+eff0d9d2bd.jpg
+eff254ead6.jpg
+eff7e509c1.jpg
+f000bce0cb.jpg
+f002664226.jpg
+f009e1838b.jpg
+f00ee79625.jpg
+f0155948a6.jpg
+f01ed35bd6.jpg
+f021079aaf.jpg
+f023e66bb0.jpg
+f023fe7c8a.jpg
+f024b7e240.jpg
+f02b5a203e.jpg
+f02e5275e0.jpg
+f060179162.jpg
+f06230df37.jpg
+f0833d0bcf.jpg
+f085a4bbf2.jpg
+f09be06af8.jpg
+f0b152091d.jpg
+f0bd1c31f7.jpg
+f0d3dd760b.jpg
+f0d9095d3d.jpg
+f0de31a50a.jpg
+f0e1252199.jpg
+f0e1b5d00d.jpg
+f0e3070813.jpg
+f0e368014c.jpg
+f0e540254d.jpg
+f0ed5c0da7.jpg
+f0f026d431.jpg
+f0f0b6d565.jpg
+f0f1d96e4a.jpg
+f0f370f2d6.jpg
+f0f40785b2.jpg
+f0f48445e0.jpg
+f0f937090f.jpg
+f0ff1e1fa3.jpg
+f100043ec0.jpg
+f1072f7082.jpg
+f10938160a.jpg
+f130c7d621.jpg
+f14860234a.jpg
+f14bdc6ae2.jpg
+f150c77056.jpg
+f1595c12a1.jpg
+f161dd9a79.jpg
+f17dc2d316.jpg
+f17dd023d0.jpg
+f187f4f801.jpg
+f18e31cfdb.jpg
+f18f51352e.jpg
+f1941cce89.jpg
+f1ac96118a.jpg
+f1acc1c5bc.jpg
+f1b9a04723.jpg
+f1b9f90a8d.jpg
+f1bd86dab5.jpg
+f1bee42b76.jpg
+f1da75d72f.jpg
+f1dc4ae917.jpg
+f1e840eed1.jpg
+f1f6c57f91.jpg
+f1fcf52e62.jpg
+f20ad4e46f.jpg
+f20ce255e6.jpg
+f2155b0dce.jpg
+f218b7dbb3.jpg
+f221e2b9cf.jpg
+f22398714d.jpg
+f224098250.jpg
+f23885e558.jpg
+f244c231d9.jpg
+f246926909.jpg
+f257c713e1.jpg
+f25d95ef71.jpg
+f26c120010.jpg
+f27177e65f.jpg
+f28d0b7c1e.jpg
+f2a198af42.jpg
+f2a503b8f5.jpg
+f2ac5ae9ef.jpg
+f2b5e8804e.jpg
+f2bd71e871.jpg
+f2bef79f35.jpg
+f2c4998f5e.jpg
+f2c7307e80.jpg
+f2ca64ff21.jpg
+f2cd50cf05.jpg
+f2ce974123.jpg
+f2d143b7eb.jpg
+f2d599908f.jpg
+f2db9483ec.jpg
+f2e9ef6f83.jpg
+f2ee39cb18.jpg
+f2f276072a.jpg
+f2fe0bdbc6.jpg
+f30419b330.jpg
+f30ba97237.jpg
+f30bc8dd02.jpg
+f3104f82e0.jpg
+f324bbcf69.jpg
+f324bc3468.jpg
+f32abb455d.jpg
+f32b2a0705.jpg
+f32e9dc62a.jpg
+f32f47dae3.jpg
+f33121211c.jpg
+f3373dd7ed.jpg
+f3418b7625.jpg
+f3429e3b49.jpg
+f35c2a73a5.jpg
+f36071fd7e.jpg
+f36831a791.jpg
+f36ffa9bfd.jpg
+f38641e176.jpg
+f38809ef39.jpg
+f39191bf60.jpg
+f3a5e9d530.jpg
+f3ace53166.jpg
+f3c4efec63.jpg
+f3c5a78ba7.jpg
+f3c7dcd5d1.jpg
+f3ca599f02.jpg
+f3d25ee7c8.jpg
+f3d5f98878.jpg
+f3d621d1ff.jpg
+f3d7afe7cb.jpg
+f3db0dcf5c.jpg
+f3e1f4faaf.jpg
+f3e37884c8.jpg
+f41206c55f.jpg
+f4151401ec.jpg
+f42256e812.jpg
+f43503c98d.jpg
+f43eede7e1.jpg
+f44decf1ae.jpg
+f44e36a8b0.jpg
+f4529f1487.jpg
+f4681e55f1.jpg
+f46b5595ec.jpg
+f46d01181a.jpg
+f47077b123.jpg
+f476d30f77.jpg
+f48e03b69c.jpg
+f493c96aa8.jpg
+f496efdf51.jpg
+f49e7a9e85.jpg
+f4af70630b.jpg
+f4c2579d99.jpg
+f4c4bc7110.jpg
+f4c5a615c2.jpg
+f4c5b538a1.jpg
+f4d40b4746.jpg
+f4db2ac66b.jpg
+f4dd76da02.jpg
+f4e71e0826.jpg
+f4f371364c.jpg
+f4fa6bbb18.jpg
+f4fb0823af.jpg
+f5102d464a.jpg
+f521e7d9bc.jpg
+f526e99c1d.jpg
+f52a0c174a.jpg
+f52c47226d.jpg
+f52d567c77.jpg
+f52d95f3f2.jpg
+f5304733a4.jpg
+f541dcd6ae.jpg
+f56673ee2d.jpg
+f56c482e0c.jpg
+f56ef7c25f.jpg
+f570337f9b.jpg
+f579f6c1ac.jpg
+f57a90c5ee.jpg
+f57b69a246.jpg
+f582a217a6.jpg
+f583e03bf0.jpg
+f59313deaf.jpg
+f595261887.jpg
+f59b1cc3fd.jpg
+f59cd92806.jpg
+f5b7baac80.jpg
+f5c09e7aa3.jpg
+f5c9f45799.jpg
+f5ca962644.jpg
+f5ce4a6b25.jpg
+f5dc837547.jpg
+f5e019c574.jpg
+f5e0ba250f.jpg
+f5e117f768.jpg
+f5e5745b02.jpg
+f5ef9a962e.jpg
+f5f282fd5a.jpg
+f5f5d1352a.jpg
+f5fa41a1b7.jpg
+f5fdee9c5a.jpg
+f601d45831.jpg
+f6023f9414.jpg
+f61f56e28d.jpg
+f62096f01a.jpg
+f620dd6a22.jpg
+f6256c3788.jpg
+f62a400740.jpg
+f63e97d752.jpg
+f64386010d.jpg
+f654d25aaf.jpg
+f655313abc.jpg
+f65d7fcbe7.jpg
+f66317ea4e.jpg
+f67285c244.jpg
+f679fc7610.jpg
+f68f68a7e7.jpg
+f6a30c1a34.jpg
+f6b0db8e3a.jpg
+f6b4684472.jpg
+f6cb734783.jpg
+f6d29447ce.jpg
+f6d4b56ead.jpg
+f6e59937fe.jpg
+f6e5a0ad93.jpg
+f6e6cfd1d8.jpg
+f6f475c668.jpg
+f71741fbec.jpg
+f7180c7f12.jpg
+f720da2e34.jpg
+f72d8619d5.jpg
+f73262da47.jpg
+f73c3656b5.jpg
+f742e36eaf.jpg
+f74426ff3c.jpg
+f789ffdeeb.jpg
+f78d2bccaa.jpg
+f78fcc6b58.jpg
+f792dcfb02.jpg
+f7954faa07.jpg
+f7b0d10ed0.jpg
+f7c9054ca7.jpg
+f7ca5ff8f3.jpg
+f7d0d357b7.jpg
+f7d0e62782.jpg
+f7d33c8ce5.jpg
+f7db0aeaa3.jpg
+f7db17a545.jpg
+f7de0a9d76.jpg
+f7e68821ce.jpg
+f7eadd56da.jpg
+f8043aa26f.jpg
+f8188efcc8.jpg
+f81b3d6c07.jpg
+f81ccaa506.jpg
+f82898bf83.jpg
+f8309569e2.jpg
+f839a879d5.jpg
+f83c851eed.jpg
+f84ea4ee57.jpg
+f84eac40cf.jpg
+f85968710c.jpg
+f85f6afb5b.jpg
+f86718f0b9.jpg
+f870122a8e.jpg
+f88cd9cb43.jpg
+f8a051d47b.jpg
+f8a47a9000.jpg
+f8a790a92c.jpg
+f8b8c68a45.jpg
+f8bc0af218.jpg
+f8c3a02c93.jpg
+f8c4ae3735.jpg
+f8c9c393c0.jpg
+f8d0bca885.jpg
+f8d3316d9e.jpg
+f8d41c7c83.jpg
+f8d4db89f1.jpg
+f8d9122bb1.jpg
+f8db271663.jpg
+f8df3f65c1.jpg
+f8e7ff27ef.jpg
+f8e8d20edf.jpg
+f8f4c3f8f2.jpg
+f8ffa48886.jpg
+f900a03006.jpg
+f9015aec38.jpg
+f9040d6527.jpg
+f90a53c5b3.jpg
+f90d03b9ae.jpg
+f9141f4421.jpg
+f920b3f617.jpg
+f93a0897ea.jpg
+f93bedd42a.jpg
+f9472ace4d.jpg
+f95c1f229a.jpg
+f961289a1a.jpg
+f96ab2c8e2.jpg
+f972bad39f.jpg
+f9748797fb.jpg
+f977c04311.jpg
+f97ff33824.jpg
+f9847422d6.jpg
+f98b4ea01a.jpg
+f98ec7e7be.jpg
+f99835f64c.jpg
+f9b3d6fc40.jpg
+f9b9359ea3.jpg
+f9c2cc9e67.jpg
+f9c2fd0156.jpg
+f9c8c2d72f.jpg
+f9d224cf37.jpg
+f9d428c247.jpg
+f9da44d887.jpg
+f9dbb719d4.jpg
+f9e215f6c1.jpg
+f9e647a263.jpg
+f9e915b69f.jpg
+f9eb732282.jpg
+f9ebe0422c.jpg
+f9ee45e677.jpg
+f9eea5543c.jpg
+f9f29a14c5.jpg
+f9f421a804.jpg
+f9f57c4db7.jpg
+f9f62f0b2b.jpg
+f9f7d4837d.jpg
+f9ff1f2e43.jpg
+fa27e83a3d.jpg
+fa29dfb2b8.jpg
+fa3752de76.jpg
+fa3ec248be.jpg
+fa4baab93c.jpg
+fa590765bf.jpg
+fa638ccf56.jpg
+fa70be5f12.jpg
+fa813e4d05.jpg
+fa8c616057.jpg
+fa8ce256cf.jpg
+fa9286015b.jpg
+fa93585ccd.jpg
+fa942964ae.jpg
+faa38c20af.jpg
+faa84debb4.jpg
+fab25a98aa.jpg
+fabab3b5b5.jpg
+fac5671d7a.jpg
+fac70e561c.jpg
+fac8fa96bc.jpg
+fad20ebf41.jpg
+fad22762f1.jpg
+fad46e91b1.jpg
+fad581b5b8.jpg
+fad9caf352.jpg
+fadc388205.jpg
+fadd41fb5d.jpg
+fade4b9315.jpg
+fadf90c407.jpg
+fae57f5974.jpg
+fae584df46.jpg
+fae70ad247.jpg
+faf3474850.jpg
+faf43b7283.jpg
+faf4533938.jpg
+fb03513f48.jpg
+fb038c9374.jpg
+fb0e99ead2.jpg
+fb228a0b3f.jpg
+fb28c567a5.jpg
+fb340ace2e.jpg
+fb34cd8704.jpg
+fb3ec13c4d.jpg
+fb42ef2835.jpg
+fb4548e8f8.jpg
+fb4c364566.jpg
+fb4d2e8e88.jpg
+fb5259dbd9.jpg
+fb5d14435d.jpg
+fb7b88f8cf.jpg
+fb7ce59a1b.jpg
+fb800d7a6f.jpg
+fb9b7a7f45.jpg
+fb9ea031d6.jpg
+fba1c788bd.jpg
+fba99f5df9.jpg
+fbba14b0e2.jpg
+fbbee3053f.jpg
+fbc0a2bcbd.jpg
+fbc13d017d.jpg
+fbc522b43f.jpg
+fbc8c7d584.jpg
+fbd8a31067.jpg
+fbe7bf5bf7.jpg
+fbe97e3a95.jpg
+fbea2dc389.jpg
+fbee0859b1.jpg
+fbefbdccd4.jpg
+fbf07591f3.jpg
+fbf3e834ea.jpg
+fbfcd92c4e.jpg
+fbfd9fa139.jpg
+fbfdf2f1e3.jpg
+fc06de1d9d.jpg
+fc0db3f4ad.jpg
+fc0dbf8e1f.jpg
+fc0e8f7876.jpg
+fc2a63d2b2.jpg
+fc3ed0012f.jpg
+fc3fd24d12.jpg
+fc4c590cb1.jpg
+fc52d6007b.jpg
+fc579c828e.jpg
+fc761dca1d.jpg
+fc7a212b9d.jpg
+fc8ea183be.jpg
+fc99763178.jpg
+fca31dd881.jpg
+fcaadd368b.jpg
+fcac1ed9a7.jpg
+fcbe148582.jpg
+fcc07ea9a8.jpg
+fcc4143787.jpg
+fcc69ea51e.jpg
+fcc7f82ce0.jpg
+fcda90fe71.jpg
+fcdbe38b82.jpg
+fcde9ae93a.jpg
+fce7784b79.jpg
+fce9c92932.jpg
+fcedb2ab99.jpg
+fcf9c856da.jpg
+fd02504e6e.jpg
+fd140163ff.jpg
+fd162d7502.jpg
+fd17814e0a.jpg
+fd1bfedf71.jpg
+fd20fe76cc.jpg
+fd258cb2d6.jpg
+fd33cf9dd4.jpg
+fd45d40d4a.jpg
+fd59afc8dc.jpg
+fd5ce5e1b3.jpg
+fd6cb68f69.jpg
+fd6e426be7.jpg
+fd8d13f171.jpg
+fda20489de.jpg
+fda45b5266.jpg
+fda5d6a16c.jpg
+fda9527bb9.jpg
+fdb179ae53.jpg
+fdbe07cbdb.jpg
+fdc4deb59a.jpg
+fdcb68c1b6.jpg
+fdcef8f7d9.jpg
+fdd20a486d.jpg
+fdd566bafd.jpg
+fddd4793c0.jpg
+fde48a2d1f.jpg
+fde50fe566.jpg
+fde547487c.jpg
+fde684638b.jpg
+fdead1249f.jpg
+fdefafbb68.jpg
+fdf8df9f55.jpg
+fdfa4baf9f.jpg
+fdfdef9956.jpg
+fe15f23201.jpg
+fe18299961.jpg
+fe188ababd.jpg
+fe1e8c7d7f.jpg
+fe1f14da0c.jpg
+fe24bf3e4e.jpg
+fe29776c5c.jpg
+fe35a4b222.jpg
+fe36845f27.jpg
+fe3d6a9206.jpg
+fe4b226c9e.jpg
+fe50609214.jpg
+fe5062701c.jpg
+fe59749d78.jpg
+fe623168b9.jpg
+fe771a8464.jpg
+fe78ce0f33.jpg
+fe7aa5b59d.jpg
+fe7e782603.jpg
+fe7eb2f711.jpg
+fe8a433602.jpg
+fe908d212e.jpg
+fe9a5fd3bc.jpg
+fe9abc89a1.jpg
+fea3504677.jpg
+fea72a6707.jpg
+fea9b374d6.jpg
+feac3675d4.jpg
+febf3ddf72.jpg
+fec71714fb.jpg
+fec919e0bd.jpg
+fecbd4e02c.jpg
+fecdf654da.jpg
+fed13b967b.jpg
+fed4317a3c.jpg
+fed47f53dd.jpg
+fed7391781.jpg
+fed92a7767.jpg
+fedbe6a98a.jpg
+feefd9e1ba.jpg
+fef39b2805.jpg
+fef57e19c5.jpg
+fefc2aef0c.jpg
+fefdc069da.jpg
+ff0e05b330.jpg
+ff107fa1dd.jpg
+ff17968b8e.jpg
+ff3b6be5f6.jpg
+ff4091a5c1.jpg
+ff4ddde631.jpg
+ff574eb682.jpg
+ff59357e75.jpg
+ff5a278ce2.jpg
+ff618d0698.jpg
+ff672f2b5c.jpg
+ff6c081c3a.jpg
+ff7603f56c.jpg
+ff7e4bcc1e.jpg
+ff832a44b2.jpg
+ff83643180.jpg
+ffae0373d2.jpg
+ffb19880c1.jpg
+ffba632b59.jpg
+ffbb518aed.jpg
+ffc3b83fa2.jpg
+ffc811f3f7.jpg
+ffc8ce4288.jpg
+ffca6a355b.jpg
+ffcad78225.jpg
+ffcbef0a69.jpg
+ffcd6496c0.jpg
+ffd3659fa6.jpg
+ffd58c0e39.jpg
+ffd6c40af1.jpg
+ffd7999571.jpg
+ffe91252e8.jpg
+ffeaa2778a.jpg
+ffed2bf1b7.jpg
+fffa0d5bf4.jpg
+fffb1bae06.jpg
\ No newline at end of file
diff --git a/FoodSeg103/demo/.DS_Store b/FoodSeg103/demo/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..2fb478374f9d18fc659857270c31c218c2c7e118
Binary files /dev/null and b/FoodSeg103/demo/.DS_Store differ
diff --git a/FoodSeg103/demo/MMSegmentation_Tutorial.ipynb b/FoodSeg103/demo/MMSegmentation_Tutorial.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..127ad4e6a7d14d83ddca96ca519a26e5ba52eb64
--- /dev/null
+++ b/FoodSeg103/demo/MMSegmentation_Tutorial.ipynb
@@ -0,0 +1,1416 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "MMSegmentation Tutorial.ipynb",
+ "provenance": [],
+ "collapsed_sections": [],
+ "include_colab_link": true
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "accelerator": "GPU",
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "40a3c0b2c7a44085b69b9c741df20b3e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "state": {
+ "_view_name": "HBoxView",
+ "_dom_classes": [],
+ "_model_name": "HBoxModel",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "box_style": "",
+ "layout": "IPY_MODEL_ec96fb4251ea4b8ea268a2bc62b9c75b",
+ "_model_module": "@jupyter-widgets/controls",
+ "children": [
+ "IPY_MODEL_dae4b284c5a944639991d29f4e79fac5",
+ "IPY_MODEL_c78567afd0a6418781118ac9f4ecdea9"
+ ]
+ }
+ },
+ "ec96fb4251ea4b8ea268a2bc62b9c75b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "dae4b284c5a944639991d29f4e79fac5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_view_name": "ProgressView",
+ "style": "IPY_MODEL_32b7d27a143c41b5bb90f1d8e66a1c67",
+ "_dom_classes": [],
+ "description": "100%",
+ "_model_name": "FloatProgressModel",
+ "bar_style": "success",
+ "max": 102567401,
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": 102567401,
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "orientation": "horizontal",
+ "min": 0,
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_55d75951f51c4ab89e32045c3d6db8a4"
+ }
+ },
+ "c78567afd0a6418781118ac9f4ecdea9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "state": {
+ "_view_name": "HTMLView",
+ "style": "IPY_MODEL_9d29e2d02731416d9852e9c7c08d1665",
+ "_dom_classes": [],
+ "description": "",
+ "_model_name": "HTMLModel",
+ "placeholder": "",
+ "_view_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "value": " 97.8M/97.8M [00:10<00:00, 9.75MB/s]",
+ "_view_count": null,
+ "_view_module_version": "1.5.0",
+ "description_tooltip": null,
+ "_model_module": "@jupyter-widgets/controls",
+ "layout": "IPY_MODEL_1bb2b93526cd421aa5d5b86d678932ab"
+ }
+ },
+ "32b7d27a143c41b5bb90f1d8e66a1c67": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "ProgressStyleModel",
+ "description_width": "initial",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "bar_color": null,
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "55d75951f51c4ab89e32045c3d6db8a4": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ },
+ "9d29e2d02731416d9852e9c7c08d1665": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "state": {
+ "_view_name": "StyleView",
+ "_model_name": "DescriptionStyleModel",
+ "description_width": "",
+ "_view_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.5.0",
+ "_view_count": null,
+ "_view_module_version": "1.2.0",
+ "_model_module": "@jupyter-widgets/controls"
+ }
+ },
+ "1bb2b93526cd421aa5d5b86d678932ab": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "state": {
+ "_view_name": "LayoutView",
+ "grid_template_rows": null,
+ "right": null,
+ "justify_content": null,
+ "_view_module": "@jupyter-widgets/base",
+ "overflow": null,
+ "_model_module_version": "1.2.0",
+ "_view_count": null,
+ "flex_flow": null,
+ "width": null,
+ "min_width": null,
+ "border": null,
+ "align_items": null,
+ "bottom": null,
+ "_model_module": "@jupyter-widgets/base",
+ "top": null,
+ "grid_column": null,
+ "overflow_y": null,
+ "overflow_x": null,
+ "grid_auto_flow": null,
+ "grid_area": null,
+ "grid_template_columns": null,
+ "flex": null,
+ "_model_name": "LayoutModel",
+ "justify_items": null,
+ "grid_row": null,
+ "max_height": null,
+ "align_content": null,
+ "visibility": null,
+ "align_self": null,
+ "height": null,
+ "min_height": null,
+ "padding": null,
+ "grid_auto_rows": null,
+ "grid_gap": null,
+ "max_width": null,
+ "order": null,
+ "_view_module_version": "1.2.0",
+ "grid_template_areas": null,
+ "object_position": null,
+ "object_fit": null,
+ "grid_auto_columns": null,
+ "margin": null,
+ "display": null,
+ "left": null
+ }
+ }
+ }
+ },
+ "pycharm": {
+ "stem_cell": {
+ "cell_type": "raw",
+ "source": [],
+ "metadata": {
+ "collapsed": false
+ }
+ }
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "FVmnaxFJvsb8",
+ "colab_type": "text"
+ },
+ "source": [
+ "# MMSegmentation Tutorial\n",
+ "Welcome to MMSegmentation! \n",
+ "\n",
+ "In this tutorial, we demo\n",
+ "* How to do inference with MMSeg trained weight\n",
+ "* How to train on your own dataset and visualize the results. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "QS8YHrEhbpas",
+ "colab_type": "text"
+ },
+ "source": [
+ "## Install MMSegmentation\n",
+ "This step may take several minutes. \n",
+ "\n",
+ "We use PyTorch 1.5.0 and CUDA 10.1 for this tutorial. You may install other versions by change the version number in pip install command. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "UWyLrLYaNEaL",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 170
+ },
+ "outputId": "35b19c63-d6f3-49e1-dcaa-aed3ecd85ed7"
+ },
+ "source": [
+ "# Check nvcc version\n",
+ "!nvcc -V\n",
+ "# Check GCC version\n",
+ "!gcc --version"
+ ],
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "nvcc: NVIDIA (R) Cuda compiler driver\n",
+ "Copyright (c) 2005-2019 NVIDIA Corporation\n",
+ "Built on Sun_Jul_28_19:07:16_PDT_2019\n",
+ "Cuda compilation tools, release 10.1, V10.1.243\n",
+ "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n",
+ "Copyright (C) 2017 Free Software Foundation, Inc.\n",
+ "This is free software; see the source for copying conditions. There is NO\n",
+ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Ki3WUBjKbutg",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 340
+ },
+ "outputId": "69f42fab-3f44-44d0-bd62-b73836f90a3d"
+ },
+ "source": [
+ "# Install PyTorch\n",
+ "!pip install -U torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html\n",
+ "# Install MMCV\n",
+ "!pip install mmcv-full==latest+torch1.5.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html"
+ ],
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n",
+ "Requirement already up-to-date: torch==1.5.0+cu101 in /usr/local/lib/python3.6/dist-packages (1.5.0+cu101)\n",
+ "Requirement already up-to-date: torchvision==0.6.0+cu101 in /usr/local/lib/python3.6/dist-packages (0.6.0+cu101)\n",
+ "Requirement already satisfied, skipping upgrade: future in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (0.16.0)\n",
+ "Requirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from torch==1.5.0+cu101) (1.18.5)\n",
+ "Requirement already satisfied, skipping upgrade: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision==0.6.0+cu101) (7.0.0)\n",
+ "Looking in links: https://download.openmmlab.com/mmcv/dist/index.html\n",
+ "Collecting mmcv-full==latest+torch1.5.0+cu101\n",
+ " Using cached https://download.openmmlab.com/mmcv/dist/latest/torch1.5.0/cu101/mmcv_full-latest%2Btorch1.5.0%2Bcu101-cp36-cp36m-manylinux1_x86_64.whl\n",
+ "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (1.18.5)\n",
+ "Requirement already satisfied: addict in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (2.2.1)\n",
+ "Requirement already satisfied: yapf in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (0.30.0)\n",
+ "Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (3.13)\n",
+ "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.6/dist-packages (from mmcv-full==latest+torch1.5.0+cu101) (4.1.2.30)\n",
+ "Installing collected packages: mmcv-full\n",
+ " Found existing installation: mmcv-full 1.0.0\n",
+ " Uninstalling mmcv-full-1.0.0:\n",
+ " Successfully uninstalled mmcv-full-1.0.0\n",
+ "Successfully installed mmcv-full-1.0.0\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "nR-hHRvbNJJZ",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 374
+ },
+ "outputId": "ca6d9c48-0034-47cf-97b5-f31f529cc31c"
+ },
+ "source": [
+ "!rm -rf mmsegmentation\n",
+ "!git clone https://github.com/open-mmlab/mmsegmentation.git \n",
+ "%cd mmsegmentation\n",
+ "!pip install -e ."
+ ],
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Cloning into 'mmsegmentation'...\n",
+ "remote: Enumerating objects: 485, done.\u001b[K\n",
+ "remote: Counting objects: 100% (485/485), done.\u001b[K\n",
+ "remote: Compressing objects: 100% (303/303), done.\u001b[K\n",
+ "remote: Total 649 (delta 280), reused 317 (delta 171), pack-reused 164\u001b[K\n",
+ "Receiving objects: 100% (649/649), 1.96 MiB | 3.99 MiB/s, done.\n",
+ "Resolving deltas: 100% (364/364), done.\n",
+ "/content/mmsegmentation\n",
+ "Obtaining file:///content/mmsegmentation\n",
+ "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (3.2.2)\n",
+ "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from mmseg==0.5.0+b2724da) (1.18.5)\n",
+ "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.4.7)\n",
+ "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (2.8.1)\n",
+ "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (1.2.0)\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->mmseg==0.5.0+b2724da) (0.10.0)\n",
+ "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.1->matplotlib->mmseg==0.5.0+b2724da) (1.12.0)\n",
+ "Installing collected packages: mmseg\n",
+ " Found existing installation: mmseg 0.5.0+b2724da\n",
+ " Can't uninstall 'mmseg'. No files were found to uninstall.\n",
+ " Running setup.py develop for mmseg\n",
+ "Successfully installed mmseg\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "mAE_h7XhPT7d",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 51
+ },
+ "outputId": "912ec9be-4103-40b8-91cc-4d31e9415f60"
+ },
+ "source": [
+ "# Check Pytorch installation\n",
+ "import torch, torchvision\n",
+ "print(torch.__version__, torch.cuda.is_available())\n",
+ "\n",
+ "# Check MMSegmentation installation\n",
+ "import mmseg\n",
+ "print(mmseg.__version__)"
+ ],
+ "execution_count": 4,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "1.5.0+cu101 True\n",
+ "0.5.0+b2724da\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "eUcuC3dUv32I",
+ "colab_type": "text"
+ },
+ "source": [
+ "## Run Inference with MMSeg trained weight"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "2hd41IGaiNet",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 204
+ },
+ "outputId": "2834674e-deef-49d7-cd4c-db8dd1ae9733"
+ },
+ "source": [
+ "!mkdir checkpoints\n",
+ "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P checkpoints"
+ ],
+ "execution_count": 5,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "--2020-07-09 19:13:21-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n",
+ "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.56.140\n",
+ "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.56.140|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n",
+ "Saving to: ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’\n",
+ "\n",
+ "pspnet_r50-d8_512x1 100%[===================>] 187.12M 11.8MB/s in 18s \n",
+ "\n",
+ "2020-07-09 19:13:40 (10.4 MB/s) - ‘checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth’ saved [196205945/196205945]\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "H8Fxg8i-wHJE",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot\n",
+ "from mmseg.core.evaluation import get_palette"
+ ],
+ "execution_count": 6,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "umk8sJ0Xuace",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "config_file = 'configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n",
+ "checkpoint_file = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'"
+ ],
+ "execution_count": 7,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "nWlQFuTgudxu",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "# build the model from a config file and a checkpoint file\n",
+ "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')"
+ ],
+ "execution_count": 8,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "izFv6pSRujk9",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "# test a single image\n",
+ "img = 'demo/demo.png'\n",
+ "result = inference_segmentor(model, img)"
+ ],
+ "execution_count": 9,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "bDcs9udgunQK",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 504
+ },
+ "outputId": "8221fdb1-92af-4d7c-e65b-c7adf0f5a8af"
+ },
+ "source": [
+ "# show the results\n",
+ "show_result_pyplot(model, img, result, get_palette('cityscapes'))"
+ ],
+ "execution_count": 10,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n",
+ " warnings.warn('show==False and out_file is not specified, only '\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Ta51clKX4cwM",
+ "colab_type": "text"
+ },
+ "source": [
+ "## Train a semantic segmentation model on a new dataset\n",
+ "\n",
+ "To train on a customized dataset, the following steps are neccessary. \n",
+ "1. Add a new dataset class. \n",
+ "2. Create a config file accordingly. \n",
+ "3. Perform training and evaluation. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "AcZg6x_K5Zs3",
+ "colab_type": "text"
+ },
+ "source": [
+ "### Add a new dataset\n",
+ "\n",
+ "Datasets in MMSegmentation require image and semantic segmentation maps to be placed in folders with the same perfix. To support a new dataset, we may need to modify the original file structure. \n",
+ "\n",
+ "In this tutorial, we give an example of converting the dataset. You may refer to [docs](https://github.com/open-mmlab/mmsegmentation/docs/tutorials/new_dataset.md) for details about dataset reorganization. \n",
+ "\n",
+ "We use [Standord Background Dataset](http://dags.stanford.edu/projects/scenedataset.html) as an example. The dataset contains 715 images chosen from existing public datasets [LabelMe](http://labelme.csail.mit.edu), [MSRC](http://research.microsoft.com/en-us/projects/objectclassrecognition), [PASCAL VOC](http://pascallin.ecs.soton.ac.uk/challenges/VOC) and [Geometric Context](http://www.cs.illinois.edu/homes/dhoiem/). Images from these datasets are mainly outdoor scenes, each containing approximately 320-by-240 pixels. \n",
+ "In this tutorial, we use the region annotations as labels. There are 8 classes in total, i.e. sky, tree, road, grass, water, building, mountain, and foreground object. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "TFIt7MHq5Wls",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 204
+ },
+ "outputId": "5e56d5dc-4f1c-4d7c-f833-51cfdbf8d481"
+ },
+ "source": [
+ "# download and unzip\n",
+ "!wget http://dags.stanford.edu/data/iccv09Data.tar.gz -O standford_background.tar.gz\n",
+ "!tar xf standford_background.tar.gz"
+ ],
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "--2020-07-09 19:13:50-- http://dags.stanford.edu/data/iccv09Data.tar.gz\n",
+ "Resolving dags.stanford.edu (dags.stanford.edu)... 171.64.68.10\n",
+ "Connecting to dags.stanford.edu (dags.stanford.edu)|171.64.68.10|:80... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 14727974 (14M) [application/x-gzip]\n",
+ "Saving to: ‘standford_background.tar.gz’\n",
+ "\n",
+ "standford_backgroun 100%[===================>] 14.04M 3.22MB/s in 4.4s \n",
+ "\n",
+ "2020-07-09 19:13:55 (3.22 MB/s) - ‘standford_background.tar.gz’ saved [14727974/14727974]\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "78LIci7F9WWI",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 377
+ },
+ "outputId": "a7f339c7-a071-40db-f30d-44028dd2ce1c"
+ },
+ "source": [
+ "# Let's take a look at the dataset\n",
+ "import mmcv\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n",
+ "plt.figure(figsize=(8, 6))\n",
+ "plt.imshow(mmcv.bgr2rgb(img))\n",
+ "plt.show()"
+ ],
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdsAAAFoCAYAAAAfJFHvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9yY4023bf99tdNJlZ9XWnuSIPKV4YMic0bMC2PDPggQDPPLX9ABr5AfwsGnjsJxDgZ9BUMm2KtsXbUTzna6oqM6PZrQdr78iouudSguEDXgq1gcT3VVVkNDsi1n+t//qvtVUphdfxOl7H63gdr+N1/HRD/12fwOt4Ha/jdbyO1/Ef+ngF29fxOl7H63gdr+MnHq9g+zpex+t4Ha/jdfzE4xVsX8freB2v43W8jp94vILt63gdr+N1vI7X8ROPV7B9Ha/jdbyO1/E6fuLxk4GtUuq/VUr9n0qpv1RK/c8/1XFex+t4Ha/jdbyO3/ehfoo6W6WUAf4C+CfAr4B/AfwPpZT//f/3g72O1/E6XsfreB2/5+Onimz/MfCXpZT/u5Tigf8V+O9+omO9jtfxOl7H63gdv9fD/kT7/UPgl7uffwX8V/sNlFL/FPinAMaY//zudGy/37YppVBKQSn17PPy7xQoSISuUHDbhJeR+35/KEXJuZ1Q2+B2jlqhlJbtgULdtVLbftvPlELOmVIKuZTbKSiFrvtu39daP7uO7VraRkApebs+Ywxa6+04pRTZh1bbtWul0NpgjCbnTM6ZlDMlZ7TWaCXbb3O2HbjOXYFcMlrpbf5ijOScUUphrcVoQ0yRnGUOjTHbdZW6Xdv/do51rl/ex5TSNj+q3odcCqVkYoz0fY+1DucsKcn1oMAaizGGGJP8DlBKyzVqjbEWs82vopRMSpEYIyH47fa2a1JKEVMCCn3X0/X9s/Nf1xUKaKNx1pFS2ua3FLbjWme3G6yVxlq77SeXQkoRCqSUiCkxjsP2DJRSsNaitaYU8N7LfdcGbWT/3q+kes3WGnkm6jMMZbtXpR6r1HMxWrMsC0qpep6Okm/PQN93WOvqPcq3ua4XE2Mk5UTJBWMNnXOoOr8lF7wPAFhrAcU8z6SUMEZzPB6fvYPGGAp1TrLcF4VCaYXRhpTS9tx3zm3Xo5R8V95Deb8Vt/c1pSTnxN5+KGR66rtZyvact3NIORNDIMb47N3UWt4la4ycn9rtrx5Xteva3qWye/bbNd/es70VKvU5b+9Re2ba/9sLuLcxarvX207aVXKbCjkfpfR2xFKef21/Lu2ay8u/ltvvtFKbbZUv3Cyhqued27k0G7Ub8lw3GyC/k/chi73RYttUtSXyngbmZX12vimneky13dN2jts1VLvbTtE5S+ccfd/X77X7l5/ZvXbc9m577+s7Ls9WjKnaZ7nucRyr/a02p9pnrTV//ud//rGU8jU/Mn4qsP13jlLKPwP+GcD7d2/LP/lv/uvtRZELvF28c277dF33bD/NyLTPtn9kMmOMzwx+ruDjnNuMaYxxA7X9xLVjtt814BHj57ftrbWEEDifz6zruv2tAcwwDAAbQJ1OJ5xz1TCmul9NyXK+MUaWZSFUQ3B3d8d4GLFWDJJzthpJS0oJrTXH44H7+zvGceTx8ZGnpyceHx9RKTMMA33f45yAhRi1ss1Jm+8QAs45AHLOfPz4kRACwzDwzTffMI4jHz9/YpoXOjdy//YNXddtwJJSYl1X5nlmmqbt2u/v7+t5i1HPOfP4+CjG31rGcSRGj4+B1a88Pj7w3Xd/xLff/oxvv/2Wh4czT09PoBR3d3e8f/+ej5++ME+L3KNuoO8GxvHA2w8feP/u/Wb81/lKDiufP37PX/3Vv+HL45lCYTwc+NnPfsZwGHl4fCTlzHfffcfP/uAPxPHImfvTHX/xr/81KUSGruN4OvH0+MS6eEIIfDlf+O677/jw1Ve8efMGv3qGYWAcR46nI8s8b8/lXO/n4+Mjnz9/5k//9E9l3nIhxMDXX33F8XRHzolf/NWvSClxPJ04HU8cDyO//vWv+PTxI49fPvP27T3fffcdw9BTSsaHhY/ff8/T+YlpnvDLQi6JQsFozb/5xS/o+577N294+/adPO+5oJXmj//4j/j6629wzuH9ysPDI/P1SowRbQyfPn/i6ekJv3revnvLH//Df8g4jiitOT9d+PWv/hpjLB8+fIVRmn/5r/4lDw+PHMaR//If/xfyzqWEMvDVh69Y14XrfMXPC2tcscbSdx3owtPjEyVnhs7x7v6OdZ7JOdJ1Pe/fv8Mai0Zt7zBATpnr+Ym+6zHWYLUh54LWans3VYEQIzFFQopk5H5crhf++jd/zZeHL+ScMdpwd3ei73rGceT+eCLHiEFjjWHse3rXoYo4lyUmyIWSI6UkCpkYEjFFYvSkWFCmOROWogo5F2JKrGHBrxGUOHWu63HOoLQBLWCZYxZA0wprOwEtgKJAZRQahUJrUGhSjJQUMdqhVHNqQBswqjrGCpYUwGi00RilydTraQCWC7mi0Nj3xOp8afHeIGWU1riu4zAM+JhIBXTXoa0j5UQuGaM179++pR8GrHOEEMilsIbAZV6YlpXhcGQ4HBiOJ7JS/M0PH/nNX/8N/8df/CWpFDIQS+bpcsFYAc+u6zeHRiuFqbaZnNGl4KzBlMK3X3/gD372DT//kz/BWoVTcr2FADGKY5czoPn+h+85P525nq/84he/YJoWlmXl6enM9z98xIdIKgWU4c/+0/+Eu7s3uH7g7v6O+7dvGY8HxvHAf/Znf/ZXvwvzfiqw/TXwR7ufv6u/+51jb4i9F2PWgGQf0YrX/BwQ99FGA5KcMz6GZxGVRA7lGfA2kAgh0Pf9tu/mSW/RSd22gXsDj/35vYy+W/QWQtiAxRizfW/vUPSd3R7wdj7ee2KMAt7WkLMhxoi1+pmTsXdAvPfM88w8zyzLwmAlQmgORfsesDkQ+/NYlmU75jzPm8PR973Mi745GKUUnHMcDgecczw9PYmRrtfaHI8QgkSQ9djzPHM+n7HW0vc9Xddt97NFqRKVyrznlFiXRSL1esywevFerWOojoR1hq5zjIcBayWCi35h7I6sy4lhGEifH0g5Yevz1Zys5qWu83xzulAYFD5GriFwuVyYr5MYc2OZlyvH04F3798AipgDxh1wvWX1C5fpXCMLxeplXmMKFDIherSRqCFEz3W+oq0YT2MkCkgx4P3KoXeMg8NZRUqB6/UKJaMo8pwsK+syM18vfHn4jFVaHM0UuZzPXB4fSYcDRmvIGescRkuUuswTl/NjBVvPl88fma+T3EdrOD89cr1cCCEwDh0lJwGWlJguZ+Iyo5yjhIWMQuWAKQGdLclPFQ4K1hgskTWt5HWixMBoNa4zdE6c3k6B6zvevrkjrgslrKhScF1HrxRaASUT/ELlReQZCZ5IIQdFKBC8p0BlezSUgm8sjTEUYFoWzpcz58cn1mmRZ7Y3GGUFmFJhnhfm6xWVwRlLPB4JfU+OqX4ixugbIDpDVpqEnEcCnNZoY9HOgSqQBNStVmQCmSSRm9LozXYIy1C07LtotTFkihoF13elhmuEINemjCaVGr2hwSiyKihlQclvC+CGHts5nLGgVQVbsJ1DNfZHC5zHnATU6twJW2YYxoGh64kps6yeh/MZTSSlLOdvIRXIBQoKbSy5ZAG6nClyqZstMkrTWUffdfR9L8fSqtrFgjEW5zphn6p9UPU+l1IIywI5M/QOA/Q1EKgPijAa7eLkCmmZVFWUeCLo+tmd3I4qzUocgCx7I5VMzJmYMqGxdb9j/FRg+y+Af6SU+jkCsv898D/+ro33ANXAr4Fi13XPgLht00DRWourlNM+uk0pEa/pGdi27zZwUUptlEEzsA1gG9i137fjtWhz86xz3sCk3di23z1da62lqw9Ri0hfRuMt8t2fSwNeFyyNqrper1uU3yLoZVnIWSLUeZ6JMQq4xEjKGV3ndFmWbX7311BKoe975nlmXVfWdcU5x/F45Hg8bud0urunH4+YSj12Xcc4jvR9z+Vy2a6j7/ttrs7n8wbsLfpNKW3z5b2X+5UjIQoILsvM5XKp+71uQD4vYhiXxVNynTPb0XV99Xq7zcC2iJ0sNGLXdXRdx7JKlPnw8MD5emH1HmPtRoEeDgcOhwPeey6XC5fLhVQj/xTF2ev6npQi03Lh85dPsk2KxLiyrEe89yzLut3fFjnOy4VlnXg6f+G9+4C1Fus0MXlCWLDaMHQWnxNxmTmvMyp5rFL0zmI0/PD9v6WzisNhxGiNprDOE2FdWKcJuk4iXr/y9PCFQ99xOhw4jSNGKUyGkgLTuvJXlyufT9/TVdr+er2wzAuxOqrLspJjwADkgl9mrFJopSlhpdOF3ig6EikkelU4dobj6OiURDcAisTl8w9cp4lpuhL8Qq6OkzhyhuIXSrGE1TI/PbEuk5jDnJgHC0WRYmKarpWSlPdhnVe6ThwIrTQpB1TRGKNxVr6XU6wGsRBS4jpNXC4XlssMRdF1PcfxxHE8CvWpNLoonO1RBazWlKKIMVcWUoEyFAWpZErMZGvIShGVIqDJKqOUIWtNLIUUE6ECjTYGPRhKkvczAzkBWUx5SFEiQmtqaGrIzUZos6UdVI2CT2/6DVy89+SSa9Srt6i9FImq+5Lp+wFtbk77uq6kkrHGEWIUajhKBOt9RCuFdUqi51KwtlBc5uqvrD4wzQsfP3+Rd7pkFIgjPYwUY1DVhmtlKEoTc2XYctlshut6hmHgcBi5Px7AWkJKrDHQhYDWYkMlxSBpgC21V22LzF+H0cIoyKjUvi6V5TYUMpTmeiBAW/bg2lJ/kprSLT1DpcFLIeaEj5HVe5Q1ZH0D5R8bPwnYllKiUup/Av43wAD/SynlX/17fG8z/C1ibHm1BsJ7QGtR7j4CBTYQadHXHmz3ANeirT3ItePtt2vn1cY+smv0a/tdA/65Uoj7fOUterudb7vGLUeiNV3X4b3fzkNAy6GNrudzi0wbza2UJqW0RcONaltCQivJdxgDMRdSzdnZmgszWubQdj2sHqUN2liGYeB4OtENAymLi9r3A/2gKDWfZ63drrvNb6Oq13Xd5hl45mAcj0eGYdjodDEQiZwTZAhrYJ0Xpst1i7ZDjCjv8avkL0ERggcyzlnGceA4DpjmqVePfF0W/HrL11KpyHVdScuMDwFbI/NhGLBWrj1GTwgrIXhSjKzLQkmZZDSlJIKf+fL5IzFIBD+OI+s6oXQmhljnxNTnJ+D9zDRdeHr8zK91JufAOB4oORO8I8cVZxzJZ1QplCTOykRhGHsoCa0K8/XMD9/DYRwZxoH74xGjFJ2zDJ2rzEdCUeis4f27d3z46ivevntPTgkfqjNzPfP4cGadrgzjyN3pDmcUxTk04MNK3zl6Z1Fa4bQmzDNLlnxyiRGnwKmMLhHvF4lsSTiVyUHufy41P4dini5M1yspeIqSY6nkSaWwTDPWGkr09NZiq/FSpZBCQIKiSIoeSnuHMsGvaCV8adGGnCOgKVmjciJn8EEAxLiBNQaij0SfUEXTO8vQDQzdgDGSfogxsoQozoxSxFyYlhWtPKbmjjWKnLLk1Z2hGFPpa401kss0RuYOpShKnC5rDcMwYqwhJgHglOKWay2Vau26ftMotHdf9ABmcyqVUuRSuFwuFGvptWbOGUpBG43VmlQKqeZeQ8nYfkANAwWFjwL0XmmK1tjjCUJlv5Ti/u5OHFylcM6xetEwWGc5jAeu05WgFgiJkAs5CTWrKCibCdXepJqfbplspXS9h2yUcNMLyLtboP4/V7uhVcuRK7S+5ao1ilKj/qaXubGMLfett5+RswMUlKYRVruPfraNuD/Nwaq5WmPQzmG6Tj7OYasN/F3jJ8vZllL+OfDP//22vkWdDaD2AAhsBtwYswEy8AxsW7TaxAQipInPoto91dzAbBPX7CLYtt1+7HO21toN1Lz3W9TUzqUdb5+X3Ue6e8B3zhFjenY9+/OINd9kkqm0ldrOt4GdFo5tJ94plYpMJJPRuqC0zLWIvsBYt1Ha7VyU0ihtMNZxOJ44HE9Ya+V8U+ZwEICMuTDP8zMnpjkejS1oDkPXdZvTAOIEnU5C6xpjmKapzpF8FIoYAuuyMF2vrD5WLziTYiKGuAGneJsFYzVd3zH0PZoabVSwDSEQQti+0zQcDeR9CKScuV6vmwNGkVxqyiLaUSAvfYzkpMg5EdaZxy+fiGHBGMvxMJCixy9yH06nEaMNuWSuFwEYv0xcrxK19Z3l7u5OjCaK5drhrMPiGFxH8qucd/RodSRHjyITw8r5KQmdmk7cjQPWaAbnGPs61zlTUsQZw5v7E1+9e8f79+8JMTBNC6ok5quqEfFMDB6rDW/enHDWCF0bCp21WCsgQpHtS4xY7Ujeo3JEFU2JnrBMED26JExJZL9KFJAlj6lKYb5eWKYrJSVs5ySPqTLLunK9XOQdpHB4/wFXWRuthFLPWaLDUjIqK6j3OMVAMorKlNY8nOw3oYkh4X2koHDuQAqJ6CUS19rQdwNDP9C5HqUMpWRSLoSUca7bosIQAiVnrDaYSnvGnCWC1oZsNMZYtC04a0kV8DZJkWoMV8/x7kTX9YQY8EG0CiL8EecE7zHGYYzFWHGIQahdYyx26KtoEkiZ+eERDVhjCABay/x1HTlGlNYiCMsZ1w3QDfL8zytZQVByj93hDtUod624//A1ZrqilKbrHGqaoBSsdQzHA3PKEAvFeoo2pA2kIBZFqp9bqAKl3ICtIPiZcxbHKKUNsCX4zJWHvgnCJHfdMtbyu6JqJJtqcKVvlHx7539LFFs2mR3PwXb3UZUyrlQ4KAlGrMVYh+06bCdAu1HWv2P8nQmk9qN5H43224MJsBnLlBJd122gugewPdg2ANkDFjyPuvaCqH302QCsbf8yZ7sfe/Bu+WVXJ/14PHK5XMSYe1+v8+YA7I83DAPXyyTUT732vQPR6NgWxXad245zA92bErkdM8b5WQRtjBFxSz3GOI5bvjfGyPfff79R4sMw8PbtWw6HAwDzPG9U83g4EJMcZ11vVOnnz5+FmluWjd5u9Hmbg3bc9+/fbyC8rmudl7ABcgiBaZpkzrWt52w2MDTWbT+rUuTl282ZCM0CKMmttOvPOWNqJH48HlFG8l65FNZ15c2bN7iqaA4hYLXhMI5YrclhZU4SheQcWdeZ8+MDmsy3337L/XGsOcRVRGu9UOwA18cHASEyOiceHx+4vr3H1Hv+9PREjhL9HfoDX717/+wZzHFm9Z6SI4MTZbguhRIjnTNko6A4Dn3P+XxmOj8xTVes0lgg+ZXlehHHkoLThsHJ9ssys04TF6UZeiN0rQ+EecaOB6wScJmmhSe/0FmHs47gF2JYybHDlMz56ZHoV8jinMR1BTIpp/oOr1zOZ+Z5pus63tzfbUrRp8cHpssF5zrujiesNijbbc/WugjQUQpWWTAgrGFjS5qyVKH1zazlLfefSFkxzyvn85XrdWb1Ees6DuNJ9BquIxdFKYquH7l/857T6YjWhhQj0/WKn1fJZdboluiJWhFLJqbC4GoaqNdCPRZR2Sul6PqBZVnwPmArgzmHxDSvTNP0rEphDR6tE9pYUdgrtdHI1lr6dGPNfAyUrme4f8vd27fkToC47/sqPpS0V0qJeV6gKGw/kHOiTLMASSpgNP39PX3K4qwCuI5kvVQp2I61TJSUsSqjc+E8r1znhclHtOvFLqYqPgKK0hRtYHdPitJkdAWxsgNUub+qlJZJlffONntXRbJWIsh6u0W4lTNWa9AKa/WNRtZqR7ffAoPty8/ysrcc7t4ZoOh6Le1rCtXwpbIOqn7+tvF7AbYtwmiRUYu0mje5L0FpwAbPS2haZNV+NlYm4iUdvKeaGxWzjz4bELft22h/a5Fz+7nle1WNoBrANAVuo5qbOtcYw+FweCamasC0j4D3QqbmDTdFMRU89nOXswDufk5TSnSu34B5T/m2XNlejNVypH0vuZPT6cQ4jts2TfCEUvgQeXp6ehb9n8/nLVftnOPu7m4D231uu93f5kS13Hib1zYfbftxPDJ0Xc2X3GT6SmmiMzw+PlBKZlkmrtOVvh/q9UfJ51VhWsv3oBWu5ppjTrUEINNZzdv7OzpnKpA+EfxK5xzHceTxc6GkJKIdZyAESlgooYPoefz0fXVsRB3+9PkH4nig6zuOvWOwd/RG4VTm1zny9jhydxwpJXP+4lkuV6JPLOZMXJYagYtC9HoZSSWx+oWcAkYL1RaDIoSZZZ5Z5oV1mXj68plP3/8N03Tl7d09T58/M1+vWCtiNiEpJCK8Px1RRQRx58cvaCOq0xQT83wVQ1aEIZgvE8YosuuIxnI5P0LO5HHEGbM5Ss2JlXt5KxH7/Pkz6+oBTdcNlKIIob0jkt/U2qK1ZQ23UqaYMimvkEV9OowDupahLT5S0Gjj0K7HVR2DM1ZEWc6SU2YNkct14Te/+YGHpzNrCBQUd4cD/fEopVtGgzZYKw7YHCPxegVUTdEsrKuXSDonciykEjHOYvuOboikVumwEwju3wd3kJzwcHcnrEeMBGCuzrStc+eM5XA8yfU4h6lCpVLn11UnOaVEWVc+PXzhmAtHbVgBoyTKTl1HQCLeqBRBa8bhxFBBWJ0n/DLzMM2kmDh8fsCvnpSFRewPJ0JRovK2HUvM+NVjTCYZxzVE1gJBaUKNNHNWlKyITpPQFAwoU3GtiCDrR9KbrezKGC3KbGvkOUiBHLy8+1rhg6LkBpqlHvNmn39s3FJ4sq3m5XYVjDdEvY0tIq7+XEbU2olbCVlKiZDijx67jd8bsG2g2iLETYlaP1t+4sWk7tXFz0Cy3Pa9/9temdwixS162AHCrcbvubiqRct7kVEDjxbRNSDrum67pgYs+6h2f/37vPAeyFuk3hR6zjnWdd6uBdjqEyXiutXFKqUwyj5zXvasQXMQpmkShSswjuMmEGpirnasBsh6mpiWlYeHh21Omlir5WDb8V/WFDenqFHN67qyLMszCqZ9t33PWiPqYiCmvaBMclgppS0K1lpzd38vjEbKLMuMHkZRpxqDqflxpZTQm02wUj3gvu8opTBPM58/fWK+XtCHA2Xoq0PoMVrjjGN0lsEYOqVQMXCdpy3fOxhDXleS1hQFnXCIJGsZjKX4lexXCF5UsymhUkTlhHEdfpluLAyZsM6kkvHBM10nrNV0zpLGkel64XK+sC4LMQSWaWKZJvy8oO7vibE6sAX8uuJ92J4Z2/VVxFQkNx2CRB71WdRiycTIxIDVTgCWyDLPOGtFTFMNkm71sFoTU5KCESW5NK0N4+GIswI87fpSSljXMwxUsJRyLuFfxdkI/gbkh9NJ3kM7k7WhL4VxHDdnMudMQpFzIQZx4Jc1MC0rIWdiKZSqEh7GA90woIxEWiiF6hxbXj+nzZborsMpDUHy1ZiE1k5KdaoISHc9tusw1rCmRKzOqTOW/ngg58r2jKPUOytNyBmfMsqWmpMVcMVYEUdpswlzWm2obu9SSiwhEFImAVmLGhqlyFrysLFGaaGATwV8kCg+FRFuFYipOjVFkZUCbVDGkpWu/5eyJDnfQiaTipy/th3WFZSxojXQtzKiUqPDXM+5kcE3uyDnKvR/qaVUWXLhWt1yuDW5KyyW5G2bfWhSJomSbyVPueSqb6nCKCWuaylNVvW7BE3Pf192OMROBKWUqNCNljIq/fclsm2gtAfHFp3BjYJ9SR3v/322T27U755K3edDGzg02nEfUb4E0+adN+o2xridV/t5XdctR9nqT7uu26jWZlj20RuwHQtuYLSv/W3R5kuwbecmFHvecpF7OjvH2xy14vP2oKeUmaaJ8/nMdZpu6uPTiUOlmJsAQwBNSopyKVzr/9s1djtnoJ33S0elXWeLktucLcsilO4LR6AVvLf7JPmSRIy3CNkaQ6nUeYsg+r7DWEepUXCbywLiANVnKlZBWSkJaLlyTU6Jebry+fNncgw4a4jBi5I7ipiqs4ZD33PsOgatIUTmx0cOxyOm/i74QK70n1VVtFcKNmfiPLNernhjcc6iY8LW523sOrxf8asXACyJGCX/GWKsueXW+CHy9PTI+fGMX1dKzizzJEY+FxE3VSNlgBwj6zJv75XruioC0pSSt5rYll+0Rm9grGrdrjVVNBQjwzjiegEY1/Xomi6g1m+qqogJMeP6gcPhwOkojMnnL5/xcWYNEet6lBawVMZinNTNqkrXarNCPafD/RvJYVpHMVby3E1ISSEuKzGKcrw1NFnWgA8R03V044gFrHMc7u9x4yhGOCcyYPpeaMfqJDc70HUdPbCuQgXnELGdk8gmZ0zX4YYR13eS1okZ1pVCQXcd3XiowYTBdB0pZrJSpAIhZUwpuAZ09blJBXQFwEQi50IpiWyaEx+5ehGYJSAWoc5F/10/kqcj5kLIBT/NaGOrLiGTiwiA8uYwVUfdWkKSv6faAyDlQoiJpOXfojTGaWwpksssoHTeaOSbwKgFQDcbtJVN0oJe+V4r9yuaW/1vyltOXpX6/Z3dL+VW8tmaqpRcboCrCqhMeQYV5cXPPw6+udyEW6hWPipAq42wqNYa7N8HsM1V/r0X67yMRtvvlFIcDodtu1Y20l6IUspG2dpOuP2t01H1gPcg0IxO3/ebUd5Hq3sgN5UqaznGl/to4GSMYZ7nZ2VCTQwkeZN5y1WVUnh4eKBzHcb0z5TEDWgPhwP90G+irCbQaoroRgeLejZspVJS5iOeq0WhLYzV0GmteXh44MvjU6WGNR++/loUyUqTUfiYuF4vPD2d+fTp00Ybt+u5v7/fKOc2f+2alZLyn1JzoQ1Yc85bvXFzerz3MudKo1Fcns6cTrd9S5ciifCHznHx61Y6AKB1pOt7tHF0vSVGTwwiqGkOiPeex8czHz58YJpnqR00+pljtSwLP3z/PV3n6rWsfHj3js455nliOp8Zh4HOWVTJHJ3FtrrB1eMUHKyjQ/P9b37N0B9YteJsFG/ffiCEhek6EZeFu6FneXriMQSOpwPFB079IGUGRrFcF3pnOIxH5lXKnbpBaNKPH6kNVBYxaiUJTeg9Xz5/4fLwyPFw4M3dPdIuImgAACAASURBVD/7ShpWLKvnfD4DcDqdUH0nBjpFDscR4wy5JB4vT1I3bSVdgSrcv7njMI70zpFj4nR3x+l4JJfCH/3JzxkOBwqa07uZy1/+XyzLwsn1fPUPviNncej+5le/4sOHD3zzzTe8ffOGh4cH+tNbplA4P14xRldqWBOnwJf/55fc399zOh45HI8k3VVHVJGeZskJp0TOBudGPtfSsKZZmOaJaZbysZ///OfoseP+vuOrr77F9QM+BkKMuL7ncr2ScsIhZUHvvvkaYw0+RsZx5Hq9bnX1xhi+fPmCP58p2mPGkRwCJXiWnDnWxhM+RGzXCVCljA+JLw+Pkq+1ln4YcNXBUNoAmpRgWQOrFxvxB9/9IcPxyLG+s5frhetVWCidQRuHQVOWhcPdPSFmHh6fMLYjFqHO1bzSj4M4fihs35HXxOqDgBpSoaCtg1z4mx8+Pgskfvj4adO9tMY9LVgYvzyIHSuQ6nekrDGSIput2GxVTBvelpTlU24Mot5q+M1mD5yBZCzrsnA8HKAk5ulC54SNaLZ8WZZqu9VmExuebCxpEhCXagVqpHsbrZbYWisMzRbFSobZUEQwlYKknYwm+HVTn1P+bups/z+PPRC2n/f/7ptWAM8i3R/bx55i3m/XwGwfUe4jzOcR1q2bVAMU+G2Kel/7+5IKbTRyzvkZKDeP2daSg00gUQGqNZfQWm3fH8dhA9p9iVC7hvaAldIenluOtgmMGghuEU5tTtHObVkWHh4euFwu27k0sY8xZqu9vamhbwzAvta53YNGqzfxVhPJNIFYm7dUu3E1cBaB1I0Wb+d5nWekU5AIroZhYBiHbZ8AOheUMrhKCx6PiX7sWIMnrHFruBGj3+5VjFFenCyRnNUaqw0FxfEwUAp4v1Ki52DFkze5YEthsA6nNaZkUVCXpdYYGuI0AQWLYjAWnSGtnmIdvXG8u7uj5WcTqpb+JGKtly1FxEAlJbRWHI8HGj02zzMpBKKXBhfH45H3b97y5u6eoe8JPtB3HeN4IFM4HI/iaJRC0ULKmWVm9iuRwvF0pO8HovccT6cN9FSBFCJv7u958+YN3TCA7aritPB4kfRCygXbDZwnaayyzAvadkyL5/F8JRX48vAoHXuuF9aQ6LThNBwFhLqeh6cHotJkY3GHI+9Ox40tUkpVlmXC+8DbDx+YU+L8+TOffvjID58+ijq1vmNvvvqat2/f0vW9MD1ao1rIbQ1JwZojawXgYZlBK6Zl5q0Cn2MFm8x6Wfn0+RPn8xMlZU45bu1YeyfiQaX19v48XSe6zvHh7sTX337LdZLa4fF4kooJ59Cuw/Y9h+OBoe/pXIePgT/4B3/I6XRH17kN8HKWd97WVp4oRWcsT5ez0OWL1C9779E1veOGDu8D0XvC6ikhc6xd7FKMpBjxy8K8iCp9Xep7p9ia2BSEmVrmWWxW32O1omv1vtWe2FHKa0zNv0r02Gx0qTn8XSOgolBVjWxLkQC0KKwRxS+5YAu3vgLV7g39uImT2jleL2dyijhncJ3d2prKR9eyWsn7v8zL7seWhpQpYOyltWqIEapYzWqFs5au7+itNClJfx/Adp9jfNkxaj9+jD5+mavdl7G03+3p5Pa3/f/3QLunm/cA0oRFezr0JXi/LB/aX1Nrv7hvjdhym7YW3rf9bN5VBU3vPdaaSokU7u5ONLFYExft52N/vUpLUbZtdWBKSQlATPgQai7T0vU9b968JSYBues0cb5cJKpUimEcNyBtRgxutHf7/9552Y+XzUdaBN7yvTcn6qYsbnNorMFZt5U/lFLqy4w88LXxiTWiGhW6pxpb3Z4LhetE0aiUyP8bxdycJ0kpREpxNR/c2nwmUoxYK8xGTpkQC7FYTJEaxlRb0aUQiCjC6tHVSGSl8OsqxqEgBgr5TgoBVWCo9HYupdZROlo3Vmet9KQuWUrAjMa5oc6jOC/LdSKGgMqFu8OBcRAHRNf8a+eE5o9F2p8qLfWXGAFbm5J0lqr1r7kUYo18Wu5townq/T8dT5zXgI+RkDPn65VpXVE1V3hdVqZJGJ5+HKWWNkaYFy7TwuPlyrp6IgqLxvYj/Xig63u64NHOUbQmFVDWYbpeejuXQmLGp8wcAp8eH3m8TjxerzxcLjxOM8fjUXpdDz1uHBnv7oQlWQKpZEKRSEV3Dowi+sIaA6v3rEmaYqwxklRB1UirFKl/nf3CvK5oFCEJq2Dq+9+ES8DGbjV26ng6bc//zSm9GX55XmuHOWuwFcRykucvrCthXYnB1xS5FfmR1rXvt1DhIUo+HaWEYu8cPgTpA+0Dukj9ra4Ml60KdVIi5oxfbpqQYgxFixo350yO0sZTZakFNwqph9YKU5XAGnFgjC5oXTW9RWRFSpnt3aqP0s7As6mEldJoZbC24ErGWYOzFmsdKGEitbmBacoZvy6EUlt5bpU7t6BLaRFutWOVUtnSZ4cv+xORUqwaEeeUZB8pSmtI5F12tZ5ZvbB5L8fvBdhqLaUme/B6mevbBBs/QjP/9v52D8dO/NT22wC9AWQDjJd53X1u96UTsD/+HmTbtsAGpH3fM03Ts/NpANXOSVqcPRcw7btI+eBprbdNzQ206E868LzMjbLlKUUY5LCuAyX1diFGfIhQm+YP44H3X33Fx48fWdYzj09nltU/UydDpe0rSL2sid5H2O1zEzndVMn7iLqxBs0J8asXz9a5TRHdIhqqktB7ESlZa6XpQs2RlVKYrlcBV6OrZ99jtEOrCtjGApqUnyvgoXUDi+Q+b/tXqhBjYFlmMXClbA0zfEpoJy+dN17Kh7QmB7kvhhs15ZcVVyOUvutw1rLOM8F7ckoMzpFTqo7NwKGWERWlsL3jOk/1ORaw7YeeECPrurAsi9Qqh0hXlevbnNH0DiK8yTECAqa5FDRaIj0rkYS2Du8D3gvwjIcD87pijGVeVuKy0rmOeTigrCOkhTkE5hD4cjlzWRecEwXsOs9MsxjuN199xTxN+JxJ3nNZPA+XqToXlqgMdhjojxLBnqrRzEoze0+3rCSlsDWP+uXpSbQG1yuX6xVfhX7nZQFrePP+PcfTUWh51wlYu46D61hDICJRfTf26IslL9LScQmeWAVzaIk8nb5VLJSnUucuS95Tq63JQWNemtPfdAStFHAYBpZpErFXLpVKFbYix0jygWgcyUTQStpkeo8ympIzT+cz0zQxTRPD8QCthaqCUjvFhZzwq2e6XiSKM0b6EvsgDltK9K6nxCOmDHTGoKxlNqJiLimhqgDVVsA3zZ4iwjJrDJ3WOKXoapSnrWLoDePgKMmQUxRmyKjajCIhhbNacq6bLb05cWKvaklVURil0UaBAmeMVBU4K9F8121ga60l5cTlSRNaAFZzrDehK1CdeEqp7RahwesmPqupE5qDUATE12UhpogrHWH11UmW97avtegp/i3hMr8nYKvUjdJ9Car7CKkJYNrvX+Z0n40iYpL2vbbdvjb1xyLofRS7L8nZ17s2YG7nuUVgO8BpIqEm7hnH8Znaeb/PrhNl4D6yborrW2crt+ViG3XcnBBbb7ZStxVjbgKz2yo9+yi+gV0DQWstnz9/5pe//CUPDw/M88yHDx+4v7/HGMO6rpviV3oV37zfPdj+LvHa3vFo97blnxuAxhApKdMPA3enE3eVrpRuTpFlXblcL0zTtNX/NuoMhLa+VrDth55DzXctk6dzPeN4xKnuGbXfhtaacehQRcCzt5bjOKBKZp6uPD48bBGoNYbOaK5PTxzvTtwdTxyPJ2L0WOPQxjAej7sclOXNm7eUcmsL+rOf/YxPn75s9wRt0a7UQgnFcRjR1kpJijV8rAsCnK9XYk70QebrermIQXdS6tJbh9Gi0I6rx/Y9x+MdRSlmvzIvC9O6kJAGB91hZBhHMgXTOXoGLtcrwUttpTKilp39yrTMxGXd6pJNP7CiWILnfL2y+HX7/PW//Q1SyqOro6ZR2hKiUOzTsjIt0hJ07MQJtF0v6ui6uIT3C+s88XS+8vnLFxEJJdERPD6epT7Yr4SY+Pbbbzje3fH23Xvu39zxH/2j/5jxMHK9Xuj7QRTGznDoR2ylWEOKDIeaC52lWQNK4QZxMLu+5+7ubmNxUkr4ZcF7LxFjAwBttkiNLJFm7zqOxyOnw5F3b99ydziyTjPTZSJ4LwsaKEX0Em0ulyvrddroUqU1n+z39f2SdMjqF2KQ3sP38R51qAuapIBJBVMKVougqa+rd1nthPasyuJiEk5rOjI6BfB1ta11Bi/vUa/keWoVEFt5ZM742izCGoUrieIXUjKUnLCq4HQVRBUBzc4ZOquxRhETqJKhSH9to5R8KsCWojY1chN0quqU5JSIPgoDqBTRBIoSW2qsYV4m5mViXWeMheCNiAzDgo8rfRLHWeB8AwkB1qIqwLYS0VsbR0XGGsXQWwqW0/0dd2PPsXcc+473b9/w7s0dtrJ2f9v4vQBb6ePqnwHYPsKDG7i2vsLNYO6bVvyu8WPRagOGBpwtCtir5OTcflzV/JLKfnms/ff217MH0n0eWui+stHLLxtv7M99qf2Bn+eTpXfy3kEQD09yJnsl9P7/7ed1XfnlL3+5iWiOxyOn0wmQkqbz+bytAGSdIwb/Ww7LPp/e5qnNUSv12Xv9cFukoQlQ3ElyuM5KQ/Sw+k3tHUMgpyRR4bKwVMBv+eNcCpdr7UJkNSWnLZekMByPN9HZ4AdWv9D3vXjhlZq6MQm35hqtT3DXOXrnJF+GCPts3zOcjvSHA6xSq6eMYRwHcq4qSa0Z7+44nx+lk1LOYC3FaEKMPFwuRDRdJ53Ani4XfPC4UlBaYZ0883PNA/oYMNYgob50KzJKIganpVm7ViK60cpwPByYvaipfZBOTk0h6lBStoIWNa1ShMcz8xo4jCOuG2oD+apILbD6wPk6YWJkePMGW+TZG4YepeB6vfKrX/+Su9M9d/f39KXj6elhY0Ni7W8cY8C5tqjI7Z1JKTFdL4To63NaWNbKxvjA5XLmOs0ylwq+/vprfvazb+kHUREPQ8/xdGAYBnKOdP3AYTwwdN1G0+aSMckw9PI8NwfQKEVvLWPXERs9LHdVHDLXc384bivI+NXLghW1BI264pAzluN4wCjFcTzSdx3Bh1q6UtvdK8lNWm1QBWIIEu1WB7q30gtbUitZFjWwhlQblegsPc9tSpiUMYDNskCBshbVyoiMItVyHEWhM4aDtTgKJQSUgo7CYDTWWFJN20japdpLxBeJtSOW1iJkckpoYp8T6+XMVRXI0u3NGkNJAUWPUZKu0FXVXlpnNiWd7bRSv2VzRQEsndxEX7EKFa01MZi6Co9CB1nIIqdUz01aWja2ASR+VVWdJfZaADarLOzORh3XUqEijq9GWp4aDUpr7o5HXKXRk/eQYq0BbpHx7x6/J2D727TqPsJ9KXh6KaBqnlfbl/zhFh3vt9sD6b5mt+UTfwxk99/fEvv1HPfb789vL0TaC4WaMd83mLDWompd4Eva/Mei7xDilvxv1yTXWnbOR+uKVScDnoFri9IbuDd6t0XKzaPdN7PY57LbvdkzEC/nbD/aHDTnZH+s1sXKaCnE73up/SxZ1htVtWF6WwhAK42PKz74KghTW9QvZUHVO21zWWtzm8PS970sg5YDIXhi8JRaxN86SQUv5SOxgoNWassbKWobTERsU7Q0ml+jtJG0wLGurFNKFqPad/jH6lRmMU6Rgk+JOM9gLPf2Dqs18yJ9tZtVVs5uEfw0TfgKMsYYOtcx2AE06CIlRqayLPK8ys+EQIyJlCVypi7LJivFGBS1TjJLxOtjpC9CGyYK5La6iTSPz7ngKByMxiL5877vhF0JK9N03dIbxmqWZd6ej6b0lohN2u9pLQIwsQO15jdJ84iUam66NkDx6wwlS47QWe7uTtzfn3B9V+t55Xy0Bm1kNR7n6vq0pQKn0mhdHeEqTJTpVrKkXl3UQJfbGjCg6ayV6BhRzj/52jq0thRsXa6MUvSuQyvJuWtV1fbqRmVSiuxfSa1m4lbaYpRm6BxaK6RvsqEYRc6GnAq9MVgFuhR0LjjAKllGrhiwrqug49Aakq7HU9BZQ28NRiliiWhtGKyBrsN1ktKxlU1ra/tugbuVRT5A7pspAogqRVJYSd4JkOaMdpaSI5RcQVZo5PZustnMxk7+dtCybVeqcqCW3Ii4qq7kU/enayvLruskX+/crnys3cS6Pq8qsgKQ1BzV0qDbMVDiFChZT1EocaXojIEUiX7FLzPJr7Kkpf3bG1rA7wnYwnOw2iuN299eRkp7o76Xd9/GDRT2ILHfR6OEWyOCfSvHPdjBTeBzo2fTMzp5fy6Ngm4q3uZINHBqUdzxeNyWp5PeyOsW8e2HnFckRrXRxW1/+/lpYCvnXZ2VXUTcaOy9IljEV7cyomPNmTnnmKZpy6/uG1c8K/Ku42XDjsZItHnfi8raykRNIb3PLb7M/3rvSZRNzd3Krpo4zHu/OQbWuVpCUh2AkmvDjOHZKknH4xHnLK6zQM3JrNJi0a8rcy0doiRKkB44ztUIBIghcrlcyMCaEpdl4ek6c74+QVGMw8Dp3Rvuq7rbdZaiDZdl4XK5ENaAj6usQJOzeOzKcDgdscqyLB6QnsIhRmKRPtTzsrD4FbTaHAicAE6JBWre3xoRkrR7mpMsCp+yFOXbzqGsAaPoBqFtyUkCZairmQTW4FljwHhTFyaQPC65sOqVu87S+gJbpxlwaCOLLizLgnOG0+nI6XTc+k4rQGlxhrrO0XUWY+S+h7CyrooY5XeFVuPtmefrJjC01nA8HjDO4jrH0FtcZ7BGtA8xB6JfiBpSClAiqiRUSZvzlWpdfwqB0iLSKqcpKaGy9IXewFYJEPfGooaRaB0axTrJKlkxS749x0TRhlLp5H1OtrcWZ6wszxcSqURSiHIsY9Cu2+rEh77jzelIq0JQtU6bkslR+jFbbTZKf+zcJhYERU5Wok8jnZtSlOYcRit5ll11sGKh7yzmMHBwoq5dV3GsdVXlt6UfFTVvmxrNmyBE0XbGgNNgVSHViFG1lXVq7rPkTGKXR6U5MZXBr/StVhpj2vMri1h01jFUwZuxjqHWLBdE16CrSCznxPF45O50YhwHxrqwiDJqY4xba+Ythmmgq9QG/A1woeDXRc7ZOVSO0vZUFYxWzJf3qJQr0/T3ILIFnhnnZpD3gqK9Ed9Tkv+u5s97mncfje5BsnnbL6PJfWQMz/PHWkvv0Tb2INE+zdg1Q97AugH84XDg/v5+i9j257kvSxKq9bbPu7vTdt3X65XL5UJrFr8XeeWcOdYa2H1JTwPaJtpq19P22aLI9vd27o3ObRFp27YBX7uPLU+5H61FZUppo6Rbnrs1/pASlriBYnOODIo1JsK6siyS1+qHHussDw8PO8er6glLIqWAXxemuPDhqwPGOQpqW53neDzw7sNbxrFnnYWeBZjmmWW6EoPn3dt71rhglPTbvU4Tp8O4qcK78UAymilKW8hcVwRJxsgqK9bSHY+Mh4HLeSIAvhTWnDF9z/14JKfEtEzkkMH14KRTlqr3fQ2BUGSx85ikofx4OEgdp7OMxyNv3rwTcY0PhNVjTCvHMqRUF66PUYyJttiul3VdtfxckGbxsUjZ0fH+Dcq2MrdEdEUcDSNNDsiyms0333yDdZoUE0Nv8ctMjgENvLm/4+uv3vPmXoRBpa3EU6Qb1JN+ZBgPsiycqctT1oUFjNM4Kw50LJF1uTJdnyStYi3HozRdUVV1ukwXLucHuq6vtLtDVpNNGJUpKbAssjpNSZnoI8uy1hWETuTgsQpGZyFFSggU79GAK7IWb6NSlywlKlZLyd7FOfwysc5TFTU9EStTo1VhXhfOOfG9kRK16+WJdVnx03WruV/mGY1i6Dqcs3TWYdGEeaEUEUcaZbGu5oaLopC35ekIgZPrcZ0TBzIrkqpaGG3kfVAapYU9WpcraRXbF7xH5yjCuZzBKPArRUmTCwWk0BS8pdYNR3LK4mDkTFEKjObtm3uOd6ctEGmrTmlKVfBKQw/dhErcGkbkLAyjVtJMo+/7KhLMuGA5Hkfu7k4M4wHXdwzjcVuMvlStivdS8SHv95Fh6BmGrtrl2pil2ectQK/lRqqgmnpaSUTbANUZTa6qa404cDF4sveYkoVGjoqU/560a2x07q1G9PkH2KjZPc3aZPT7XGnd629FXy/p6H1OuHV/2oua9urafbMGuAl+9lRq2+/LfKj3ftvfPsprozUnf6nw/THltdaa4/GE1re5aB1TBLykOUD7nqzx6jZhWbuml87Fy5KlFsm3aKLljw9jXckmV5BdPd7f1MV7cdmeWm5F5k1B3ejj5gjM80ys15LqC5hyItdoPaW0LR5vjKHv+pqzUzdFsYIQ0m3eqPR1yeQc8X4FlRmGnq4bGIaeGAKHg7Q8bIurtx6893f3PPhqhIpimRdOBylNAcXD5cK6Ss/WohR3d/dQhE2YF8+6fs/T5cJ4GEkxc6ltLoMPDHagd45iLSZGrtcnLvOVmBw+BYxShBiIORHIrN7XdUZvKQKjDIfxwLu370he6iOn8wVnhLbcl5VopdBWozM1VBMKLpVUO/GU7d6Poyihnx4eZVF3a1HWkpOon1UudFr6P+dqINu9FUc4cTodt1Iq7xdSimht6/lkUg5oPaK05Mn6ztJZTecMQ+94/PKREOXZil5WKeqspesdd2OPUoXgF0IMdH1PmK7E2hlLac2p7xgPIyEGTqcTwTiMsjjlCKtnncUBcVajUqRTMDhLDhqbE6rWtOMcpoA1Qn+meSLXfL7SyLYxUrwnA8vlQun7KqIzzEnqdx8+FWbnWGt3K4+SvsghkGPEqabcBXIkJI8qkt7wfsUaR4m2ViJUp65GuzkGWfw8A7Euc9fK8SrY5lTrS63GZIkgU87iWKT/l7r36o4kSe/3nrCZWQamzc5wSe6KMtQdv//nkI7uRNEvZ6Yb3QDKpAmnizciKwHO7v/oSsM8B6dngKqsrDTxup9p1X1GF6ETtXZta982zmlR0p7PiElAQVfBf5El7Yx4+iYl9DqjqjuPapx/vwI220Pa7PQwdS3SGudtFeuJxCS4DlMrdWcs1oqFYvO01bCCq3SpIymtb7PgyuelztdL/UJFg8rUyl1K3tbFWP/fGBkRFGEDxClgFMzesYwCGhSGxw1w+WvbbybYxhowVPWpbB6Y7aQoYWvJApRkuA4KU2QsrZQMsMtmNrgNatvAuQUXNS3V96jnFvTeA4rWQPguMG1nret8EsQYugVLJTQBVYPHspEtLOv8odyUtOqsos3vtJLjdtaur00xiWi4NtKKUa5WwTL/9M7VhZd1hilSdqKYap20n0yV5WtEbe9vM1sxQhc7vb4Tk+pcZJ5qjTjkxBhXJ4x2Trat9m0AXilVm4SFeq5iTkJ1oCoExYhRVbd2/V6Vi1j/FWBZXOlepQioJMVbUpFiYF5GnLO1lVb9b+eBvuuwVrNME2GRFq63nt4PWGOJRdSockGE6utnL9+/i7B+9Ri9O97VGWNimWemeeJ0ueA7aQ+eanAuFLoCGIFmGGcJOXIer4RomZO0HBNF3GTmmWlZSDmv3987x3634+PjBx7v7wnzwmiupGkRykStShpoRNX5paqBFtWyfGqLTzJ8ow1D31NS5lSexVIwRjKFME/EecIoDWScMyyrYEFL/uQY+35Yn60Qwjony0UCrbSRhU9srWU3yDjBW40zinE8r3PzHBY6K4nesBs4DIMEqbAQU8JSSNO4ylkCvD71LNeBVCqIyDmc9hTTkZZAquORZdSUGDBFAELFGEyKME8iY6gVxXcUrcklUa5ncojSmiWj44KJEZ2SMCCuV0zOIs/Y96jKkZ2TVJc5Cl8zxESONaBTMEpjtaozQqmSYlGUlEjLDDqgsvCOlTKVyywjJfGPVZSYSUXmpSWKpSA16FFK5U8Lp7aUIhSfIpX/OnMuEV3vDaPKGmTaPBskcSsGStESrLQkdjlnXBLwnUGRtMa0tXkNtpYQbiyRpocsQbeawdc5v3O2VpialXvf5t7UxKTmk0qcCQR8mMs6gtXU125AUEqJEUeNHBJcW1JQZ/EtSCtE87gUWXtDDGIAYrX4WF8vKNS6rv6l7TcTbFNOMsw2WsjXNXBt52/bVitUJDJCrG7Is6hurc3WqtzScuAG5tm2R1v11MBA7x1M2vvWgBkCXd8LPaO52qQkPy3zrZ/X18WhFOG9PX74wBIC375/53y58PnjR7quYxonSkrc399jjOF8PvP09JWcIlbLAptC5PR6JoTAOI7MU5U6tECW7LYkcLajexgYhkEENc7y+ZfTK6cXqViOxyOPj49rZeis4bDfredEyPgfSSnx/PzM09MTISwCRFAaV+coedjRLADbtt/va5CeVsTx95eXVVatCSeElLhWjeWC2IUdjkdK022+nNGPH/CdR1tT20YaYx3eGD58+MTLy8vKDfXeo4sizpE4X4g5E8LENGlinPnjH//I4dCzG7zQEpws9Br4f/7xH9EoPnz4wOH+jvE6iaRhXQwePn4C40hUcfgkgdAqhdU9Hx4fmKaJy+Ui1YjWjNczz99n+r7n29evaGM43B2xThOTUBe63uM7x3UauY5Zqjg/yHwqJb5+e+IyjqRcGIYdh8OBu8ORH3/8kb//X/5XOVcvJ15i4ZQF6dmQlJdp5HB3QPBzBWsVKHnWfNfRDUOttpcV+b3zHWaA72gGa3GlkKaJ569fyEtg2O/Y9ZZlHEnaEObI9TQRIzjXs99b7h8+MuwEzY4S5ybrNKfTiXEe6XvPp08f2fUD1hju7+4I0ywgqXkkLRPXxjNF8fvf/56PD48cdnu0UoIl2B9qp2QkLhLQfW3vLq/PzKdnmWmOFw77I8V1hChVuNMGa2B8+bb61PpSGHqLuZ6l+iqZ6fRMqLP6UhKEgEqJmBMvz0FtkwAAIABJREFU36VN0Ge5jhhLqqMXqzVxvApSuBR8LQwUhZgi59dX0jKvvqs5J0Lnsb3DdQ6rlPjEZlE4ziGR0kxWCqMtSasVCOecq7zdQkpyr5pWl5Vcq9IilW9C7t0iiFtntYAK6xoYYpBKtRRyFD3tTX62bpmydqAa0KtTFl7OUghoRDAkQ6PrgCLEJNrkSlXaY/Xx1rqCEUXRSlXgUitoGqaKIoE0x7iKamitGVPE1vBZQiBMM04blOvwusNrL8VGFg2COV3IbU6vNFpbrLKC5scSlMXqautnxWdaacV1mui9VNa9s0wvL3RWVKSO7v8n8/j/L5sxZuVNtsrwPQCq/butQn+tJdqqqS246tcQstu5aAvG7TPa79trtgAsU0nirZptldsK5klvjenbZ8FNFL99v+awc7y/Z7/bMY+i+dp13Rukc9tHSwrO5/P6nRpZvrVjgRqEp1XwogGLzufzah7Q9z3DMKyo4Nae3SYaW4uwBkyS2Vrh+ft3SWQamb+iN1G379uUimytXt7D+9sMetjt1uMyxqxOPCjRm/a9UHJUPf9NG7slTA0w1ZKlnBPG3BKs5+/fmaaJ3W5HmAVFqIFlnvj29QvP377x+vzCeLlijOHLly+8vLxwtxeQhTEWpRWX68S8iPKVd5ZliQy9dBqGfoBc1hZlykkk7azFxbQ6JqEUmbIivluXY1zmurCKaMmSE6a2+lIR5aJSCtY5/vCHP/C//29/z36/p6TM5fIqzk3jlXGZsdrQOY/rHMN+h3YyNzNKEXIkh1phlsQ0zYQUiTGjMpQU0dbjlWHXeVSWuVVnPHf7A7MZGTpP5yxpmSmur61hjS56NQU4Hg4cj8eV1mOs3LdaKXZ9x9B57o57et9hjeXx/o7n9J3n5xO//PIzv/znf64UmOPhwLHv2XvPzjuM0vjapUlGs6jbc0jtOsUUCCmyxMB5moiXkd51DH4g+070iLUix4UcxX9VVI4Upc6lVc5EpGUq1Y8ELVMaNkA4rSYlbJbAa4yi07IQAyw5S3We5fxaJXPgg/diHBCDtEpJ9NbjndjLZQppjuQsbf6iGj0GKGLvV1IiaylOIK/Pl1FiXGBUNXFQAoxStQqMtdW6ri0NqrRBK6kiHFdqp6iUsgbbRLlZ5OlcJRcVKmU0qbonAVoEXnINoLlo0LmOi2rHrkgtqZWIZFgjQhZKymFpz24c4db1PzccD286gDnnCrAS/rOiyTRKEVIihLxgjEMbwQiQFSmKoM08z8xzYJ4jy5JYlshlnNCaCk6tz2RMpEWqXKcVnTX4jcXpr22/iWCrKx2jBcptaxF4E3Tatp0Htv/fzku3QKEtGGobwLeUoW0wa4FnC9Jp+9/OeVu7uC30LdgCawAAVlecLfVn25puny9KNLrBfOT+1zITUVrVhURX5HJtS6tmYVVW2kOpSNalLtDtGK/XKzFGcV6p2qjX6/X2+ermybtFa5fylv+ba5s0p0TUNzpUm6E2INVKbXL2TWBs538LJMs5r/eBUjInafKSWxS4q8pS7fja+7ctfEmgynodp2mqD2jm5eW58jslCz2dTlwvcg52u9163Vr7fL/fr7KbYtcWqwVYoyLVOTus821pt/d0Q1/vJxl/uAp+anrQfd9DrdIoQndpAcbc36GVJqTE6Xzicr3Qdz39buB4f4fvxbQgZpEfzAqUEUT2kiIhRRzSytTOYAGnPdMUa5VW1u8gRH+Nt4KKb/KArYLsnMV4kf2L8YZeDyGgjFDmSk51NCEUDF8TMWNqAoZUaTkJX1orRVoWIlBUZLpeGa8XTi+vfPvylWWcBCykNbvK/1Wltkdr4qVrVdVbJzPC9ixrSVbkvFdlsgTKJ0S6XwKyoLrrvJLaepR+pvzkuoC3NYMiI45GFylJQNxZwDS5CLVFN3oK0KgjJVMXfjFG77yrVJ8siPdS918kiJZS5RBrK7iNrtp6llKqpuuC8pXghLSNa4KDkmNRCgmG9SU6S6tXt/iqbsGtLpSNbirLTG0xs66V68IsZ1OpGz2qjsMqsqDtov317Xb74w1Ls/ljLvW6tO9f12dt6ppY9Hocqo7RJN+qdoAInTIlOf/1BNWvUYFmGVIUP+UQxUVJqu9MyoWSYV6iIOa1oetlPTPWour9/V7Q589tv41gWxdUYF2U239vZ6Xtd9uqdVtJtt/BLXhut/ez2P/Skt4EVLi1kBsI5z1waXtsrRW7Df5bx5/Gp93OQbfz4BXslDMqp/Uhb0H2FoDXJ2Rtozcpx0KphP2yvn77cLbqtDn2NBeh9v1bsH0vdtHOXat8VbkJWLRz2HUdS1jW4AdS2RorMotNiGMLFNte73YcrYW9pQG1YLpV4xrHcT33qz7q5jy2TSlFWJZVvu3p6YmXl5f1vMQYuY4yj76rPrjjOK4mCMZU+kRN1lNMLDGyLPLeJQRClX0cx3E9zt1utwbbnIUaMFSlpqaV21cgkoCdNDHEVUBD16Qkpsi379+5XK90fc/+cKDf7ZjCQi4S5JeUKEZhvMP3HePlyhQXfO4Y9lWJSmm8LuiJdZ5LRozAK3/Ye0/Jc70/5ftfx6uIbRhV0b8KZURcIYSAsbHqxkZSXGprT+OqEEAD2aQoAiMxBJZpwhpLmGdIElR0Kby+vPD68szr8zMlJnzn6J0ITFiAGInMgn4VlQ107UzlhuWpnRWVxP4tFGld5ryQiqL4RNZRXqwVuYjIyDoTvMFiQFVP1CRBPVPQmBVcJpaEbYFXNAUiqGINEuWoA0mU0eKZBzISQtrHOQt3WYrWRK4zRatMvVZmxUOs922WNm7J9fyZqsNUEwbhDpfNcnFbOyQ5kDWkEXDafFKCXJ3V5rIaBcjDVJ/XCggs6vbeBkmskhWsK2tNAJRW6PK280V5G5xusVcCbU7CYW5JugTaKlahze0NShKLUtm8Sgm/vBSp4lPKrLpRRqFyNYLPAibLsRBjIsYsOI8WaGtQDlGuvEdhnHCRrZOxljYy+kQrQWf/he03EWy37dj3gv/X6/WNKMT79wFvguQWcdzeswVE/Vol+16s4v3f31e925nsWtXFmyF6mzU3xG1r8zapxm17tlFswrKw1FbvVpaxnZsmSdhcb1q11d7fgtzWF7YJdbTPM8bw8PDA4+Mjj4+Pa+Bq3+H79+9vqEDte92qxRqcC2u7t/FwlVJcrpeVypNSEis3RdXwnd+04Ft12ua6r6+vFXAlQVPUf/KaxLSg2irb6/X6xswBbsnRtlvQgl+jWfz8889rBZpzdWBClHyOx+OKlC71GkpL+5bVSwdjZpyuGKuZ54mXIoIPwHq9h0Fmri1J6/ue4/FITEnanDFWYXO9XofL5VRpVYbL5cLlcuHp6YmffvppFbJ/+PiBGCP/9M//hAL6rifMM946MBrbd5y/PZEVYDR3jw9oK/xAVcRA3morur5KocqEM5a+8/S7nhhi1d+91PvuCiUTlh05BKZlYdgNaGOJJZOqXGIJgRQWnNb0Xc9+t2NobjWlMKfIvh+4nE6kGOmNZeh6oXWNEz/96d8ZrxPz5UpnDHfHA4f9jv0wcPA9OkbidQITwBqcdnXhBpUTpgY8XelX1iu8tnhtBXSnRPCgcxZjda3O5JoaLSHWaIVVIqTf2qjFKlIQqosExbRSvwoV4FM0rbZrwE6yzC0lac4oJOlyWuO1obcOrOAGQvSEGAhZTC5ikfvSIqIaqn43q2/BVhvhslI7l1u8BHlVGG5xXlq7FRBE2cReU8FDtUrMyN9yax1zq4zXyhkZw+Z2CkshFzFRSDUPyvW9qJakVX2A1h3UDUOTyUWKjLaWtwIkxIgSeSkBR9agltHV8P4m3LMkBEuhnNgFaiMj6pQINQhqU2MAjsv1JO39lFF50xFVCq0dxopYiHKOYbeXStpawBCLIlTbxFgy1OP6H5j+/DaCbdO0bQGjVZ5t1igqQW/F/t+3iLdBEm5V7/sWxPtg+2stari1qVvV3D4/Jhnwt2C6nfE2kFWr0toctZSyVktTnaW279SCKQ0csKkYtzZ7rUJqpgAtmDZRiG2Q3CKrv337xuUiC+d+v+eHH37gcDisFePDwwPAWpm189ZuvhUpvfmpSTG5RFKOFXTQKDbCwwOxhjPZCII8Lvi+wzoxDXDeVsRuYp475mViuo6iDrUsYvJej6nNnpswxTRN68/22rQ56FbDWtrZkum2ORtUkn2KhLm1yDPX60UCS63uO2vwTipS50SgX4zDPf3QsUwj0zQyTldypbMMvXD8ut5x4EgzDiglYa2AouZx5ukpM447vJfvtRuaJ7DMgf7ln/+Z0+uJ63jl7u6Ov/u7v+Ov//qv+fHz7+h2w5oIxRhl0dMK7SzDYU+/3zPsdhwe7vn0Vz+gtSQF4zSijVDHTHU/2vU7fKVCdX2PQXO9iFWZdGEilzp+iHEhzDPd0DGFgOvFhi+GSImBkiLeGvZ9x8PhwHG3w3lpnY/e8ctPP0OM9M7y4f6OXefJMTGnyOv3byzTwjKLBN7d/ZFd19E7J0pJgNOi4NN3HZ0VtSpKYR6nGkZkgdQaoYgoeX0p0v5V2ojhQv1dq1pb9WSVuLeYhlLVBbQogUn7u0oq5nYfiWKXAiJFeJhKKDG6agS3zskyzaRxxqKwKFybDSu5HzOF83gBDa7z/P6v/orc5o0tEJlIU7wqpVbjuiah1aITClnVjlNpVfXara1t7dZQlT+3gA4KXatmmVmX9qraO27/TW01FxK1KldahB1a06H9PTfMjMy329ragGGlBmtBbplapCpJAqzwxJdYnaWioLgxcs9LxSnXLhUoRZFRpFIpSUaMC4wxcoYLQl9bJqErRmlLWGXXOa+1Huu8ePzmjDaew+GBOU7EHDmPEz5qkXgthSkEGWsYxyo88me230SwLbydubbKo/0LrJXNr4Gl3gdceAuM2gbMP9dX37ZE29Yq1O3+lWr9Kt4s9HBDQbf3tu+wRTqvqGR9E+O/Xq8MVcFqCxDbtqXbZzUQUQsuWy3kXwOFXa/XtYU7DAPH43Fty7Yg1j5ryy9ux7Y9h+24tVZYpYhRr4pW2sh/y7UUxavL5SyWaNza903hyTkrHMoYCTFI1cDb8wqtklzeXNuc84pybgnae4OJ9l5JfhJa30TGWzYsnyFmDe3amXoPNpWsrorR73Y7LhcxOe86kYj89vUr0zwKEjunNSkytTLtqnrNfr9jWuZ1JjzPszjzWFdlN4VypRG/2Ndx5PJ6IoVA5zyfPn/mD3/4Az/88AOfPn5CO8uszQ11Py8rR7iUQl/NBfrdwG6/v1VhRfRqD4c78QVF9I6t86K+VcX1Fcg8sD6d8zITwiK0hxS5jCOX8YrvuwouqXPeJQj9oraFS75xllXOLOMIOdNZEW5YquvReL1wPZ1XKzONGD44I96hupQqpl/1eI3B6Ir2QZSaWg9ZIcGjwOoao+RiS1XUBpVF0MYqC1pXK1V1i0tbEOR+V6q2wvXGTLzU98h8uLWAnRWhEOfEZ1WUu8QD9uX5hZev30RtKBdMLqQQ5bCMYDHO4wnjLPvjgU8fPoC2qIyoha3Pnl4FIbSucptVKKIe9jqTlyO9zWIV1BZ8uv2ulNtslrLGZ1UapbKCst4BqIqqp2Gdk7JybaufwLqPdlZLey//dYLbZsZvW8biznUbsarbD7eWtLzHCSArQUiZVJMhpZvudl0LwlwVoWL70hit0NVnVz7bIBw5TSnyeTGLK5R3tTvnPcZ7lLHSwlass/0/t/0mgi3cAmVbSLfSia0d29qiW3TwNuBuf7a/+7XPadv29e+3tm+1ubl1uQGR3hsEtMWvJQKtgm3Aqba/7ewlhMDpdBKCeLnJQKZ884ltFV3f9xyOx5WzuhXgaAF9e05yziIWESN937Pf7xmG4U37t1XPzX2otaO21e32vJq64PnNjLv9vuvE9q3tP8a4oonfX4et7eD6Pa3DV8m6LQp8W9lvNZ3f8J4312Pb1cgVDboNwCCLK+amWrbeR/omOhJjpOs67u/veXx85OvXr4Cghff7HePlwuvpZb1G2zHD5XLh/v6eYRjo+g5eX2vlKgChfhAeKrXNbpRUOtPlytPXLxLkq3H73/7xD/zdH/7Ih48fubs7EnPmXNt5zjmmqwStuCxQYDcM9EMvvrCdCHc4Y8F59v2O3f4gYu45sR8GUZNSSmavUVqmcr3kmRArwsC8zDKP9Re61xec7+mMJedCDpEwzcS4VJPymfFypSRByc5VmUtlkd5TwPO3J+ZpYrxcuZ4vkjwqhbeG3rnVXEGVanloJNBq5Fhbe99ae+OJAqS8tjyNaiOiCjws5QYqaqhjkLlt1iiVWgyX6lFpKmFT7nV1m+cayTKFy1uK8EJd4w7r9Rm+Xke+fv3Kv/zjP1HmBWJGR5EJNaaakPeOy3xh2O/4+Okjf/zDH8D1go+IkRzT2omz+uY0RimrjngrBHLO6+yz1CCmapBSVO51adzZWoyUFmjreayPa0swSsttYA2gUkHX86MkGcmq6sIg3YhSzxm33KjW33X/bEZ2K0d/a2+aBZxkJIGR5MLWBEM+01qL6zIYQ1qEPriESOcEPawM5BwIy8w8X5mnSfZvVB0hgbVaOk/V0q8g1XnMmXEJXGe5t/vuyOHugeOuZ993+L4HI97Q/y1ELbRSa7v1/ULa2qatvdxml9tKdwvo2QbY94jitr2vVNsi/mugqvb69loxM/+vDkHv29PGmBXE09q+rRodhmENwsuy8Pr6ulaUcxUvALlRfd9jvV9ndvcPD+t3abze9lpqwJ8qfSfUinC/31c9YLcGuMbT3SK327G11nTjzrZjbYmOrx6ObR7aznnf9+jNtWt6vm6Sdrfomko1fnd39yYZiTEydAN3x7u1w9ESrUazamOFcRzXe6Idewuw26SjXaOwhHUxWrp5vZarMYETG7I2J2/f6Xq98vz8zPFw5MPDI533LM7jvePxXmbfr6cXtK7c3IrwlrbtzDTPdHVef9wf3iQcnz9/JsbI6XziP3/6ie9P3/j+9I3nb995/fbMP/zDP/A3f/u3fP78iW4Y0AXCODFqQ8qJ0/OLyNrd33PY7RiVYkyZnEeRAKwCHXeHo1QRKaMK2IMoKIUYuI4jr5ezXIMYmcaJp+/fGacRqjiHtba2ym9G6Ndp4uu373jf8/Fwh0ZRYmQ8nZgq6Onp51+4nF8Fze0c4zRWVyLxX52uZ16evwugyohq1K7r2Q0Dd4cjzhpSlPa+2EQmcg7EWEhxqcWZqA3tdrsVOVwaergCe4pG/lbSRhe3lWQZi1RlRivqOlsBNVX8gFvCmTXy7OtGDZKgpEoV+HcGaofldv9Jy3ccR37+6Rd0ylg0nTUs4yiJhNH0oSPmQOf9iokoGkoSTFXKSSpSIFDv3ZxwOZJVkSBU27IZaWtLRSgBt7LyBACmtVT19Ty8pyi2TkiiyjOWvLIdUrl1EkX8QarAVGC6XElKAHuRglVwlyKpVP1iVQ0n4m24abRoPFstWt1KyWw8hJkyVqYFAk4LOWNTpIQFEMSwUgbnYJoXqUKLkudWZ3IcKGVH7zNRQ04LOS1Yk/GdlmSpgEGsCbUSInLJUQB/KRJz4ny9cJ1GULA73vH7v/4bjvuBzmi8UWQlbeUl/deCbbv9JoItvJ01btu+731lW1t2+9O299XTdq66vZHatgVEtcDSFmHgzfFs96krCKct8r8W6Leo3Aba2VKFtoCf9hml9mPeA7eEnnFDOLcg085To8u0Y26c33Ec8XWOKTPHW2Dfgola1dxQtG2fbWsgLGmjSpulXYv2fZdlYV9b1K1CHsdRVJROAvwZ9ju6WtkfDgeh3VSg0zzPWC0B/vX1daVKtePbtpUbiG7r1LTtFGwTCOcc12VeAU9ri2pzT7TvArc5u9aa86uYk4/VuP3D4wd8DbYPD/c8PN7z5euA1orD4cCnT5/oOqnif/nlF16reMj5fObh4WEdI7TvNM8z35+f+fd/+zeevj5xfn1F5cJf/fADD4cje9/hlCEvgW/nL3xTX2Uuveurelbmcjrz8dNHrDJ449AFvli51mERS8JdP6CdWiUoc861MpSgEWNkmWaulwvzNFZFIqAUnL85p2hrRRWpYhfWEU9t38pcN4goTVyIi6EMpc4xDfM0rvQmo0XZaD/sOOx2nJ9fastZM+wGyImcQlUVk6mmVJCNEy5Id1eVtiqTo/7UI1ICrBHUbFnHGcZUhSBjRCBF3Z63oiDr+lYjCW2uLcKsREiCet5URa5ShDVgaoWTUoQQSbmgjcX5Dt/1AtzJorTW73bYukg3n2NlqIL2YvrgfC+z5jZcbWjXIudD1flkU0NqgSkCsQj9phQoWtXkQ9DWTgmuqq6ItX2cG6RqbfnmUpjmSVTMiqi7pZxkX0phlMEbWxPczOl8omhFKIWsoCuJcZ7xYcHHDmNEh3utmpV68yNjDZE9nKZJZDCVYg6R8+XC6XxiiQltHCUVQsxQbQSncbwBUJeJ0+sEaUTlkZ1PDJ0oYjld6AcHKkkmU1S1OwwoFlSJQAQEg1LI65onioaIKAiKmBJzynjtq8Sk5y9tv41g+ytV53bbVpbvkcPbn/cBuLU3t7/7NR5u27YL9699vszj7Iom/bXj3FaJbV8Nnbudxba/t8App+GtmUELnK2N3ILkNthu6S9bsFb7jq1K3dJrfu18tZ/2+S2gtde3mW47fmrmdzt3IleW69DIGkvfd/JwjldSktay8+Jq4r2rQuE957ME4xBDnWf6N9e6nat2jtus+teSra2BBVCpO5ZE1VFOEaddndnWeWNu1VPmsN+Lj6tzpCWsCPGXlxceHu7ffE6hrLMlXfmk7Xa21vL88sI4TYzXK0rBNAk3GQUvz8+czmeevn7lP//0Jy6XCzllDrsdP376zKeHD9ztD+y7oUolLmIzN8/kktkNO0FcprTOJrGO0HU4Ywi5iMoOUv2ZavFWchZno2livI6EeSGmGiCDmBmkkmvQSDT1A6U1rtLGSl3Ip2li7pcVhBRCqJ9XO05J7gkbZQ48Xi8rpWo/9FUmU4KLsw5vnciLaiXAmpKr9q0ojekkzFShwSgwmqLbDK9IUKklXGkXot4nKcniKdZ6dbYLtR1809BNlSQiAUdT9IYrWjJoXcVbMiWKKL20MuVaFK1XBO96DKp+mtbkSrdRyuD7XgTtUzWJUIZcbq5LPieUksAZUpTqWwvYL8eAamAoLUITIP+ep0k4vMagrBXQXUvura0VfCP6qIosLuv8tlDbvyjmHFlSAquxQ0dnnbSCVXUdiokYBMR5mUYwwg2PQKBIpy4180DWobJS6taiRqpZVLtnZK0gR1CaJURCXBiniYxC60QMSUBQShNTrmYvoq6lCIzjGcOENwspevDVlackwowI1VSKkLUGykxOEzkFclpQZLQqpM06X4B5mblcruiS6azMenMRulsr0v7c9psIttsKo1ElWsBo8zrv/X8JTG3bBsMmFqCUWikxW8nFJnCw1ey9zfZuJ3YbsNu+vffCf1Q3r9ptwHxfbba2a1PHGsdxddtpbdBGodm2mRuAqVVbwzBwd3cn3My+X5WiUkpi2bYBCrVz1z73w8ePK9inBaotSrt9/uVy4fPnz2u12pSktrPaBu4ZU4QkICFdHxhjtFBXNhWl7xxK7yjIw3A6vRCiyD1aKwbrj4/3jOMFrcWI+1zOHA6HN4F0m0S0BKJdm/c6zM2Kr73POYc5HohhYQkz5/OrXI+uo9eekIJUDDmTQsAazdALD5aUeHl54euXX8gp8unTJ0AC6bdvnq9PX5mDBL8lLHz5+gVrpNrquo55Glc3pNPpFRBq0G6345dffuann37il19+4V//9V8xxvDj59/x+9/9wN//T/8zj/cP7A97uqEHrTkeDoyTtOWbv6xBMVgvFVYV2OiMxRvLWArEJP6mKdfqLPP1yxOvp1eu1wuX5upUA4UqhRiDfEZKEsy4iYfs6jgi1ln/9+cXOjT7fsBqGZscj0eOxwP7/Z7r9cp4uZKCzL6fn59XU47PHz9wdzyyzDNPT0947/nw8Ij3rs7lF+bVr9gwh0WSDiu0sGINsYLbht1OeLxQW6RVI10pVHOrWmZyllavKpXWgYQAU+WQSi4VtVpIBTIJnBFwVcqUEsm5euUqTSiZeV7o9j2d77iME3Yn8pOd84QcSKmwhMh1ks9PpRBSYZwjd7u+riWaWCR5W2KURCgs5PGKqh2/y+XMcb9n5x2u6ziflprsKXCGgASrUDJ/evqCMuIItTsceZlGihL51buhI5ExqtKDSuWcVtP6tXIzBpRhmScuKXI83vPj3/4Nv/vhd5Qk/FurNN+/fOWXn3/mNE3MKaOB6zQzhQWzTPwwz6Qi+t8K5L3U9rGxFES3fFlmTOdIKRCCuHvpIkpfMYnCxrLMKGWwTjFNgWF/wFXf3pICzmph4RTDL89/QidFb/d4cy/YgjQxjye+f3vi7nhP1w1433P8NJDiiWV6IYRMDBeMdlgDy3QlRqFgllz4/vzMf/zHf/B4d+Dx7sDwcE9VxPwfbr+JYEu5AYO2Qawttm3R37Yt4a0K0bYdPNUB+PsKtQk6tPellKrfqV1nk23bzmG3W86SbV8ul7WlvbWfa4GmKWJtK7IW3FrL+df+bQjslWtWv7MxIiLw8vLCx48f1+qq+bk2HunXr19X0Yb9fr8ip9vWjqntc1sFNz5nOzdtfrl9fc4JRZVodJZm/RdjJM4ZNvPSlgD0fS/nQLHOQtv3bUjjw2GHVobO9Stqt33H7TVuQb8Jg8QY10SqJU/tvfWKSRKCzO3azDeEQHR+Pc72PmDlN59OJ56fn1flLaXUqr7VDR7Urcpu3PA2K9/6+2qtuVwua1LQZvVPT0+cTie893z+8JHf//gjP3z6zP3xDlJmPF1YrhO299K6TJm0BL49fxfecuVVi9WdXbWqjdKYSi2jWqBIAAAgAElEQVR5fXmR0YM2GGW4zmJAPy+zCFfICaDUZNMby9Tm30X4sbEKx7dEL44jyxIgJl5O4s/ra/dkf9hz9/DA/f3jm47O09MTCsPhcORw2LPbHbhcrpxPr5xeXhk62bcPth7LwrRMFRcgqlgNQLM/7PnoPb4bMN4RFGJN2DpCqYjAQCnoen+kej8IQeadl2pdg0qdDUYyU4xcloVs1A2VHxO9cgzO0WlbxXiEpx2rvrIoQTW1J6GrTHNkXgJKG6zrsbWFHYoi5EJIGW0Uznd0+x2H+3sePn7k+PhIRnG+XHm9nBnjTFkKxSiiEopT1oVU270oRcyZrOH+4yOPnz/z4fPv+BQiGEs/9Bz2O/75//o/5FkBfFsjW1egSIcga0gKcHLM3f2B4fGO/uGBXD14rdb4ywXbd2hvKVpmxaEklhyxxcjct1b5iltXaKoASurIxjlJIrq+Z+hFxtb23dpG7urfBOR5IByh6wa0UsQUoATIgRgmpvM3lumFx+OBjw+GDweYr79wPX/nen5mGU98vf6Mc56+33PsoDMX9kOsallXcnH1njeUlygjjZLJ0TJXh63ZWZahJ1aRF/OXmT+/jWDbKqmG2t22RbdV7xaJvK3gWlBu7cOtjub2Ndv2ZJunvn/PtnLezmDXyrBKCG4DQQtE7f1bKs0WwAW3OXJ73YoaniZpGUWRagsxVnnAILJ8KWKKOOykasqwLAsxRTyemBMxBM7Xi5hJ9x0PDw8c7+7eVLbt3G2/+3bO285X+w4tCLX3yPmTJlSDyrd9qc31XFv1m/OeagupoaRbFbqKVmjzJnC25KttWxpW239bCP/cdU0VDUvlIkYdxEAgB+ZcOxtaYVXlKpcGnuEt0jsEXl9eqlpUoJCq4YBU6qlKH4ZZ7mGp0KpJhFZ4J4F2vM7M88zLy8s6C94PPb/73Wc+ffrIw/29gLqmSTpuWtEr+bdRScISmKcZ1EyKUazHasI49D3TOFJyEVSnUhSlWZZACDJDn6apIt6TKPsooXcYq8VucLoyh4XCrWJWWovesnPoeaEUATaGEJiKCMNrbWim9VprjPOkMjNPE9+en0ErhmHH8XCHsY5x+s44zcSU6Ycd+/0B710FOUX80t/46EiFOC4L6VwwrqOLERs8MYgWttaitJTTrf2nteg1UxJWKzpt0Okm3kCr7Kg6/aUQC0wh8nK5UJyIchQpS6G6Y2k0DkE551TIRLHs63IF3Yh7TIpCPctFMeyO9M7TVRONzllCmElxwVhwnWW373n4cM/dwyMff/yRWAr6+YWnpy+AzI2bYEkxgggOJZGQGeYcAmMM3FuD7XvcfscyLyQ0UWuWIsmEQjojWTUHHfk3K/mMokTDe46RYCCUzJIzl2kiLgu6IPStJEClXAqqdZhKIeQkalgNflzb67k2vKtOBY3sW6qXcSkZVFm7X0VpAZer6oQUQx1XaWJVzovLTJgnrI6UPJPTFc2IxWLKRFqemc8/E67PpPkVU2ZKMaTFMqcL4/kO4oJVGW8VVgdSFIlHTcLojDEFsgifaFmgKhqeav1nseZtcfd++00E21yDbVs4f40z+b7KfA9Gek8HAv5LkAPegJa2QfvXZP62n9H20eTCtsfRFvst57dVva2C28pKthnSNriP43WdXbfWboiBJSwy96xVYgPvRGSxbJV2oxo1paauE0nG3TC8SShapbwiLDfBtgW+bbBt538b6KiL87ajoNbZ1NtrtJ1Dp3ITcmvJ1bYCLLylbjVQWTtf7ffvz31Lwt53OW5UK5nRWSOox5AEpBRqG/rte292Xt57hmGoVIjCpbrQxBjIJC7nC8syVZ3gRRDI40SKkRg9YoggSYkGsfmbRl5fX/n+7Rsg1eLxcODx4Z6745G+72riU1HdWqGdQxm9Xp+10qIwzwun00lASNYyVXWtkrNUm0qjtVhYXiehCK2GGRSRBLS1Q6Fra94YtJJaJKVU6Tsa73y1VDTrdV3n1ymv90AppXrvFpmnLYHT+YwxGu87uq6nFBjHmXmRudxuv+dwvBM0bhUdCVFm3EUJSj9fr2IlOC+Y6xWfE3ZxhCXhXFefTb3iiHQ9xqwNVsk1zfXeFQBQo75sgm2W6nZJkcs8oXDVQk5ubwEfQcyiW1xQNTnIpFAT9txAYxoR3AeFYX+85/5wZNf3eG1wVldkdcA6hXYK3zsOd3v8MLC/uxcTihgx3lFSJFexp5uaksx4C4olRcZlZlxmUXKqloFJa+ZUR2ezoIxNqQCqep2VqkFE3WQYMxUUZTSRwlIy12UmzrMg0AurUUYuorBUiuw/VhODJh2rKi+61POvtVqNHcqqIlWlK0uulpCCdDZG1owYArORVnLGiJhKzoRlpqQZ7QoqBzQBo2ZUNuTFMp4y8+UX0nLC5BGtIkVZUlak5cL1/AtxAZJG43EmEmJG5YIqEVVSneEKmroF2hIlAVNFKGbmv4OoRa6ttVZVNaTpe4HnFqhatbOdJ7Zt+/ptm7QtUK1S2fJUt/PRto/3QKmtM1BLCNrscPv7FsRa0FJKrc46W5rQ1skCYA7LG+rNtnUOIpL/8eNH7u/v1zlg20dDubZ2Z9/37PY79oc97fJvq9dtoN8ec5sjb1+/1U6WboGgWLXiTeDbVpfbBCmnZm5vcM6ui/F7NHcIIp1GZq2o27Vo+9qCzNp13B7/9trJsUurWVkj1Uitsrcz+zUBUrIvX+UkrbUcDgehQNXWcHNNmuaJOcycTq9kMt4LpWpZxPGnnbM2g3fWVkpJWuUplVIc9gfu7+744YcfblrVKRGWhWkRcwKtNUwjIcuY4Hy9EnNanZAAlnCbrxtjuJ7PdL7DVkP3VGAJkWmuetyl0WMk2djveqyzIuC/LBVEo1df0rzxEG7ULd9a1qlAEhGTomBeFl7PF748PaG0UKku1yvnaeLT4we0c8SSeX0983I6UXIRus/DA/cPj+z6QcBPJZJiEOlDrbiOM99fX1CnVy7Xkcs0cl0W4V9qS1cEKayTBiWSkd57uk74zN5ojMrkOIv0YJuyNd5nXUAbbWbJmWsIDLuerhckrSoamwEMOStizAhVV4JFjpG4BGKI5FRqUFAUDK7b8Wl3z4+ff8fd4YA3Gm/F2B2VcN4wL1fBEGiYKn2GFlhrEtFkF3VFVFPvK21k1n0Zr5yvF8ZlYQoL47JwmibGRe4PpwRsZkpGJqwakYjYVLewGgsoo9GmynsaQ1JCwTGIWpPSBqUMqqovhZLJShHJb4Nt5SZvsSm3jmRN2LSSjl6V19S2BttKqZnmiSUkrheZA4vMZCGnwK5TeGVwJrJzhWwCYXzi+es3fNB4daH3Gd8BJWC6gTkkTueZ12+KZdGk7IEjvY3EqJhVJueJMF9JMZOVIUcvPHJjWYxhmWfCvOBAjvcvbL+JYNtqx62WcAu0LUi9RxlvF1h4y7sF1oV1K/Swreq2yOOtrnELFttAv0UGN75ZO95tArB936/xhrd0m/e+uZlbe3cbsBrY6lAFDu7v7/n69eubdurlclmr2nb+lFJcrle8fkubauejzSnbPloC0Y6vvWfbJpcAJcuHADu2JO6yEsPbcYNUc9M84ZzHFEFyS+UtiGBjqvh5zusiuKXotLnv9n5ox9PO/fa6bvWpBQewYJVvnSwgk3MkJWknW63QdGgrpvJKF3KJxCiiBUZBrmLyq7g8N7qXqmIH78cE24Qx58zXL1+qb2rh/njHX/3wI8f9gaHv6YeBpbbnrLZ0ruMa59soZLpU3u5UAX4FX83WjRG6VDMIJ0XGeRY/aAr/9qc/iQyn0uiKEk4lV95mrqDCAe8Fs3A6vQiwa57QRtN5S9d5nO+w2lCiVLoF0NpWkRcl+zOWMUTU5UJ5EtGAZpGmjeX+8RFlNC/nC19/+cLpMtJ5jzaOlAvXeaFQ7eniLG1uwHg5J/thR0FhXS9zxVpZhlLAWrKSzzPG4IaBftjR9wMKhTMaXRIhLrdFpwba5l+eUSQQgwCl0c5j+h499BJsYhFf2axIWuGMxToga3IW0XwylOo0FCXeyLm3jvv7R+4/fOTucMSUQufFHF3pgvea18szL6dnzuOFn78+cXh8xFgBni2LaE+XqFi0wWpQ1uC0LPChJmnzNBOWhFYaaz3dMHB0Hi96hpi08PTLn0TYg0JJjYO7GScg4omqKHIsTGlGn8/4799ldDLOWAyhD+SzyKmmGGu72KzCE6AEapCkw2F104+WKrWNbTTVorPZYnJTEixFMc9BKt2iK74nUoqCarRgDVVkAgyJ67yg4xmlF3Qs6Kzpu4W9h8EXpumMURPoQrCCPQiTIgRHyueKqLdYXTDMWJPJRYGWe7O3rv54BufpncdbL7zdv7D9JoKt4jYfazzHbRt3S1PZzhzhbTv5PVK5tSC3beYtH/Z9sH7TEt3sb9vaVJv9bbdty3r79xbUWrBtFeL7CtDYW6W9bZdu54aliF5yk2BsFe121n04HATAU9HQzSh6+/Nr8802H30v/7itQN9cMyVk/e05N9pszLBv83JX6RzCc6z2gLC2k1TjEbZ2Vg2276vWdj7eJyPbz9smUUIFMGuALGUjdF5n4mumXc9zq3izSaJ0pFqFenMfijEyXi6SoLxLAm4Mh1tAbmCoFoR7f7vHY4xM4yizV2sxNpEKXOapzuQlaK5jAGSmtaRY24G13V9PYc6ZKQayAh0Dl+nKdRyx1uO7TlBqSGsZrVYLREkYA6HSnZZpxjjDsDtivMN56eKERShCKSQWvWDRUGQxUkYkIKV1vNTjroYPnWd3OLAsM0sIzCHgvGfY7Rj2O5Q2IppQxyIGqjavIFiRo8Zqi7OZYoRGk4tocWtt6mdHMolcq9RUtbpL1pjKTtUgloRqHc8DSlqqRbi2TUc5oZhTQqVMDgkbMhmDVg60xTkNWVOyrhrVElCapVsp1eYt5zU5yKUm8TFJsK3zwJALSy4sKTFHAYT5rmMIPUPfs2SZtZZSanC8uSqVIvSZXKtAySWkMDDW4q3Qvgi5PgulgsLEFlApsQmk0oJWEQyluF4ujDEIQrpAGBc67fh098BOiUhKqe1kVU3trXNoK444BWk3C/q5PhttLWoVtZG1I2dB9p/PZ1hmQKg9MUa0qY5hSqG1xRmLrqjqvrPsBoXOgUUlnEnsesVxrzkO0JmINwmnElFd0RSc1gy+nruoUCUyzSOqGKgWjVolrIYsLvXYSr8yWrx3vXU447BaPKP/0vabCLbUgLT9+bUK9P0CC29nprfdqTUwdV33plrdtj7b1gLP+1bo+yBVSllvjBb8toFpfc2mut7OOreI2q2EY0pp/d7b/cKtFQk3HeWmENSq49Yi11qvwfaNCwi8/Q76Jve2/awG6nrfOdie/1JhhSt3kbf0KG1ugTDnjDYar/36gG1nrNsgmqsnKNwSq9vf8tqKbsFxe6237ei14qwPpWkzuk3CVOqi3roOKUZKpZatSUZKknHX87g1QYghMI1XtLNYb9/eK9XUOlR06hIC18ulKlEdVg6q3J8TCzfKmus8JieWmDiNV0mmovjNNgN7bOW0ZnEc0TmyLEEcYZBgM8WAMhqXM3MMLCmKY4lStYMivFxjFb7rNmOQloQEQlhI2XB/7+iGAev9ytENtVU6lUkMAWoQaU5CuYjM3RIkWVAK9vsd/W5HSILQLcD+cODucORwPIoxgr5xla0yJFVF7qXMErs3bqpFq2xiAWOdcHJLvLV3swT+ZVnIRuMU6KJW6cENGkPQUjJcbItCRQxn0jyTUiZOCz4Btsc6Da6X2aPWlKzwFJIWuYhShItaisyBlyUyh8Q4B6ydBcCmxIhA6YJPlsu0MIdYtX0L1nv6foCc2Q97EXlIUebwLejAmtSULLNuVbOI9VlwBqstWSVSUDXo1e9bjTnWZ1y3ebMkI1ZbpuvIeD7x9PLMNAfiuDC4juXj7/jx7kPtqoiEprLiqdz1tVtk5b6VZ+MGQLzhP1ifVZRUtPM88/r6SlBC5SpFxhFdb9HVtrHvOrx3EuDyQuctvVfopLnqTO8Vh8Fyt9fs/IJKE6YEDAmnxvrZFm9FtYps0QpSCBiVUWKVhFFCkzKqUFTjIkvapGsiLoC5ek7/wvabCLbvW4Xtd38uOG4X2Pdgn/Z3YK1SVoDOpoW65d62imMbMOGmD7yVDlw9PTfBfrvv9jNN09oOb6CmFkBijCu9xTmZtTR+avtdoyJt9z9N05u2dlNe2raFmwZyk1uMFR3bZrvNQq5t2/1sK9923FsBiZWWRfkz1+etJnWr4L2vVn9BFI22ydH22hUKSd/mne0ztg4+bTywvU7b5GG7X6lgAynMFTmYJYAaS7GZHG9ewi0B2AbjbcLTrl0KUom+vL7Q73cYq0nOrqOCeVkkGE8TlML1cuF8PhOXsGb2OUSeL9/W1v1ut8NZS6aQponTNLFQDSkkvWaomrstEW1Vb4qRkAJeyZxtCYG5OiwpZ9De0Rsj4CYrlbuxhr7zHPYD98c7FIUQKrjOKpw3GCuOP6ZyRo11XK4j1/HKNN46KvQKZ6vjiTLiVKNkljctgWmaMUbz8OEDGFNBOXD/4ZEff/iBw7Bn6Dp6L9zmzlo8iqEUmZHlTNGGpSRUWcihEJdAUboicxXDbqDf7USxSVtizDK2MFYSgUwFgUGJ4mtLucVXQYZRp5UiElGUJqHqvFlapWEK3OsO9hnba2bVo5A5qFHgjWfRRpIBwBqHUoYYM6/nC6lYQkj0XY8GjC4UIihRNVrSREiCAv9sDVaLkEiu3ZDsO0iG3kr7XudCSgvjPJOomseUVWc9LpF5XKRS85YcM2FeUNKBRacsJT61BayQGbgq8ncN98cj5osmToF5HLnOC2kK4CPTcEUdPtA5j9bw9ZLofMfOHHC7Huscu8Me3/cyz8wSwNX2WS2soEkqUCrGwDSNXKPQpZQ2gJVOWE30h75nv5PzH2fQSlDJpszsB8OdPbL3Ezpd+PrTv1LCFx6OFvfQ4U2W2XMoTNcITDj3yK7fAR1LVCwh43TGWQjLmXlRZOQcqlxQIeByYTwcmbQlG3NT+Poz228j2HIDwLRWZlvgtvq3cFuct9u2QmyVW5MefA+SasF320Z9Tx1qC3lr025pR9oYAWJsQFbNGL7Zwq0L7zyviURbJKnfdQsUEI7sVZCnWrOvTi3AqmW8nQl++PBhDX7NtKEFzfP5fBO+yJId65RQNbHQ1tJvTA1yVV+5jiOn11ec76qLCiwx4KpUX2v7iDtPfUaVqdl7C66ZnLfGDqKwyhJk1pJb+4qbBKDR9K4n+EhYpCqhzrzb921UlS3QrX3vlmQ0ha2tdCWwArQoWTJ1a8WhaKNhDNLmyqWw2+0qEjxynSbmsKxzZt959scDGEUsmXGepM1brchKEeWjpbrglJw5Xa6cz1fRf3UdznuMc5AinXf0Xc/d/RGjFK+XC+dx5HWe8PuhHquRIJzE2rEhY1NLJmp3wTkn6kIFlkpnyogoe1gCWhu8Uywx0juH947D4cCw67iezxXoMWONY7c7MIfI6+lUEa+Kkgrny8i4iD6xxtT2ra6jFdHvTamgoiFlWObIOElyp5VlngIxJJTSHA47Hh8eZaFeB6iiGhVT5jKNqErbsp3C1PavVDLlZu2jIC7C5VmNznMRIY+UUUX4tiI4pUgkdEk0rm1BU5QgnluxpyonJafMOF+5nC9M08QyL/jhnrlLTDlxjjNTDHRG0dcxUNK1k2w0xsncupTEvEykAqfzq3RctKHvrNBdSHS9JasIuoj95PKZn376T4bek2Pg9fmJuEwYBb3u61yzPvOvZ3CCys5JYa3H2Y7OeQbv6Q573NCTU2IymUtpYhaStCcUSefaoYC1EV0KaY6YWBi0Zdfv+N1jB0vEa8Pj/oArgTwHUlywKTIYw+AsRfdY3/Gw23PoOnpryUGq+FxnurmIm05ImZgKThk633HY7bk/3DEUQX7nIslb13VrNb/rNHeDQZOYS6YzV6bTf6DyCx/vYVCF68sL//n0J/7l//4/2fvIH/7mnq7/xP7uwOnq+PY68cuXkRDO/O6z4XAw7HYdMWcRJCmBOSbu+oBFE7PoejtUtWO0eCcjIWcN5b9DsG3b+/nrFn26nc1tK76GCG6zsUZXaa/dIoVbddraxK2yaJXje64t3Cgv22ot1fdtt+2sse1ri6jezj63SUGrQJXS5FykMqkAl0JLBBR65VJ64UJerxJwgwCzvPNYZ7E1m7dGnESsE1qKCSL35lF03tN5j/MehRbt1n4gxYzzrlYDglVUWmTVNKwtx1xEuF61rLQBO2ur6M2stb7GWrGQkwKzoNEr+jEWhUETiphvT9WMwRiZ/ahlQWyvbrP3LR831wpWK0hri19aaiAUgpKlTapVQVuL05qck7RpVTVWUwrrHUVBzLmS5UEpg7FirZVSwkaP73vO48g0B7SesVZMFlCGVGCcFlJMzCFRlMb6vnIXhf7Q970oTXmH1jcPYMjElGBeyLlgbRMTkYouVQnGXO+PRjdQdZVU9ZzmJPQhZxZJgkqmaOiHjl3X4Tvxg42hgt5qSyzkUqkcYF1HSBkVAkplYhYai+jsSuiT6yLnq9T70FjLvASmecYYyzCIb28MkRhEj7bznQS7LBQh33n5byoIMS2YLLNTmfsiLc92j8nDUednGqOkIpM5nqiADX0noDAFfefxOrPMGUOE0oQtpCIvt7q2mfzglMEVhU4FFQs6Q0iR6yxdi5fXF47Ocb8bwPVYFOiCdRrlDZFMUSJY4b0V4YnNaCZnL/QXlUlZADvWG6zVXM5nvn79hd5bVImkNKJIqKKIYaqazDJ+MdYSa/pQakoSQpTZ+3hFW01cRlFqupxFHCUlUcVK8s1zSVht8HhBHyswpaBj5tD14hplDb3vUSbjlGJQCh1moGBTYgBcDCKbaTRd8biUMDGhYhLfXCWUqIKiGEPRhlI7IikVnHYc93f88fd/YCkQiqwPznmsQSQcc+ThuOP+0KFLZLKOeXwlqy8o/R1voXeZ6XRhmi/8+39c+OHjwMfFM9Pj9B3fx46fns78y3+c+X+pe7MlR5IsTe/T1RbA3WPJyqrunp6hcHn/l6HwYi5IjpDdVZkVGYs7YIuuvDiqBouo6uZtFkRcIiPSARjMDHr0/OdfwvZG1QvYiek6M18ST3Ej50BMhffXiMWwBU2l4NA4ZXHGY4xv3bc+deh///G7KbY/Ep/OUpUzI7mTSnpHc7lcDqhxWRbgUSC75vQMMXdIt3dJvYPqjOQu2+jyjz7L7R1VbJ1rP+YfTTjO7987zP4Zzh3o8Xm0wmTpiiuwLGsba9Q287RHN+39cEDEWksBiSFKItDlwvV6FRce55nGiZeXZ5SuLOvCvgeM1fhhwrXc0qoUVjsmK8SWGNOjY0pJbHHb8MYYfWSjhhj49u0L9ZTe0edIctyiQSvNx6yCBIXnTCaTiiSfaBrhLYvFmqpJ4uPud67XJ6ZRFnOlDcZpLGCNPljXfTaamrl9ivHQVgJthlWxzpJSJaUAteLbpqSWgXXbHhCabvP4NmsuUeLLTHO3Mc5C1MICHQcqimXZSKmgzcjTy0hVjlINt2U/7iU3jAzTTEayNm2tPF0veCOFIKVIyQnrFGP12G0n7BLK3mFmVJHrkzOUeqAi1gmJq0TpkGqR2WYKqc2cGgO+FjCV55cnLn7EKGGTlxgEejTSOWwps+6BdRcj/DUm9rqhlKUJgY7NlVKia60ICqKMFrKT0iKT2nY+fPjAh/cfGMeZGBI5Shc6GE/YNnIj+VzngZIDuYhJgKK0EAGZn8cDoWhdqz5Jq5zDGSFIVSfn5t3zM9M8oZRiXQ2XweFqYrsDZCFR1QrKHj7AFY7PZpViNIaL8ezKChlqMFQK97Bw2+58/u03/uXnn6nDR7wdMDVjjWNwGjM41jVRKVinuT7N3O9/RVuDVs3sooJvLPiYdgwag8Vrw+3bNz7pzOA1VmVGY3BOoXI55CZGW4z1zNcLtz2DzlSVKRXut4XhyzcZAyxv7HEnx0Ded0iJHAW9MRWKVoQCzpjWQWqxs0ySS/zh+kyIkZQyrhqcFTKQzgmdZF0xqlKMpgTxZUZpnLaobaduG8W6h4SonWZlLco6lHFUbYgxY43nw9N73v2vz4SqCFWTMIzThKobJa6UuHDx8DRpdNlYRsef/99PuPETSn3CmQ3nZoy9U0rir3+F55d3BP2B4N5x5x2/fLvyf//F89//r1fC9gt2WnDTxE8/j0yXQM4rmoAG3t4nHIXbm2ILiQHNoB3eeLR24lGuOVzK/qPH76LY9mL2o1tRZ7L+CBv/KPvoHWmfEfZil1JiXWUY3jvJ81xXKXVAvf3fzizi/rzzbLD/25m8BXxHcOqkmnMYwd97vfN7aiPRabFkdJvD9v+fs7hDidm2wMe3240QwwGX98zVeZ4ZnMNaYe6N40BI4WCBWueZLy+8vLzjer1ye1t5e7txv90w1h+m8jkntm0ll9S6npP0SoFWlmrNQXigVlJ6dLQahTUPVrm3A9V0A4SVkirGieHD5fKE1q3gLwvfvr7hnOfl5Znn52eu12tDA5p2r8HIfeQwtA1Tn2V+Z06iK3vIh8NTtlIwrbUoaxjagly1Ej/XXeDp2Ni+kkYtzFrT9Ky5ljZ38qzr2vSRAonlktlDpKAwzmOtzFrn+YLR4oyTqziGJaOxRmGtZnDiKqRtZlgDe9PtHnaW8+VhyrEH4razl/Xo8sdhwOhTIMBp42qsYbrMPD8/U0vmdn9DV7BK8zKLrlvcqSClV9HkhkhE4bVBxYpSWZCMQusWLV41GZwW96NSZMPWvx/vXl74+OEngYut4/b2RthO93Zt8HGphCAOalWJvnIcLFZ103+LzgpbHLYUdHLiz2QtyogVY+hublTGeeLl3QvX6xWlFL/99glqIqW+sbASi1YrKVeJo1OI3KcqLJqaNqlVc1IAACAASURBVPZXkc59vLzw8ekdfp7Q1lCVeKzHGNHOYYYBP19QOVHRh9yJKoHyg7eMzjY/4oLWBjPYxmQ1WKNxVoh80zByGWf++PED08ViTUWTGLQcl66VYm1DwjQZw5oKa6pELNUKnH67b+zxV/76+TcgoZCkJWc0L+OLQO7aULUMZ52R85lGx1Yjy7qxrDtFWVLb9E9uZBo8TlV0KZACXlVhZCsYvG3ZroqCxo8jF+eYjGVQmtjW5JRzS3KSEUVREi5hMWhr8NqjvXS1xXiqcRStsNWiq0VVy1BfIf5G2r5Qb39h4hfm6Stav6LUgikZVQIPRuczsU687nB/feN//++R//E/Vv7t30Xq9Oe/vDEMiafrnX/62TNPMNiKtxAWy+wNX0fLt29gbMCqgCJhjKRDoap4af8nj99Fse3F5+yQ1P/9DOOeu9NewM5Snj4fPT+3L7xnFmsvyN1jt79u//NcTH+U9JxlRP05P+osz6LtM6P3PBv+bmOhRB6wp3iEr59f6wyFdxnJ7SY5pNM0HeesQ+linbejNk3KU9PAyfsvywp8Yd9D67j1gRz0mafWii7R2fa1wXiiM+2MW2vtI4qtnTMRplSZlQlluXXknuvTE/Aw6eiIgMxtjaS39NcJojmtRWBBcWhqrOF2/YFjkxX2rc3WxVVL6xY0bi1WW/b8MHw431vwcOvaNtGwdvSk3zcdiTgzqGt73jAMooHcAyHmY35ZajlGBN47nBX2udWVokWjmWPAG401ujFbPdoKBC0ewZFwOs4zAexwLApyP3RUROnOI/2efQ6wbxtfv36Vz5EloGBwnusgJh+dKZ5zZvBeeAPt81RkE1FToebOVhVD/loqxmiscex7YN9WkfDkzLunZ949XXm+zmgghkCtBWtEOmGMFgZ6k60opShaimDImdwWYaVgz4lQM5EqMgyEUV21MMNqkzIpbSlGi4/wJhu9r/dXdM6YHHEZlHIoo5AM3IxoNhtPBIMqMLmJ58sLymj2piF1bkBZuQesqVyUY0JjBbIQFKdkSsjUmNHFMPuRp+nKy/WFb/MbIUlcprcO086kUgpvR3KJYi6B5jJdpcM0FU3BUYVZXypaJVI2YnJRtRDJrMKYkWlWWD8xXS/SgRqIcaWU2DJs4TUGREuqGI0wcnEW7R1xHlm3wJcU+bzcCbFQ27jAGcuUEqYkVEmoHLk4w6UODN7iRnHxylV0ys77h19BR71O67g6QwnqZIhTK4Zmt2Ed1Tj2GLHVYrXD6ogKK8v6F7bbX1jv/w71C6OrWDMSY0KXAV1AVxmLWafQulJS4PNvn/ntN8e3bzvr+spgNpZ75fVr4vOnxPvrey7zwOANcSx8/GnAWIX1GnRhjyva3kBNaLNjtG/Eo3+EYsuDfXz2DT7P5s5F80dZyHnhPBdmrfWRGtSf+yPj9jynPRf0s4zkx872XDSPz3Ba3HphPRO3zuxpOHW0nUnrnPiyZtHK9c7kbK7RoezX19cDip7n+WBS9932kc9pNbnEg3rfCUFvb29s295CDObGhTin+2jAoPX3bk/970rJ3Leczs1x/toMVXqWKsYI44AfPSAG7D5E9rCL+N1oiZbkLMXgKJidDd2L9HlDpdQD/pcgemF2eu8RSs3jRc8GGWfW8pntvO87Ly8vx310vrZn7kCtVRZf31ysaiW2gAPTNKt942ibFeK+bSirUDx0wn1zUdt1V1WySPvxfsf2Vo/viLEWU8T3+YCTG6Tcr+F33IdSWNb1QEJGYzDWNQciIdp09KTL0MZxFLYvipSl+xTrxirlQPVBvVCXlJK4uZQalK004zAwjgPeOdJJC+6cxVpBNVQn4mSxtuxwruTKNkRIQTUie9K14hibNEc624JCWdMgSvEOXvadkOW6vi0rloKrldq0ulppiaarYpCgjUVbC0pTU2UY4PlJCrhrsYYSHN824zoxaINXRrhauUnqlGrORhqtDN4NTOPMPF+YphkdxM9Xco8lON45wzQOzfpTslOdH7BOow1o4XjLmSmVWg0SSttITsqivZXOV2nsMDM8PYqt2iz7fhdHrpKonYBqLQyOaqE6S/GOMo1sqXADvqXIEtJxz1qdGVJExYDKEV0S6TKhnHSb5libZTOmxI+R8xfxsf49vuvq+P/q+HfZQ8nzi6romh9sZgopvrGvn9i3X4nxV7S64XTBKEUuFlWdaL+KjNtkNi5hJNt+hzpiVMTqhHcaq8W7OcVCThVVNcYanIXLkyMj7PctQr0HtN6AO4odpeY2i/4HgJGp37sGdWgYHotkX/T7wgIP+LkXknPyyo+d57kT7q/b4/XgIRM6/5xTiECg4nNROMPP/b0OjWcr9D8GKHTyVJ8FA22Bs7KjT1Hiwk6EK6UkqLjPfntSzDzNXC+X75jIOWdGP8iC5h23O4zTdEghcs4tsSjx+fNnXp7fM00zzvnWwSWMac5SjYYvcK1uxvYa4zT+B63w+XznnA9ZDbQ5edPboRVuGkiUw/qPlMiqHqblgx+Ypumwj+zXoeTcOqIH6ayU1EINxO5zGL2wA42ksqRGKLLOHqzlx20nx9w7123bjgi4vnDKL0KtRczrT6uEd0IysyEQk+gDXRWyT7fdBMitkFszYoxlHGTXbLV4rcoiKsSomAsxPvKWH5stvrtva5Wg9aF9pmmajntqXx9M7ZwzxMiyLpSSeXl54frywjRNEiqvHglKa4PmnfPM2hwzZmKiVCFSyT0r3Y4ck6MiRhR72Ii7SJwG7/He4K3FGk0oCWrGOyPewB3ZQaLdcs5IJHDTUrdroMQkVz68K+hcxDKx4XdVa27Lih2nQ9OZc+b1dqOUzB52YhDmdzGGqizaeSF2oYhKDDG09eiWAsUe8Xbgw+WJkjPLsrTNnizWlUqx6QgU0IhTkvdClrF+xFgPaOww4KeJ+XJlvl7xWcI5xslLUIWRzcfL9cKy3IGCGRzaeyliRoqE0lByku9V0URvKEqBtmgzMNiRUCqxVJKyRC+voY1BPLRXlhDZ1pWf/vRHhnHED55xFja4NlrsGKeRLSZuVvONwoKYO6jUiGUhkLcVlWWOiVG4acTWis0F0zafRVXJvG4oTO1wrhJNrdV/a4nbORbiUifyq0Kk1gQlU5ISlnBZ2O6/st7/TNz+Qi2fcG5BV4XKoKIG5SEWSjTN6EPMYIRPmHj/fiQFRw6Byzjz8f0T75+9aHWrbsx2hdEwX4TEhVZsqZJqoOQFpT3UBcUFAcH/VqZ6fvw+ii2nzqgVjr5Q/zj37Is5PPJve0Hui0s3bP+xq+yC6d51nnWVPz56IT9rMDtM2Ldf5/cFjvftC2U/ht5RnRnWB6TdOqv5cgWlJcMzfE/AWpvDkFLq8JA2xuC8SI56R9u7+L4gO+95ffvK3grINF2a5eO7Y75ZC+z7RkrxkCH1me39fj/i8MZxYJ4l8Ns5h9OGr1++cr/f2fZNkk1Kolb5MxVx8knFUWrm9fba4OlCzJGkMtY6jLfYyTHtsxjMh8jQ3qMfYw/KNi07d9u2ZikoRBHvPcMo89F5GI+i8whWEN/S0TWTgNOGyhuLrkL9qSmTQ0RVCS3Qzh0WbLU2GdFp1JCKQGXTJHPf3AzUrbU8PT3hnGsdtxS5d89PXC8z18vMPI1Yo5rsJVOihHSveyB/fQXjpEus0gW9vLzn0oLtS3lEPOac0Q1pEH/nzDrIpiGXQgiJvG8YaxjaJuDp+sx1npm9ZOHu6866bNxvNzFNCZGQ86mzLYczkezgu4uPnJscIyFuvH39IjGJfmDwjmkYGhlNCDTOVKbR8/Q0471t3sAChaYcAXER0tYwTE9SAJSiKoOqAjtaYEBTGju9AmqYmC6zFFulxDy/E6oGz6TFx1wb2QDfvRcTAmQTI1aBjmKchJf7IOELFQZjMNcrtWac1gITp8jt7ZVf/voXqtZkbcjWoS5XnBuw4wjTyLZG7qWyVNiNoV4mnq9PzPOFcRzZdpH7OWd4ebkyLRJsUUsmek+QM9I2uUUcpihsJROoqLZB0NOI9heWPbHsgfu24e+ZMXou3mO1Il1mtDO4aWT3FgZDHgzFGlIKYgUZCoQ7v3z+wp8/f+KXr5+pWKqEIQuLedlIyxs6RQYaAmEUmYKaRrSqjVMvA40QAi4m3JBBi1ZWqT6S60KjvoGD2hyypI/PjaEO1liIkEJgvX9hefs3cvwVpX5jGr4yuoDKipIsuo4oBklpyrLpoSk0pmnkj3/6iWn8mXFYSeHOy/zC//zf/pl//uOF9y+VadhxTqENGAvaFqrSKAN7htA21tQ7Kb2R0gWrR/iH6GxP5KEf56N9ZtkL2pkAc5bR9Of0rvhsBn+eeZ7f51wYu2SnP85z3fOstofHn7uOM7v5vBn40VTjfDzzPDNNk0B2zXtVbRtu30gmHIW863V7ZFjfLMQYWZeFkh6ex10KNQzDqXPQ7ZjkJvbe4/1wvEatovmTYjw9Xnu908HdbgUHEts2DJ7Bet6+vR5IQpdd9T9LKeIMqBTamYMp3iHTGKMwM4vBWd86T4uxAp2u63qcN9+CBPp1685ZfdMyTaNwIBQHItE3OAJBh2OWeS60f2+jdcDV8J3DVt/EHTpsoGIOVMU4C1k0pH9zD2ndPJDn1lE0SYqWHb41HjMqUq24bedti8QiG5jzhnIYBi7XK6md5/7e8l7Cci2lHEWolkKqhZgTQ9sohhB4u90oMZGGEdfuqX3f2cPOvu1sIRBKpmox9U+FA2oWtrOmqmZ/mQ255QSHPTAOA9Zq5mnkMo1Mo8M7zaYV3ljmYeA6T4yDzLJrNRSrYa+4hhSYYUBdZqrWTS4lUHamkWqUbl2P3KHucqVYmfsrJTNcXWsLiZfOLCgoShG8A2M60AmAUyIdMghpCCXF2GsJjq+bpqRIqkWY0FWRNERVoWaZYeYo2mlnJfUGuOXMW0ksFPLg8O/eYeYJxhGGEeWkuGSrCM6QBkvAEEPi1/sbkpcs3zfrFCHu7DFw31dCLjI3rRmt4fXzN7YkMXi5VMk2DpbJOSan0SWL5tjAcr/j0o7bHePoBf4vrQtVir++feOv9zc+LXf2vTSpF1AKatspyx0dIwOF62jwFkzNXOx7BqOgGY7oqttMXNAApUCV/h38gQfTfkppM/jmfdyLr3dCkoo5E/bAvt3R7FgdsCahCShlwVg0jpyFPY+yODehtUMZi3ED7z9YUjBYHSjphq6KebY8PU08XRTiji1cAiUfByVBxRhTsa6Sk3BTagnUnKhkVDlh43/n8fsotnxPSoLHTPNHNu85TQf4bt7aF9qzDvesq+2L03kG2h/6tJj3v/cifS784uEpC9yPPr39c/T37o8zOar/v2mauFxkh+vDIMSonL9LF+qLfAiB3J4fYzzMMzZEJ3nuvK2V2UknGsji/0i2MScClzUWY1wrwJ55nluhXQhhPWDUWiXMO8SdlD0lO4ouDxQhtMD0tsnp0DJGfGa1McSe1NTOSe6waclYBdro5g8tqMO+yfxKSE4tmOI4ltTmgqq5erXElrbhUUrJvLdBrMvyt45V52J7nqX3wvbjNTi7dR33hJXFUrhg3bdbnhPbqECIS7pBnKLnzLkQigSTV2swusHRWliczjqMaVmdOcNpA9Pfu6epHOz5Hg563rhWmYfK55TmZNs23gokvxOGnbmRz/Z9Fx1sY22nksXhHSMm/bm9Tpaeo89Wc07kmg8CG95jjehc52lk9E44AFXYsN5ZxsHjrMVZIwtqkY2udRbjHMo58jiQjUCluUJM+Si2tZ/HWikohmki1HJopY19EMVKLeSU2LLQ95IfhHjViq1CYSroKp2sVxrnLYMRZKhQiTWSSJB64chsqhC6s6OqTQObmo1mJlK4U1hVITgNl4l5HCTBx1rKMICDUiOZwqIKwcCqYSOz3F+BgneWqUwM1RFSYIs797SxZ9Hw0kw7Pt/uwt7VBmMsDsWeC5tK7FXjFWI7qCvbtmGqwebAXgIgm7JcC7kqbmHnngJLCrwu+2EWomvFhAhhR8dIRmxFX++O2Wn255nomuOTNqhaaEF+clsqBV3NXPtATvTOuknvVJV1S2a9jf5ey+HbDIK6pRhxJqN0QalCJaOVaTCxJgZhmuesMHagYshFk4timEasKVB3YrhRi8NZGLxh8IogEwNxsjy8rTMpS6hC/zzdj6AWgV2ODf1/8Ph9FNtW+DoMei6uZ2OLviicu93zjPY8Q+0kkR/NJ8ZxBB7M3h872P44F+renXa7xk5s+fFY++NMfIKHZvcsF+pztsvlwpBHvr2+PqBq9b2xfv8c+vT5ehGgPLp6kGKx1Y0QtMx5SmEYhGU8DkOL/1rQzZHl+UkkEvM8Y60Va8EYpNu1Dms0KWbWZeXzp8q2rIzjyGAHPv/2m8DI23ac01IkUaa0L+dBRGtdqLEW5x2p5GNGbbPktfYwhrBt7JvGO0s55fFSq+hRtRLmYye85UhIQaKvYrs/9IgzmnkcKCUdhapLafp1OhPVOrrRf7f/PTb7xXVdj8/T5/21FiSFpB5kqS0EytevxOv12JCt2yaw2r5ya2xkpzXTMPD8fEW9e8Y630DlCk0HHXPivi7YX389jkMpxe12Q8EBYet+/5a/DdrQjSEtJgeVnYXBOibvuTbHrfNGRc7P324g5Ro3zgMC8aaUKDUL07UtQsYY+VxPV+ZxpJZMChslR4yuuDb7t8aijaKz1K31KOtIxrKNnt2JWUPMmWg1ucocD2upKNLxfRKpVkEITTprSbU5kRzvMUh3ayEgHslaKZzS1JioSebBz37i/fXKu2linK7sZeN1v7FukbDfIQQ0hUBk942YNTnUYMkGLJmRzKQKq1Pss6c4wzhMvIwTt/tNeBmDR1VP2jdC3HiNO6kGdgIrgfXtlZoig3Ncw4VrvVAoxJJYSSyqEFMm5Z0QV4bnZ7QbxT3Ke5xSqCqchi1nUsmYKtF62kskQy6VlDXWC3LUN7N6cJhxwEwDadmF/EXF1oLWCm1FI0+RYhpTYAsbt/udwRrhh6hGdtJKSJCmIz7dP1z8hzXiiS7FqykekM1hJVNqpKhCqpJ7jC4oo1DGU7GUYkmlrcO6W5NkXu+vvL7t3NedgmfdNa+3yOfXhWczEWMmhTtx/0aMI6VsUAO5KEpKZCXdbEoCG9/umddb4utX2FZHSQMaSy1axsFaY9R/Xk5/F8W21sqyLN/NM/tC2G35OpwGjy7iTDrqi6RkWAoxZVmW78zllVLfFdu+ePZYuvNCe+6s4SGgz6cv8Pn4+6J8hqW7JKfPkjtcl1sHG0JgXVdSyYQQ2fftu9/pxfYww29d79PT08F0deZhuiFd6creaP3aCAzX55m9eHSyQj+uXjBlEX9lXRe5HiVSq8TU3W6vvL19e/glV81y347rME0TzugDJu4FKMbIrb3+5enKOI08PT1R9cOcxHpHLUKYUjw2Mp3RK+Qlsa10RnJme1FPKZJjn4sbtH4ETxxQs/s+OrBvfjoBaxzHQ0L16dOn7673Gbretu3YgOl2fZdlIWWxmXTDINchCOM7xsT1emUcR5blTopRFiEKYVuxRh8zWO8dfhTN44cPH3hBsawrt9uNT58+kdp10lofqU69MJ6JX+dN54Nd3hjM1mGokvvZNhgxin65Jzh571ljhOP+rgjBtHWB2qMRhEQbTakBEBcjayUH1yDJKKN3OKMJWYg597c31stMeN6pRRJvHKIZjSlhUqJqzWYC/+enX1i9I2hJfQkpNZmPwTpPqYpYxNVKN9MOQRActRa2dl0UFT8MFAWByv1tI1QJOrDK4LUmrTvEhM6FP768wzzPWKNwyFx6d4rgNSlbjFUYo/CDYfjwjHWO68t75pd3FKXJRaPGETXPKB9w6RlTYb4+8fz+PePbGyEGnPegC8ty53Z75fOX39BFrCmdV7xtN5bbQogGYxVD9hhvsM4y+omcoziDpSZFUTO1bOR9o6yysHutGIzm2TuMVzg0tioGr0WGlTM17WBdkyAJmW9b76z3N9b7ncFaUknN/jKTY4C0o5NA2KRAzY4YNt7evjF5w0jBa7D4JseShKIWhARKivePTUrnipSmqU81U3VBmUolorTDest0uZDCB3L81kZcFTWM7PEu7lqx8OdPhX//FPjlt523JfHb1xX1y05w8NM+YesLg1fMA0xjxduE0uJRX1VpZieaVBX3e+Xb18znr4nfvlRKHDBG/KoVAwpht4vP3n/8+F0U217wfNNljeN4wLyvr6/AQ2c4tAWt77b7gtp33tu2PbrQtvPuv9uLzaFHLeUICzii1U4wcu9Gz7/fIeQzU/n8c54z9+PoaTHCmn0wpXPOrNvK2+2G1obQkmJ6V37eYEi39r3s6ayp/H7+KC5OpRaGacI719jI5phpK9WL4WP+Xat8+UPYW8j5wu3+xt6MHrTRUkRLIVd9IjpAyhGlNVorsSAsvUPPotWtzZQCMXa4XObjXA3TSNgCYQ3c3Nuhq+2WlOMg3SlVvFL3fTt24Tm1cIPcUk+KMGOrKpS+GWvaW+lIH+EKHQZSgNG6EXsGFEpMRDZxgRI0oIjN5TAehVuC5MU/W2nLHnZAit/16Yo9ZtEONc1Mo3TbRivSOFJrxmrdCunKFhLGOcw4cr0+MYwTwzCitRGItkqKzdb8hm3rIoSJ7FrnX3F+YN321rlEhiNovnWntYgBSZLM1cdsvpJUPSB6lLDgq2qxcbWSU8LbttHzYvqfimTaphSpdWgkMTnmfr/IzL0cCJYfTkEb7buWmsXkK4VfMdxUJlgjebm6Nq5nRpUo5hFA0dIJifd3oWa5dwsJjGiAvZGRRkaxZoi1NCmQatC03JdGQXYanGv5uBolHFyyklxd3fYg1WiM9xI/OI2M80zVhj3KsaSSCTGKbMU4/DgyzZMU/RRlXFIEFUglMq6e230nlUTKUch+44ClQo7UuKOMhaqoOaFqwikNVoN2WI1IgZTYNZpa8QoGoxmdYqBiSkGXgumbKwqmZMqeJAlJKQxgS8Hmgs25MaAyJSdqjJACOicsmcHA7C3XaeAyDVhvyPURGJ+rhIv06UYpqTUxci/K2MG1+0Iki6rByXFPJFLb1AmjWumK8YZhmknxD6yv30ghsqZdTFV0IauFJa785fNnfv2c+HJTGDfx7W1HfynYK/zpn15E5paScDMMKJWBKGsHYgdaEixr4dOnxOsN7nfLejfM00cUE2F3pGipWVPN/x+I/Dsqtt3aUGuJG+ud2tvb22Eg0PV/nWzzo/UhwP1+/07S0zvQM7Tci1gnFMGDeHQunP11zkXbOokC653quTif4ci+oDvnmOf56KzP7GQQu8W3tzf8MBxM17O06TyH7l3/4ZalBPr5m7CELlVphbtLbM7FtpuY13o/zrVS9SispRRi2lnX1iEohffNzat58Dr/6PxSikf0oB88pjZCDQJf1lqEydmIVmPz53XeM4wDm9u5fX09Qh32fed+v8tifb0eHaXAlumIlMspNaJC981ts3/1mGOnIPNTM5oHcUypVqSbPAyFd47BiwQq7EG0mK3ACGQ7M88zlcq6bawtDSal3MzjA96PjOPIh58+EmNiaNm1g3USM+e9yFBSJIaNnCKUwv2+gNbYwXP1A8MoRVYpkb90FGRdFtZ1awYkMAwj1nlxjyoFpaS7Q0lHGGPEj0MbfbTZbmlM/izBAY8NXCHULEHw7TuTc27yE5n9pxSFqd2kYChLTeWY9VZKs8zU37H5nX24W4UQgKtsJFXrfIwlpsxWEjcyX53jW1GECkoZ8dFFJnxdIla1mCUI16GHkidZfF3zszaGDUEgUUqC4YXO0kg58jqiCRVYWJlHhJ9uJLgKorNtZMHcTDi6d7jqcGkqh3Vo3MUfW2bfspm1Rv67NM2sakXeakVNkRwCJSdGb7FPF3RK6JKxJWGzBF3UsKNUYXAD3lq81tSGZCnrMNqia8EBg4LZKkzOaAq1JHSuuLYxVbWIP3Y7D9Y6JqWYtGLUMi83qh7SPFMrloJXldFoLoPlOg5cphHnnZjatJ9cv5cF5pwwRhjJFRkJ9U1+ShH0w3Qm5SzfYZr8SymZzzqNVxPUn0n7t7Z5i8R8BxUpNhFZ+bZ848s98rpYlH3hvu74JbMHwzxf+fp1IefY1u4CSmhttR9/rsRUebsVfv3ryroN7GFk20aerx8p2RFCJe6anDTFqCOd8T96/G6KrT51jOu6HsWsf2G7jGOe5wNaTCnx/v37oxN6fX095lkdcuuayb5Yd9OCUorMJ9tr55zx3h9d7LIsRzbs5XJhnmdhgAKlPjJhz+SpDk8Ow8A4jg/CUiu6vXvvN2B/3jzP7CHKF/g0Rzzn29pWLPvzO+u3Myr7e1hrKbElD6UGPRrp4KxxB3QaguhyX19vbNtKSnJuZeam8YNjnCzjaI+iqTWU1HIetUSHfcfAPs0/tTbfFbU+Zy7t/Mq5a5sgrWW3rmqD6b4nnj02QKKVy5m2C+4mG8LaVG1mcjYT6df2xxn7dwzz0znvG5J+/539d19eXsTsoRT8sJK/vQrkXwohiWRpnmfmy7WNJqbDxjOFyDyLf/XTZUZRWG83tnVhvd9YbndCTmANQeg2QiJr9/2yCLS/3O+oymFv+vT0xMvLC1PruPv92++PnDNiQiHXY/ADXhlUKZBl4TW6uUTlSA4bNUYxukeur1EPqev5mvx4H3s/fMel6Nc7Jymw9/td/JfXjdvtjrYPBIis0FbMLrRTxAKhKEIR2LZRQn/4UaCEtNJNFOxguHiJ06PKZ9pCgCr3zGQHHMI8NgV0qZAKKldcBbbIdnsTWddlENhdJovonInLTgor23Jne7vhd8/XPfP62zeKEt+j6XLh+vyCr4p0u7PEb6zfXvny66/Hecu1EMLGvq/s28qyvpJDYNBw8SOXy5UhJ0yMqBSZLyOZwhp2agg4o3Feo60lVNl0AKjaWdhFjkY44wAAIABJREFUoGRgVojFIoCCEHdK36RScTRykjFYA3UYUddnhgz7nsmTFOaaC3VbKfc3VNxxJWFKRJVATY5kFNFoTAqoqCkK9iAz6Zimk/Y7EsJ2oF19Lc+kA4GpFMZxkOCH+8rT85WCbKqsv+Dn/wnnPOvbH3j98pHPr/8HblxwQ+H9n678l/9F87b9wl9/e+W3z5/5+PNH/vDTzH/71ysf338gvSLNA7Qwkop2Fj853t7ubGvmdk/8+inw518SIQzU6onxiX1/phbZxG+7IiaNd+Ko9p89fhfFFvWQafTFou+GuuF872J759oL4s8//3x0jOciDRxC/zOJqXfHfRFd1/VYnPrrnmegPVC9v8ZZKtIlP2di1vm9zv/dC2Xv2nvBVOqsx9V4b9nTAz7upg799cZx5Pn5GYBaqrCAj26hRci1Q7TWinvPHnlLb2yLGPiXHs11v7FvO6XKgjs63/SYjnme8IMlhE3mKA0CkgzVTI6VlAQq69rjw5hEtbiyIiHY8gVLhG2XAPIQKFUKpLGyCUkhsNwWasqksJPCTtEaTSW2e0BrRc/SldxNg6IeWcDddSobLYt8MzgoJ5Sj5/b283keX/T5bUc+tm07OADTNPH8/HzkDBcq5duX1hVpSsr89NNPvLy8Y5zmds9Kwdm2DUptBL8NoxWqioQhp4K1UshrC4e3TYJV2zU0jc3tYsQNAzVnbsuddduOGMjr9co4iFFBL/B9UynIjGxArtPMPE5YpTFUJuMZJ7HozDnxbbnx//z539nf3gSyrCfkxja5C627y5LS1D9nl5p1clVHhPZtY1mWx3y5pUeN4ywuRlqxhshgnbj2oPh5EMOItShyFPZ2z+mpWtyilNagFRMGlR+GAurEZC0FSrEYwCiFzaKXbcA4OhVqqpii8MrwHCvudaFG2GNGhcD+22/s9xtl33j77RP312/cX7/x6de/ioHKOGGHEeU8T9dnxp/+wDw9UbB8WyPhdmfLr+y2d8n1OEZTEnPNTIje3Fojxh9Go7cVqhzpbAZC2vExs993/GXmYjzWT6yxcLm+R7sBjD2CHEyt2FJwJExNkDNZR369LYeGW2uFtxJ2oozFuZGZyvxkeNaedU8Hb5taydud/dtIWm8QFq6DZ3QWaxUx7kIrNuLOZWph2xe27cI07aQCxtjDxCTGwL63IPfax2dyb+37TioXtHVYPzD4mdu339hzxKjK6C2lXtEWxuvA19tXtrCTqLhZ8c//+l/Z9hmlXhms40///E/8638d+Zc/OryBGDfJni4ixy0oStXEZLgtcLtV3m7w9ub59HkjZ4c1E969p/LcYPKdba/EWEi+nkhgf//x+yi2p0eHeXuh6sSPDp2u63qQiJZlOfJHu2XfGbY4F8YH3PkIIT+Cu1tHeH7fM2zZyUMHPP0DCeVHuc+5wHYY+2xw0Qts77i2bUMbKyzCwZNDPPSeP3bP/Xg7EuCdO0wtHpCdOy3SoZlXVGpdjs1HPxe9G5dzIPCghA6cWdYNwNMKXZRY5dmm7dQP/+bzee+ZsFprrHcY7bFGzAlSiGJGbjTGJHLXRof4HYO03wtyTQu1qoNAJePH+re6WS3wIKduVelHwTi/dj+n3ZlMa32kNPWfMzO5/84Z2dDNkq7WwjzPXJ+eGMeJ+/1OKfnYtFlt2ELLzk2JkqKYl9SKNZrrPEn2sHdUa2WWWOuxEe2bToEyK3sIhEak6zwFkNCBTlbqG7Xz5y0tYN0ag1WKaRjbfFmi7KrVDJ9/w66LaCWNOWwzUfL6/XP31xOiWga6BSWAauMWcc9a1/WYz/aNhLEe4yxVK8ougfC1iv/vmBSXIgtUypVYaOQafdpoCcRonD18sxUcUqNKoTQPZaOEHU/JeC1mJapWqsooI53JaBzPfpTs1gI+RvK24WNG5UrJsMaC2gLlvlGXjRwScdmpxnJ5ekL7CZ8LYxGhwFAg5IpK+bC8pErsnrMNNbGueWi3uXrNqBjIe6DuO7WNaEwK2JAYUuZZe57diHcjtxLJ9w1lMtp6rJMZrq4FXTKmiL1iyZHSzChMWz+cNYy+6b6NQVuHqxXtKyaBr5KF3C05i1GsKRB1JZvCNDgGbzFGEZN4Jpuc0EkkYzEGITHmhDgeP2a4/d6o7bss93g+mqpcKuN0QWtLClkc8uKG0VCmCykUahkw7gPD8CfW+Crs/WXFjxf+8LOC/IzH8fHje/7wEa5jI3WViDGFaZYMW208KRuWtXC7Ve6LZl0NMRk5RgaUnrH+GeOuYvKiJbs6FpFO6foPIv35sTACx/y275A7nNY7lM4OnRqjs3e0PxphnAvttm3HIt6LbWf83m63owj3rrjLjZRSvLy8iGHAD6SoXlD7Qt7hy34cfRNwJnP1TjTnzH25c7k+YYyWmWHrsM/QZ4eJn56e6Ixa5xxGSYFY1/Xo7F0LJR/HkV//+ssBKcbw0JD20IF5niVb1TliEmZpn6FUkrhLZbFMk/CBPvtrVnzO4dtn6xGFffPTNcGDnY+wdinEMqcEofdnOKzaFA9rzn5OO5mjO8Eo9f0m57HBqpTygIf7nzHldtAPFOH71//bTrd3wOdC1e8lyX/taExbhEpmGEdJXRpG7sv9IVfbdvADW9Oyrosi7Ts1F6w1XOYJP4zM1ytu8ESleFsXSjvWPpo4Cq42pJS53yRFpxdcaCEG1smC29jU/V7qxZHagwRkVDE1uLvUzJbDwY8oSvY0znuc82Ag7qHps+Xe3pJoYEMUJmep7Uq1jVgImXXfDicyVOPcFI7FvUsri7B00KUwR+n+IrWlyEjguNYGox1KN8QKjbcjexZegKAbWpi2NVO1bdadoGompZ3RNQepKjpX6wyjdcx+4MmNmApOKXyu7HtkroqiHThF8SNJWwKaGU3NhfuysafMk5+YlGZWhrGK89ZUFUVbBiumIqkG+exKMVnHPA1M88Dz9YpRhX1fuS83bveF8PpG2jdIEV/EmU3FwFjg/TDyfpzxw4zLK//2y2+gDNYNME5oq0XDXDMlbtS4kXMklsR4uZDb92N0lnGYj2xptMObijYVZSvaapQStEppJaSqeSaqTFKJcdBiRmO0uEgVkWGpJPncMfWAkHJ0frpNBfp9Gw+vAJnV7vvG6+uraFqr6NAXtfDty1dy2nFO7BRLLBjlGP0Tl+d/Jd3eWPbA5y93Pn6Y+PBx5mkyvIyeabRcrguTe6WGFaMS06z58HHk3Yd3GDsRoiGFxNtNsa6ObR+I2RNLQOkLylzw0wt2vFJSQMdASOLBHUtBl3+AzrbrVo+/nxa/vqid50C94Cql+PLly3dwXwjhyHVdluXY9fuWZNJlNL0Y9MLz/Px8dIu9QPbC0TvADqOeF+zDFo5HV36GgHtx65uFTszqC2eP41rXVeKlxlFIQ6f3rFXkC/M88/T0RIxRiqX3DH44iiXA6+srt9udbZWNyJcvX46Fsc+7+0z5fD5KKa2oittUSjK32/eVnJNI3HRPMVKAxjiDbx2V0pWYdkpNxLSTYhA2qhaD+stleshvijjtWGMPSZLWlt0GFh4EOUETxNbPmUd4AFRC3CE0mVCbM/furj96MbH2EdOoENtF+uwsJXJKJN3yeE/s5P77IhdUB+MZBFEYhgGzrrIIqb7Je5iSSMIJNCstuWc4IQbqYb6QszDDi04ko3i93bnfboQ9HBuicRyZp4nr5YpW5pBsffv2jW1dCeFGCInL5cK27cQsTOFl21vGsT9teBIlFm4nUl4uiU9fvxw5upmKRYhxznvIEL3HGns4lS37RkyF+7YLw7k+OBimMa2749fT8wvGOHKupAohJSmE1uGHET9NjNZzMZb/7ac/EUslFsmQDkkC5EsV2C9VsZAsqVJTYFnu1NLJWYoYevGV0UtFGOrWG7xt5MIqnsajtcx25DpMXIcJlSvr7cbnv/7K69dvGCpWKQZjuVTDLYDdEjpktn2j5sRgLf/84R3/+vPPvH/3wmwMr8udi1FMl5lhmvHDIMzeksgpUktmGh3zNPL+5Uqtha8pEradt19/EUvOsEuR3DcGK3F87y9P/PHdO54vTxg7wFZYB0lpMs7LufQOoxHOdnLoMknhVZWgJQ6SKlaVpiqh+RexJySBj4ohKnJSiP9TBS2/Y1ULfvfi3VwVB2ktlQwpUVEYU0k1y/MVzeJTNqdCDusZ38IJ11YdI7FUhOMw2gkdNG9vb4RbYJgsH16e+cO//JESCqp4lLrw7uN77F806RfNr798ZvKa6+R4ujrMTzDajLUbmjuFjX/+4wvXy8xPP31kHp8Yp3fE6Hh7jYR9IqaBEC33tVD1C8peUH5ieLriL44cCjZZtuVNPmPNPDLQ/v7jd1FsFY/Z1MN+7vs/4WE00aHlPnPtBhHzPHO73Q4S0LZt38GA1+uV9+/fHzDusixiEG/toYfsx9CLbT+GWiu3203iw8rDeejcRfXiClIEnp6ejs58XdfGrn1ogvuMUWbFO+ou6T9Wfe9gJDt4ju5dKXV09iXlIx5uXVdhapd6hKh3TaZvspazJMk5d9oERKyzDeoW9qmxmmEQiUo3TJcNRSXFv6+TO3eK/bzt+44IElpnGFsIeEU6LV2opqAVDIM7YP3e6X7/kNcXfajMCYdxOJ7TGbT9+kiIgv1uI/VIDfreb/tsOdmDD6p5xDIecL6W67QsC1tDE+Z55nqduT5dpEu931jX0MIFMh7p3vpexVqHNYZx8Dxdr7w8v0i2rrMsKTIOA/u2yVw3P4IpdLt+HXl5fn5GKcXnlFiW5UiE6p+pIzXjOHK9XBgH6WINoEqGZud5dCCNpSyElUrKBZPErL9m6VS6JaVzTrS2SHfbrjogzGAJVUgyl3aO69MTpunLi9KkUjB+wLpBrBRZ8UNlvjjeO8+yrtyXhfuXb3x9fSPEJLpaaySowMj5mOaZ9cs3tm0hBPlexLDhnOXD+3e8/Jd/ke+mFQKV9aKLpELVBm8cozPMxjA2noB1ljxO4FemYWDynmkYuA2eeL+x39/YbgMpBjAef5n4+PEDP318z+V6xVqHulVxQDOWl3fPTNPENI5o4L688fb2FWqGEsm7MIx1zThVmze3ASw1FtYYqMox24Fhno6krxwDJWc+vn9PacQxZcQ0X9Uixb2PgLQQ0AoKlYW5rwukPUIq6KrxeFSx4uyWFaMeiLWQkUABUYrJt7miiVRiLRgBTMTAJEcpzx2xVDIblq/gI8rRWosqtX0v6nfEPq01P338iOdCWiu/ff7E/e1OSYbtYoEd1eRTcduZhgslP1PSO0gf0DVBLlQiVgUug0arlcpCKoHr5YK2A+gBxURVIyV7lL4y+ImUDZXCFpYWhmCIRdKeYt0pOoLNlBqoulB0Jat/gCCCg6laHsEBfXE5zznPc9xD1pHSd91aDxTvr3uQdk6SnLMEpxe+88yuk0vOndIRRK+aREB9D1f2DvnsANUdovpr9a73KLTdkUqBiklMKGr/Yjw6EHh0zff7HXiEMMS2GJ89dCVfVD7r+3cv+GGQuZDzB9u5P/qMtBRJkTmUurVAbTNJDMZqXDP1gEJO5bAGPF9HrfUhSaLWQ/tqjW0zW4VRqoHCbW5WClWpY56nmg6vAbeP1z/9rZ7es5/7PlN/SKH6pqa9m1LfFdtejM7333n2fSwW8N05oxXc3rHVUhkvo0QJDo97sS8ilT7Lfhx3l7NN08T1+iRozDRStGJbRP/dZ/H9foCOQOTv2OrzPHMfhuN41nU9DrX/Xu9Ojzm7EqmIM05mchpqld81nSl+6sLl/DQ9s5EN2XH/VvFO7iFjuZHBtn1n32XD4bxnHEVmt+0Bh2bZA9ru2GHE+ZEaE2PKogmvGZUCZVuJ9zf212+EnMSecRgkFs0YnNM4Cjrt5OXOcnvl69evxH1jnifeTZ6nQSwijTVopzC2ER4rVCP3vdNKHJJS+o7Na4HLMHC9XLhMI6okpnE4DGYqQoyxTgwXrBd/b2Vklq+MOC5Zb/CDY75MGK2oKrNtN+IeCSFxrxVjKjFs1JoxzmCQHNVsFdu6ULPCVEu1hpAzcdsoBSGXXUa0MhTVLC1rg5CLaJ2tku7ctLA+pXWLsauUmqBqDJrBeIoyRFWwJAmjqIL7KlVEroNIglKpqFKwzXJVSEMip5PvjfAbFI+lonsd93uzu0UpIWO0dUwQNmssKkFYA19+/cLr8o11g6pWhmsGHCl49mXiDx/+xL5Z4j6R9pm034k1gtow7ALjs5LTCipRTMY6I9GfeUIzU/SIMQPGzG1U1VOLVigQixTaUFZUzVQdyTVQyFRVmsb5P378Lopt5WESsW3bMTM6YEcQqQJyEcdpOmBA1xi+/TnzPH8H5R6OR03ScaT+nBbTAw5u/6a1biHq+thtdUMK0+aUvYD2xfrMau1FvENtvQvp79VnxAcL1lmerOzUxfbrsbAehbR1sx02P+DrUo+uzrUO/TLNjO19L/N0LJii23x0cn3G7dpzjdFtJiuMY4VpQegcPrK95HSSi3AbWsShdSIPSJlYKynEw1VoGh5xebHNQ8+d5WFFWYXt2m0HZRf96EKl76ho+yCh6VOn3s9/CPtRbFPKaP1wjqr1QV6T4v7Ilz17O58dxVAPC03TjqfvwlWD6Pt91o1Zemk1+gcpUzvusY0GusTMjp5YCiwL8+VCTOkI2+4bvz7rT10LW6tc56voVnvB7Rsf5/zx3egFu6MwzmgmL6EVYu2ZqUbz5faVJWySSKQypm1Ec03yO0ixlcIspJecM7ZB5X0s8vr6Jk5OKTUZlCfkTNgjk9Lctl0i6cad61Nl2XfGUQw61u3Gtt/Zw0JMG1UFnBOP6afnKy/v3zFOE8bZ5hRXqHVn39748vkXYtgo5RnqH3h5lu+BNQaqQMh951ZzpSTRgOd9Za87FEFjwraQwo61hmkamK8z+7airaWoSqYSW/h8VpWtiMGCKQPOitFBVqLhDCXiSYSasFVTtOS0bmlnX1duJeOsIqdASAE9igylZkltetvv7DlQkmYuhc/3GyEVUpKM3ov2oCXkrWqD0lJEcw6kuGCVaHxdcSgz4IxcO6sVKsgoxmvH0+WFnBTp/6PuXXol27Y7r998rrUiYj8y89xzfB+2XDIuoAEICdGiAUKiS6+6NJDqK1BtWvUVqB6dkqBTghYCIdHnC5RcAsp22b73nJO5HxGxHvNJY8y5IvLadQ0YS9dxlTqZeXfGjh2x1hxj/Mf/EWAlkmrFNs/hrAq5JHJVxFxZovg6a6sFuaF5eddCVi2GsUirKQ2tNGXl7t5vF3HzRtcoJS5S67qyXGfydeX1l+/8q//rT1niZ6pb+YtfZr5/8Rg3keLIdn3g3/7Df591zqzzwPVseX8pJL8wugtPPjFaTU1XtnzBOc0cr+RcQI1YN2L1E9UcqXFiVa7FAkaULlTOpFIgr2zpwpYkY7iwEdkQJ+xMqX8Him3JmdfXV0opzPO870+1EX/Y2qjZucK8bjwNYzO8uMihWSupFNYgNmhz22EppTgcDnJQ5MyvfvUrXl9fpQttxU6irjZ++f33XC6XvQD1iLS3tzfe3t72aRTYDz/RkupWnEeGoRdbTYyBt7c3LpcLnz592vNke+qONAgi1cil8Ivf/V20MczXq/yaZ6iVpe0QZddYWK5i6DH6gWkc+fj8gdPptL+2rr/0TeJklaT4lFow2nA6HkGLhrMzRIfB470jxsDleibGbe8uJVhb9nbjODQzjMQ1rgIYtptmcB41sSfPhLc33q/y+aAVWwiNGCM7nE7Q0VpR0VjrWrOTvup878lc1hh+PaBZirZAmaVWDBLRZqujVnHrSSVjED9cayzOiwFEv+nbM8k0r8yu4Sy1WU+2Bin0nbvWOO94fvpAyEU0qVXz5fMruSim6UBOIuU6HA7SoSMh4c5YvLVMg6QsOS+f/+e3d+qb+Cr/6uULD0/PhC2Rohw+wURC6ISppmUtYkgwjiPjNJFyZtk2Lu/vN8TGOKiKlArLuqG1wWpxR8I6UruOO9MUVzk9fQI/kcisa8A6sVSczYzdEm6cGA4HxtMBjAQCxJJBG7acmUPky2XGDBfCtlESTNMj4/NPUFuAEHn+5ifY+YqxlnE68uHTR3788oL3nqdn+X1KiVwrx4cTw/Eo8LUSJOjtcubL+xu1Vo7HIzGVNoFZCrClwrIlLmvk5W3m/bKiVcUKK6p93pBSYV2DJMlsgRgTqkiiS4qRsK6YYcR4jx0GQs1sORE6sqMNawisb6/82S9/iRsmPsTM6fFJDDq2hbpCrLCkzPdfXmS3jGKdL1wvYo0YlitGF7HcqIU5rfinR5RyZKvYflnI20YqhWleOC8by7yRcmEYRn74P/5YEBfnGE9HmaCbM1JKG0YVrNF463k4PvFweMQOA4dhBDvglGWwIx+fPrLMkTUkOF9Yrheqc2Ca13pbtyzryvWyEh2oqqijsKlzztQiAjCjSzPzl3QnKoKIVRmCzuczMWxAxUwjx8OBGAKXnPnx+8/80R/9C+pSuXye+fGHXzI+CGx8Wc68LSt2mChlJKwnfvazfxODJRbPn//yypcvf8Hjceb5FPm935l4fLRQPKEcOI4fCeuBkA9o+8DTw+8x2G9JcSTlzPz9O9cls4aKtaNccyWLZ3Js/uuqUmuSOMdmh6Hr12fTrz9+K4otgGAPYvO2bRvaGHIpuHEkhcS8ipuRsZ41tBxP6zieThyODzhnySVznWcqCucHVKn41tkbawmbGGaLobmkhRQglkKOYtXV8Y6YMjkLXKqQQ1pMLVoAsRY/V5TDOrGaUzFJ0HapHA4jpsjOMcSINq4ZYsAWIs8fnlFasy4bMUfeX9/wXjSctu1yjWqqxVLw1nE6HXl+ehYYtE2Tz0+PPD4+QW06zkYIU7US5pWsNdsqxgvWWr795ltcs8oL6yZ2cq2xGcxISDI5dW1szQ1uK4q4CTksxYTKlePDxLZKNJtv09PlcuHl7ZV53VhDZJwMfjpQrSE1YoWbJiiKkhOxFrS1ZCWFcQ0B2yL/+vS72ytqScyppQUzGJm3pbAIEzbnKszYUgTuyhWlDUo7tHagDKWkBqWptvuquwwBpfEtWLsq1dx1FCEmxumA80aMFCrCiNVGTO2txVqPwkCR2LwPzx/FValUtBJyi1bCpi6IEUFRNDZjbmxV0GZgC5VaLc6OUBXrlugexqPyDIMXEb6XpkI3KHOcprazbNIx67B+bI2rJlXNWoCiUEVRYkaFFohexUwgGY87WAaj0V4Ow1IrAxa3CGrxel3xp5VYxBjeDY4cC0UZqnWo4UBUjo1KIpOy5ctcQDkwnkvUFHMApdgSvL7N1GrIGd7eJQxDdV1tL+ZIBJ7zHj+eGK1Ats55rL9S9cqWDVUf2XLEJsuWHXM0jGbAGU2mkotI60KMYmuZC69vV768vMg1V5oTWc5CjPrxhSVX3q4z59cv/Pjljct14TKvaCVM55Thy4/vnI6vWDcxnR7R1pJqJYRErFeuW8RoSw/3C0tgvUbWJbHNEa0iEihYyCrhW0b09v5OXsWNKpB4v8wMfiDkSkyFJc6EnCT+sxZqFZ+sfYWGpRQ5M9e0YoolXgMX6zgdTjyfHvDjiPGOrWSucWEtG8UUxqNny1lQjVxRNeNQWIRYVWIlR0i6Qi446yErFIbRHRj9CacHVBH5kDMi49mWlXWeUZqmnhigFincGebrwr/4o3/OZCdGPfDxuxPGa6qeKPoJPYCyHpSHeqRSiTmylUhUis/fL4RPlvH0zPTpF/wwf8GoEWs/YtUn/PETg33G+o8chk9sqyaGTChXiu5wfCaXADVJ0EbR1FhQWRr7GDIoR0iVgmV6eP6NJe5vVGyVUv8SOAMZSLXW/0Ap9RH474DfB/4l8A9qrS+/8XnaL60ltDs2OExpjR1HUilsIbJsgXE8ELN4dlrvmY5HDscTRivWbWVOM1opsVXMhcEP4sYyDGwhkN/6oQI0dnHu+9v+97WK8XlMjSyTUSjRVlXQRqDbksE5zziNSGPfbBxDYDpMaG2BSggRrSM9n3TbRKCf2u9zSZzPZwYvgQFaqRubplEwnTUcxomPHz8wemFd55QaI9k1ZmbaGbUpiWmCt45tlSDxDvsNzpNN3t/32r6Xtrrt9G42gVJpKzW3HNpNfg4qeOsIbJSUUaPAlqlroWMQYlAFZQxFt6UOCuMHVIEtFHJs6Ua5tIi+uJO7+l793uVJeI+1mWiY/XsKcU00ijG1n03LJGStx1qHtq79vCJgN1phrEdXabKUCRIW3YpirnC9XtqEnMRO0Ri50VKUpq3KdlkpjTZW7OUwWOM4HU+ys0wRoxpMX29ZnnUnEglcbIyVIq4sMVV5HjtQqzjxSCaxaFqNzTgl4Qvdt9o6K1aZxpJMbteqGIco1WPpNLEqdAFdIEYxmC/N01bcmizayfM5JLGJnDFO7ADDtrEtK9M8C7ymxboxxSoaWOfRfiJUw4YlK40yI2uR16K15rKVNgkUlErMS8A7S7aWlM+EEBuxTZqbkBIgn/lUNXawODNIUpJSZBwxa7YIWXlSsaRiyQzE4vBqlKxTo0h1JYTKHAKXNcukvEZ+eBc+xB6bVgqT99iXN5YQeL+cmd9e+fLyxnVeWdYgzXmV9cuyRJY1EGKitj1nBkIuxBJZtox1A0YZOWPmyLZlwlYIMaNVwbRfyihqSpSwkeYFUhYdZ5XGT2tPqhBLZVm3PV1HN+9tOUt1I0RlQiOqlZjZ8kKsG9E6DJrH40n2rQrWHFjTRqyRogvKihfznpxVs+y0K5LfqhBv4KypJPwonwdVY82A1R6tXON/ODQy4YZtI2wr3jtUlYalJPHRpkBOmc/nVz48PDE+feDp01HMabQkCBk/ULUB5TB2AhSxRRxmbTivilM+UOw3DE9/j9fPFs2GVxWVnhhPv8swfcM0fYO1B0K8kuuVWMRMpxqoulJbtq1Jt27xAAAgAElEQVRYT2t01RgMuUBOCqUdKSsqBj8cfmO9/P9jsv1Paq0/3v35HwH/a631Hyul/lH783/1G59BgbHNhxZ2SDDnSkpNipILKYupN6oJ+I1iGA8cjkeRfjgn3r5JLoie0frh+ZnT6SQG5N6J605uO+KwyQ5NS7epGhJQSiFcRbu6rSvbvIhnbK2obHl++rizPA8HeZNrraJ1TV9Y5nUnY12vC8vSyStiyHF+v9D1w2Jht5BjxLeEmrCuhG0j3lnNeec4jJOwprVmW1ZyTCzXed+V5XgzETifLzwdT6QkjgB5yKzLjNY3wgtaXIJSTlDa7ryxUvtUQRVBP7WSUyGnjNGaHBOqgtUGcmmeurUR14QFGXNiXhdJddHCctZaY7xB5USJidC0zyVFKH85axZu3tP98es7c5lOi+zSskzxxlrG0TAejhhjAXm/m60QNKmEtfIcx4cH3t7eGkFKDuFcxcNVxyBwtLNt95RZt8C2xebJe5+m1Ml4XmB4LcYQRjcHoZqasF+TmylELomqEqUoQhTGrTVmjx0EiHEjxMw8zyzrjLNC/OmJRSCsd7rPb2taUGY3jMhoMpJmsmUpKPepWFYZ2dG3CSMVted4xpQJubBGyRN9a3C1cAblsLfjiBsPaDtw2RIxVYz1PH76CafnjwJDrhtv5wvrLN7XlMLgFNM04L0gRTEXKcx3HIhShdizhETISoLmrSXnwpfXd86XlWVNxFhFtGQGjJ9QZqJqie87HA9UfSavgTVVQtUCg2Mo2u+kNKp4Fse0EELk84tkwub5Ijab85UYZFuXkCZkGA4M4wHrRmoVfXfP31XKkkuzO0V2xduWCWsiblIIB2cwzjI4hTOQYyJtG8TurmWxbmAYDtKsp0IIiS1EHh5Pkge8G5oYnDU4q4nVQhDlQtw2TNIcpyPTOHI6nSRpKUZiqTg3kGheyKpwXc+7P0Dnm2zrRtwCJcnQ4cyAt0bUBG6gaEXJStCwWGQQUd0hsJDiLQwmFzlvAAY/ErcApeCthcOR42ni+CicnFw0pWhKNWBGMcnQor/GaFLIxJIo2uEOH/HHZ9zxZ4wPv89H/8z1+sLl8sbbm+Knh58w6G9BfwQcRWmKqhRmSs/jNQbrzM4LGYaBaTjg3UTSiRhL2/uahkf85sffBoz8nwP/cfv9fwv8b/w1xVYhxuUVhauKrUG4ndC0rqERP246Va1vLFTfJkKQQziGQI6Zqu80r84xeJG6LKuktYQY5RCNiS0HerJOZwFfLhfmeSaGgK4I1GEMfpz49ttvd9LJvYEGsJOhOut1biSRey1xj/cDydhdlpVgNLnpKQVm1GK/hsI6L4bz1klWrLG45r8cOomq6X1zFXlSzuK6opRqBgJKdsHqxq6VfN5KaqbgKQUpwv3n0d2NRzr+PVycW3jDOI0yRVbNNApZ58vrq4SFW8vgPKfD8VZEcxHSRZbDZL1eqYh2dTduuJts75nfwFckr/vQh91HupGl5Lpo6VAxNv1wam5DlVwUapVUIXHvGvDDILvlKOk5wyjsyBjF9Wpo33uNnQVedqZ4SoktBiGq1LpbKdYqh1Jt77vGgiptF9xY0zVTyChlOU5HIW04I5MmhXG0hLCxBce6zOLMEyPX5mk9jhPjKGS4eRYJWMkNzTBKCmVo5gJVbD5tY9Pmdm0qrXDWMR1GvBN4uuRIyUm8dFOi5kxOibBtvL4makmEGETC1a7l0+nI6eFIeH1nGB2Pjx/4+3/4h8SQeH8/c01XPn/+zNvLZ3KKaA1PpyO1PFDKgK8eZWxTc8vrEjOOdthvq+iaWzO7LBtv5zOX63mX/0DBGsVgDbUk4ioG+u7xCDmxXC+8v72CMqQqfsKjd0KAappR02DZEAKxZNYWCqC0kZWCNizbRk2ZgmbwI+NwkCZLaTFlwGAMOOsJsWKNQ6FJJbDkFq25BuK2kgxEr4hOYW3B6EpsK7Puay2hE5plCyL524Sk93u/+3uyekuRFDbiJqEGWkEpgW1diEEyn13TW1vn8eMgdqOIKsBQ2cLG5Xrl9e2Ny+W6S+loMYwxtXQcpaRZV7KW085ivYeqpdhWvZucYDTayTWcShEExxrcIEEkwzRijEOHJPth0x3bHFo5rJFgjlRq2zgqQZQkQaGhkorxcOIP/o2/z/Hf+bf49PHAp49HhumJUgqX6wt/9udvTMORn/1iwvojynhKgRALyxa5XBde3945n2fmZWVdAvOyCHpS4bqsKGfb2mmFxkY3zmGc/42F8W9abCvwPyulKvDf1Fr/CfBdrfUv2v//S+C7v+ofKqX+IfAPAQbvZOJRBqxG6bBPaqwrIaR92pCQabtrJzvLrcssuoFAZ0iu68p1nmXPU8Z9YjPGYJokpeSbhV+fqO7ZyUopnJf9sLaOoUl6ukTkXo/bDS46m7lLme41uX3i7Q8x+hdoVDUbPGHnSZeq2o+VShbLv1J30wDTXK66a1PNZYdVlZbgbdMYtykl5vkq2Z9GYHdTLSrrRnW/uVz1n6d9WH+Zud2gftmHm93C0Lme8yhetKbJZKxuwey5kEMQDea6kbaNHEW+JZOc3SVM95/FfQRi1xm36+j+mvpK1tUZ00XOzpuOu+m0Uc3Pd9fQ6l0fCOD90GwI6x47OLR0pu4Sdi/N6u+ZMQY/eJFi3Om8u15aHHQqNRfosYOmgVXKYMzUproOnWcqHm2QoAatCMESY2h2eF1O9rX/drebLI0PobVuK4b2mpumeg8UqIqsMqlNdtKkbOR8CwPpzUrOiXneoMlL4KY7l3tZQRH/66EZyixqxdkZDeTWwNQSZYepES1m/9wa3F5aBKAgLiJRQwW2sLVGEWkulo3r5cJ8vbKuQvzTSgnsnxOxJIySSMYYNrZlZr5esH6Q541RLB0Rn3C5cKQx0VpjG7PbUak5U2JgKxWdssQaaAuIDKp1s3Q9cr8+RKMtu8tqbhmotRGHQmfPx4rRmYfjhHyF3D99GFBVtaQr4YQ4Kw2atoYQN7ZaiUnWDrnmJgGq+/koxV601VuI0thZizEyPZfanJyC7LXv5W/aSP70IBc7zomkyVj5DHMp8jMpjTHiQha7LSPCpl+2jes8s6yrhNjXrrqonN+vvL298/L6iirgjWMaJqwZqVoLfJubw1xDcEyR1VEqws84PTzz09/5wIenkdPRU1UlFc9lrnx5Wfn2J8+kbJDQqUxJlS0k+RUTscVGdm6PnyYZAJwTom6pwrHTpv38I84Pkrb1Gx5/02L7H9Va/0wp9S3wvyil/vn9/1lrra0Q/6VHK8z/BODhdKh9H6OUHIgxSgB5Zm1Qct4L8L0zUz+Mgb2QaqWpWlOTyFuulwtKa8Z2g5c7c/X7yanWukstcnMZ0lqjrGWcJh4eHrDe48dpt/Tr8o8+jXVrvJ4g1CetLtTu3/deCtIZph0GMsagS/cplgNb9oQCyZaQGMZhn2RSFru8bguZkrDkanvu7uebcuJyvRBzFPP3bcGXgZ55rKism4QFdPKQ6COkWtXWpeYqzNwQhKmqaR7QjZntnWvxZc3LOPfUEGH0xS2QiYRlJW1BiGxGxP9dnlTlGtmn0RhvkhyU2u3/jP3aDKWDBx2uljjOrvW7I1spkSr0ZujejIP2tT1hqXex2xaYphbDVeT97FFrldv37Rpab5FDt12bvQAYrVC67l7QWsMwDbSjnlot2ppGEJKsWGstRiuc1ThrCMGxrgvdf1l2nHJd36dF9Txe1C2Np5tedLixN1L96wW5lIkqpm2XmfVgjtufV9gh8f2+liKZRZOr+n2GhNArhUyoWZpniuSU9s9D1kepURXKHnIhjUXeORbU27ppWVZCTFyvV67nM1sKeOdvu/+2FtE1t+fZCOtCWBaRe8X2Wqu8DtvOlZozWim8swzOcRwGnBKrzbDMpBDRqWBNbdZLMs32qEytZD9ZsphC9ElPK7nbugFIm9+l6GfJcYXIYRz288zoKjtDJcW5loYIar0XcCnKlmIducTdArU3AEoZ8QlXQu5cto1xWZmmE0r33b5u8Xi1rTjKfj/0IWAYRpGUTaPA1V5jbIWyNf6CwhjL4Fv2c61sIUqxjcJkPl8uXOcrIYZ2/yqWJXB+lySyz1++MFrPYD2jPzC4I9qJ33LOte1T5ZyqpUixbQW3KsMwHfHDAeMsqWzEOrCsivf3zKdPAzFpQmokqFSJuZILVGXEX3qoDMpgbOJDqwlaG4aDOIHVWrFFFBqH4wPDeMDYv8XJttb6Z+2/3yul/hnwHwK/Ukr9tNb6F0qpnwLf//XPI7+kCPXc1dSIOD25oyIXc24uUkNzN6otKADx3AWcH3DOy06wFLE9S4lhneTC6UktdwdP19TmNiX0v+ta2MeHB56en2XH59zuQNV3PL2Ydpenp6cniV9rett7/WaHFftzxxh5en7cWdMAW2zpQ01PGVJk2VYx405CN0drci1c5ithE4iopx+FZlR/9AMFgW5LLHx5+YyxQjrZYmQ8TKDloLOmB6CDtZoR2Q1L4dQoa76CazvZaye0WbNPxt17dltXPv/4Pa8/foNqu864NS3jslBj4jCOHKcWrJ0zsbEsQwu2X7ZIrmrf3QGcz+I9rK2YkKRcsfYGO3stN40GcYHJcrP0Rq2jDjlFSZRp15ExjmHQzZRk2D+f8/nC5XJlHAdhT46D6K2tbeQqiRTrMLvoYeVw7N9LJsoqph41NdvRhLWGJ/V4I6dpIO33GJUshBdr0UZ4AjEOuzPY+XxmWV72ZmGeZ67Xq1iAKtnzaWMFLruDJbukShoV2eH3CQya5rjcspJ7kc2tUIqhh7x+yYWWxnOZF97e3rheL5QK7v2NP/2TP0Vrzfv7O++Xd/HcTgFKRlXN5XIhhoARpwWcGzBO0mj6GkDOhFu2cy61RQFCyoXL9crb2xsA/ukJq8RasEQx4U9E4nKlhEBNEXKCHCkxiNY2Jyx19/HWStKBHk9HHk8nfvLhA6rA28sXXl9e5Pp0omioSpELws3YElSFMY4YMsuyAhGUQ9UgWvYsBEbpHQ3WD0I4KrIrLzmxruIqldJtLy7NW1uh+QFTKtoY/uRP/hXD4BkGxzjINMgwUJupRTSrJIQpCXi/zgvrFilV4acDGYVLMgHP60pB4YYRvYXd66AIuYbD0X+VhmWdQqtMShe2bUVri3cTz08/4fnpG4ZhEvVGFoVASJGX91c+f/5xb2aXZeH8fmVdAzEkUqp8+813zFvk7X3meHhishOgqerWAKCEMinn48b5/Mavvv8LfvWrP+fjhyc+fXzmFz//FqMeKOqRUI4kTsTiCFk3INTgpxMPWKoeOD19EnVDuTXfgh5VnPUtx1vuB+eMRFxOE8Pwt1RslVJHQNdaz+33/xnwXwP/I/BfAP+4/fd/+GufrNbmOXuDWiSFAmih2HAzMegGEs45uQEb7JVzpqSMbROhsS2btE17unkhS2KIwGilQaK1VtZmXFGrdJFKK6xxOGv376kaWaUbS/SC3G0UO2zYA+6995xOp91EYk/mcW63iFyWhQ8fPoqbidKEdeW6zKTaXnc3bmjxZMUVjJWbZr2KllFrzXQ6ipatSpFWoWXDqq4ZjWxxQ2WBS0OMKKd3R52iO2wuH0tHD0yHvvvUqIUtPR0O5CI6xWWZMU26VIok4HRDg3VeeH97ZxqGvRPflpkShBxjUKRtpRjRSO6Qm7nt4fv+uzcr96hEn8g6utCtO5+enrDW8+mbr92j7l2R5N+VHe3YiWY5470YJpRSdjvMlBLjNHF8eGL64QuHxpo/Ho9M08Q4TbJbs7ZpieV7/uLnP28hGAUNbGHh5eVF0AGreX5+RmtDLbCusWlbm00nGWOaTtfL+yBJKjdOwuvrK+u6EkLgfL60hiviXSOQZYHahB2d6O5r/b3sxbZPvCikGNKn1Vt4h2ks1xg3Ybq3nAdjjJDl7vbVYymkGPjlL/8co7TYll4u5ByxVrjbthnUx7gRquyyH58dtENeNXa+kFFvOciqiPexNLmVmgNhsVCVEHYohPXK+6uiloy3mhdbmZcrKaxoMq7Bg0HJFG6OR7wfbsS7XJkaKXEcJzlf3IDzI+PhgcloShVocQ5bQ2IypUGdKUbWeSOmAtpKUk2uaCQGsqTQ4PzmK4CVzwF4e39HKm8VYh4Gk4VGIZz3tiZJldeXF4ZhZDqMpMm390hKpNYVskzaRleUMuJ9nhLXeeX7z5+hfiEnUX2U3BClnERbXrOYU5TCmqwQSq3DTyPPHz8wjh5jKiGeeX17QWMZ/IGH5w9YN8iuc5XgjVQDX95e+f6HH/j88gXd11cxMW8bsWmrlZY9aEWJ7MvIPriiZEeuW23QWqIpVQUNMWe+/+Ezf/wnf8zhMPLp4we29O/ycDzyes6swRGi5+VtZYvvjfxkKVkm46IMbhR2s6Bj3aJWzgnnBmwj85YiTVBRmuu68d7O/H/d428y2X4H/LN2cFngn9Za/yel1P8O/PdKqf8S+GPgH/w/fcJ+U3cYAgTCDTWhk8B1zokphG8H2rK06KgG06laMNrtBId7S759v1dFRyfwaDusYySGuE/HusfUtb2o7szXJie5N7nor/ueMbsn3jSXoG4g0V/PvWFDiEHuoHbDCfFDIKamLpSLz1qcH4Qp2XaAqTmyGCU7pUpFG9lp99etFOLM1A8rrSUsuTR5h3Pt55OiDPe7TL3/F2h/NmAM1jvSKnZ8BTE1rxWssRzGA6nduLUUwrrJtOkcBkWOSSRD8ikT1g18hbb3uJf8dOi3v8d9MgP24nn/nva95TQd2sEpzML+GVJvEi+BgAX6zEkkNDFGckptb+7YQuByvXCdZ7YQGVLicLcSMC0l6uHhgePhgWk8cDwcdgamtZbD8Ug3ohDINO9M294IyM+oGNFYP4gas1Ziia3YWgbv2nXt933s0oI5gJ1EKO+Vaq484h5WUXjXdtdKtxCIts5oEi3Z76sb5G0sPeCbWvC+B1dYlmUmbALFVkoj8fimkZbXphrx5nq94I0lhUCthWHwOKta/KkU706AylU+BymkN3KcRX6mWjXGNH5Fm+ygUktiWwZyFvQgx8j1/Z24rSgq3mrIK3FbuZzfCeuCQeMGL/Z7qWVXF1l7xCI6e4PcPxZpJOZllSSplqurlUGj8AhxUXWoV94YgZJLlek6Nk9i9M68F6jYoJVAo1RDLZoc5T3XyL+PKZGLwjSdv1Ly/qUiJjEgK5OwxX2PrqgC8+7cFt2c6sz+nO/nKykmYohsIe22raXlZe8abNG7yL1mLWMIpFxEcqcEZQgxt5D6yLxtbJsgkykLLL/FhR9+/Mznl1de3t5wTa60U22UojZFwRYCVjuGLKub29eIR7PSWcIRlG5s4Pa/WrnMC9dlYYuZ33u5ECNc5kwqjpA0r+eFeWtkWyVEQdFWV1lfNOmjVs0Ap0jQvfP1LxVbpWiE3vAb69v/52Jba/0/gX/vr/j7z8B/+v/qyfbdZUWp0oqqBBIra6lFjCFA7axLgb96oUyt86gY3adLsx9gfcrd95+N+FCr6Kdoz5HaRHN/yHfDh3sPZNTN1H6HI1vX35mw7+/vDVoYdjvJTvDpbOUO+1XE6KJqjVcaGvW8Kk1pS3p0y5p0/o4YVql1oWv6VEMBuu7zZvwg5Jfdv9mKXZ3SSmQjw7CHEPTmQykxEJDXIHrQWuoO6edSJR6N2CRZAu0LCapyPJyYrwtZSzzetgVG67BI8HsOkZpkJ2ZQXJcFi8JquSTv99u92N6zk3uzcV9s76FRKbYjzg10c/ZOYNj3p5oGfzapVwhM07hbhwJY5wkxcr5e+NUPPzCvK3YYOOZb2pNp0O7j4yOPD88cDmK/6I3fr78QgkwuWg5LHUwjIXUSEO25NN4PODugEGMFYpPlGNOyT/0+4ZeS+ebTN60LNyzLur8fsnd2soe0RiAwcyP9SUP1dbylTInCkNbKMQx+/z5asQdr5JIZrp6525DWKi5j08g4DMRcKC1FitIiAP2w36OHaUQpuYet1mhDy1wulNo8xnbz+taLKn1z6anSGNZadrJkLYXtIIYemkJcF16//IhSGmcU1mour5qcIyFKk1hj5sE8UWKQ4uskTzqXytaarvXquTjP+f0ihMooJLHS96nN+rAgpDppUNrr7hK1XIktiF2386OqBtkrjVIWqxVVSP0oIpR1DxWpcFtD6IobhsZvUaiCrDWsFP4UMyFs1PaZUQZo93wpYJR87tRCzIXteiVssTVqQhArjS9Rc0Fb2T3XNqlXefux3nGYjqSSMAa2MHO5LmhlcKFQ8JSWppkbdH5Zznz//Q+8vEqxnQbx7baDR1uDbs1JyoHrsqAxDG5oqTqZWiHVKNNvtSiatA3IJVFqxnghMi3LSirvvJ0XUlIsayarga0VW60FaVK9ineuZZWVpQxnqiU1SbaoHzaMUbunvLFSbTth9Dc9fiscpORnlG4wJgmBttZjjMMOTgTjmxwij4+PPD4+7sk/y7KQY5IbVZXmeyqFZzyKXy1auie4hbj3A0fYlbeAgH6A9/zQG6wtcIVxUvDuc2n7/vb5+ZnD4YAxhnmev5q2+nP2Ytuj/7rr1ftV0ooeHh9F+tNO4NL2VfuuCkkE6SQOYwxrWUnLwrZte/JLzgmjFYMxKNUjshSuFVZlQCfH8XRknCZsC6EvtZKbaUU3ve8QXk11h1MvlwsfP31LCAJPToeR4+GhTYUVP3Zf4oQC3t/eIRXCMDB5SczRiMGFN5aa2/e90/P1z6MjAvdBAT0e8ddZ3t0nuhebXGUFYbhJh3pxcU48je+f/z7EAmiFctujDS+XC1sIt2bAyHTY/12PlAN5v/prO51O4qMMKKv3z7bcQaFyrWgOg0drRUqZmAPbfJXXOAx01OHG2K18/PhR2PbDwLquvLzcPGQ6Oa/WNhFxa1T6/XDPPnfOALfmZRiG1rnnnWuglEKXblM67IiDdwPHw4Fx8mznC9frmWEYocL1OpMm4UzspV2UI6Q2rexELdiNZtooQ4zbPilKNrxAw1AZBiEsqpwwVSbjuK5cc+RH5HUP3mONIsdVinkVxEjuycz1OvPy8oo2lpiKNI/j2NQNtObVcTic9uZ5dF3zLyiUHyeG6YD1o/y9Sng/Mh0qxiVKmbHKoZUU49pJYjVjdcE50CqjSJQ0UbYJSgKKsK0XsWesJTNNTlJrlMaktDf6WmtoZB6lClYjDVMRCVtOCW170ywQrqwAHMfjyDBMAi9fr7vsZ3TutmpaJeM352uTrsEwWobBcjwKL6AqUKkwXxdiLAJ467Z+WzZSllB4c3kXQlNMVK3wbsRYi1eGnIShH3PgOl+Y11lqAcJnyariqpf0p3bGX5c3LvM7RRfhf6QkQ4qfMMOR4Zg5hEqohqfpAWdNI+mVv0Ra3R/Nra7W2/qKtn7qO9vudjfE+Bvr3G9FsYWbSUFqQd+6TTDrunI+X4hBotL2Lrb2+DSzw1zaqHZgSkINIDowbmbu0zTtu67lOrMsS4uoWySOroUGdLLTnigzDl8Rg26ThSzKHx8f94m1F4SuQ+0FYZczIYdcD7LvjMEtRsr5nS0GztcL12X+imC1LAtzixTMbdoAdlZ0TjKVj9Mo0GFj1OaciGHjer3y05/9jMNJ/JE/v3yhVkWMqbH5Wm5oc8pyymCta82CIQdh+9lUGKfKukWs9zwPYtLurWuSFYt1noenZ5TShHXjdHrAGjEgeD9f8MPI6DyD88QoqIBuN05N0rkaY5kOB9wwCimngjKWsK4y5VhH04wItN1i27YQ5eeocBgGlJavq1VR662wyO5KuAL9s+6wnkyKqu3WH/jw/IkPzx/5/PkLKSTe3t5FP6hAW8N0mHi/nPn8+ZUUBeZeF7GxPB2P/PS732nNgOimXUsHkt2r+DfXtt5IOuIHD82ekVraRCu+ygZpAOuOsLS1gbnFJ67rKpOQhsfHJ7wfscajtUU3N69Sa/PA7rIlQZRuh06D1zs3YZCpOqXEuixSeFGi0S6VT58+yT27rCyXK7/4+c95fvrIMExsW+DQ2PNVSaGjE11gL7Ydd5XpsKsDavvcpPDqKtCh/El0l8YqwhZ4OIx8+fKlHYSOh4cHibXTCmoh5YkYNtHdDyPPT09iAakNKgvp8PjwyDCO+GFsk5PadZ3rGoSANs8YY/n0k5+0hlBJQIpSLcFKSJ7AfiY4Z5suVLJ4O9NYQt4rpkm3nFeo7FHJs61XLuc3YkyMw9hMLSaM8QKdVoVxgihN05HpMO1NiDUKa2Xrr6roY+dlEUOfgqwSGnHOGiHSHQ5Hcso8P3/c1Qz3hhYgHuumqSfGYcA6sFZkQc4PCCPfMw4HhlHMXIyRhKjpMOJHT0gr1/XcUBctvvLaAYqcqrDnbfPsJvKrH/+cH19+JY1YLcxhw3nfVmKav/cHf4BSFeslCarUhPOWw/FwMz+p4gx4fHjA2qGtKgRYVVo3+Jt2z7V7wtYbErmzzNXOsi4lk7Jcs9r85nL6W1Jsb/KbX/+zOAM12M+IHOKe4KLbnlAgaPY3hLajoJEr7qGy/m9zatBxksPCWdGIGis+y/d6TdVIRrmx0nrBvnU4N4iyX5hLyzqVG2Hav74X6U5+klNDi5RkEyh3Czf9ZK2yW9mCCNlT2//1gt6nE200Dw8PUjRKEcNs0w5XKi4EpuOBcZrabrZpAVXPIBV5gLEGowzj6PGN7eu9I6eesrQSY5KkGmtxRlAEyauVn2ucZy6XC1R4S68iWG9kLaM1D9ORcRjw1qJyxR4mirMko9Ex7J+dbbBwKbcA+A4pG2MYWgZxj9gTjaugEp0tbKyjFrXbZf76mkDeY+4K7Y2I03fAh8OBh4dHmdBSIueeQtWuJwRlmS8L6yKT77JsjKNou58fnxrqofcAhF4cS8379aWK6CJlLad2sp+1pgXa3/b+dKKQUnsM373Bh6xjHE/PTxwPD4yDWIjuMifwL1EAACAASURBVLfW/NV6R07c98hy69ziCgvOy+uVnOj8NdmMegfJy8/zzSdpUMbxQEqZ0Xv6E8s/u7sn1b30Sg44uY/qXRFubsm1tp2ahPqFLaI0xBA4jB7dYty885weTkytWUspsoWN2OQr3V0uhERNhXLMaGv48PEj0+EgxVbbvdjmAm/vZ5HapSSrFCOTbS21BXxI4yxI2u3nrLWtjzJ7BJ1pe8FKlSm31vbeNPci7clp2yd8a52oMMYJmmUgbULXzWjjdHqAmuXasQKdl5zQSs4Q5weuy4xxYn85eE/OFWs9znlOxwdKqYIq2uahvp9F8rxCKpJm1GiNNgWlK1olYvSAxmgnBVa5Vpxdi/00rNuyc256sbXdUrQqtLmR9nLNhFR4v7zK3rvtjy/rgm3+DCjN7/z8pzL1N12xrBdE726dSOkqgjwJGc3tyg/dr8nW6O33A4jkqkvBWm0xd/Xn3qzo3uHur3r8lhTbX3u0i1BuJt12E3X/YeTvempML7aSUEO9ufqgvoYFeoG81wx2otMw9J2HZKx2GHdnYpZCiEE+3HrLTO2QJvSdyg1yu16vXK/X3Vzg/nv2SbfkFu6MlWmjkX/udZ/doMAYs0/itQp54e3tjW2TQ/356Zmf/+Ln5JyZr1devvyIURo7yC5tOhx4en5GW8MWxNdVG4vzAt+UeUZp0buOjUU9+IFhEMKRqsKy3kKgVsXxeJLPQ9F2yar1NoX5em1OTXC5zuQKg3VM48jT6cinpw/4VkBUUShnuMbA27Jw2dZ26EgBmaaDEGqaXCqE0KDyLNrnO7Z4L7qn04nD4YAyFmvFOzqlG1TcDSCcc02uJJ9jLxgCZ94K0DiOPD8/sywLy7o2tq58TW96RPYVdoh7l6iIen6f1OQ6uZldaCPXXo7Nf5Yqe11lMMqTc4NUK41Y1iCt5rQjn0GP1HP7L601j4+PfPc73/GTT9/y+PC8sys7uWrbAjnH/XqX6/LGUu6NY0X8uXPJvL+/U0rZpWs66x3BKeWWdvTNN5/47iffcTo97PdZvx93bfJedL9uiG+chLuCXOE2YzZWchXmM22ls5yOnBoK5b3nME1Q2VGhkjPOWKZxkjD3YUQTqJPobIdh4sMHWQcNw0Q1dm9GqxLYWWkJfQgpY50TSLaK/7CRVTy6NWn9nkCJwUeujY2sxWcbJZBuzGJtqqKQpDQJdBVnJmvl/urwf5ucBc6XK2kcBk6nBx4fn2TCa4xx2S8mtO4Woxv+/N6Kmm0cBYGdnfM8nB6RVYMU2+4NX/bhoxuX7FQbUJlaEykt5CzQskI8E9oXoJDdthRruyMWDZVFZDZyhufU1kiqecmXQqYNNqWQsxRb5z2qkb2u1zO5aMK2kXJEGjYh7A2D2+WOuRkDPVuHbfe6Ru0FttaKbrGiwpNQ7XVJse1TrVy2beptl/HfiWJbqxxSJndDBklJMbXni7ZJQn0t4bgxU7/exd1b+CnVvGeTOON0pmluJAdq3W0C+462P49SEjStmxWkGAQ0i7WWydq/Tmu9T5n9gLoPiu9Si2VZdllQCAHnHLkWnj98QiuLqgWnHZOf0FWjqm7LeUVJlZohbvK6Y0jEmIX0YISs8Pz4gXmZWeeVbY18+u5bHh8ehCw0eH76s5+xbCuvb2/48QvjJBPbdDw07aK8f13upFG79IdS8QMo7aloxum0H9p9UjbatG43kaompMoSMymdcd7z8XDkd3/v9/nuJ9+iGkSqq2E6Hfnx/ZX64/d8vp6pSP6JMpZDK5zjMDCMY8uQFaepDt9Pk8gz5IDT+2S7bRvGOIH2jMap8VaMjFgSylGvpNHwspPMWa6XXCSV6HA68t1Pf4eQxBN4XmZKakb0rdA456gHsdbsOkjvZJdqWnet9B0q0+zqjJFmb8mpGUGU3abQKMvpMArJJHfddUN7oElMxDjBGNlBD9PAvM5UJdPmxw8feXp65ng4oTH7tCUQYWdatgZT9ahBIWTdnx/GGK7XK7VUzu/vbSoWpnPXG/dG43Sc+PD8yPPzI8fjSVCkNgV8hTGpPt8Wsf3rf11kem1fIvdag9lrFbmYwM+K42GixIRTGqc0x8ExjRND22PP5wuqFtZ15vz2TqGyXGeGy8C23DzMp2Hg4XTkNIwcRpGPFW1A2Z2B7+wg6wyleT1fWiNk9lSvXDPCrCjk3Oxml5ltntETlKRksi2Vatqk3jR1LWdApCw0xEUJz2KsQgTSxjWypG2uHnJdDNOR48MTj08fsE48kU0r9CULm10c+CTZyjZVx/F4ZFk2tNI4N/Dhw0dE7y1kK/EwkFWcVJXSrh+1F6RKIqeNy+UVow0hJoH2tcDw1sr3OhwmoPD6/sq6LIQt7r7kXXJotEY7Ta1CctRNwmStpJelkkWBoZW4tBmLtpbHxydiKuIgtQY+fgx4N/Hpm2/56c++o2S4XN758uKxToiEMTR/dKVbsc1UMs7KBG6trKhiTG21VrENJeyZyPv1uvML/vWP35Jii7CJkXzJDhWo2ncGN4eb+4lPnFVMo71Ld2K07BmdF7/blColSmcem3tRt5wDvmIQ7915vYPq2htYkGSadVtZ5nXfx952zTIx38PhHevvMEQvwn3y3aFypCvXzfXpnvQDAo3nu10x9RY9N3YY1VpyzpzPZ9Z13Uk6xhj8ODAdDxyOJ/w4ssbYoPBKjJmYM0MBP0z0hCOQyKmSGuNWC1S2LAsxZYz1WD/JBdcYyqoUjFy/hJxZY7c/E3jO+oHpeOLh+ZnxcCCnDuFDUZ11rb9qmjqEO47jrrXt73Nvqn59qoU+oUn2rlJxnwT6NNZh+HK3LujvJe0zKFXYwALJWU6nE9M0cZ2vYnW3rqSc8E2jKwx5RzLy+jRf+zZ3ZqrREv13I881CZgxDWOUg3q/eWu7ubUCJOPZNw1iadA47Xo4HA4cj0eu1+s+Wcs9I3v4Pq3fv39yb5UWmF12wlSH+ZS6NZSmjW45CbwYQhDpmXXy9+Wu6PsBrcSacds2bGfRI68D2vndDu96Rwjtkp+uNRa1QettlBbWKnV/LSluxBAJm7BwI1BTJK4zby8vfHl948vrG6+vrw2ZkWtaYisF4j8djnLYIxMzDdYvfRq/IztKsy9NmbaiCbXOoXTGdbicivPiNa0UYsKTNTlVti3QJ6ku09K6eZibJjmJCpRAsM5rSmn3B+xwfFXi6uacFx7EdMB7h2ynGvISJOhFVyMsYufv1i4WEMTOGMswjNI8tGle/qz315pSuDufGnu9VonOdI0b0SwVjaaZD02M44HDYaKUyNj4A86JzaNr8kP5vp2gJ2iS9FsyaeZSIFu0EV/zwQ+t2DrG8UidNxQRVTUa02qBxVlHrBGxrWzGK+uKNbVJtzqaI9ajzmm8szhrSM5Qm8aWWlu++t3ZXeS+EvOar1eVv/74rSi20GAE1TpX1Qfz25QJtImj73H2v93xjHuNrrOSHpJLAtVM9htU2E0szF2x7CwzcW0SQfeu082yRU9JXF26Q1O/6eAGIfdD7F6H++uQ2P2fO1wZY0SX5vdZb7u4HvW28zLb82st3sjHw4GUM946tNJ3qSVycxvTmgnvGcapZV7K+12LGNTHKIxi61TL1ZbDtxbRw+4svFJYN3HyQRfGY9pZ3qVWaqqYWjBaNVisEIvYDSrr8OPEeDwyno5o50gNKqpUtiTxWL3R2Rmu/pZq09/Pe8izfwb3n+P9e5ubV7RuE1h/9H1LT63pZChZE4jnbEcnekH0fthJQaJJFPmI/Ep7l9tJdLkUSM19pnbZkuy6ar3B5HvRdRbq3eS6N5dgjKfb89Ve9FBtjyV7J2vdbughcPtGd+gpzTJTCCCNaKRvuvCKRtcsBzpt76g7XHh7rfd8iX3nC3huxhcK5DNrtp21ilOX88Otmtad6Ht3f7f7uf08wjWQXVrO7JOsUeJO1glktSRSDMSwEdZVpuh1k6muJF5+/MyXt3dezxculwvXZd2NcC6XiRQjH56e8ca2KLXmYNrOJJToyHU1+/RljN4NGYBG/plQKuMbY1ukdSPGyH+t8dQiTSxcd2vXdsPvvuj9PRZnKppGvE29+2ZR7b8vlbbPbQV38E3S1VCnnBo6JweJyJM6Q1jt+2bZ+XtZ4SGcF+9vNp+dq1DadWSqQutKLmm/XkWvKz7WRku4gPdDk0GOpCTXqTQrZm+q7u/L+0ctIgUTTbAgb60PkmtVSS5zLQaqgSLFvn0sgswpJYx3hMldSs8pb2oHjVhTZnmvaiOx1WrIRWRjgqwUKn0Kbnr9IkS3borzmx6/HcX27oZGiXfsfkH3A6EVmdQ8MI2RQwlo+s+bSX2fVPsE083Xt20Tndgd8ck3Q/CaM7FJXVLObFFILjElbLC7kf8yr6yLMD3HcdwP9U6G6gXivtDCzXyhS4C6MYNMCiLg7pNcj/srWrozZWU6HoeBaRg4HY77Pm0aJ7q1nNEilHfG4k4PPJweGJxkq2olN1eKhZQKtcgNGqPs7YxdSamSESa4M1bYgdrs5vCqVJwrxFh4e78ynR4FIjUGsOLHinjapgpFGdAOZT2H4yMPHz5y+vABPx0IFWItxCY9uM7Cvt6a4X9/L7tZRP8sOxmtHwCdHHU/rd7e95sLVYdMU4o7inG/P+wFrzaKca1q3+3366oXuJQL67KJi1gt6NVyvl4ZpjNxS2xLaMiCXLvTOPGzn/1M/Hq17MqUFdMQZIhEN8tDqxQGOSRjCLtN4eHwIHI42w1ImrWpdYScyLkbj1TZV0+HPf0m5Si2i0VsBL+aUttDGPt5b2Q6S7O/d52d3BsTbWS10PWmtd4KsNa6rS4mYTcrJdCc0ftUm/d7v+7faN9HKtUIYq0RyF33rdq12Qp+hpIyqUoMYtxW1utF7FmbXemyzHz58TPv1ytLiGTtmdeWipMSl/czeQukLWBQfPfpGwZrGaxB1yoWhRQhTufU6mLdzyh0J9TB6eGIVlVsPts58M03H/f3u1aBkZc58L3+gZcvr4LkidGxvNeU5kmcUK2y1Fr72d7WHtKAFyBX0bBa53DDgBs7gUrIQt35yFqDQixZD4fOtWiFqVY6qcm7TnKrrcm7OZaVUpjnuVmRyk4UJc5fpQSUilwuV+Z5o2RQdeDxQXbBwyCNaimxkfnk2pMi3ZqmqnaULMbUQj+SXLfAukoOOMoSQ8G5JNOr9nz5fBGGfjbkAGnLFFtEpywbfoxScn+p1pwMI26Y5HqOGylqYpCrUxptuTOmQZCJWisWhTHSNKuqKHfWkX8ndrZwu1FraTgkNJTo64lwHMf9cO0TgN51jmJM75ouTCL6VuZlYekXScmNvSdw0c1ntaCMFNQQI/O27s/dzdCF7CK0/XudrlKKy+WyT2NDK0D3cCh8bdTw62Qt4zx4T7mzJZQdgcY0OdLtgi27/27OueXbGoq+pQ51uMu5kVIkwH6eZ9ZNAq5zBTeITi8mmVi32BKOjEU5TdFJXKCK6BJrFp1tyBllHUo7tPHNqUqhktmBBudHDqcHhsNEUYqiDdVYijaEivjVyhcyDIayKfS67oL/+4JwP4F1stL7+/tXXfD9JNiLaP831lhCTFwuV9Z13qe/h4eH1jC14tb8rYUZfEscAr5inpd8szUsSViur6+vAIQ17sXWOSHqbJOgIV2mhhpwznxVzLRqmlWjKWFBFyl+YduY54VSYBwPjKMkwIiURPxrU70FZwBNamEaeVA++/P5TFgjtaivGlIpiGJ8IXvGvB8m948+Yd8aWiPEuelAqTIt9WaIWhmHUWDMLPeztxJvKehv3c3u9+lWCwGpf/bcIUM1y3RuGxQPhhwjcdvYtpXlOjNfzizXK9f3M2+vb1wvF5Zl5no5834+E2IiVkWxIxnTCpdiWRf+bP5zzm/vXN/eeTwcpZlVGmMLujl27dBSG5sET6j72dXPg1xa9JpKxG3hdJpac2fYtoj34htgjGqFpK8xmmZbKxq4QsyRHDexVoylQcdGNM5FOA2lNJRMNwc6bVrz0u8jmcJkBwtFaw7TkdiKp0K1naoXiYwxDXW5/UwdIYoxsixbQ3v0bklKpZFSm1d6iJRyu1+d83g34pwhRs04THz8+InXtx8pVchb1nZClRTcEKQpTqVl1OaKsQmlDMZ4UhS0RyuLwfB8+si6BZacyElTk4IicLK3cn2P3jMOnnEchMeTC4Oye45yzp4cPVpLPKPRoHRh2ANZyq7Xl/J982r/Wk3zVz9+i4otu6vT/nd0GK3QPaElo9Q2HZ7sxti76ronXZScWcPK9TpLkWm+xxaB8RQSU5Va11QBo27OTt3LuMM77Pi82iHGzkiWAy3sh9i9A1GfQDtxpD/6ob7/anCvd0KRr8J6Qg0D03TY93re+c7oEYhO6Y4Oyab1Dn7WSnYuWhtKkXQTVeT9stZxPJ4kUcYJ87D290ZrCrAuK9fzpbGpM0ZZYhK9q/YD75cLdt0aAiHpQyiZfkpOXK8zuVSm00lco4BYCiHn/5u6N1uS5ErS9L6z2eJLbMhEAihUF3uGzea0kO//GORQKDLCG8oMp7oLBSAzY3G35ay8UDXzQM90XWO8JJBSkZme4e5mR1V//RdqrjskZ0MnOaHO7Yfve4gV2C/q9+/d+8/qvZb5/S5dGqmyIxvTNCNM5J5NKrPplUt5v6u/7c3f30TbhBu6QGh518dukOAmPbLecRhEorVN4tt0LUk/cgCbjZxh2MPlMYYuOHIOOJe0y9ZrTZuwkoXQYawcRPrDbT+lIAy1Sk7nMtP5DqMQ27YykVQmSaERZMBRrUqRmkBwICuCbcKq+jMYveZ8EPLZBsHLqsPSdWGH4Zu9WS9u9/r2q+wf0WL7/r0WpirN7IShjXxnDOI5vIjP8uvXZ6brhWWamK9SYK/XK8s0MV2vpGWVuDQMsUaKcVAaNQvZMceFksTq6Oeff+bp6ZFSMv0wMpyOwtYPNwbqxkytVZyunPM0Izr5tF5JwVLpaCWRspeTrBmul5mhH8n5dnZs15687LY3AQ00TGQhrSspFZwPwpWgUFuiNkvdkoP0AKitCeO5NWoVwl2qBVuMZtuW/eeXxCW7m+QIL6Pe1gxqO7mdN2JxK9dp8P6GqtmGjY11zfpcXiL27BYjqNO/rkFqrczTzHSdqDVjLOIi5UUmBIaSRaKTSiaWRM6VuGaM8XhnyUnSmawRx8Z1KaRYSbGSo8QUtgKmGdU2N1qVdUZJK0uslOoI3YGDGXQt4LFUrKt4KxC5MVWvf2myttei7If9Xtnhjb/x+N0UW/OOzCVw0u33bvpHox+KdIDif3EjHd2mxby7Ok3TlXmadmmG7CTkDcvKUAbRxRn/3+706kYosVs81o299j7LNJdC8J7NRzS/cziqtf0G3twhQN0FCkzkCLqfPIwj0UlAsWnsJvUy1fX0YbPQE8jH6Y0icPJvYcLj8aSkGCFAsBUaH/YsT6s+yrVKpJkAhpAuMxdNjymlchgOsHslO9ZUiElIXc6hjHEEWmuVmAvGd9w9PEErVGPJFdnj1rrv5Jp1Kk6X4Pv3BIT3rk//mji2ff89aa7VSnOOWuqeU5xzIaWshJ60S4DeP5fIEAwpbbDQbwv++2nZe0/f9Sxp1aIvzYCzjm4MmINcR+fDWf6ONmH6E+9F2TtHcXaXqhkr721pEpPX5U2/bfY1ydaK1lJpZNBINKOH4xZRyMY/KIV5mhnDSOf6HTa0xtJ83Yuu04JYjZU1g35/ezNq2zykbw3t9jqwG3N5I14JhCqNUIamk5VVuY821r8ZBAzK1N5IUe3G3EalI/r+bLnL03Xi7fWNl+dnpuuVdZlZppllmVgWcVSLq5i9NGM1maeSmkzcLWdSlgm55YwDvnz5zOdff6HVwvF0BidFw3mv0XjowlD9gmsR5rgxrHFhnq50ncO6pveETPo5F6brRTKDyy1tbIOl0Qa+VoMpch3HmFjmhWWZSLHS9SNdZzFWdo9bHRStvry+RlNnJ2kGSs7CWdA99FaAixrXiJbby7rKbHJEbb40VAKjTTzaxDuR1IzjqHBwhSaRi94FvIdW9bxRym6r7yblWpWlvVBqZrPdpQFemrVaKtkI4lhL0/xd2bO2WilJ3iOZMStJQ5xqEbY31WBwMvlahylGvY9lv7+shUpgVP6OUXOcTV+/XZu382VbBBswdZ9say26CTEaC/FvP34XxVYkNiq2B/Wx1WLkBCMHQ3AWZ5qI1mulJImVi+vMukxCDNKJChqXyyuXy2UnDTlrqeEmrI8lMy/zDZ424tvr22bErxeKsuPcftHJo7TMHsVkZO/mvNfQ9ioOR9ZpFq1McjKhCoy5ffkg3qBbcMHDwwNxkVxZ7z2fvv32NxfBYTjS9x1dF3arsK3Y9L2wsLfg8ZzWPQBa8hY3xyWRwuRUd7LVJmfaJnFTG8s8ATJ1fPr0PYfDidCPuG7EWC87xSymAm37LJ3S4sPI+XJhWWa+fvlMGO8lksz2RCrkgiuFZhIpFqZFYKr3+cAba3IrqDs0rPtCb6wsrTYIEgTqwagsolDmxLoKFCfGjQJF1sq+BhCNqlcIUFzI3kvM3hthbNFiX16eqanq/de4O96JY9E40nUD59NptwI9HsWq0DuDt4beB9bgydlSisK0VopMq4hTUDMSHRg6jNmSsG7BAaVkcsmEoVcmqNnXKJv+PK6Jy9uV03iHOTqBbytQKjZX1pQxTuR2O7sSPcCd+k6rv3FJSScnaS6r7kqp0uEL5yAwDAOn04mwweYWyRWNifqOgVvarXmgmf3Q2mt8UyZyaxh1kSqlkHLk5eszXz5/5vnrV9K6MF2urOuqvAxx9cm1EYsEClRjaM7gQsc0rxJHmRK2FU2igtYS0+sXvvzyEy2v5HUidJa+C4QuYA0y8egwsDuIWTE/iPPEdH2j1YHzcWTserrQy9Y3NaiGnCQ/tZWKMxY2gmFNKuXTS7mtLHNkmlaxPcwwtkA1DRMEQsZog+U9NgxY12mIPb8ZQGrKu8tRqZmmvBcQZrILnUiJjBi/SJqpSId80OdrFd8FfNfhraUfBobhAEBKEWtXNgmU97BRy3OJrHHBL4FmOnIp+OC5f3jgfH9PShFj0HjAHu+luTQuYozj2HUYH2S1N0VMc3gbZLK1el+YwIdvPnK9Xqm1cTgciPHEWa19z+czZkYRJ7lP2ta8GiG3gSQb5SqWsWkzxyiJPjgttFX4CVWsMI0xsiYB3en+jwAjGwOqtwre4vse54SOXVvCmKTL85VWFryrWkgy0+WZVpPS9SuHsSfHhbeaiHFVc2rpTFIpLOtMckL6SamQELJQmhesupo0J9qw0I/4DT6rsMQFY9pODrHWSIebC7YKWaIg8qVSIaZKMJ7D4cjHD99yf//A/d0Dj49PPD4+cjyeOBxGurHHdxJdZr1j6Lo9QzY4R+e7d0iRTOc7i29rt438R0Te2/9v5LTomyxTT21GrB4VrvIGDaWGHMX3eF1XWso83p04jCMFQzWOZjtqs2TjKXSsayMVS6kBU2XCkQtZ9n/29D2nQ+ZQMx9/bAxBiCfZAp1Q6kvLLBms9SpJ8KQUtSkRe0NvLHZPm1GZTeihgLeBw/FwO1xyJrgAzUhxrY41JmiW8+mRv/z0LyzLyuFQGPpR8mzTSm2FYejAFHJu5CzSs1YKq+Ycxxj3MABrDMF6POoukxoOw93xxMPDgxLdpGm01pJTxFhD33nGoaOWRN8FaumI64pRcgjN0fUnYoJSHNYNPDx+oFbhI2ANNji89fuaxSj7HbP5MJ9l9eA6SpqEyWs93TDShUFvOYHD++G473aLBkpsrOmGrESaNpPd0NPF/vZzWEspmcPhwKcPH7hc3ug1QCSmBedHnWwNvUEyf3MmpiimKg2crkeCIk5sk3Mqe2OxFabgAwZIS+L15crXr298/fpGXNd9TSRTnKX5AXqLzcKGzw1irjy/fJEItQ31K4WhN9LEt8h0/cw63bF0DW8i3ouExTkYTgecQ/gJTowmihFDi1JWHh8eOR2/pfNeQsX7EVPBYDh2R8J9Ry6NKU6UNZPWdUesTLPiZNVE6+wMXC+Ry9vM5TpzOD5g3RFrD5Q24LuRUoXAVY2jNbEvDX1HcJbgLYYAtTEhZjmtSLP55fomjZlztDWKZKk5HJXYspw3DnITRMi/u+5yLZzvzgz9QJZdBdY5QjfQlwN9fyClKyUXDqcDT9880vUC0xonTRPa6FsXJC6PRm6OOC14n5WYWpjnq8Dk1gNi9epdoPOOdYmMvSUEiwuOOU2seWZJM9NyIZVIKiupRCriuS8JaQY/jOTrhHPgh0Cqic1kxvpOGqYcMVSClzpRS6bVQh+CrFHY3MyE4GaNUV/xf/vx+yi2cIMfzc2FaBvfzQ6YCDSCGonXnIQJVzI0ifNyKjqutdw6u1p2wksuQiM3qpErW4fTiiS6qO5wTYnNko8NWG2it6VVYo5iBWhFx9qUPCXxWY7D8cTpfOZ0PPPw+Mjf/eHv+OabDzw+PPH4+MTxeNz1oS44bNAiacEbJ/IGI5mVRqcBdHcgHr+iVGylUt+9h5sxgW68qarXFGi+0JrdJQMaLyJxe6hEpWRMa3Q+cDxYTMwsKg2al5U1NVIx5Lqwpqo3fAMrjO3tuTf7QNmdCoGqWEsyQK047UppYvINAmEW3b/fSGmVmBIBdLoU44wuhD0SzzsvrMAGOJH4GDSZo1TNGvZ0/bBLDlqTjNrnl8/EuGAsPDzc79dOrYVWbj7XaXN3auiN5nBGhP9Vd5gW2SP1IdCrQYpIkxzJoWSUTZ+Z993+9m/Q5NO2jf0gtdbTdYPshhRuR35KWQ3oQbjGRE6JmBLXy0SKoku1RiZcY6wmInX7znQrqvsOx1SslR3jNu2XYvZGblMFbEW+1iLTj7N4K4XUj/1OYNxY34D8nA1MLTf+A2DqxoVoO2K0rW28VRLZRtbVtKl1Xnl7u/DyXTrumwAAIABJREFU8iYe1aUK4afITrzUTE5CdFxTJpVGbo2kSoPQmkB+piFuS3IQBtNwrWBqghJpOco+N6/UmgWKdfoZGKgILC2x24YuWFzw6mMd8C6oSYkVRcAQZHp1SaDNphPW7lDEzk0RhcPKNC1i+zka2dGqHMVWi6pOaIjhxhbP6Z2h2SpytwbZByqWihDxgu/IrUjTnRJYi29tlxphN57KDf5t5rbe2+I7Zd8ublaCqPT40GHtQjEasOHlXGtGTImaFT11lUMCH3qMNXR9z7rMkjCmRi2C9Dg5W4yQlDaeQy7ix2CsWFKmHMk100zFBScAnnf4zlNRjwV1oKpNkBYfPE7TkJruN/bZVO8NHwK2VV2dbHwQZTM0hZNvwNrffPxOiq1e+HrfbzfiZl1n9QaXfZeSClqj5JsjVFUzgPdPuTON9as1sXmztmGqugSVm4vOdZ6EJNDYD1fJb9Uuxm4dfxPbs9YYBk8/DJSUWONEq4a+7/jmw0e+++57vvnmAx8/fsu/+/t/z4dvPnJ/98DhcNx+RJmaqTQr7wGmCJFlJzlUEVUrU3snnegzCKtTlvgNNYfQ/0l3kG7/ljHAJntRWLI1HA3TGnmdKCnqQdlzCJZLfGVaI1/frlzXyrRW1lhZouzMq0LMxnsawog0xuC6QAhC+Br6wGorvW8EZxi8YQhiC2lVokCDgsDvsvOVXWjOmWmZ6Vv9jRWhD4GQ/9tMWFlJOJUQ1J3o5pz4Oovto0yFr28v/PnP/x8xrWrAD6fTiVpll59T0UIoDmSt6T6oWSwerwSQ3V1HSUWbwbuxm++ro+sO+57YYGRXqKYQUS0eaeK7WmtTqFuLjvdUZK3hlERWa8E68E4m/hRXLpcrzy/PPD+/cb1O1FKVHCcCFucszquDUXt3oyD33QadN/U23iRfN+9k9B6stJZFO6uSnlLEgvK9zGOLAoSbn7UpN3b5vmdvYhhjFHEySA6vd04JUkoSK5WcMpfrlZfXV32tL7/dvZfCdZpZl4WU087hyE1gZTGtUJWqERJWsILwdNbSOZFe2VYwrVBSpKRILQnTpBnZ1l2lVEmVMvo5W2HybzGP1lhKEt2x8Y7QOaiiM3XesxEtN56CkJGUD5IK87QwzYvsnYvoSks1mGLIWe5zCVpxN8MUXb01I02AaxD13mymkVvhcDxwXWfhL6QoTmZNHbw25ptBmv/6W/7MJsHauR2tYTTXN4QOr9I0ow5npcl7aZvdn9soq9yHjn70+315vXa3FCpTOfYDzskXxlLSjcsxzzKRd33HMPY0ZMjwwXM6n5jmifEwcjwdBc7eUtNapdQqq7su3FDAd9eiNJUep02AU2JURshwnbKT5T5p+tfrTnb7tx6/i2K7MfDQmL33xCOjOwlhXEq26mbALQxDS9Pvp9KYlpVYClhIObLGLLR/3QNKGtONDFBy3SeANeb955FpUPSrW4D6GIKIy63cICCT17rKYeC7nsPhxHfffc//+o//xPff/8Dj4xN353s+PH4gdD3Fwq/PX7lcJvUdTeSaRQtJpRm5MLc2V1YFmS1ourXGqFFlwF5oK9It1ltbAqZRikBrpVZSQUgDWmyNscIq0K+0zNAqd+cz3377LYe7Rz6/zvz8+YWfvzyzNqcsPoMPR+mozUbZV0N2Y2nW4cNAGHsajcuySlSVbQQHQ3CcxkBwAt85KqZk5twoe8GW3XKlsUSxaQs50Ff1sPYW1wkiYL35DZPcmC2errCWGeMrLjRcKPSDYxg93sO6Xvn6/JmSM+MwyE4xb9aem8e2HCpW6Q/eDnQ+MQxHjPkVaqGWRFyNOEqlBK2KbMDoHrKhZvg3mUDJWX24FdTRbbI38rq8uZlzWGulU1d3IZn4i4I9cuCu68Lzy1f++V/+mbfXq3hYLws5Rl6fv/L29Mh0fYCW2UJNhPtS90lUWMqajFRBGMC3tBdrHMFDF2SKG4YO5+5wPpBLxVhPP4x0/UipMC9xb3jeLhPH4xFj3b6P3oqt3RERtehEmLjJiUayla3xFLnbvMxcpyvTPHGZLizTrMVNnvNyuahf+S2cJK+JVIogRrFhTcXRCMYyOktnEfjVGFrOrPNMSpm360o1ntwsYbyjDSfWZSWtUTXG6GdqJRFLp9uu61jnVSSBFfou0vc9y7TwdrmwrAsxx313apw0kBs6tcZJ9NO1KCqhKxUn6Adq8WiNofOWYK0gDM6JpaBpe7HtO0+zYhgUmqM4iSxNqySBWQxD6KBUWi4Uq2ROhMFs2BA1RTyclYkQlKghX6UWrO+wPgiC8d4FzIjfsrWep6cP/OM//gcJgnj6hvP5zPF04Pn5mdfXV+Z5prXG+f6R0/mBw+GMc56amlrervyn//T/MAwDx8OR+/Mdx+ORl5cXlmXmhx++x3vPv/t3f+If/pf/maenJ15fXxj6geMwchh6LtOF+frGawicT6edXOqMFFjbKt5ZDoeBvgus88S6TDhj6MdBOENF0A7vHCVn5vn6N+vc76LYghL8FNIV032vFPOO4DOpCTM4lUJWzLxZuy/tbS7UmJjWlbauAi8Eo84gt/xGQ6NZYd3KbtEoFGKlS32HyW4sU0yRizg4mRybYRyPAlvVxjwvDMOBT9995OPHb/nxxz/ywx/+wPF4knzMUvn69gZcJJ92TaRUbnCeF/mLMeKe5ZQAczuIf/vYdL5NdyYCcb9z1dIJBBoxFVIRgXZMjZjjTuqqWTr3lhO1JOq6UnPi8WEFP/CNP/A2RS5LYk6NcDjQBUPOjbiIm4tgKBljPc0K5R9bqUYOUO9FF4epYi23wW9NkoWsE9s3Fyy+H7G+IxYpAhWL9T2+G2lU8czOhdJgiYl5WfFdT9cNsn8zjdrqbiW4LAvX+SJB7KaS0sK8vGFdxTpx2nl4OFNyoesC1sLb25uuHpoyLd1vpo1awCC6Ua+xYRtzXaZg0SW/192VUrhcLmwhCFuiDbD/Gfk8xaHGOafa0hvD3niB+rwJsjNUSM9g6IIwQ08nOXhavblfSXDFxPXtlcvrC4aKM7fdUvEWayo0gSKb3RoWMWCI6sxUSsIHxzRdWOZJJClxoSHM781R7Xg8cjwe9wK+rWU26dX22FCI7bVv79N2+Ya+VytWKMkIitUKS5JQ8es8Mc0zcV0ppbDM044ElZSkqCJ60TUnWo7YquEJVEF0TKM3Ah8Ha+isuEfluNK6QD8MxCJa53VZ5DWGzeDE410QvWyuvL1dqLVwOp1oteGM43Kd+PL1mZwyIUiqTloj87wwr4tCqTf7SrPpm5VsuGUUJ6se7c6oNA813ECK4AZVtIZpW7tStQaaTXEr/uBG0JP2jkD1r01OJPWHnSeyuVy9VwPc5HdSRFqrv3mezUZ1Qzg2sx8hPsrwVDKMw5GHhyfu7+8JfgAlMNZW+fj0gePpnmE8iid6LCzzgjGv1HeuVVtmM4je+3Q60nUSr/jw8ADAskiAi6gR8j6J5pR2zXnwjr7zqqsVQuvY99psaNJbXFl1h5uScDjGwVMwxL892P6Oiq3uLlLO4s9rtlBuKzmBRSa4ZY2sa8I6we2bMZgtC7XrwPkdNjPOY1zBeRFHULkxOq2VdB+dYuVC3ZiQaoWmMFErsott1kBpavAehDVBpVI5Hs98/PiJ7777nm+//Y5BQ6StFx1iKkV9NaEaKwV26/q8dKIKKMvNsaM5m/Oz2RcDJksxqLoDE4hZiVy0HVJuVGIx5GpJFWKtzElIDzll7c4jLWdayZBkR4XrOL3N9OfIdU3MqRKrIbgO2xSGs3Gfjhpbo232r1Ih5Y0qr15z+udSkwvTOHFTwosMJvQHfD9IMS6FVBrVWFAZVK0NslhArjkTc96ZpnZjQDfILatVpEz0wTSxr6NQa6K1jDGNrg88Pj7KlGkt1lmWedWJ1tB3AWcloaQZcSxzVmQ/h/FAUBlaSqLLLeW3Xsvvi8nGpt7N9c1N/iVf9varrjK2gox+/jf9tN2hPQk194zDwPl0Jj5FjHXUUohx1b5LtbTWKIEpsPEQeoX7xY9XUmKssoKtgZIiyzIR44pzRiQ180xW0pjs3wwSlN7t7O2kzldbSEhK+d3BfoP8t12ZpL7s2DYpFZ14oURpYlJOzNPE23RlXhbWuGpMpVWoVwxHpO9S7kYrmFrpvcXawPF4QPYfwv0IyITrgGChc07cqxpiHqKM9pwkjtOUqkQ2/Vwbuh/WaEQrRK6+G5jnhcv1Ig5tTtY3dZOh6a5014u/m+o3hGpTN5QqlqZbCINwVuyOCNYsaIppbS8MW9E1+7WzvbOqe9Xfc9ZKWIYWRqdQ/uZIt23m2sal2CfVLZUNcA1brX62ujdudW8wvA9ahL0m5wg5pdZGCB3jeOR4OFErXC8TcUlKvDtKuEgIOGOZo6wHFm2y+q4XqLfr9qhIY2SNZww7nF9VRiUEOlnJuY1/0Mq+f22qx+26QG3lNs3Lsh6MZUlZV4/SXHvncKGjVYQw9jcev5NiK0zMXERkXkoR+riRQrsFg5cqcNThOIlDVJZDtXmPGwY6Y3aZCMhh2jSYoORCAbyxyoRzOAylGRF+x4RBp0rtAtMaIVUKqC5P7M9qK3pABY2xcnz76Tv+8OPf8e23n3h4fKLUhvO9FFzrsGHzAnVKz7+pslorAiM3SXxhL54yeTcl5aAHrus6KW6lUnOmkpXwIKkwtamJPo0lQsGSsSQqS8ksqRKXzLpEWsriqtUarsC6VvyceL4sDNeV61JYEhQ8xQRlBzbC4GkxCmrQNgtCkTqJXlScaFJplJZVwyney3K0FIGgraEzovkdxjuGwx3VBtY1s5ZGrJBx4ptcG7YWulxYcyWWSmkGvMcEMc0vLcokhOyAm7WyD7cV48S5xzlhDo7jgPffUooEU2wTbVUZjLeeLvQUW6Flcm4M/ai+247hp4GuC2pXV3dS3q2w3ow33odSSJHlN5OuGJaIocmmXf3NFOFvf84YsYnbSHLGGNE8qt3nMAyUnJjnq75Wz3gYuLs/8fT4QNcNO/lFohFvh/57DbO1hpwS83Rlmq6AmGvM06R7RCHZiA+v3jfKd3h9fZNwDX3uXMruRb5NP/+6GXnfoLy8XlA9jsQKFtm9LsvCl+dnia5cI6UWxqEnpyqM0ZyxzouBgWoqu9BxOB05Hg483N2zXi/kuMgEmyO2JvmsjeUQOnone2jZ70ozK2z0hMlFm++6cz5yTXIP1iT5y93A0EWmZebtemGZV4GZc97nzKoT3kbJSVmQG4ncE7tT6yUpioRKnhIYIRs6I0QijCGnrVRvhbaxGTBYrJZXtv5KiqzyCqRxHDkMGjeoK6bNnKJw8+fenfywu9MbRlYsW7MYgtci6Bj6kb67BYhY46Qx1nOwVgi+Y+xHxuEAzfA6vorUCUvXDcK6L5UlTvz1p3/h9fXC29uF6XLlfDyJucYoecW3NY2gTdZJ47NJGXNOSlgzDH1Pw2FaFcVBjkQDeQ1yPZVEyYmpVI7Ho0T7NbhMCyiEvFnu+n4Q0uN/g0H+9vE7KbbSaIoJ/bYE0AOgioyyIgf18+sLXtNZUsqkknHOSwzV8cjd+fxueV+JcZFCm2VKDc6rvaPA1FjZn63LivOdaN+UkJWjdEK5FIm3Q6RD67rQaHRh4Hg+8/T0xN///b/nux++5+7unsPxjA8dDw9PDONILiI7ajqN1ormMmoebi10fRCWo+Y6YptOg5uY/GYmcX17IyW50WOMzDHKe5FEq1eUdFGRRgEjt2JuhrU4UvHkJje2DV52O8bQW/DdQD8OGN+TcXTjiZPtsbkSxrN4uZYKTqbWPSzbd/hOsj6blT36e5N9eauNklOKSjHA2IaLOlWM93z49Ec+fPsjX78+Y/yB61L5/DyR0qqU+8a0ZN7eJmotdEtimCMhC/S5ieXXdZVutkK+znSd5zAMuNBhrCPXxrxGcrzlEs/X6aabbo3sM87K7lam1qxJPpbBDrhwE8GXUliWhWmauF6vKvi/kYAeHx/3iDmxERUP6C2fOMYkO8daiWtUpySdFsIt8H0zQ9ijHFtTj2YhxW1aYKMkqpwTxnQCPerapRvCXhRzzdRUdzu+thtnyPP99a9/4cuXz1yvF4HaOscShVRzOBx4fp1oteC83MPTNPP8/MIyR67zRVYFVsgx3gYFPppoc9mWx0b37tqMOpkgmlVL1pSUv1CI68y0zKRawDasM8zXC+s8CZO+Nsiiv68qGfr+hx/409/9yNPDPR54+fqFZbqwTleW64U4V/rgOA49j/d3DMMA1rJcL6Tm8FGeLy0L/anQhY7j8cxD86w54YLBBUs1hbvjmcPxiO8ld3mNkTWuWOPUHGbbHRkOh5M0pcZIdFxE2eZNeAuiMxIP5I0MqTaRVu/fDQ2wiPJONMDtN/OrxeyeAVsxF125NG7bVCtF8b1hzPbrFscosO2Gqrwf5DaYuO/7nYy0BYgYY/W+Ellk1rzaZdnQsU1eI41DXGUvO18XvA2EYPny+TP/8f/8j3z+/IV5WViWlYeH+72xFcWB2e857zeYf4OzvZL3Bu7u7jjhibkwx8h1euHz58/M84zF8Kc//YmYVnEou175p//wTwx9Lz7kSeDjVqXRJRdOuQopcDj+zRr3uyi25t1mUliyAlPUIv6gko8oTOLahP7fqCqsV9suhUL6w1EgkybWchgoXuwBK2LE7dQ0I7hO2HylMgxZaOubZZwxeuDJTiXHwrxOXN5euVzeyCVxPEmh/e677/j++x+4v3/kcDpxOp05nu/wPmi0m2CttWlUHsr8cxZrO0KrxJJp+ebMoyOLdJn7RCCOKLFaYVc2yFiq8eCsaOWMwEluuxU29iriAjRU8TltRYLrXatCUjLQGyh5Zeh7zndnTvcPhPEsE2YDwkjODarAblnzTBui8bPe70SXphT9225RDoY9wxZJB/LW0QWPsZIV6Y+P/PDjv+d49yoT2elIMx02qESoVpZciSp9mNfK63UV31RE3xkXaT62/GFvoMUKVYz9a7OkDGusxHkSnlGtpGXdWaZsuldjaFWkOlvjVmsllYjsdcQntxTxxJ3n+V2x9bdpwDhl7AqMuq5R98ozb2+vvL6+svYSQkFpu6zMYna26nbIbftYkEMuRkFFqk7TKcU9S7kU2V+/vb3x65fPBE1gqQ0p2JqiJR7dGwx+29v+8vmrFs+Jw+HIQ39HPx4xThjSuX0BYzme7zgMB4bDgX48cDqecJ2mb/mA9Va00foaLJZqFDgV7qNAv0ZQpazXUa1VAsHjSopin7pPxToFz8tEieICtethaPTecTwc+f7bD/zh24/cnY5cn78SPYTeM5qR1TYWUwneczyMnAbJHi7I5OhwtGrIubLGxKEKitAdPacHQzYGrBAbcyscR8nR9c7jQkc3jDgXGIeBeVmUryE2n1Z3/hupsbaqMhLR8W7sfus8oRNZjfdhX0XIdWX2hk+xBfkNnVkEpZeGRuZflA0thUgayY3X0rhlg8t9YMztzK2ba1ZTFcI+lwsCZ63E3Vmd2DdEEmOlVdjTpkTtEHxg6EeGfhQ5nzcEJ5Kp4Aqd7xi6XmI2hx6KGKtse9Ztf91Mw3eepDGMy7pSWiOmxLyu+OB2t8CsKWbnuxOpFLheMcYQ14Xr5Y3WGjGJ5/b1euXXX3/lOl3FREhtWClWJ3pxDVtTwr5LgPu3Hr+LYgt6gXGDmbZuaEs9abDr2+TKuu1djQYIW+8xTtItdms7o4VcD/yNWSy7W7UJtChL8lZst7SW0AU90DJvby+knJmXBesdd3f3PD19w8ePn3h6+sB4PDGMI8PhwOl8JmWZPjHiTCXsX+kOi+5phG4vsVtZf28nTiEXU3Wit3VNhPipNpJq8jIb5Njwlk0wIq/XGIwX1yBhK8tcedufVlyrG5+b3oJRiLzvJT3E9YahGRKG6nrpzBsEA60U5B+SA6Gql2pp0IwyZzG7vZ8kkVSRUJhbNy47JWEvuu7Ah08/crybgUbwTlm40pK1WliWidDL/sr4gdI8rQqaUZqnGSGbWCyuWTovph2lVmKKeK83KYV5kSxPoZTYHU6W1yHhFM7LYWZXQ0yJmMWz1mxSBrRY580SMuqeTt14Glg7C1vTCGM0Kzdh+0opyYrACjsmYKhWGsxcbmk8gDLxZddkrVwvqaohAre8363RySWzxsg0L8xrxLogrmYqb6tNSHe5iCxC2L/o35Xs0Irspg6nO7UYrfTjmdI8GMv57l4NRk4M44HhcATv5PD0Ht958WdW/aY3HtyG2xhKE3i2VNHEOisHthAU1aYRcGGVIrXtuq0V+LgUkciVQsHQB8fYBR7ORx7vztwdD4zB8xZXXM266wsMZiBU8fQd+15MC9QObSMWCbkrcr1cOSwrQ39gGEeO/QFCoLRMaYncCmPf451olWUfecAcDA93d4pkiMvVvK7QpCXOtWJSVYhTpSS6z26oq50P4vbkPLVsKUt7v7HvvrfDo7bN5JI9KbAB1Zh3u9SoRE31lW9aINmI7rLrr23zXFZkjlu0n54k7ERTJZua2ti1nO9WYO9RSxCGshSpG4Jn2VLMnDZjjbDbZcr7I/a5CudWcaUKJVCKrNKMNZQm9+Tm11CKrANojRC86Iud1JmUIuu67J4L0jyvez54BVwnjQQm7XvrlAvLGuX771Yw/73H76PYGsShBIM3XuFSS6mNRWPGrLuFbEsAuBfJQbtJFxrsSThV9yw16W5JSS8hFDUaqJTQdL+z+ciqSHkjnYxHum5LGRLIL6u5w93dHU9PH/j20w98+v5Hnj58lMimriP0Hc53LHEmqX4w9AOuyc6xztI55awQZa2sa1T4t7Kfqw0wDmcTwYlJt7WOKcqk3zAy1XrZRVsrzlc3i0HAys0s3ak837Yz8QZMTZhaZBfqwKluzBiopimRwAKOYh3ey8XvatHJXYot1pFyk+ZCbdBk/92o3ExFhGtg6YPfb6RaMyVLA4EJfPj2j1gNY9hYhxLsbqAWnp+/SASZkZivzis8yWa2kNUbWezWTmNPzYnr24U1fcF1J0Lf0QdPLhr/pk5P19cXUo4YGsfTicenR0Lw1FLwveH5uVCukbJmrENZovJ3a6uUWqTopoyvN6cuZxX2DJIZ6kJHF4oYcrTGMBwIYSNLbalWytCPmaq2ksYYgg00o+zlWrHBUdPG5q2/sZTseymsWIfvBsJhpD8eAYtPWQ92lfwUASk3tjsWmvF0w4mYVj5888gPP/6gKVOWaZm5e/iIMZbT6cQ8r4Qge+N+OEjhbsg1kQQCtlYY6sVDZ8JuhJKTFiI1osg6FYkGN2M0paViQA0zat9hSqIPgVwypSDXBTCGnofTkU/fPHE/jtiSideFt8+/0PJK38mOPPQHOoVfu66jc5Y1q0dxM0LMul6ZUmWuhtqdeTSOuzAwnuX9zDWRS6SaJqsK1R0Pw8DDwwPDMPD9p08YY5jmles08/r6ynVaiCmzxEQsjbSscr3Ups2P8iHUXc36gDFe7BZrUdazofYa1lKl0bWbDlAXtLltI64ctsN4ZFgiMWVizHreyH3sfdjRmNuvZpdc1mbecULenVNNoO6dNClTBO2dTnfXQ7fGusTbKqRCilnJY1tAA1CRYIla1A7U0nlH8Y5cK4uiSPM8E0JgGEa2YJItaATlIRjjdgTLGmG3i4JghWZIadVISvk5Nz/7y+XCvCzKr5Cag9E/Zw3LGrlcJ4H6byy0/+7jd1FsDYYUpUD2fa9EqaisYrkAMEYw/yVBMxyPJ46nk37AQo3v+4FqUENySfwQ0onH1Mq6ROY1YVPB2UStV2ISaG8r4pvAPuXMX/76V8bDgUFF+jlnhvHIH//093z69Ik//OEPPD49cb67p+t7hsOR0HX4EEil4rsOnJPd4DKLlaJz+K7HJslpXKNcdEnZ1tve+gYli75xdSoexzHFIsXSeZz1SlQRuWwuibZEtZDLOIeSpgDjNP5PzBgcTXalVpinyzSxzBdQjRnOMyXZrzYXKDZwnSZKSoydxxaR2siNt5nVb725BAu01qhZ/twGbRnTlPGqEKs1OGPF07hZRSBu8PPWOGwG9fqvyZ+zqNuW1nxjhUBirXTNYSBWhzE9/WHgQ3+/NxOlNdygsYprppRltzbENq7LzD///C84Gam5XN94fXlmniameaK0LE5ZXqb4ZY28Xa6E8Ao2YJrRXboQYw7Hg0oMPMfzcTdr6foB6zx9P6rH8TumJwYffhu24IwUIqudea6JvhZlYzbmZeI+ruSSuc4Xfvn8WYiA1nG4/wZrgxRCpOkqWdOIMCxxVQMPkWO9zYlLLDQs3fGR0+Mnuq4TkojtON/Lrux0PPL41GOt+FYPwwFrm1iXFjksq17XtRWm68J1nvE+EHxgiYk///O/8PMvv/LTr78SDmdRGRhBr3onvsQ0IUltoRydbZj8wPTSSLZRbMO3xnEInMeOx+PIsfe0tJCWGVMSY/BiC6tEo7Pq1o0xIk9yYlqQUuF6XaE3OFtJMfPTX/7K65IZn18Zf/7MZZ011L3ycnnh4e6OH77/nh//+COlNL5+fSHGn/npp584Ho8Mg4Sof/z4kbs18cvnL8zLMykXfOipDUouLNfI6zRTkjQT5/snYpQpal0y3neiR60FGywVI4laKWN7D0aS0ULoyMUyX2cA+rHHOE2mmjyvb288fSMeAELSMyyrNolI+o6siCS3eF4jP//6mfM58vjNI9553dEKarjEtIeT4BxFugclvQZ1uQp6rfeiAKlNzlddCXrnMD1cLq/EZeHy+sx/+a//mU8fP/Lxwzdcp4U5Zi7XaU9T+/TpE69vb6xxZbA98zyxRaTWWrler7RaGYZB+AdDL5C6lWbw+0/f8nB3Fp+GuPDwcMfT0yPfffeJ77//jsNxJHSeb7//luFl2PkX90/3nI5nrBMP/L/1+F0UW4whdJ3ANTGyrIs6kgTuTide3l4l9xF6k201AAAgAElEQVTUwk2JNwotWCN0867vhVKvpJ3NaQgMtlSKv5kEWCvpJibfAueFiSnRSpszUc6ZucmN573neDpzOh/58OEDD4+PnM93HE5HetWC+SDduhRPuWC993IT1UqJkZTFbzfvEIfC2woDlVZ0ugAQ27PNv9g6y3g4YqzALMEFlYlI7JowHsGYTgqUlUkr65SxEW2q6vOsNRRncE6kIbUUco6sTSLv1tJIDQqO6jpBC0pmmRZQCVLRCMSqMuVNTlU3LLK9YzJuhZF3+yXANB3Dm8L8KnMxOnVsGkOxa1TTD6S4yOtVhyNjlHG8vT8eh9kZmpuQemMJVHWFki/5rncOp6YZzVTWIj7bl+sb0zqx5lVgTyPdfGlidp9K5jovWP9GFCz9xm7GsmZJhvLekVrd4+KwMK8RFwJNpRfeC1HIGiHNtZR36UdtGj1o7N7kgDqdGW66QbUDxVjWlHi9zqwxY/qgEJ+jVMOyihQlp8SyCrHIIHZ3l3lhWfONbWm8aKqpNCt7SfGFFb2zMbcACWGobsVWrS71w+878U3e9o/X61VSbpaVZVl5nSWpx1hDMIaxc4K6tEJLC72StWwbsWmlzldMiqRkGKzn0PUc+o6x83gatlRMrQzBCdvY2s3Ke99tbo12a6Lx5t1udINIcy0s60J5uzCnxus8kWuh1MyyzpgKd+c75nlhWYSoJwlEQp47HARmX9eEDz1d13O+v6cax6RcA7AMxxPd24FkFDLF6r+jjm0ugI36s1tSbqwxMUf9Xq0kW0m5EWNm1gKYWLFRkoecC/TdAWsDtRlikni5NRaVu8l9sqaVeY6sMWE0Oaw0mJeEdUUBYNHtg9nXR1vAyebuJtKxxBpXhWzVFrU1nDPamAkBKaXEdHXktMr0WQp9p8XaefyaWNaVrb2PMWLfpU3tEqVtrN5gdWuoqigxVhj+h0PH3fkkbnNx5Xg+czrd0XciGwohMIwjoeu4P59FPoacS8Y6jsdR5Gf1f4RiC4Khm8a8zMQU6a3FB8/57sx1nqhqDO/fSQZQ+rz3Yfeg3WDkLZd0y2SUiLlbiLtQ1+ueBhR8uH1AunfYIImSCwbH4dBzf3fP0zeP3D88cjydGY8H+mGkHwRCNlbhiqbxUMqMK62R1kxcV+Y1knLayTayj9M4KnS3qWQwQJnI8jqFWCDJRdao9tU6YTzHxDTNO+mo7ztqi8SsrOpc5GDe6g5yU1Yjrmy99zgr+78YV7CWjMijUoPiqspWDGWJYiK+MZ932Ev30U2eW3Y19l9p9GRnajbIrFYxYlDvV+dUJqWF1gDOW/VBtgS3+SkLa9tsSym0mXJbZJwEObg9jUM0zPsEbMxecMVv2gpj1lqMM+AttWVhTldNAnHCDg7WkHRpVVpT2VVljRFznZmXrCYqmybRkYrA3s5LXvBWHI2B0+lMaY0xF7GxAwJBJEIIhFc0NtBaDbGuYlEne01pNrbg9/caXmNl4nh9uzLNwrq3WqhzqUxa4OIad1bnRm6b5ig5pd7J/rbJ5yRVymFtwFmrO0WZCLd1h7VO2ALG4ppMzl5dsPp+VDlP3XkZa5Rfa2lM64o4d4o22DaHaQInB1N4OB05DR29Axtn6nzFlcxaCqcucHccOY8DY/A4JdbZWhlCINhbw6e6OjYgqRZtdq3I2ay11L07FCQixkisV8oceZkmRY4Ewo+nRFzTzojPqmmvrezuR8Mws5wiDw9PhK7nvhtwrofnF2YbwSR8sBwOJxZroFVyhdKMytlEdmh9QIzEDK/XicPbRbyA21FIjMay2EKJlXkVr3fDivdGPYEtXTdSMcRcIWYalmWV86JWObuWdRXi37TIz9AMayqUy5XN3cpZQ43rTrgC8SRfQ1AkzdBa1d2ortHKu0xfbRCKSrw29r8zhr7rOJ9PjH0n/BzraGghl0NM0rq0sBdlWxtz8/FuqjAwyk9oVbk0Boa+53A4YJ3kX3dDz/EoYR4hBJZlZvN17PuO+3EkeCHalgaHQ4dz9gar/xuP30WxFb1g1WV/5e7hjr4fGIaRw2HUN75qfB1yACrmPnhP57d0FUNR8soyC8Qgtndmp687J045WCuSh5ho1pLVQ1aW9gK3ejWtMM5xf3fHH//0J853dxyOB4ajsC5DN0gEmrIKqUX3uosSh3T3phfass4si2D+WyFflhXjetkrGCn8IcghKbFlA30vXXDXDzrJyqQQvND2U0zM08K6LnTBcTiM3N+fZRfxrtiWCiVXdY9aMTUi4m0YDx1p7ahlYV0zFIsLHWBIudJKUoN1z1oTBL83CzlnbJIGw24yAavEi/fCeHS6rWJVuMlYUoZSHa1JQLYwTmX63Qq1c2qm74MUXwtkeR/ed8kgfrXbDRe0uGzFVqbehndWzRwkUMA4j+0MuSbiuvK2zDgL3kM/HjmeT3LPNdF0/uf/97/wernirpP6Tt8K2LzMrGsU0olQwTjMUXfDhnlO1Jr1cxH4+XQWLejd3QOHw0GlEz3OBeJ6y+F1RpmPBmrNiJkC2tlbsZxvQlAxOuHHNfH88srz65vsb52nNUOMmZe3i0xiGm84DKKNzDlz1e+FCvOaWGPBed3lo1C9d/i+J3SD3sdGJCvCZFEvXccyr1TEixgs1VhiSVyuM798+cLX51cu00IuMA4nchEU6u40MAZLjhOmRB5OI//49z/y4eHM2Hn+6/2JP48DL59/ZXp74dz3PJ3vOB+O3J1OOBBiTMn0IQjKoWQ9uTA3FXvbTetNcLhe9N/ROnIFcqHFREqVtU68zZFfX144HA4ardiLwqEZ0prIq6SRiWNT4+3lha/lmdD1fPvpex4fvxFzlH5kGBLGd1yvM/OyksvCw9NH5mlkXVdSsRoAIvyJZj0NR6mZ6xL5P/6v/5tPf/3AD99/4k//0x85jgcNYo/UBK+vV6brlevbGx8e7zidjhgr0PPr24U+iSlJ6DoJeXh75XK9EnwvjaSS/wBe3iYJllBEoOvEetXmTFwlSzilxJevL3QhiJb3cOD7Tx/35xESYmWNM8s60/Ved6ZiKnE+Hfn2wzeMXcCZxvN3H2SCLwKlx/S2e8UbYzThTXJvc8mSMNUaMSZecxKi07yq9CgT10gzTc7pVun6wKEPjGOP0QZv7AOH84njaeTyduXt7cL1cqELm/rD6DnqqUWQy7/1+F0UWxBiE8Zw//TIP/zDP7AsK9MkH9qyLKoR1A8+JVJMxDWKy4sVezuTxIiixIRtcFbD/7oZROiUuR3CK0nJVqIZ3MLet4Irwd1iLffw8MDHjx8Zjwd83zEcRo6nE+NhZDwc6IZ+X6xjNVTbCINyXVc1AhBrOaeJQ2KmEVmXRdilzuN9x3gQyMKpYfnOHgxCfhJKvkxr1m6BC5lSkmTuWoFVa60sSW4Q6zy978G4m0h/9dTVQl6hiZSkH0eK6jOXmAidpzmPyY0pVZn4rLCcQWzjTFUSgs24UinVUuvNElCanbp73G7FE2SaBNnj+RCwfsQ6yeOltv092lCCbUgdvNr5WSFaOZ10a92M8nXSNWBCB9bK60Zwg4xMCgEpRhhwtrKWwrrMTNOV5+dfiOsMZJxtjIM0QdaqXrghWlDnReoUevrjmdPxDuc6LpeJZVpY1ihkESuMbYyhGEMsRa/zC80ZxsvI6XQi1sYYV8Zloe9GcRHKTdmUBarRDr6Q0qoG+QKf972n6x0pLSwxCjPcqvNT+ZW//Pm/8vLl635N9d1IiZJdLIxPIUqtSXyI11mII6td+Ou//JUhdHKveEdcFl5evhK84/7uzDCMO2v6RvCq7z7vjaxid1nSuq5M08RPf/krb2+vUthDR8FjvCV4z6E/YFqiFTDVcHc688P33/Ph/swhGPoaCSXychqZXs7cDQPHfpAmHEONiVYS1CLkmCrM59pkurFWr0WjpB4jAextTUiNLeQWidPEOJzE2cgGir3CywvDMPD09MTpdOLh7pGxH/fViWS0SlF8e3sTRUMsDH/Xczwesc6JWQXwzdNHTqfENM/8/PNPPH34RFzvmeaJ4AdsKLRq8K5jGEZCfxBWvK18/vITYRg4nO/4YYvBbGIlWTKszTIXw9uaCW+TGGgALy8vvF4m7u7vOB5PdLnx08+f+fOf/8xf/vpXgu+5e7jHB0nPuVwuihJ6QifueJIx3nAtU+OquvGV1ipxWfHeczoe+d//t3/i8fGRt7dXvnz9zOvrK58//8I4dJQSmacry3rF2MrxOHD/cOLQBZwxONv45fMX1nniOi+8vj7z/PKVME/8+usvMjDpOb+hEKUUPXdnXl5emJdZpW6Voe/BmZ3RHNdFglO6QNcHnDdyUqgRRimRXFZqXml5pTlDw2NbxajfeNZm5N96/C6KrVzjAoMdDiNPT498+frMNE/kkuRmUJiBtk1lSbR3Tg7rrPZbeV1pRW6qDXOXL3XycZtZALr/U79RYBxHLYLyd7zzmtjSM46DGIEHfwt777udEIXRD65W3Qe8Y7WlpCJ7cWqiVnKMovkqhS4EmunFGCL0jL1Kjry4Zzm/RatJ/Ju8Z2Y/wHKWfVurRZ1vpLjFuMoOSC0qnbVs0XUWcDVgShaor0isoKRxSIRWmmfQvZrxDlNFDtMaIrjfSDyt0ZwFL+iA1xvZwI4o1KqfmxpIoPuT1gweR64GFwIuCDxmVf9cUiMXpFAj0XOlGkp1GhIvFod2MzJBxuc9jsFA6IcdXtoP2dYo+j4qE0vgTudxfaPHMJZCrl9Y5ivrOvP8clHHMEvwht4LG7FUYfuK/tvifOB0vMPaDmsnmpnIqQjxyuim2jiaIhlFmZ6lQSqF6yJwXUyNrsvCEC0CI+dUKUnZ3VVei2mSPmKdoescwxhoNWuTsjFKhS9wfX0hLitDP3A4HBm7nrHvGEKQnbuSSZaUoBSCmpRAY7le+frrZ6b+grWWeZl4fv6K955pmpQNKsX2lsJTVUIiwfZGIdusSV2brOZynUhZZD7edaS16c5avKnXJRKXSOca4zBwf77n7nSgt415GDgfD7CeGAzcDb3YLtZKTYnYitoXyv6zFPOOWyBNE+8KblNdaari2LTFRjbgdD7z8PE7wnjkfJnIwPFw4nw6czqdGPuB4DxUNDxlg6vR17ro5ygTXktZ3COb43TXy5nVRAtbWsPVhktVDnbnhNzUjXTDIKsI52kt0R9OuG6gWsd1iaxZPL7jmjHGS8HNlWwcc8rYVVKMlmVlSUl2766TzN/XN3758pWf/vozh/GICZJsZqxlmqNIa5DP0zpJO/IGXMvE+Sp2ilF06Ne3N4wxDMPAxw9PALvxi2hbL1z+f+req0my7LjS/bY4MlSKyqpqgRYAORQD8v//g2tDs/uAOySAwXDYGAKtqlKEOmrL++A7IhsPg+eehqUB1o2Kqo44sX27+1rfOh1p25plGonBoVWishqtcrH2FAjGNDJNo6w8vBPfutcM00AoepFLUyXNxFICOcaroAlgmWcOxwO2rkjFzZJSuk5QZcCarq9xaZDWq754t7syeZOztrEXbUH9V+vcz6PYavnD5iwjhKapyYgnMqZIVV/M12J/kOxYj/dOZPbBi9BCgV8WIdoo9ZOZvuz0rpeeciCL6lX2QsYY+q77Cd1nQStF27R0XUfXNCLSMZJxKBFNdenGxMsa4mucn9ziZScZg0RZXS8L5SZ1MY2v+xWmXmGMFNy6uhTactu+XDay5O9KTKC5vn7wjhil2NbFwkKKZS+SgDJyRV8VrmhRBao6CPpPZSY3smqs7KqMLRaMBZ3BtB1ZK/EEZoof+if83ySK73ztdI3scZKMz3MWIpf3vhTs/NpVKGGpmspS1YKoU6pEwSmFCrmMulMpTJkQNSqAtZK0oq25ijEufyalFFmDbRq56eZIdBcsY0HulaVpVoJ2NNZQVw1Nv6bue/GkPj8zTJHD/ogiFQSioq8yy7yIZUwJq/sCWmnaDmVqwJKzYRynIiyiiJwuEq3yo+VilbJinBd8ALuEq79SJxG1xBBxs5dRJxLtlpOEZSgl70XnaozOpOiu3m0ls3bm4cwyTISuwwD27l6ixn7Cq3XjyBwCKiU6W2HJhJIKtX96kvWKgtN4Yr8/YCsrkWZddx3rXYvtT0Z9dS2H0QW0IV9NuYxN5X2k2O7iGKi1xmAhKuZhIiwO28j3dLNes+pbTA6SztI0qNWKYDSbpkZFCdlYnIMkynXxaZbP+vJ7Z3Wx4b8+B0Ao/G3Vt7Ly0IIjvbu/5/Mvv2Bze89hnFDlItRUNatuVVCFVkaMUS6YIUphHceReZqxNnIeBvb7fVk7gLEdTSfBJaboM4KPpGzIWGIR72lT1iy2xtZZACBBs97d0qx6sja8nAa8c8yLY549Vd3R1B0qK6KyTH7BGIfKmcUJ6rWqO7SZySgOpzMvhyPPhyNZGdbOQbG9+JRZFk8o4QdVVdHWNY3VVCoxjBPjeWBZZoxRnIeBGCSA/scff8Rai3NOkpmWhfPpyOHQ0TQWt0x470QgaCCnyOIdYXG4RRKUzsMoiudlkSlikpWd81GmV5nic18YxoHj8Yh3cymici6cTyeW6GlXPZvtRtKoSjN38TqLL9ezLHLu1E3DetXL7heuQi5QwiZQhrr+vwBqcflyei+z9X//93/n6fmZ8zBye3vLdruV2/Y8s+o31y6GKNSfUG4z18guJV/y58cn8aNdLBPmNdBaayEQaa25ubnhq6++Zrfb8eOPP/L4+MjpdKLvJL1ks9mw2+3YrNc0qxV111N1jRxS5lVItZRb0EXxnGIRfpS/n8qHuUwzyzTLa697Pvn0czA9Octhmy6iJYqXTb8Gd1/EdcZIYUlBiro1CttYbFFQxqKObbsNyUgHldBcuNEKjbENlVGouiIHx3BYiOjraHSJnjB4tA+02qJMLeEAKVFpi8olghDRD2QthVj2pBXWSCEwTtSrzlryrFlCIHpfEo5EWVlp4eiEuGC0BG6nnMgqoHRC6Vg6ucwSI2FymEXUhzG1V+RcU4z/EixgwGo5hIykOqUS2B5DJLiSvHQRxwDH0VEZQ1NZ2u6O+4eWpr2l7W7JuuWwf2YaB7w/8+ZWAOmmrrEBxnlBHY6kbKi7DU3dY5qWOsLiAy5EvJf82tkHGfUuE+fhRFIwLQtN29ItAfQgqDor4fGVbWX3m2WsGUMsau3yecdIygFcwsel+KEl8emCL005sIwnljkyNw3JOTZdf32NnOT52O9fY86MKX5sBfM0sp9GLokph/OJYV6wdcW8LFfoO1CQkeovxsg/jc50zl1VqpfUFinAGucSbX1D2/bUthIgSUhoNE1d07cdfdPQNw0GTVvV7LZbVpVFeU9rFW4YmYeMY0TFeIXJ5CJ8TGWykckUMzRJieUlAlkZbG3odzfUWRNNjV1t+PLrr/j6777m9uGB8wxNt2H/vGcaRipTU9W2oA8NKUSG88AwnDmdTnz352+ZpgWtLb/77W95en6hX23o+jXr9R0+ZIytURiUrglxISRN1pUgUota3/lESDMxhZ9c8DTj7FnSgR+enzmfBimkKdF2a9arG7qmo68qljhBSlitSGgWJ5MF5yPnceLlcML5hK0aVpstMWtcSBgiVdvikyJOI6fhTFO1NHct/WrDm92a6XxinhcOhwNVZfFOmoAUI/v9vjRHgeF04HDc8803gcfHH9jdbMkxsl6vuLu7wZh3KCWeee9mjscDH378gZfDkfM0MbmIdwuVblmWGV2eoWleeHl5YZlmckoM5zOV0dfONnjPd9//mdM8cv/whr/7h7/nF7/4TAIP6pqmqa6f3yUo/kIAq61lf9zzhz/8gY8fP/Ly8oIPgfcPbwUBud381Tr3syi2Ei2WyCoxTgPf//gdZCU+uloO7a5p6JqGh7fvCvfSSpKG0ZLDmGSEq5UQV1LOTMtCuCytFZgSSiBdYaGYZPjss8/453/6NZW1kBPeLRxeXthuN9zd3nB3d8t6s2G32VCvV9i2lZm9kqKWQ3hlKBezuVKK8XxmGifGIta6JLe0dVUOk5b1Zs3NbsfiNSEoQlL4LLA6o8VbmM1PeKWIAvtim9FaobqaHK0cKEVEI+IYC02D1oaktJCAfCgCEcCoa3GEhLaWoGQPWbUd3XorgpWkWHyQ8V5KOB85TrOIii72iWKt0UiSSFPX1LagJrUEEyiTwYhfL4SELnQsrXXpdgV7l4LHaKHwoBLaFBZszEUEFfARQhQxU0we56UwufqSYFLSRpQRJSuGbArqz2p0TGgTcF7iOi5rhrbfFN+uWCzavqGqN6zX97TdDR8+/MDx8MRweuLtuw63nJimswieoEwMauquY7e5hazxIXHe3DItM9M0Mo0jtjYssxGf+DhIZ5eSTBOSiJ2sDVSmFvBGLcEIRlu0rtBNVVSq6dXClAXqwBJJSaYZKYv9wS8z0zBQpcRwnlBa89K0nPcHSe8p9KCqqmRku/hrbN5lhTMvk6xRisJ5mEYmH9FLRYhya3FO0lcuJLifFtuLQ0ApjfeuqF0NVSUdr/w9hVYVb95syUGUwTF5/OJQaWEcAt/+6c/8vq+53XasGkOdApUx2KYWDCuZqCaxTMVADA7vipddKXxZZwh0Q6F1kq5IS/5PVMUjXs4NayqqpqXbSBdkrYzcQ4jUjegocgIXFnIKVFajmorKmFe1/eXiYiwxZg4vL2hdcf9gaJo1xlTM8wx4QKPrBqUstlIoUxNUICGqdiQe4ToFs7nicHgiuAgxMM4SFGGMpW57TN0SEGcBVUWKsyRymYJwzEqcBM5zPJ1JSQI3bm7u2O5usVUjWNsyGTA2Yqq6/MjaR7yzDU1dF2+r8IpzTsW6J9S0w+Eg5+v+hQ8ffuC7b0UsWlUWq+Gzzz/lqy+/5O2bN5AjOSSWcebDDz/wp//8Ez8+fuT5cCBiqdqWdrUmKc16u2UcF07ngaenJ2JJaTodT9TWXp8F5+Qi4LIEO8QcrqstrRUhGkL0wGWNqOXS6maG88K//Lf/xr/8y7/w8cNHTsXXe7Pdsd6s2e1u/mqd+1kU21TGvPoydgye9XpD362oa9nzdJ0Qcd6/e3cdX+qSGpOjCGliigLdLjzg3gvkX9TOuRQ7wzV6Sguuu64sKQZCFuh5jpJfu1mv2W63bLdb+r5n1feoInbwZRR8sUjEmK6+WZXBWMv5dGIaR6Z5vo5S6loEUF3X0bXy300lo6EYZaTko+Ap0TK2zppisRGBjNbiYc1lNFJVlmwSOSiWILsYU9S7Lgu8AF5H6AWhLarmwirOKYOWZCWUJAv1/Yq5QOpDjKhLcEIQ765SFwV5LtL6dI1yk9e3xGJSr5Qp0I6CTQxRLCxJsjNjjjLOU5cg8cRlgm6sIpcDBlQBMFzyfC+HdCQEQ0yx/CTqVLB/TqGzRRlNZQQZqLMiWY0KiUixX6WMMbLnFQ+mwthKFN91w50yKFOx3myZhi13u8Rhj2RkxiMgsIDVZs3t7S1vbh8wRg7m6WZimCamcZDA7kozjWfa45GYRWCijYzBzsMgUxhrsUYKn7XLFWJS2fo6Mhdhb/HfplTsHSKSE/W3fOqXnNfgHcsykVPGzbPwx8tFsK5b1us18yRWoGEY/sJC4b2j73vatqUpHGdFuk52BEc4/oXtLpVnS5J/ArZMHZwXN4EpSUWmHMZil6q4vSnrmJxJUWxyOUbG5Pnu+x9oVeZ223O7afnsfie7yZSosvC3XZDwjxCj+Nq9lyKbkaJ70RGUxBq0QeqYLsEAmSU6rHOo2mLhSqoLQSD607jIbs+HEjsogkJrFH1bFUuhoakqUtuw224xemCevfjeUxIqUl3Rtg3uYp9LEu+2uLIGUILsFCU/aCTmsypKcFOU9CnLxGMcZ6GudRVV1WKrppxTwiYwthYlexZbGcpcf2LOaG1lDaIN/WpNVTfy+cdInGd0uZSt+p6qEOtAgi10AWk0bSOX5/QasJ5yksbDLfjgmJeF03EvKuQsXOaqabi5ueM8jHJBj+Cmhef9if3hxMv+yNP+gLY1G2MxXlKomrblfD5xOpwYTqeyJoRQQj3ausFqLWu3EFnCwjCc2b+88N233wrQo6lZrXrJY7ZyqWxb+U4oMsfTgf/x+9/xh9//jtPpxCV7/bR/kSD79fqv1rmfRbHNOaG0ACtihLq23N3dsNveMI4jkOhXa94+vOWzzz959UxRREgxlxQdD0m9Mo+NwsXLji4WPGIWsc0VGgHTOPDNv/9Pmrbl6fGxjIQMN7sdt7e33NzcXKPLZj8zDWdGt+B9FNvAdZSXrt5YqyvOBSU2F9xX3/XUVc1uu+H+/o66Fo5qSpl1vwJl5csWY4nw0IVMEnFBwAPOL1ehTCg+tNa2kBVRZcIoOZ1KCVpxdDPYLDvBsl+4zE5TAuIiirvgyEpu61qBrWo2mx2jC4RpLkIrUYGHEMlZgY5l94Wg/pIU22Q0Nka0FcuDjPKrwgEO+CCeSq0EY2hMJJEwlZGxNhIo/xe5rfwEen6pslk2nj8Nwb4kjsSQiE3CZovBo2sj+/VGLmmX1yRdlNzx6ns2JWIsN6BzyZi1Neu7W/rNhhQdOY648QeccxwOA9MiE4d+teH+zRs+//wz3j58IrYjFN57sXVMI8MwoivD+Xzm5eWFtuuZ54WUAvM88uHDd6IJ0Kb4hU25JIp3tanKyLyu6btO9raI4Cj6iMoQLpcUabdR5ae8gVzi4TgfC4XHIhnS8rzNy8TpfLza4coQiLYVfGnfrzBNQ1TTVWjmvcfNC6Eo4FXpbC+j5VAunMYYFl9yqbW+AjgufF6tbLH2ObIxxOCJORO8JCtN45H98wu3646H2w3qH/6G5CYsidZk6pSZZvGzzz4yXTy8zuNCLBc+sfnk4r/XVoRSpqqK7zRwHGdSO9CsLF1T0K5ZCeAhDBzPA35ZmMczp/0z0zjRtjWVTmxXNdYouqbC0NHVBqUSj/a5jGwTq3XPer1isy/ai/gAACAASURBVF2z3qyYfWRxnsUFElHCKXxAW0v0SQhypUHQxqCtpipghrpqcGEp7g3RSLRtiamrGlIUbYrVgqHVMUiDkrN4+KtGcmhtiVzUQuRbrzd0fc8lWcc7J8xr27Fe9SVAwECWLFqtDavVugiVIjEsJcNWVmJumYnecQkomH1gGISUZazldF44jY79sDA7UAn84vi4P3McHecpMM6BtrMl5EXLmeQD4+nI8fDCdB6o65olJ8I8EUNku1qz6lfFBmiZpj1Pj09UVcXL07PYfeqG3W7LZrumMpbKWtq25m9+9StiDHz88IHf/tu/8u2f/4Q1WgLvTcM4DByXiXE4/tU697Motrp0YVeDM1lg85WlbirmecAYmOael5cPwKsa1xhT4rfEPmJ0VUDgClcCDK7EJCKVsZJlHuFwEIGH0RXjzS1/+7f/hV//498DiufnPW8e3lEby3QeOaUz//qv/x1rE22jSXhqK97Cuu1QqiIsAvb2LsrIB4WJEVxgu17z7t1bHt498PbtA0llhLajWK02PzkMFUpVV8EXIOPfpEmpAtVJxugshJp5mqlwIllf9aibFc55XAjMIWKTZnQBF8TbtrL2VQU6TSQStbV0rcX2O172T2L6RvHJJ5/IWPTpiR8/fKBRCutl3+qdY0kXOpAUwtcgdEMKjnkRMctuu2M6DyzzwjLPovALvkDPRaDiZ8c0Sne72Wzob1bXg30YBs7LieikIFojEPucM6TXzFgyRJeZw8KiPVqPKKPoNh11Iwe6WmUJo7aWWhlMY2krcyVhRedBSfYtNggCEHPN/7RdjdENlhXji6bfz6wGuLnPPD/+iA9CH/v000+43a2LmT9jbcf5ZFiWmsWtmSaPlE9LXa0KcWhiOB/IYcFqyq5LulVjIadAjAvjcqSqaialeHnOdF1bRrZSjFTO1GV32DSN7GuTJiZ43h+kwLVNWUeYAlBXzN7x4emRYRAhj48Rre2V4d00NV//6u94//49q/WK3/3+9yxPe4ZpunoxUxCLjZifgSh4rlhyZsPicFnU201dwgZSYhoGrK2pqoam7QnaoZsVxhhcSowxgrFos8KlwJ9fRr57Hqj//Mjv//gjD7ue3arjZtXS2QRuJruF6CSsI2pL0OLBlE5fJmo+epIKoCPKRlSjyTZKDrPS2Kbn869+ye2bt9T9lt1mi1LiW/bnidN+T5wGTHZ8/O6PtG2NZWa3Npg8k93AeNzz+PzE6XwmpETftnz55ad89sVX9OsdVduDls9YxUzEs9/vZYSeA+O0YJUhRQmPmMcRpRTr9Zr1es12u2GeHefhzDCcOL2cCzs6USVDpyzDMkpwwCqzWt9wOh6YJpmarNc9khOmubm5Y1mmq7blbrdlvVnRtg1VVRcohb/Gm6okF18NtFbz3LXc7W6LZzYxT2eG4cz5fCLGwHqzLePdPabpSapmjoZxcjw8vMGpNY8n+M3vvsPamvE8cDwceX5+4nA4ME+exRuyVSwuUDeJ3loqDeumxtcVZz8RU2C12dI1NWOcruCiuq4JIUKC0/HM6fTvotFoappG9ABte5naSFMSJ/H/fnz8wJ//4xsao3n/7i1ff/kV6/Wa//W//p2X/QvTOP3VOvezKLZcxrogYpWUipIvkK0pHZC+7v/ypau9/Joi7NRZ5OIUhaMvaub0EztPraqrcEMCpGfQAe8azqc9bStJHXe3W7q2uubFLs6jc6StLZtVw2q1o6pacpb947wEESdphTKaaXbi+wLauuX25oabIrKy1uCDk3/ZoqhT+pL4UdKP9KtFKaoy6szyY6zCE8DPZD9RN4au1rRtJd1FWkjBk0KkrVeIWDXhkkNHUW92rWFTr8qOuRj8M1RGS6GeHXVlqDT0dcWqqbjfbRiXRawpKYgdhRLPFks2ajSkQvOS/bi+jhjneWaZX8k6ulJgwCqF1xqbpVW9jCUlXzWL1aXkHF/ycSVPUjzNKcmt5OKxlUYqlr2rvGbwnroRyEBq2sIoLmK5QotCGbwtI3AAdQmGkH1Z1sXWogSlWDU9q+09Ny7hfBJVZEh8+PjIb3/3W9a9jBKN1kKoQWOrmrruaGrJavXeMZzOnIYJvwiUxCqLIeBjwjtXlPEl6qwIfUiizBdbTboKp+ZpEjtZ09C0DSRhuMTyLOacigG/BKEnsaxppUXZncVbzgWS0TQ0iEUL4OnlRfJsleE//vhHTuOAj6GsODwxFNU9GXsRMpKLlc4UbKaMlavSRYYk+3hlLLZp6NY97z55x6oXwYk+as7TQPDieQwOfDairk2Zj4cR5wOHYebQVqwbTaMSlUpUWRGVaBaSMqiqIrhQ/NYKZQWvmpQiKET3oDVBKZJRuJQZ5gV1OpHHhdUPP9KuNigjk5qL/UqIRLkQHmXFc8krHsfx+nP35oHb+3vuHt6wu73B1qJad6lM55Ls4SW1TLrvFAMuheJQy7RtQ9s22KoixsDj4wdOxzNLwULmICK56Txw3O+Zx4Hz8UxlK/CB939/d43/DDGxPx7IBxG9uWUmX6D/dU1VKZZloGma6/qga1rWfQtKcT6dOJ1O+GVmRpgCAE0jGbJtIw2TQCtm8VAHD2S2p4HD8cw4BU7nhcN5Yn2a6Dczm9GTcmD/cuDl6ZlxHHBLJCYRVKqqRmlbAmqsUMYESVdsQyIQFLysTPMuq5YQgnwXVfHXqyL0LJCKZZ7FIpgiMXrG8cz5dOLbb7/FKMU//OM/8uUXv+CLL77g/fv3fPnl53zzzTf867/961+tcj+TYot0djkVhB8imfdBDkR0eUNMwS++joDVRcXwk1e6dDkXxXIu+x4AZWRcpMkYlbEKOaxSIIYFUqCpNOvtDXXTMY4jk8londlu7uj7ivW6ZrNZYUyN95FpclgbycoQQ2ZZAiGcSU6k4f2q5/ZGOMpd23HhEytyUReBLp3uZREpsAcpvBrZaSuT0al4FKMnRkdOsjuFSIpexDrjgAuBmBW27qiljqCtxlgliSd1TW0rGU2XrNCUM+uuZSIzjnJwtpUhdg1j17Bb9YhWK7GEgAlRUHtkwiU8AdkjVtZQVbZQvUSYIJg2CU2XDtWU9+E1DQQlxfZqF9Je8lpT4esqhEjExVNX9tAJlCpZx5fnoyhMmSBEK9YxhGEaYyTXSQhNJUjAFKJUKpOQy3g6AzrJIldH8dYlDFXTsdneIlmhmcPhhRRmXvYH/scf/kBlMpURMMNms2G9WrNZb9nubtFaMHDjODKcT5zPM8HPxDBfyVrBC7hlHEd08XHnIuTKMXLJdQ1Gi6n+4gv04dVXrgxVLZ9Buk4AChRFZYptG6GhSIHVVmOiJRYBkzEVuuwNXw4HDscjMUQen55IxVKXVb4mqaRULo5FYCLhEFoUumX0b8tEKALKJ0JWdH3Per3l9v6ONw/3VFVDDAkfIk0nO0TvPTkkMJX8Hiozzw41OUlbmjVzo1nXms4aOisXhUtIhtKGQBCfrZJgkKQKxD8mYlzkgqdEUGTmiefDnrMPuAS237K7u6ftVoQI4zQzLwsulBhQIylQKHVVCoeUytga1tstd/dv2N3c0HY96IqY5b31XtKiwoU5XtwLKUVyFE2LtYa6bdlu14DCOc9wOjBPE8E7UoioBCE4pmHgZGuqyjCcRxGWal0mS/EqKvVeIBTOCXlPqXzdI9eNZhptAT7UrNYrbne39H0vU5Oc8MUvm7zAQ8SHbso+uSbnCDmUM06Rk6zHqqqma3u6bsbaM0sJMfAhERPMi+N4Hnk5nAlhKZoQSc2ylThBLhheexWRZupKvNlyRrwyuS/6moswVozKsv9OIRIAlRI42cNLDKbj6emJp6cnvv/+e+q65pe//CWfffoJd/d3PLx9oG0qck5887+/+as17mdRbJVSGGSBrjHkUDjCxougJUswusoaFbUIZC7VttCLLt0xlwNYK7qqw2UtEH0VRSVbyQ4t5Ux2geSF3lJXmlVXsVu3PNzv+PyLzzG2xhchh4+J+/vbkoOayq2S6xdEUYOyLC5wPAygP/CyfyHlzO39Pe8++ZT1ZkVVV3i/EKNCW9mhaCtiGBlv5RJ6Hq7vjb2Yx5V8XMfzkWme8MEX2k1kGAcO4cDHjx/xBU7Rdj3KzVTGUreW7aqhaSq6rqNtW7q2ZZ5nxnFgHMci7towDgPPz4oQFrp1T1cZwjKw6WtyFgiGqSuOk1C+ppyIUR72quTgrlbyZcwxsxQz+jRNLPOCWxZIYg+xKREp3OQi3wrBMU35Ks7xPv6lpaqEM2gk11Mk1VJYFQIMuApgsuy2tRNYhw+J1gfqpqbrOlZK02hd8I+WutLX22/wkRBed44pSeJOQGOUYdeLyX2zWbHdrRnHIz9+/y0vL098+PADfhHcY1NV3Ow23N3dc3/3wLt37+n7DU9Pe/aHE/vDC8PkSdFBCpgsQdfjODMMI8NwEod0eeZTSizVco3RS16+DwJ7ERUmRUBnUMRg8G4hBIdWuajx5YKTtYgGJcijpm4qERNqXUR6wqU2xkKE5/2zhLl7UV/bEjiAVhhVLjxRQU7Ycqm7CIsuzHFjKprVCls3+BCZFk/lA3d3b7i7f8Mnn3zKmzcP1z3hsiys1kKt0ospnslUYAqKhUiKjnnx+Dngx0zsG0JTkdoKg4RMiEahWH6UiO7QhiU4RucYFocLiWQrohZVchMye+dRpmaYHfsp8Onnn3Nzd4/SFfuXF9w0sUwTLmXWtkZVDVQNSRuyqdBVQ92v6KuKm/sHbt68pdvsMFWHj+LnHSf5/RfnmRfZLbvFyf67kK+sEZX/drvh7ds3hJAYx4Hz4RmVi9bCCElsGGbRIoRA21Qssy/THMOHH78nBU8IHpJHEcnJEdzMNJ6AhHeWGBqMSaRwYRinEhf4Cfd399y+uZeksHFkOJ2YzkcRhNU1NLKz1ghQRBdFlg8L0zxxPspYuesadts1wzBxHuerOr1pGrF7jgPDcERrdb3At01F21phcBfb6EU3o7WiaTtypHDBFbaWFVJVV9SVjIpPpyPeLcVcmVm05hJ0krKcv7G8R//223/j+fmZ/X7PV198wde/+iVt2/By2GPrivvbO27v3rBab/9qnft5FFskWk1njUpSCP3scTha25ZiKz9N3aIvOYg5Sc5r4ehe6CEyJo5Mw4T3i9y0M9imRmcELOEDcZnJ3rPbbfnV3/ySX//zP3F7e8dms2G7W+Ocp7nZCk3Je5q2E+Yriml2JJVoqpbe1KRsGc4TcZZ9T9P1rFJCG8Pbd++5ub1HafDRcxxGUo7UqqZWFpRhmCe5gWmFzkISutxo0ZcEHEUi8/z8dA1syDHjgtCp3OI4nI/UtqKrupLPqaSr1TIptSSSm1mCw48nlFbUWlGvBeihtaIxCZ1W/O8/PtIaTa0y275GJ8+mq+i7Gqcs9nBAFRFEiFDXrQSHd71QsVK+puXM83zNrwSJtXLOyQagACdSTsKXDuk6joJXD7XcYjU5SwLTBbOoLhZkJe+dslnSnAo8w5c81JAiMSdc8FRzJePsEK6Xj7quC1Um/4UvOhblqEBJMsFWxMVBHWisKJDftA/843/9Ne8e3vLy/Mjz00fm4SjTGpWZx4GnxyPD2fH8fKDreuZlYVkc8yyHfAwenTNNW0OusPYS+7hm1bXXFco4jlflu3PudVeutexBy1ogeoebNDmqMgXJKCuh6eIlrEqncUmCigzjiXl2eCfRgCEEiV+r60I3EvGOMoo393fI+lVUrjn6qx9+mYUidFkJaCNFsqob6k5jMyzTLEUlBLpuxd2be969f8cnn76nbmu88yitqVvxul/CRnLOBFMoaAqa6g1pGUh+JrmJOTrUHPEJQV8ajVEWNCwpsNntxG6kNedp4vB45nA+cxwGzs6LH11pojaYbqTeH0loztPCmDRea8YkQY/f/uefGYdRtAjzRKos7W7Hepo5Tp4laXLVstoa1qai7jZEDJMLTGFkdpHZBc6DYwmBEHNBKWqMQuxqRZuilELlgJvOnA+Sw70sM6TIumuKAFGTveOcAslH4qJoVne0G0tdN2z7ho8fvkPl4s+3AmPQ1FiVChd9IGfZzT5/FEDGssxM40iMgQ8P73j78I4vvviC9XqDUom60owpkiN4NxPCwvn4Il5h7/DeMY5nmWwVr3mKmb5pYSPiqmEcr1YtN088PT0xTsOr4yEGVNZUVkuGdb4IY6Pk4cZLspm4Ki6rCtEvmII0Nbx9+4aq1iI2LROkUohEmKkviVCys92/HJkmwTn26xW2anAu8PT0wuPzE5998ilPT8J0+Gt//SyKLQAlbNhgxK+YRcmqlRZ/oTLoYupXxQSnkvx/JFL6NTpOXKNl5JYyKssDW2mJW0slD06hqK1hu1nz2Sef8Nkn71mv1+KdqxQhRCoLdaOLgtMBFVlbbN1KcHOCEDIv+wMvLwfGcWGe/TUw3lY1dbtCGUtIgcUHYeUa0CnhY2L2nul8BgpBy9Yi4y+ZtG6R8PDLbnRxMz5ekoMCVkmwfLdq6Tad+IkLZ9loxTCemaeJ6SeH9IUd3Pc9fS/KwrcPb2XK0FTkvkMlT/LCpe4qyzyP1G1HXYnxftU2uK4lBlfem0wKHr9MxOCFRlSoUanE+RmrxcsYIiEF8PJwy6dY9rCqjNdzsfdcOt/SwRLEb5xMKgcQ5VfKDldlVVB/8h5zydlVF9uRjBFRClPZ61g/pYT5CXjhcknTFwtNykRJTCAXwlIqfuLaGrY3d0WRvKbrVwyHF0LpKOuqFbpZhnGaiiLbCefbCxHKO9kp13pFCgFylgSn9Zr72xuqSoK9X15eOJ9OBQSxyK3fGHlGg5dDScF1J5MlLQlbUVlFVZlrbqg2mhhlmiL7YXk+QxAqlo+e6EQ8Zqx4lE2S30tob410xHVDTpGqqjidTmIxKpnUznvxaWawMVLFwOTEhqONpWob7h/ecPfmDdvdjqoRr6bSoK2iair6dS8rBmBxjhwrOZgv+82yk83KElMguSiF3CdSV9NUcjnLVWR9/0C/6tHGkp4eSYcDDsWUMlMIhKwK61qDdzhliCgm5zkvMy5FkpId+WkcOZ+liOQYr5GULiMJPbbCKDB1g61qkjZMLqLSIv7wkFh8ZF6iIAdLApVWis1mRYqiyr5cUsmZ5BfG014mHM7hllGah5iK7SrTNPLvu+pbbrbr64Ssayqs5soDCCGglHDVU3Tk5HDLRIyBED37pxexOjpX9rlij0zB09QWf3d3XRPFKLqW4GXfuUwjixul2DrHNA+Fm+xKJJ7k2uaUrhap2moqo6RD12LLbJtaVjp+kZ2tkvWGUhebm0yjVCmmcp4EdAmUEW1NWb8Au5sdq7Uw4FMSLCMg+1tzmSSq0jXD8/Mzw3jGOUnEGqeRvut5ePuOaRnZH458+PjIy/7wV0vcz6LYXsa/l9m6LiNFKZLm6s0DAVNkXXyi5EIwKjvbiyNEi4DKGk2OMrs3WqLZTNlVCTu5pq4Md7e3vH/3lvvbG5q2ESpUUQpbC8ZklE7yJY4KMOiqQWnNsgSmZeTpZV+CogM5G7quw1Q1tm4wVU1CMm4XH3AxYrQhpIyPCZaFcZpRqviBCwDgIixanMSfyf92WC07nkt5Aqjqir7r5VAqjNsQIn5aODw98vz8zMcPH5jm6WqPSSmy2+642W25v79jt5KYqZxSgYtHcvRobelqy3BcUE1DpSXqq2sawqqDHAneMTvZ86ZiPUopE65xVqCNKqb8jNMIED7nayJPvije9AW0ka94NG3E0ymOH/lPKrtHjfoLupYqI+ZUMoBfi60qa5qSDOIV1rny+0uBlXCD1yzMS+ddaj4pRLISDN8F95mxZDJt27E1lrbt5IteNUzDmWk8k5MiBhmRh8WzeFdGu7IXCtdiq2iMQaUyBtaavuu5vb2jbRsAEQkVNuyyOJzKJG1QQIieFMW/ebFQWSO8Zm2MkMasBIubsl/Uhd6l/CVFSKx4VWXlQpcC2WfqWKONwtYWhfzz9XolnvGuux5owlc+My2zWO2gJABJYMQSAkwOZSz9esOm63n7/j33b96w3qzlGSwIUflzVHRd8ZqnROMaebYWiMkVAQyAJitLyFrIbSS8k9zSpC2NMmAb+ptbdjc7TGUZYkD98CPRGDzgM/gChTFlT62cI6IlOMJ78XtrsRzOwTEHhwtBxHdKuuKsDNgK0yR0quQ5slYKufNkJxMwFzM+yE/OMjXLWcbwVSXrrxREpHcRKqSYmEdHCHI+uEm6z1QmL1pruqaS9JxVx812VbzOUkwqnfFF+BeD6CykqC8EP7NMA84tzMvED99/e3UvRC9Wrdpa6sqy26wxqqANi7AoKi2F2nvG4cQ0n/HOEdwixXaRNdLiHG2/Eh2OsfRdy3a9Zt339G0jBLemIvYdRmuWZWaIi4zKraGuK9kDX9YhOWONLWrjgNOBqq5ou5auXRcLqZwNu/WOypqiD5H3TDzMCmNVUWIX+6FW3N7eimVvGvj44QPH44m6rllvNiQSf/rxT3z/w4/s/28otiBf8pSD7H605J1iQFmFsqIqTSQ2u82rcCVf0kTkr9e/dxHaRIJbrurlylblsh9pGsvDm3s2mxXv37/n3btPqCuxQ2grIhFbXZTLssNq247JK5YAbWtZfOJwnnh8fOb55UBGU7UdxtTy4RUqT0wZ5wPOyfI/I/vBjKDXRN2pRITiIyc3iKetdD0oEbhcxiUuS3pRU3fU67pgxpoSw1f2zPPMNE388X9+wx//4xu+/+5b/vTn/7xiy0SE5GnrpiDSbjm8PLPdbmmaWjqhnGTnWDqYl8ePJL8QtEZVHdtNT9vJr9dG8/HjR2bn8MFJbF0RZJi6Kh7WfL2ha6UIl6JXlK5KK5RRGGWvO5h8SYksgjEZS+ay245i8i/4zcuFTF5MxufGiMGGMhUpks4yCRFvqMFAElgGZSxqjSmG/WLJUrLLSQU6EFSmbWtZeYSIcx6FXOiqekXXOcIcWZaICyOPTyfm6UyKYi2CiFtGgp/xQUbmKUaMMlTaFCOY2I26ruH29obVqkdpmKeBYTgxz2Px5gpxjPK5ik2pkcScvmW1brBllaAN11241uIf1lpEYev1WjzhyG7VmprHpyeOp6Ps9peBum5ouhKbtlnRNDVt27DZrAtZSaYxp9ORqVwmLtmhgIAlfCRlz+b2lpu7O77+5a/4+3/8B9brLRnES7sIJCKnjK0MmIaQBWOK1rSNYxpHiY1zTp6hMipO2oulJyTGFAnZMEfoO8umr9BtT73Z0rQtq2mhXq0xpzPYM8kYQvGeam1wMRLjIqrprBimgdktZSUhF0RTVXTGknMuI/eGuu1YbTe0secSI+mcK0AYuQjPIUsARSqjfIzwr2MkJsf+8VAi6wZAglLqqqYptpyL2vm0f2E4nYHXhLKbTS/Rf+s1N9vVtaP0bhRRWBRltzCAkR2um1jGI8NJ1L/LPFGZxOzF3eC9o6lq8epHj5sHzsfiNlgch5fDNbc2xoBfJuZZLgLeCz1NBJJiHbo3hubOsNnuePvwwKefRHa3t2y2N/SrNXc3W253O1CK4/nMxw/f0dY1d3c3bDcr3DxSV4bGysSn71dXu5u1A7vdjt3uhs16x9PLM1ob+q7l3fv3RV/AdbR8GdMbo8oEpXR/wLt37wgxcCoTjG+/+5bT+cR2u+Xx+Znf/OY3/PjhR06n/xuKrQJMEn+eUmLnIJXOb2J2Z1yYCGnmN/8mOLjLL7S2eDUp+1qtsVZRVxXb7ZppOMuyO16cryJpX/c9X75/x1dffs3bt295ePdOkGI54ifPMI0s3nM+n5iXSW7U/YaoagKWpB4Zx0VELOOEQtO2K8wFx3aUh7+uPdVhzxI8Pni8F3pKVBlT8JLRL5LxmQVafj6fcctCBurCZjZVjTKianx6fqKuG1a9olutMVWNj4nxcOR0PDKMg/B3p5nf/n//nQ8//Mj+5YX9y0GKUBmbzvPIIez5+FHz/fffczgceHh4QCEw76+//pq3bx8AaJqmYCULl7fKVNZQ24raWjGlK/E2p5wF4H8B2/tAjnshaRWgiCjCLwg4uSipLKsCayVfVuAlUTqrsmPSXILoX78sSalrxysd6eWhKp2prqDYqEDU7Bc1c/CJJYk62jkRPhlriNZCpcjJlM5Xpg0UlW9SmeN5oG0bjNakmKhMi2or6qrh5r7m/u49w/nE09MHPj4+kxY5bKNzxDixLKOoXwlUJZFQ7DYGayqZ7BhL1VToShfFcJYLiVVoA5mC50zFzHLNQ87UjaJuFE0jgfVGQ1tXV7WsjJpNiZ2UahxDQhkBDojOW1KsYkHdiYClZbXp2e5WuGkheAn/0EpsQxeB2bIshdubr+JPKeSW1WbF559/zudffMlnX/yCpu/wORa+7YibRoHCK0XdtIB8Lm3X0ncrCZgfxIPpvScuMtrMGag7dNZk54jecfKZ+TwzLBqXLH/64SNTyKzWK5YApu5QtiagmRbBiebkmb1ELmZlhamsrUTSHQ6cjifZDfogyrksJLPFzaQUqeuK9+/fU1UG7wPn84mPHx/xXr7j3geC81JoUSis7CpdYF4W5ukMaUTrzKqpubu75ebmltVKMo+bumEcBw7HI999+y2//93vJBRDK3xXU2nwGiYSBw3L/Hp5T8HJ90dfGOsSZuLcwjIPGA19V9PUhhhaxtGW6VpFbcTT6t3E/vmRaTjLdym9XvaUgspA3bc0tS1j5JaubSRBx4jOYbe75f7NO9brLXXbMjtPQmyZh/0z43Bid3PLze0tbVcR3UBdV+xudvRtQ/QCzJA1VShjX0Pfr3AuXMNSqoJwvZCv+r6nJIWKpdQWy6a6GNWKTajUmZhlJL1arfjqq6952j/z4fGR//zzt8xu4TQMNG3L/f09/+//85v/Y5n7eRRbQJkEUcaNWSW5NabIHCbG5SzFIYwsaQalrm+sraXlV2WUaCshz7s2vAAAIABJREFUfzSxQleJ4XxkWZwQkGLGmIr1ak3dNPSbLW8/+ZTbu3tMLXN95xLD6PnxwwvTIlFM0zzJA9J7kq6JyuIjeBfLzghZmntPduE63okp4UNAV1bSK0rBTUmSNmwlo7zkPadFKCohOMZxIpfoJ2sbtJGbW4pJgpNdJAYZ0Sll6Vc9F7j749ML+5d9Uf7O7A8nFu/JKKq6ue64LgShFCMqJoytuL17w2a747Df88MPP/Lu3XvO5xFbVdS1ADzmMBJipFaUjLKEJtPWNbe7mzLN06AsPkrHN44zp+qEmuQzjSFerVmqrAHUZSGXKPt76axzknGdqN8u6wJVQt8L3/oyRgZeI1x+6sGW4nFdN4iZ9yreIeUrBrOu6mIbei3sWmsZSyf5c2cyScEyjqBEVR1dZLATOStiDZWxdH0PJbv1l7/8L3z8+D2n4wvn4wvjKOIflQ0Sj/e6tY45opJQeVJOjMvE6XzCl7348XzkNJ6YlomU4+vol4zVCA3JgNKS3BtTQCeJZ7NGvjNcvObx4t0tNjolsXgoGaVWlaFpJOPTj7J7vyA+SZG2rln1Heu+p25a2kZ45hcrVyoilpQhK132aC33Dw989otf8P7TT7i5uyPDVfmfVRmHp3Td58tHIvaXpm640LBcEVEVobGAG7TF1DJVQmlJxIrC1DZT5OPTCwnF1nu0taXdt8Qk3GRKp++T2H1MdbEdGlLZbXu3YHQFKUlMp9LEKKjSpqnYbVeSd92I5Wx/HCBnXvZ7hiGgSKiiFgfRI6QcyHEhugk3nUlxpG0ruvWWh/s7drsdfdfRNuKxzckzjZqcArVReCR+0U1j6TxHZlsRlqnYieTiFLyTMWn52oToSvfpCNFRV5a6XxdRkZaoxiiTqaZqaJqWqmRtW2MlTKRczoRe9woqykksnN4XXcdFBGoMddPRNjVaiz5DkeX9DQnnvMShkop3uwCPsi1rxyJsyhIAk8o/V0h3LyStBVvNdL1c+nTxoscU5HKpVMn2Tq8sbC5HzHWvSUaagZAid/f3KGs4Ho8Ye+a+e0PdCM5yvVr91Rr38yi2OqOrjLrsfCgpJikw+4HJj8I9joY5jMU+IDfyKjavY0SlqGmIqhKSzRA4D/sSgO1JAZq6k7Qeq1nf3HDz8Ja+X7PMDp8S0xzYH2d++LBnXGZO5xPL4mjaBrsosnFEpSXSKeuiGG0AxbzMhJDwXhivzstuLisY54kQfIkJFIShZOHKfu7l6QW3zMJoDiI0UcqilVB+Qggsc+B8HFnmSM6eaXIEn3FOHp4QIqfjmcfHF+lwz2eGcS6XgZq2X7G4Be88SUXQIgQAqKqGr3/5N7RtjfOeaXaM88LxPKDKAXmzuyGP87XTvIztc8pU2lCt25KFWxGzvB/jOBG8CHZSiiXb15cYwutMooAoLvsfyrMgDVtOheF63aICBS+o1OuryEvpa4crFzfFhcyVVTmic6nrBb5wEdUppUWEl7gK6wTfqMt4rPxiaaSZllmEcDYRXECpkRgyro50dUffKbSt6fotf/t3/5V+1fP48Qc+WgMqoE0mhgqURykRwSl06QDlvQg5wzTyfHimHisgsz/sOQ1nFr+IErv4yvVl51QbTC2wjkwgRCeFIcv3xFp7Ve6ngqpUKqC1LQAQQRpqK51B01R0bY13M1qVC1MMeLdws9mx7nvWq566bmibWkLotWQnq/I5p/L+1k3Lervjk08+5bNffM6bt+9Y77b44EtGaSz7+AvDOxcEqqi6ldESw4jBOYuxRg7DLCrelDKVMphankOtLcs8kcIiJKrZ8fSyJ2ZwIbLabonFh5uyIFeNltdMMaGUwWpBfVor8XkkyQbOKl+DN4w1xKAk57gWYdIvPntPV8ved7MRtbJbJpZpQBMFwkCRG+RIzB6dHISZ6MV33daKtrZs1z19W1NbDTkQXGSZzoznA6fDCxrRWaQcJVN2zFetipu38mxrhSq+d/nei8J3mgYWtxCCx1rN9uENu+2G9XpF04hOQGuFNbK6gosPXPK5jZFwF8q5rUvXaCt7zYWVdUK4rix84WDnnHGLKNd9LDzrIAWwsoYYA8P5zLzMEqmqFcE7gs54J0XYlTxa52bIma7r5Lx0DjPJOs15jzEZGz3zPEFdk4q4kp+oX3LOpcu9XArkQu+8J6TAZrvF1DVdv2J1PvP23Rvevn9PyukaIfl/+uvnUWzJ1BuLTboIRoLkd6bEcdmzfZAbw8WQrEpYuDFC8rko0GQXlQjaEdPCPB5xYQEDpjM0puZ294Zffv23/PrX/8zf/9M/o+uWx8OZ77/7wDDODNMsCj9v0PUNt2/foI3sEGNOpPLBxPwaSh+LjUV2LZT0F6CEH19n+Uoedq0pPFpdYAqGaS7eU93Q9LXgF+uKnAz7lzPDMDEMZ15enpmmhaqyNE1N8CPn00RVSdJN22zI6YX9fuCbb74Rm9OFT5ukddGmobENTbcRlXPw6LriOEx8/+GRZU784qu/4cfHZ4bZ4WLm9s07TLui7gKhwDvk+6WuySZ+nhHHjmJxkfM0cjqdeXnZ8/jxiePhxDROAibIr1mnRMjKAhalKqz12Iti1lqqqkFhXrtfIEVTOtxyPb/AHpKUKvTF0ymj0Ndut9DKLh3xT/rdnGEYJhSiXq8rsciIurtk7F5sNSSCSuxfDrLrUYZl+v+pe3MYybIsTe+721tscfdYM7OyupZeqqdnWuEoVAlQIkFgtAEokQSBUUido1EdlQABAiMQ5ChcNFKgRmAwEgViBqTA7qnurq7OrIzM2Hyx7S13o3DufWYeGZlZaJJA8QUC4eFu7m727N57zvnPf/7fc3QjTdOx6keOJ5lxtkYkOJ+9+BGb7TUvP/2U3cNbxvGBeT4R5oEURRIOlFgXZr30vuZ55n6/K8lNwjrFZ59/SkoBP0lbgiQHn7Wavheln8Y5bEmmjJIAGEKC0Rf9cEPTqLPYRbkl2qiyVrKQoIow+3q1koRFi9DKYb/HKU2jDUPTMtuRw+6BY+ltWWtxjYzYRBTZWF68eMmnP/qcP/jFL7h+8hTrGmE+owkhipj8/oEXT27O+12BMZa+E/vElODu9paH+z27+3JfimtYzJmcI51rabuOZrsVQs5wIE4niAdiVBwPI95n7ncndocHjocTySe6tufq+oam6UReEoVtGjkDtOOTTz7januNPw4Mwx3btiFGjw8jJnvwAw/vvuHXf/Fn/L1f/JS7uzuGQfxWdZzoLbQmc398oHUdlYcwDBMqK1z2dDoSHdC1NI1mHA781V/+aylAoiSsh8OB+/t77u/veffuHVYbrq+v2Ww2pJh4//aNjFo5R1dm67UqVbAzNK2IggxHL2ITOUDykDTbdc/11Yb1erXwIhRAjIynw4KELGgI4/I6avKdU1FeK9MPwrPxZf8Iuz8mkYVV2mALmVRpTcpyPo6TR42ChhjjaJwlp8ju4YG46kq7SdZ117T0XSsQtnPcPHkGCD+haRr0OC5e6a/fvmXdijGBUaDs2QVOVOegmtdkZLY4I1vi4X5PQow2ttstx2HC2u8PsvX6nQi22mg2170otxSYUaQJ84KbA0vmUXkuoMhlBpXSZjJKlWwf8InNVSfTD0njTMfP//AP+Dt/8nf5xZ/8Cdo1/OpvvuTh/sB+P6KUJStxxegbLeLcrsFYi9KWlMXOLaYZH2dCEVuIJpUKLJfnLAuua1x5u4CUlq+lQjkP3pPnUs0HqU4imXEIRfze0rYTTeOkx+MzRje0jSo2g07IPwV2VWjaZsXz5y8x2tK2Pb8ppKhKKkvxTJASyr4YNAw+8L//q/8TlXMRIF/T9xuyEiLY7jDwLGSM63BZl/GQgbHIMN7vHhineUGBfRDIu460RC9yln3b0rlGRNUp+tbaYFwLNKAasTRrnBzWVj7WRS2mxtsqkFCZwxVhpnxNG1EHslY0g8X1KV8c4FUEpaoqyf2vzFalFLZUgTXYVgJWldGj2CxSyG1GiXuTNWIS4FyDLYP35EC/7knxmhSfMftPiPOhEKQGQhgFcguB4TCIkUIIUkGGWdiopRLXSP+6arfmJDAppUJ3VhUDAyF8KDQGg1Uap+3iNSsVYVpminMWM3Jx09JUd6lqHjFPE74oJYHCasOT7ZbNqscVBv9m3fPy+TOMtYzF1i6kxOADTddz8/QZz1684Pr6CV3fowpMeRoHhjIS5ZwjFxiyMsUpvWOVIMbMaTjxsLsrYxl7YeyWYJQA7xWS9jagpYWSo2e/H0jBESJ0CZqUOewHxnFGa8svfvF3+Pv/xt/n6bPnNG1HKKI5KSNavE1HRoRW7m7v0EaJL/F44u7BY3Jgf3fLX4WJf/HPW9HMHYSc9PXXX7Pf7ZlnMX74+c9+n9VqjTUWPwmidXf3wNt54M39e6Y4ooywvsmKaRqldzrOhOhl1CfEUiUbop+YB4U1jnXfLMTOGCbCLGs+pkAInqaV9lvwAWs161VPzq1AumTGUcb3RHVN3u+q9KaoLZxqklH2iy1Sn7nuta5aX5R9KdtMmL4GH+tZrooFp4x91pHBqYjzWCsIxqpvUblyRQzTKJWss5a2kXFJECvDy5hRswURuIl4PxGmSfZROStk1Ewv+2L5/pz4Yv9lsWPMSyCu51AuPImL3/ad1+9GsNWKvm+WsQGxvqpjBMsE5RJsYxEryDkTygEjvbm8CBxoZAE0zhK8MO6sMzx/+ZwXn7zg5ukTpsHz5t17Hh6ORC9at9aKP6PSlqwaUA50gzJONGuzkVmvAJpA1JqYEliBGVN9DbEkCRXKLC4jiVwyvVCk2BIxZhHWT+LS4r0nxUxOQcZ4ioqR9DoVRguEmrMqms9ymOeiymS0ZbXa8PzZC3xBClIUYkaMYalEQ5nTDMWP93ga8NNM2wk5y1iLjwlzGnnYCyQdUyIEcR2KKYkowzAxDjNz8NIbNeJO07hmsYRT2hJWcRnlMdqUzauk+mt6cnakbIutncNYGfty1gk5CHURbIXUcCb6VEC6spOLBKPVEqhIC3O5BlsNC5xaZQylQq795GJurovzjynVdWErameWYCt0L1OM66vfshWpQiVsT6UimlTMAq/JcSTHWQb/w1hGLDzjcRTGZumjzfMofccUJWlLXp4rpXeaIzkGqs61Xl6rwlrRgLUYkW7UZ+YlsCA0l3OItb8tL0stvWM/C6NWLDHlffvRy09Y9Wuca2SoPxdxk9WKYQpFtCIyeE+7WrO9vubqicj9WSsCIvM8czwe8SEAmaZppfIuz1HOBOkZBjTBBw6HHbvdPQ8Pd0zDLG2HMldPSiVxkX6pQaGKoEkIiSFNy2jcqsCg280V6/WGn//05/zhH/whL168pOk7YsxF31uchIKPDOPE4XhidLY47yR09uzJqBQ47u+4u32Dn07ieTpNzN7z5s1r5jlgjeP58+c0TrNZdfTdStSVfCDMI+/feB7u3jLMI0llaQfELC0gL/KllQxXddeUhUllVIqs11vatpFZ9ijzripJv1tm94szmFYE72m7RrTMjYiobNbCMrfWLEIquXAmtNLFU7nIcGoJIYLYFQ/qSnoou2I552XHLcHPFbCtDDwKeS5nlErS6oDFShR0GQmtQTsXH+bi52ytFBVFzKIcCpIgK800ybpVWskanmUP1d6yKqpq5++lnCeZcZoRz/WLcLrse2lvUN6H77t+J4Kt0oqub6jzTsu8Xq3ALl5EQvqdsTAeKaMsQJnPzKX5r0p1iEju5YS2iqfPZMbONQ2vv3nH2/e3HA8TjdvI3TAanTRk0Us1OWFzomlF41bk7jIglYZWYDEiM0ledHfFhi4vFZipVVhJgpakIkqwTUF0amPkQm1JBPjn5JdERBa8Ef3cUGGzjK8BxOhFDGSzueL3N+sLGOeigkmpsB8F/p6miS+++ILX+68Zp0mcMUp1E2KiX6148XwnmyIlQig9RS8EMWMcvW2wTYNrRXEoZ2Hw+rIJipIEy2ws0md0xmJdR4iaGMX0/rI1YLQjVW5U6beqkokunKmyBjIXYy1Gnn/OAZmtpsyV6gvW8vn7Zeb3DFVXcpSYYIikoV6Ce0Y3rgRegX4rg1c0WA2K8p4j/SWjwWhhaloLRsmhl5InxamQnUSMRawZheQ2DEfRrg6e6GemeShCIjLXTBLEQkWZ2V2qEVGFwFiLUxZ3EWzrPbi8d7K/kIq6rBMh6VmqocQ4juQk882ta/iDn/2M9WpNznAaJlarDcdhZHs8cRhFFckHYfV2xa6tX6/p+xXKWLGoG0eOxyNKa9rG0XUCEVIUvOZ5LtaP8t6M48z93Xvub99xf3eLyqoc5LI+kg9Lv9JaJ6NUKpPDTMrSax+nCTeOZAVPnz6l7zvW6xU///nP+fTlp9w8eULbd6SUykhTZjiN7PdHcogMOZODL31hBVajs0fHmf1+x1evXvHLP/8zSZiiGJXf3t5irePq6pq2seicaJ1hvWrpm4Z5DjzcviP5kTfffMXoZ0mGtLwx+aJ1dU4cNQaILhBmTWgaVv2KvmuZlBC5jodp0dJOyJr2ZT7WT9IHbaylbVu22y0vnj2j6zuaRpi7sRq5xFT6/nb53SqXEKPkOcViylCNX1I4t3dKi7oQRyNwbmHEHPGxGn9IkRVzsfXzM23XMJ5GlJI5W43idDyIMEfToJRazs1agcpomyVmOJ2OuNBI0uhn/FC1lqus4/ncOCNYgtL1/eq8V9S5nQkSb87ckf8/BFsEsqvXcnCWKtZeNK+TElH4EAUyqDJzaSlH8vL5nCPH00iYEgrLei2avcfjkV/+8pf8+ldfs98PaCX6rSlFDocjs4+chpGQNV3f06/W3Nw8oV9ZhuMdx/17Zn8kzNJDy0qUfhRCsPA+Ms8Trm2KdqwMW1eZPOcEGlFWgbUorFSnAmxAEsJICNKfmfxcxpcCIcqwfSWRaCSY1wUtxvOxqNZYpkhxIjJYwbOX+yybISxMvu12i58nHu7vOR6PQpE3wsI8nUROrbIOjXEo3dC2Dtf0tP22jF0JTImRHjew2CAuTUEoog2SBaucyUqjtANlqWb3ApSWkFjYg5JL6jKeUjdrOWQzi3FALNZ0EKmTLFnXNVQzdL300esGsoXosQTfuvl0GQ+ola0SlvSSCasi2FGhFeQxcsfl64laPGd8AoPAaVprrOuw9QD0Aac6sGtsM9OsJnHASqEwjyM5eeZp4HQoUHRRqgrzTI4BbUTAoLGOzhpMSpiYsEqVykTWjVa6JICVE54XkYDqP9s0TSFViVRkihGNEuEWZPwlxUicJ/wwMh6O7O4fuD8OKGuxTct2e83q6oq278soj2I8njiVeXCtdXGWEXeZFMUUfCyuOZT3OfrAYbfnzdevuL+/ZxqPdM0KpQQ1STGKwEM4m9bnwrTTOdNZJWzXUVAaHyM//ulP+OlPf8qPf/w5q1XPfr9nGAZ5HinRti1ai0jLPI746USYThADTjUoq1HZsm4bbq63zF7Gob764iuMtSKAQSb4iTDPaODh7pZf//pXvH3zDY2T1kPOma9fveKLL/+aw2EPtiTwZZ3ZEhCNMUVRSXxcR++lAtWiC9CvOtbrNfp4Yh4GsUqsASKLDkFNNKukYd+Xmdyba66urmgKS3g4CQQefCya45fokCEvAbLokEdxG6uuXdGf5+tVkr2Xi8mCKvuvEtx8DAtRSSMB0DpT2O2KprWiqNY4iIkwCxratR2r1Yqbm5slUKqi162Noe167h7uadqW9Xot1fBCilTL69FKydmqL9NwHsPS6nzf6r8fiup81/U7EWxJiTSH5bnmiyeuc2WiyjRazhmdFAbJ2rVVxCSLkosMvdor5SjWXo3r2ay3OOc4HU/c3x149dUrcm5omzXBTYTRcxwmgYkOA8o5cr6haTSKTYExBLoLfhayT+lr1P5jJf6EEIj7Oh8qdnO191CJP0t2qAyu6YTVZxytcyXTAvFlll5byiIOn7xYmmXE1aVKDioQ95EYJUhpxVznHDPCri3m8QvcXYKt9zN3t++lQkJUhxrnylylFQAoREkQUEWZRz6Wd0aMnKWaFWJYLALqWBYFRunRCkqg5G0ll75eru5FpHMABSg/vzJcjZJ7XN9tVQKcvD9iVFDEdM4QWJReXySWoC0kKJagI+9foMo1CoRUFaUWAl6FvXK+OHT00nNSdczoEo5Ssl5rb1hlYdfWWT9tNK7IS2Y0PipilrlOZVsULeQJVFigaEXCNVtW62eE+YSfxSM4xBlV/WQpKlQp0htFbzQ6R4qFQ7mzpWwCclaoHMsalgQsefFUVUEQm/kk9mMKMBlef/UVVe3Lx8wwzRzHmWkYpZpy4lG77lePKurgA6dhWCQdV6vVotwzjiP73T2H3Y5xGPDzTNd1kDPzNPP+3Tv2Dw/EecZpTeOAmElEEcZBGP+os3hL8F6YscYKa1cpYk7sjwfevH0rFfeqx7qXdI1DGcUcZ2Hu51hsHRU5x0cygn3XYp2G3JOS55NPP0Nbx93dPe/f3S+GDj6K/vMwTozzzPu7O375F39JZfWnkHDGcDgcuLu7E0QpyRiUrHmFyoJGRV8Kkiz71JoWlKiTjWPmdNiLrnKUed+q8pVy4jicGMdJZn2DZxxGIfwUVybrDL95VYh5fsYqmROW5yjKcNZKAWHN2a40I8VOzMvGK3vE4owgPFbLWVf7sLrAtwIhZzkDCsy8iAuVdki/6giTF9EXJ77Ixojsa9e2YuT+geFFzNK200YvrYicc+G7nBE2VfqQ0n5UFYBbLvFHfxxe6r4+Ey7PyfV3Xb8TwTbnTBhnFueXpdKoL6BURQoR0AbkABa7s6hqv+mC7EImKUPSYJRb3H6iF33ih1sZj3F2hc4G34x4r5iGQUzZx5FGdYBHq4gxEREpFBeLFAJjgfrGeYRigXUJzfkyyqBKJaW1KQzZ0v9b6PiGtluLlrF1rDoZT5KqUhVz9rIYjEFnJfBNRpxPXPW/ldGPnGofRdMkgd4rJpJzpGpIpygkHPHeNFgtBKYYxDWm70SZarVaseo7bGGBJzSlvUbtwWQlUGrOZ+/TOgtJhjrlqpVsusbZYtAsULMOVfxA4KMKI8mmLc87SRWKEqu2WjEKjGNK0NMUuYwSNC6JUALFVRBEWOMXwVZrFg1aav83PoKWgCL0fyntWJKmi2BL7XdC6W82cpAkSrAVVELmxTPRsGz6hBERBax46KoyDpSl/6yy6N9a09A0ArNb65eqV5PIWYKlnz1pHlAqleBT+tJlr9TnUp8bZV63JmI5Z1TMZC1uW2nyi/Rf0B6fBqBCiIaQkpjXO0c2Ftv1NG0r/1/moosd4DwXbV61jE147xmGE+/fveew3+EnEWBw1pKjVKSHw45pHMgpYbV4WCdkjlYYtX7ZL5KEB1KcSTExpyQsfyXnzBwDt/f3tF2HcQbXWJ4/eypz5JnFd9poLeuvwIWmVF3O1soLrq5uWK83bMaR7faapukIKSwz7bmusQyH44lX33wjSXkIaCUyiOMwcDgcCCkQUsI4S9vImbDwVIqWr7MOZ60UEKdTgVAT0ziK8EXbsFr13Nzc0LaiA3C/e+CwP7I/HRinicPxSNsVqdd+RQyRcZrlXBtOdE23+PbmJP1tVfgJWVP2XAk4RgmzuexArTVWu0WhyRl7PgN12S9FYCWVfV+DrTVW/K6ztH+6riVMXip8Y5mNICLBh0VBr2mEra60EJ5CKloCOVKZP0pR9A2K2QA1418wt2/1XnM5P+Sfc0BVBa5W9XjVfO/1OxFsU8yMh+FcnSxjPKXyMGe4AaTHW2cf0eAo8OASbCOg0c5CTFIVKctxt2d3e0+MitPhSPaROYyoLIsiokULmIhzmXVvWfeGVa9pmoRmRmVPzsKwPe337PY7docdYZ4xRi1zjAuZpvafL0go5Lz0COrhbMuogTGumDS3S7/Mlg0lDhaihmKR91/EuGPpHWgaV1KREgBaJQpbjxh25bmItJ4E3+A7Xj57xvD5Z+x3O+Zp5ma74fr6hqurLU+fPmG76UlZE6JUrz5V+FoWnVX1fRE7O31mIBXnErk/zhi6pl3mMXMSQfWYIzFFkXEMkRBECjHESIiV6X2Wu0RrMgpj2jIeYDGmKbBvrWpFsF6UkDI5iSZz/DBNVepx/7cEhUtC1bJey/1rTbNUsLWPXCHlXH5eJVDZ8tiFG6yKJKMCSEyVUKI1rm2oWz+RiFkqo9mLcTpRkj6xM9PkVIhYthXTb6tEOCV4UOKsczzu2J326DQV5nJ52blAYpnF2L3CdmH2qCzerkuyEYSQorVGpYQzBaEgEbE02rIyhitt8eiS8Er1YrQtQiFFwMIHQQ+sxRnLaTix2+159/Ytr7/+Cu9F+H2zXkEWprifZobTkeAnnDGFqZskmBZLtBxDQUHkHjqNJORlcC9myMZgtJyU7+/uOU0D7+7eMk0jf/zHf8T19RWNswIJhyB7KIrbVAwRlCQ8tWtgjKHvV3LuKJlL18ZyOh4ZxpFxnoo5SYvRhtM0M93eiQhG43jx7ImIMcTIHAP70xGlFNv2ipsnT/j808+WQDuOYg6yWW9Yr1as12t+9atfsdvtlr6lc44XL17w8pOX/OT3fiLjhcPA7e0t+9PAV69e8erVK96+ecd+f2S7mUgp0/drNpsNfdczdj3OGFKqDSCNcw2Na7G2WdoLEl01xhlKk6dwZgxWu2VM0xaz99l7jkfRS0CrBckMFa0q97OYeqGV2FSqKFwBYzSxEugqArq0sMTnVluLTgkdRVBDnoPFNo626yhN8GW/L/P3pbBZzgEoRCwp+OqxsXQsqUk/y/d91/U7EWwVYON5vikRSSouwaiOeCwBt0qfLIGYIv9XFGTQGG3oilQYSUPSnHZHdnf3qGwJw0TvLD5A9jPzaU+zWrPpHZt1S1QrNpst2+s1642jMeKy07jMzdUalQNpnjBGjArG04DQwFUx3Bb207czAAAgAElEQVSII0U55LUqgaJWEqmkUlkqtWk4FrUdgT3chVi8tUYkx1zVob0qAb3C0HIXpf9ilz6gUhptuqXq0wu0KdR8GSGRhKDpHH/v7/6CT14+5f7+nocCZb148YKbJzc8e/qUxjpC1oRkmEPDcZKNP00TwzQWb19AI6bhGqwRf8sK3ZgSuHKKiBe89LobA9o1aKsLazTIweO9sJ0nL8baxc1FkIFa4Y4lQTNY26KsWXrLADrlc3CBC8j/zA6HMydgGY0qn6893QUWrsyJmsmqhfu1BFg5NMqarr9V1/dBkj+DQ1cR0ayLx2om5lNJHnRRJ1JAjzYNtguo6CELGer4MGJUwhowRsZ+ktMoHBmB6+xak40lOYcOA1WwXoFwDZQEfTlwCvszZVRbDzt53yqyoVVFAhQQClqQ8UmkM7M2JN3gUYwhMYbIaTrxZLUGJbO+yafC3BYY/XQ68c033/D69Wt+85vfEP3MatWyXkswUUoxTROn01EcYxDvVmc0VtekFQIRkpcKpDxXYxLOlvES7cCa8h6IV69WmSnMvL19T/zzP+N+d8+LF894+eI51S87ZyG5tdZJr7L0r32chSXti3jH16/ZHw/c3T8whcjucOI0DAQSV9dXPHn+gtVqxew9Thv6Vcf11RV/9Ad/iNKaL7/4AvvLXzL++lc8ubnhk08/5fd//2f8yS/+uPSNhcwoc8et9Hut5c2bbzgcdqQYOBx3zH4kE2kaSyzOQTlF1us1/WYjI3ne8/79e1DimBNlQ3J1fY01ZkFBlkWehXFsVCUvFoOYEvSUlZTrjKIVwmgIzCGg0lzQIkPXrkqgrQ0PxBKz9GyrvR3IXHtKihh9QQMvJgoKYqi1Ed3pKpZjzMJrSSku2vI1UY5R1i0qk2XTP45JlQKklIxllo2vUknE63mif6Ccvbh+J4KtkCNEcjBmmbWF5fVAFghHZNyivLGqNrzyEmygxC4AlfEpihKJczjbYle6wCKKnMeySKRnMkwDru+xrhgQWMN607FatXSdxTotbOEynkEWOKJrG0LoIQk5oFauqUghpqWKPI9YUCpBeZqKrBKqEFByjsQgIGdMARM1IWhC9MXpxfPu/VucdUX4ol2yKtGRbS5ckkQ2UZd+6pIJlkVdD10hTUDTyFB41zjyZsMcJqqE2jxNopZjO0zjcF1P1p66VRKpmBzIAjalcjBaxp5MqWil7ymZpKYozRhDtqBMBp1xWpGtJSZDaBytdbTNzDQHxknm70IQhrXYhE3SN1YKr0e0kapXIXC7M/a8QQvERO01pwLTZpY570roOBtblNyuKssgCd0cI/V/GdFLrus2l5S8Bl2lqoa3MLWkvhUNaI2Rca56cGlFRA6BpHUJcmUvJCH4pFAJc4mIoABKZTQzgxGxDxmr0jjV4NqtrGs/lDEigXvFoiGL727OkAIY6U1Ln7DuwbxUKzWDTzGCyksybIxk/lJ3ZzAyo+yspS2JY8iF7Rw9VhpyABxPR+5vb3n/9i3v3r7h+morRt/9inW/Kq0OMR6PC+FHgn7f98tccaaOyJV2ksqlvWLIIeFTpLVdWQMikUjtu5MZxpE3794W9bMTpign5ZyZhrEkjRaF9JZXqxUpUZyWDJP3TPPMOMwLKtW2LavG8eLFS54+fSqztdbIeJvRdH0nMLYxbLdbnj17xuwn+r7nyZMbrrdX0rMGUjIL7G4KmW8cRz777DOapmG/3xO9lyT55oau6xinkRTTQkKbQuTZ02cy5rPZYJ0tSc2K6+srrq9vRDEtiWlETTSrEpta7LnUmbmrIKskkxIUpERJFrrAsIW5rGu7R53Pa2FllL2TM2LWkQWyLnsiFeSzhOCzuFBBvOo+j6k6+ZT2ouKcyEY5v3MWLXF5XnpJPsupvDwnlXORjSxfMfUMOAf75f58f2H7uxFsldK03VpuXiEXLao2XBxglKQiF3ZyVEXHFRb0XSEHg9xaEb4GtLE0TUffb5jmhLEjePneVCTofPS0Wno3TScar9aJ7J30AOu8n2xmo4Uh2LgG30zkuRzQUTZ5Kr1HqInTglNKH7ZE3KQyph7qCxNOfp843KQSUOXAf/v2DaZ4NXZdt7zhSqsF2hExAE1KZSziAgrNF8G2Sv2BKK9srzal36IKvDtiTvL/lFZ0nfgCO6dxjaYp4zohSQDJpYlhS79ZK6ldjRJiVP28UbmQO86fQws8V9nTOStilhGTrmmZZs/gZukpTRPT7MmzJ2RfBEUUkRm9sIJFiQnnSo9IRgFUqTJlNIay2UrnMhVZyZjxcxGKUGchCV1GHJRICSChqqxJdSZt1ay9vnFK28K+VuQsIxNa1Tlcgdtqz1cbW0YXSsWWygwgkowFXz1OC7xVoPeqV5xJZexFdI2zUWjtBG0wDh2D6GCmgMkJlTwqRfmrRB1KKYUtGyqXfjf53LNMSRJfXQAEpTRZa0JM+JyJKqOtqfGOprJyQ53zFEKQCFAEDrsHdvf37O7vOe53bNcr2qZhs1qz6nseHh7ETnASQlUlzhhrCyyoigzgLONvy5x7YZtrjTKQU5C3XcuJkaLAhrr03mOK7A+HomA00TmxTFRK4acJUDgr0GgI0lfNBX50rmGaZmIWWcntdlsIlIm27/nks0+5uroSMlbXY53MWRij6VqRnb2+uuKzTz9jve4x1nJ9teXJdfUylhaQ1pq2OdstppT4/PPPub6+5ng8EuaZFy9ecn19xWq1ll6uYvF3jcpz/aTl6uaaFy9fCvLkrFT5Wiwd5T2OBBVLT7Ygi5k6HLskuBVajORzUs9FQXRxyf64QCnPzdKFtpdzRYNKYFMSaFXhuaCV8DoqMpVFl0H2jqypzPlcy3Vv5/o3XfRryzK5+Lhq7VfSaU0gVFnn9VxbWoEXyOL3Xb8bwdYY2usnwAWTt1QVQBlWlsOkb9tlZjSEwBz8Ag/Uf1OUIOKUiESEeWaeDJttx/bqGaukmKPm9PaWRJCsSll2w4BqGkzbsulXJBTT5AklKzwcDjhr6bqOeZzOz18pyJoYqsavsOlUUihdxl90na0tyy1f8GxLRq5QdK4R5uNFNaxQOO1wxtHYhsY0cp+mwBjHhdmstSbO8fLOVjzz0UK4VFGq/885czhEdvt7qstNJrI/7hanjCdPntCtNqzWW26ea3KOKGaMnjF4YROrIiohDRCccfRdBxl0Amc163VP2zqBjZLkqFqBMyKkLxu9jEEpA6ol9CISP4wTx0JKG8eBh/2O1gicHJPI3vkpobVUi6AZpyNJsfSIMAZtDaZpMU2H0g0oS9JiBxjSxDwOjMMIKWDJOJWIeYY8L7Cbsl3hBdf+TlrW7KO1wWWvp0D/lE1cDidRudRlBMqCOhth28UCjHOFqzJayb2bg0fp8+8dx1kSBK0ZZ8dDFkay04pn11tWrcOqiEkeE0eYj2U0JrLuDDl4cvIluTPlwFQi9E8SSdIMycgTijnjZw9dyzF4AgrTNLR9y3A6MYdAt1oTVcKHmeBnGies+8PhyN27t3z517/i7s1bxv2e7D1+GNisVjx9csNqteKbb74RF6FiYiHG845utaZdbQgR1OzJWZMpiVS5p+iEMpIauazx84lU7q0pa1VlFkZ6zghreJrZrlc03ZrNesPN06ccjyeqe8xmsxELzCzfv4xIIazcH/34R9RpBNdIYrxer8soUYHkTQ30shef3VzzBz//GUBhZ+tlJr0ybS8tEhdxkovz8vsvxQq1+At/eOWcCQtHUKOdXoqb8u1LEKrKScvZks8oz2VrhQ9/1xJoz6XU2cmtCBKV9y7kMqkQsvS7lSTGcwxEBUlBIKGsKchSElcsbWRiI0ayP+u4LyNmtigjFIZy3aDnGf3znL8vPr5aa+HRGFuIjfL6F8TyB67fjWCrDG2/frxwUpm30ue5rCocH2NayD31JlaJxFhUdhTglCFHsXsz1mFcwzgFQsyMk8eHBEr6EM41NNpimwYfI7e3twzDcJYA0w5SYLvZst1uaS/o5gCn0wlbVUyiyI0Jc+28IXRlTiqK9F5ZuPo8hrqQqOrjL8hidYxhtVqxCGZc/P2QiFVn0JbKX11sDM6wh0IyyTqbmj4IxjmLys/hcGDygdl70RN1Ddpo+l5jjGMafZGw9BUAQiVFTkEModum0PMVjdXlcDJFIWeGOKHSXNxnDCiLUg3GdmRlZTwgRiY/sz/uOZ4O9K0owoSYmH1gR+IYBzEPD6LEFHNcoN2oMhRNbW0dpl2hTAvKAZa+3UJSOGMwXS/+vfPAOByZxweMihgjLYRT3Amp7nItwxl6Xda3om3bRxlwHTvQC5tTLdV4VgZlHSkJIuGVYqqHASV+6PJ+l7lio897Z5qGZf3EJMpi0rt06FPiNI1YIjZ7VjqQ5kCeJ+J44EF5GS0qFX3OBbLLmZAUc5S5z1gq2+A9c/mrVz1BK0zXsXnylOu2JZDJRtjUomNeIHEfGedS0d7d8u71G/b394R5ZrNe8+PPf8T11RZjZMZ7v99zOp2Y5pmsFF3TsFpvWG+uaFzLYCaUtmjjijRjRaLS4jtbVcNkLDASBd8k1/uqzt6mtiTVMWXQin7V8+lnny1wbn2sKlC7QhzHbJnJrDKX9X0w1tI4RyhnWzU9/3D/1v1W9/flGqpfT0VU5PKAr8YeP3QJbGsKKekcYJavlzZXvWxJ/C+/XicL6vcqJahCmZqTx5XFumCTBeLIUDyhK/JQzsF8pkCAIEiXVbFSBcXUQrZs2xbrzCI/a6wufBUNKuNsI/s9J6ZxxllTTOcbNusVN6tObE1re+/RKOEFUfci6b0MwpccjlzRDT7Y+B9cvxPBFkClOraR0Zmlp6mVBp3r9KQE09IUNySyPsPMXAQb6UeJz6jSRkQR0Myz9PtCodsbI4xW7wPGwqEIvg/DIP2PWCXkOlZdy/RENEM3282yKavW7DJzqUQWzhh7ESz1eTMVDeW6y5WCmB8vrMuqs368vLbv+PrHLnG0kXCaM9/awI/eA60ebfTKql4IIl7kGLUxDOMRlwpRCV3Yr1NRm8mL9FvjDF1jWK8amrbFOWGQbtc9/arFOUtKiePel/yjCpgkgWw1slFcU8TzIevI9ug4HDvWveM0nhgnL3J604wfZ1LMBCIxzIQUSFnkJX2ZXUSLnJOyLWgHyqFwxPUkrFllsCh0jpgss7+LNKJSC+kiKen91vV32eNcNi+QY/gg2HImGi3kNalsUUZM3as2sKrQv/ysSsCrKJBzFgG6qwTnuBDw5lm4BilL33gcRlqdcRoak5gdxGkkDCfm454cBmSQs8hBstBUiEkM1FOV2csJqxWpzmRqRXYOa2WG05d2UK1uUpR57nEYmYeRGCL73Y7dwwO73Y5hGFBGsdlsePHihVgUgthFTlMRVUiAWkzCu7Yt5Mm8VCXONWRTAmrRIVelutJKUz2AlxnXi3GvGmyrTds0TTRtS9u2vHj5kqurq0f70TlHQdaX75O3/1xNPaqWijD/h4lyvS4T5W/tz4vk9/Lf3/Y6V5NyD2U9SSVaJyfkk5cQbPpWsK3czvNzqvBveV6KZf3Lx4hl3fJjhV8ALGeTUo/4hgVSVkvrTGvxWjZKRgfXfcfBOZL3EDNtGZESx6YkMHuRp8wxUWOj1tA1jTg1lUInK0G76uu5nJ8XfXG7oA+PuC/lppaW78Ud/vj1g8FWKfVfA/8e8Cbn/Kflc0+B/wH4GfBr4B/mnO+U3Pn/Avh3gRPwH+ac/+UP/Q5yJswRXbKcKligUMsIR6pZalw67qiql1kXpZY39ZF4QE4lAxF4aBpGQmHIaSXi2TGJhFdKkf1+z2634+3bt+z3u2UOcLVa8ezpE8bxhPczSiOapt+6X/UlyQIylcGpz7f6ckPVS2f1rczow+ryw434sc1aM94Ps+TLr3/XVZVp6rWMMF0cLjEKuSV4gdGjkvR1mj3DaZAeWFa41QZnG9pG07YiIt73Elyb1nJztWa1Flm+cZw4HcpsaM5FoCCjs8YqEShoSv+x7Ry2he265TSs2KwsD4eGw/GE1TDsHWNjSpsB+ZnRFzJRwPtRGJIU5rE2BXY0KBrSOGBtizMNvevQOkMKaKJA3Blk1ESUy3Iuwbbe53Ref5d9I5/H+g4sVdTS+6mjNUpJVasMxjUXrHI59CqEl50jWUtOSWzRjIjjp5Tw84CfRtHeLhl3jAkfJFh2XUtjFK3V9E4TOkuYTsynE8P+SJiOpNIPXoQvynhGMW2ThEA6nlz1TQFOpALA2cXCT7xpaxIN0zRxPJ7Y7R54eH9LKsIWu92Ow+GADzOd67m62vL8+XParltGXaru7ZIIGoFyXdOI32kWSF0Y+a4osmXw5/2ilSJrvZib1GSlVqDAEhQv0aiaeH7yySfLOB7AXMQ2FJRq9bEEpvmgKnx8kP9wj+9ytrtef9tACxXBkjNqqeMqLFzOq7yEQ/k3xsCHwfaiY7EE28fRRy1BFs5k0PocJPCVKRJYfJQrfCxVbjX5AAo3Zs5yZjdWPJl3TUOcJkIK9I2j71pxhcpRED2thNA6ewndRUe5cW6xc63zwArp7ZvS961xZRlDPb/geiOWBKMSp3/oHfltKtv/BvgvgX928bl/DPyvOed/opT6x+X//xnw7wB/VP7+m8B/Vf793svPgTe/eb0svhDOzjRaV/WPtGSE9fqwrFdKLY9bcqhcG+cW4xpub+9BaaZxFqhJxzJS03N3f8/Xr77myy++4K9//VcMg8Bxxmj6tuPly5e8/OSTJQt/cvMUEBjzwwBa5e3OwSt9dPPUy1R2Xn10ybxDCN/aWLXnc3kgwEfgoI98/F2f+zBrrvf2MlPXWsQo+q7h+mrF6XTicDhyPB55uN8zDhMKTdO0PH36DMM1pImcRp7erLi+uuHq+ortZkXfVdgzMY0ebTIYESNPMRO9mAfMcyD5BMFD6mjsin7V0W8brleGqx6sDmQ/MqoAeUarhDMyAuMbTY6iP0yYyf5ENVtPMRFTpriSonC8ffcWpQxaWxrX0fc9TWNpGwMqE8MoQTsGkrKEQoTL8YIzsKAr5YC7vNf58a6s69YUppHSBmMlK5eRLVVmOc8qVtLLO68T0mpZ+8NQvEGLEfs4jsxzICbIWS0z2rb4rh77FkMUizXrWPXPca7MoJbgtaAz2sr8ojHihKQSyk+oHDE6015fCYtcKSY5iRbRjxgjX796xfs377h9+46vX70qY2BaquYYsc6x2V7x8uVLVkXTu4pfVNi2tmpqvzClxFgkH6WnGxZbxKTjsnaXhKbAlZctq8sEtb53dX+llLi/v0cpxdXVFT/5yU+4vr5eRDiapik649+GcS/31GWV+12B9sMz5GOP+659/X1ny/kJXS69DBc/X6v6qcfnQAj+0XOTj8+h9dFrvSgoapzMpXK+RHnq+whFsrRAA0KxZEEKABHAsEZ8tkePUoLsNLblsOrI88Sc4el2W0YiHXOccU1HRghz4+kkymlJmj6dNfTWihQ+3+7RXrbu4HwWP7oHVKbzOWn5oesHg23O+V8opX72waf/AfBvlY//W+CfI8H2HwD/LMsz+t+UUjdKqc9yzl9/3+/QStEbYfxlMiGH0rPNy+dikfGrlzTpFQYjs4rl/1llUiUlWfFX0YUQ07Q9rWtRWuYcR+8Lww1yjLx/95ZXX33J119/xf7hgc12Tdu1tK6hLdAnObHf7TBa46eZphGtUrKIwccgoyNaa7abjVD6tRZYsGAZOefSIzi/Q7OfyDktbOQYKgnMk3JeMi5rLLOfS/VUvjnFJcuqzNG6vBvnztnY+V099xseHfwsfRKtFDkGcXIpD2ysQamMn0a+/PWv+Pr117x9+5b3t7fcvr/DT4Vspi3r9Zr1as3V9pqXL1/wx7/4I37xi1/w4/w569VnxOSY/cQ8TczTSNtaUIk8SzWq0cLqTol5PnGIE2GypLlHhRWrVUdWCX96YDq853j/lvt373n/+g2748w0Zyaf2O/3aCXemtFPqDDhipoSJuJzIGcJtprAFCMhQkyKY9aM+wZXvIVdY4g5iE1ZjGTjhDSUcnFYCYvec127lcW4+O3Wv+mxPu1lG8K46oB1hvUuDwCBscoojjVMxzXkwqIOQubwwTNPs2gZ50T0XtaUc+QUF3juuOpY9x2bVc+TJ1d8/qPP5PmXSrEsLIFpqYG/MKhVxOVGerwadN+DcwQgh0hSIizp/czh4cBf/eVfcffuPbv7B969fUvrRC/cFjbsplS0n3zyCTmLCL0kCzWZLe9jDMthF0Jgt9txPB6Zp5EUwjKi9ThoFctAJTX50m8tycSlUQfUccT2UQvl9vaWu7s7+r6XcaPyM3I5sL8PQaqBu5IZ6+e+C4GqAf/Dn/Gx62OP/ejjAJQUM3XxqeUoKOv04p6RWYIiBa35sHyrozhQGMO1Ir14vrlgxBU6FmUpOUtsZfdWWFdxDrq5BFtj2Kx7gpMpEG2E0LpxLbFp8Wi2fc9V30uwDRplHDFHyEZU9pSo7bnyb2sMTml0Lq3KjLDuosiThlKq1gQpX/w/X6JWZT39vxJsv+P65CKAfgN8Uj7+HPjy4nG/KZ/7VrBVSv0j4B8BXG223GyuyuJ7DF3UBbkQpJYXCFDmCZWMRqAENRZzANCNFViyiF80bS96nlqTEotEYPRiHfb+3Vvub285HfZopbjebliVEQRrNKtVh7WGHCPjMHB0DTFG2rZdDoOciwB6qchjCCK9ly9m0h5tLLX0OM4VDiI8i7ByNZINVhUpYx5v7PozP/bvD13fVeEuB8HF1+vr8X7i9vYNX736kjdv3nD7/paHhx0piCuRUrqMRLVsNmvev3/GNOyZpxOH/T0pTjx/8QyQw3KaBnyIzD4wh9IqWGaAEzkmfJjQydCYSOwgOUlMdPY4lbA6YZVUaCpXbWAZhYnJF4WhCZ09xpQuk44oJvlVSaGUo1UGo4TrMQcJ9POoGYzFNha0bLSYM9kIXJoS5aCOS7BFneFilIJ4kR0nEW1X5fRTFcpTCpSGcVgCci5lhNa1r1vfo3NfPfpxcVnJOdI0LbOfmaeJ0+kkVbn36OBFOL9WyspgsRgC1oj/8na7gVyVumpzNpW+HizVrpJEt1FyLxOJUKBwqdBFzjKGyDROvH79mm+++YbDw47xNOC9xypNNBqdIm3bsN1uub6+YrvdLgFumqbFmapCvqnaqCEJxul0Kj1d8fWNUeDGx8H2vO/q/a4VzaWoyeXfGhzrpMPpdGK32/Hs2bPla8JGZtknHwbcD3/m5R778FIfPOfvuj4WyH+r/V6q11wgUGpSXu9PfdjFj1qCeIVLP7jOQjnCC3hEatIX/c2ytOueMGUNiYF7kbBV54BrSg9ZlZ/TGUu06lxW50yrNb21OMApJeI1xfc55+Ka5mdykM+pMtGSQxDGdVbokmwsBUo+u80tSbG+qPY/uHd1ROi3uf4fE6Ryzlmpj70NP/h9/xT4pwC/99nn+eWTZ+VJaxk0LweRNkqG+3Odb9Xn1ZBlU2tlS7DN8ljEiQdnZei5LCjrWqyx0uDPFF/XyDhN7HYPvHn1NQ93d/hpYrPuefH0KevNSlwmgLZpQAsZKsTANE2PoJ4PN+rpdBTShyouOR88rl5KKVwjJgUpmUeZdoW5KgmrBt0P+7SX1+X/D4fDb/2exCJHd/ka6lXh/HmaGMYjX331G7559SXv39+y2+0Zx1Hy0Xzh6gHc3lrevPmat998xZvXr/jyi5+z393yp3/6d9lshGQ2jicOw8gcISTRMzZRJlhNzkjzNWKSIboM0UEAZTWthat1w7DpGU8rrjYdaEczZ8Y5knxgOM7kHLE5Yk0uesKyvuZCmpIeVsC6FdFqfMgcY2A/Tswx4ZOMF+g6L6pkLCYXLsDynpbsX9WeVU1ecoWjLmzSOB8+l+tIWPIsfSBVelyKfBFsz5+fJ7dYMgq/YC1G49PENI3011sa5TEmcNUa2q4TNyrnsE2HdZa+t/SNoW3MxQFbDqdcBQYkARTTbTloGi3rRdS+RH84lkrAaCHOnU4DX375Ja9fv8aPk5iDFFOOWq2v+p4nNzfcXMuoz3EQpaj6GqZpYp7EErImHkpJsB0GCd4xRJk5DiLXmAsqcw5GMqcM6qMwYa1O676rsof1+8dx5L44Yl1dXeGcY5qm0ns/J9KX+/Bb8OMHH9frh9o+H/7M+vHl9/y2CXZKaZkBl0BT1l/9WVwUM7VfqRSPENNy/8/BpnAXik4y6sKurvRTjNKciVHCdDbFfctpVawQS6UrL0oS2Jyw+UygykmmEqxSdNaK2EXKhGkgT4o5elCKkMSe0U+DtJJiIPmZeRxJPqHTxc/84P15tJ8vzu3L4mNJTv4/DravKzyslPoMeFM+/xXwexeP+3H53PdeWikaU817jTAnqRBPCcDlphvjqAw5uQ8yx1azV9AkJQQArzIxi+ZmSMIQvn1/S4iROcgISy6BM8XINI5Yo7narnn69Anr3pHjzHAUibvRWNpuRdOvsYgx9VTIKEsPwggbOaVAiucMOiXZ5B8LtFprDsedyDpejPlc9qkvRxLq911WoY96axf/X60ek7g+7ANdJgCVDHa5oS8p7/M8M4xHbt+/48//rz/j7u6tOB/NHqMNxjk5BK3BmDrmIwfq+3fvOO73vPrNl7x7+w3BT/zkJz/h5uYa72dev7vDo0jKME8BFSQT1TFik2fVGK43PdvuKavmCucyqgG76llvOzbrnpvrLav1NUMwhKTxSbF72KOiaFprAutOmNGtU1iVGE475nEihkhG8xf/+m8YxoiPit0pcn88cpo8pzlwnGcOw4nTMHIaB6xrUcosh+3l+yYWaGHRoa52bUt2fIFsCOPxAtZEiW60lZ8dQsT7YYE5ZZREkh/vPWGQ9yYlUTEycWYuLkCttfz4xRW/9+yKH930PNk09JstTdvTtCuCMuxPA5MPhJxp84kUztkOAHUAACAASURBVG2IxZlIUYRJ0iIhqVDF09cRUKRxYAyxiOtHsIIChBCLHd5I8qL+1HUtfdfRNC1t3/Hy0xc8e/mCft1xHA7M88w4njge9xyPB4YSfFOMsq6sJudLglNhnJZENadzkiAIUT5XSh9JTj+2n+DMOK4jfrvdjt1ux83NDZvN5tFe+/C67NHWn1v70JeP+b7rYwf5xz53mRh//yWIz6KJvXRW68cfPPZjweXyj6pJXwnM+vEMsHjFSvuhmqXU/WK0BGCNwpSCVSro8lpSBu/JfmYo88z1/PTeo0LAIe/5sHtgoLLmExiNj5EpePxwktlxr5mHE7vb9/TKYbOW3/vheVj+L/m4sO0f35b86GMBNn440fnbBtv/GfgPgH9S/v2fLj7/nyql/nuEGPXwQ/1akN7Rqm/PPc1U/AOVwKoZROQgiz2SwHBnSOhSQUmVYBtBTJVVMYGPSeYCp6mYqyu6psU4y/F05O1+z+GwJ6dI4yzbzQpnJaAqrWiblq5f4UNiOB1ZGUtMnhzSQsoQ1wnRtB3H6RGbVxUBdjhvjMuN2qn+gkYg18ey1cv+zIfD1HVzX16Hw+Fbi+ljh0r9twbzGjSaplk2zjzP7Hd7Hu4f8JMQzHTW0jdXBkshVVnLdnvFdrsp32+ZxhMxisj97mHPl1/8BmscwUfaziFsWphTZH8amA8H4jSR5wkTPTerljRfcbN25PiU/e2OmAOuE7ThdBCXkhRnGiNOM1k3WG2J0wGVPNYknm47ntysWPeOrlHMgyjuxJjQ2fCj558yzolpTtwfZnbDzOAjpynw+uGeL159xZu373jz9i3WuoUstPTvUrGimybG6IVBmyLzGJcDvwbc5f4bA/FMfhLHlnaR4xumkWmcmUr/UqFkxjAl/DzjWidOTSiarhUUQIuf8fXVFT//yY/4ez/7lD/89Am9iWCssONNw5QU7+41+9PA/jQQphPdaoVzbdmbMvOoyVil0FqsAY1SZAxjzCir6NsNoWlgHAnDQBhHVMpYK8Yafd/TNi1zEos+UkIrTdM2bLdrIUVtt2Qy9/f3wj6d54XsddlLdc6ckZZZXHm0LipkZUY0Vau3csUYUWRcrbYu9sOH12WgnabH4jV1WmG/33N9fb1MTuT07cP2sgKtSetv2+apgfnDIHqZHP9tL2W+fQYU8P/x/fjI71DqXAhdBtUaWM+yqEps+6ozltFisUdR/tJG9NcyhRksIzopRqlCvewbyt84jhcQrlS2OorgDGTG41FacFoRQbTGU4QY0DnhtMKQUSnix4G+UShsaTvWPiyPfkd5wSKk8ei2nB+TcmZx0fqwof3B9duM/vx3CBnquVLqN8B/jgTZ/1Ep9R8DfwP8w/Lw/wUZ+/lLZPTnP/qhnw9y87vWUl9RrpzvEkgFehMBRueqr2QNRKWiVecxiqw1ERmCVsZATKBkzjJfbFoRrpcDTYg6E0arxadSKfGttE7EwtfbLYfTxP4odlbBmjKuJJVIzRpzLoQmdc4Xl8o7I6MUcLFoKc8jL+/x0oSHc2/l4n7JYwrSR70XjyErqIeMWhbLeXOpb0FBohfLefOp8stLvy7GwPFw4LDbk6KoupCFENW4RiqV1tG0DVfbG1brrjBDHb5rmCcvYK2P3N3es1m/Q6G4ut4yTIGgNHNWDOPIdDoRppE8T9jgsWmms7Df9ez3D/j5REweczLopuM0eqZxZByOYMEglbYxCmUM2mScSXRtw6prWa8aVq0imEzwTnxfsaxXW6Y5MUyJq2Pg5CNjyJzmwOr+ioggLMPpyOxj0c7VuEZGXlKUWdfoJ3IK4j8awiMj87pBq4ViDLLOnXOiZWyN+KSW0RHvJ1Lw+FkgVY0iJRGKDz6QEA9jrTU5GhqjiVqIf421PH96wyfPn/DJ8xuaNOIzZAxoS4PlNI7M88SRDCkW8whX9hSItWTGKhHPqIpLsRwyqVQjUtVc9G0LbGitYb1eF9SnrLtCUlr1PTdPbnCNI6aAD4IWKdWLGUXp28phXtanFrMPuZ/nGcpcmmkZltGOZS/Vvyp/a6rh8rpEdurjKuJTnXMOhwPH43FhGMsxdE6gL3/vh/3UH4KRL5/X9wlVfBfX4rv+f/GdopUuj0Lx+HHf+rmPPlaPPr8kEUWYxZTK9uzcxnk+tX7P8regDCXYgoxjhtmLdraX0TOd02JpSjF8ByXJWjkjc86EaUJZW0zjIQVxEyMGIc1lWduhoCPnXiIQz8UbF+duJXvpwiK7tNNbejyFo/PovP6O67dhI//73/Glf/sjj83Af/JDP/PDS2tF17uLSu08YAwQI+K2ADSN6NHW6zL7U6ponhpDQDFOuVhAZVL2hVxRJQUFtq4qOClEovesVz1Xmw191zKPI1dPrnn+/Bk///lP2WyvOZxG3r6/41/+q/9DILZywHQ313L4zfJ7Vv1mkZ00RYxB64UhUDZdWgIm6sNF/7hqvYRzL+738u/HNm7OGdy3YedHrFbOB4Ro1oo+rjFmGW+omrwpBnb399y9vyVHRZgTJDFXvt5e8/TJE9abNat1j7NtYVjL3G3f9hgsKWWstuzud3ytv+Z0OPH06VNmQHc9qmk5nU5E74UwbC1OCYPycNjz+k2msYntpsMYOI4nutUWnxXj4Lm7fU9QR5p+pF15vI90GowuZKngCfOEN5EpQpwGQS9yRumGxrRko0hWsVm1NNkwJ1jFjFk1+CBSiOM48MUXX6JwUDSe+64lhcCUE8cUF8lHXyDeSqSrll1d2xFhgYC32y1NsYzr2kY8YFNi93CPnyfCPBLDjFKagIhkGPV/U/emTZIkyZXYUzNz97jzqMrq6mu6ZwbAYAa7XBGAX0j+CfxrQlawX8gV7ICyDXKme6bryiMy43K3ix9U1dwiMqp7FiIUKXp3VlweHu7mZno8VX0K+OHAXMvOAjlguZgyx3iMCL5nykFrEIcDYu7hfUK2Fqbp4CYTVoJiABrL7RFd24J5khNyNkBihUsEJqiPAYchIbkZfIh4Gh4RibAbBvgQSlvIw4GbB15eXopgRWke3nUdXrx4ga+//hrv7++wP+zYoG7bouQO0r92tVoBjWVUS8bSOQvvuYl4CBwKyikWBXC6HgBu7Vd7mqelHvpc47Zcs8twvXOukN08PT2VY9Yr9zREdE5O4WT/c+gVgCO4+adyNE63U7Tq9LjO2ZJXoPY0G4FJdyyencLn5TrzqGgtGTR2JPVRpFG5BWBIji1hP7EdDHGJnzFAYyy0tUXwAw77Pbxkn3eN43UpSlPjp3yPJD6cietU/CCK0bEhGIL07A7w+z0oJfiDxy4l3FxeS21sRilwqUI8wChvyRhWzvLbJbZNXHRPxCQaxdv9ie2TYZCCzQxvZBLif7WCM0xg7zYjo5t0hd6OIHmQknCSkdjTIw62X88XGEDwQ4QZHEKKJUartH9cx9cDSJhMO8wXU8xmYweOq6tLrJYLHLY7bDYbTOZL3Ny8xN/93d/h+++/RwgBzjFvsjGchTudTjlxyxA0+eC0sbxuuhzESX/2edmvUo7nPvvY9z6277n3VZGfxqBUEe/3e+x2O+x2O+y3W1hymM6nmM/n+OyzV7i4uIBr2Ijph4GhT8kmvb6+hnONeGoR7969x37fY7PZI2eDbjlnisX0iAxg0nSYTCymzqCjhJYSZq3FYjlFO5niabdFPxwwDAdc2U6YoLg93/sP75FoDes+ICeCzQHOZExbg/5mgRwv4BcTzCcOORy4v2vKMOSRKeDQRxz6iD4a9MliyEyX6AcPS8B00uFytcB/e3rE6uICk3aG5XyOnCO3KUPCpHOYTSfIKSClASYaWMOxQy7UisgcHEVOHikk+P6AvnHo93uk4JFd6YPCyR0xIAePZK00sciSOKj1sA0aa5nEXghKOPZ5QATBTGYIfcbGb7HfDjiEHYa0xofHDbaHAYch4WK2gs8NKI1UhJwkxY3BbTRCamCQGyCTA/MRQwjg2RhWxjQVYMZw/XW/PyD4AWYywWTSAsjYPG1we/sBmTI3Ap9MSoaxJu0VhSoxVNdwP+B8xMaEUSAaIx4TSpw7RTa2PqaMdKvDM3WNpcLWSh+pa96amsDwf2w7pxD1vVrRne57+r1akf+UrBhzXY7fr9d7HX3mBgjqxUnoDiNsrCQfxpixz7H8fqIxtyZLbNQA7GHGyJ6psVwaKQaShgmjD4xMQpQttCbXlLChceBeyU4tBwIMdw+yzsKlVOp2c+D8CbiM1jDaySJ3hPYFeDy+Fzg2Xo7GVeAUMtVc/4nt01C2hmBbgWGzEVJ1ARtyBFlWWjll7Pp9BU0Q1xDGKHWO0notZYSUsRsyhkRMmp6EkxgsFIhGBUNkJLnEoHENZ2pai1c3N/jyy9dYLud4uLvH23dv8eq1xeuLa/ziF1/h7dsfkWKANQQ/9By7M0z8oBa0KlqjUBdQYGFRkUAmqSH+aWjrY4uoXqD181MI6+e2c5BXWThCmHA49Mw37BMWswVWqxVWqyWWiyWICH4ICNHj0B9KyQYAPDw8MLGIs3CO24Pt9j1SXoOMxcpfw046mLbDZDbFxXyJWddi3raYWsLUEaatxWre4mI1Rd/PsNtt0N/f4nG7B9mAIQCDT9wdJnjE3COGhPmkQesMUiQ8bQzaxsD7HrvOIA57XoiRrdTdzrOiHRL20WBIBJ8BD0LIwN16jc3jGn2/R4oBrXOChsxxOOy4C4t4uX42ZfYqPyCkyFY6WABolQQR0FjpaWsIyElagKmVnaEZwcf3pmr6YNgY1fpSfU89sjfvPmDqgN3TI9Kwx8PTBruDx36IOMSEx/0AnwjGtvDtHGZ6BUwaIJN4sxbcbkF5x6WvChFAjltoSEkUB+UIEGWbEgtbZ5mYYLsxyJ6F+HQ2BQjYbDfYbJ7QTSfoJh1c67B92nGSlyQfErvUyDlxzXPT8FgX+BVl/ajiJYGznZMsY2SEEzSoVqan6wc4hnJ1PFXZPj6yx821pj8N69bvn66zc2v33DH+ks/OKYbnkPNY/jRCwRXyRap2ODxWStAqaJ1RNk7Uc477hzMLlTk6Nk9hdqGVMS0lMU0qQ8kYgutaGMP8CP7Qs0cZUxnbXClUHe76GqJk+oPYaSvhspQRB4+YEqKVnB9KR9L2o2jByT05d79OE+E+tn0SyjbnjEEEDCujpIaUQFZC1xgj+mGolC2XFnjPsZ5h6EXYJwwh4nHn4RMJK4/DdDHHdDKVhvNqnZkSA7WiDDTz9+bmBl9+9RVmswkeH9a4u7vDcnXFXXAWS3RtCz8MIAKCD1wbmxOctegPh5IlrUIVkvWnirbEWn/CowXOL7LThXkuOerccX4utqNegAqguja473susYjceWUxX+BidYHVaonGNeh9D+8HDN4jxgEEJtUwzuLp8Qk5BNjYYGa5x+7guaNSykAyBourS8wlmWa1WmI+mWLedZg3DrPOYtY5LKYNlrMWbT8BbIOHzQ67fkBCxBAyeh+47+0QMXhmJ6M8R2gM/JBhiOuEp51BYzNCv0PyElOFwfpxh0MfMfiMQyT4BPjMihbOYbPf4Wm7weZpDUNAJzRx0+kEMXIyT7QGBg0mXYuhbzE0TeFnNeC+rwCzNPH4WxiTJcu3vjfl7hZ4Lmf2IlKORbGyFxtkHo8lWzFGHA4HvHn/AZQCntYzBN/jabPDfuBx2seEg0+AbdDN5ui2A6aHALQRIGkYT05KpSJyDiL8hEwfRrimpSa3EohjqIRrbpu2hbMWnpjJaiqt63bbHQ6HPSazKWzD9czeD4VCtbCYyTiosh1O2OJqv4QEImV0Seazfb5mzv3Va6NOZsyZM/Y1bvv4+IjFYlF4df+S7ee86tN9z639n0O4Tg3zc8oWonBLeIpGhVsf3xmLbMb6cJWVmhFvpbmEI4L6C2OMVuKcplLqlpAiJ0qlEEo7T3Z05JjOAinBH4Rql9tqlZI7QgVNV7HunPKobAEJsGYgJkTPPNnRCbmLiUdGwekY6vYxo+jfs30SyrYfBvxf/8//PZZMVGwuNQWeelc15KFQmdbkcQeYDJCFbWdImeCaFtPZDK/c52i7Dg5jdlkG95Ns2xZd145tzZzDl19+iV//+q8wnXT44Q9/xOZpi91ujxACpnNXWmxxRuSx1ToMA7puMsYv9Nc0Tlsv7Kxe7si+osernxONzZNr61ifnyZknHq5p8fSd9SO1bKEugZRvQoV3DFyskjXdbi+vsbl5SW6rsPT0xrrxzWi9AtdrRZYrlaYL+aYz+f44c9/xuHQI0j/rjEe5Tnb1BC6xQyL2RSXywUuLy4xnUwwaVrMnMNyNsFs0mI5b9E2BLgWQyJ08yds7h6w63ts9wc8brbYHXoc+gDvE4aeiTgICTkMAHpYCqAckGKPYb+R7NgMgkU/JAw+wQduDuET4AUpQWMRKaEfemx3O0xnE0ymE+leZKSxuEE0hkMZjUPXtfCTDlQpAr0/RlrtOWfLvbLWCEVkyzyvUs6jjEW6nw998cqm02lhWYqR+b2JOHt8vV7jD98D280Wt6slk0MkJpOP4HyICAfrGmTbwieDtx/ucfu45czo+Ryz6UTWRsscyRr7AwGUhI/clPgXe+nsaYQodZLS9aZtGqSmwXw+xXQ2hQ8em+0jgIzZfIrFglvQKYlFkhhsljiLc066brGhq/NIDfURukYR/GXcgBKDVa/29K/ezhmcqmyfnp7w8PCA169f8xX/jBH7USiymg/nlOhfetxTPufzx2MjiYigeWz6PSsKt5xnDaoqhFxDzaaiOBSubIjhw620SYwdU/iFrayRlLjfsjeQMACY4c8xc5pzTtDKQRJA5U+TovR+hXjkecYU2XvV+yg5OZwoxY1DvBnQ7/ZwHfc3VkPgY4r0YyG9f8/2SSjb7W6H//J//J9HxeQ1vKMxWlWCJWZLY3p8raDVwHZDj2QsTONKw2jjCGSlbZg0mCZnMZlNsVitMGk5m1ZjEdrL9fXrzwsvaooRt7cfsFzOsdttsV4/wLkGjpiQox/2DIWTdrdQiHi0wOv+jdAIdHUP61vMZILAcWoYAFWyJ9/JRCWgfy678Ag+0cC/Cim15OU5qSEQI4b9HjkltI3DvJthNu8Aitj3W2x2j7ANsJqvcHV1ga+/+QqvX7+WlmSEX//NL+F9xOPjBn/44x/x/fd/Qgw8LsZYpBzg+wN2mydMpx02TQd/6LEzDmtjsO46dI3DtG1gbAQQYEzG6uWXuPjsSzxtdrh7WGMff0DvHdouIiRCigzxR899Vn3v0YeEmAJi8IgDBC7lZhHUNLL4WfkiJVCMoBgAS7AmczceYzD4hMNhh/sHoB/2GAbPCsB7eM9C2YceZIDJpC3xKwDHY02a+MYdRkIIWG+emN83RWz2B2QysG0rCK0BeVu8utliDhJih5AyHh6ZyIQVK7AfAt7cPuD93RrBS9awMSBrEGKW3rBMZ/r23Qc26qxFN5vii88/x6tXr/DixQvueGM0jszJaykOPL8NuLmDzEeyBrHXlovcWJ1AcJYToyaTCQwIfhiw2++wWq1w/fIas/mcs5trpUQZKQc4ZzHpOj4PcHa8cvfyoDKDljgzVX/aMeml67rCG13ac1ZGPd+PUTFqJnK5Z0CBku/v79moblsQjd7tT3lK57Z/r/A+PUZ9nNpgHjdWW421KF2S6Lh8BzgJZkmstWQZExWKR0McF88a/8yMhiCLN2pI4UmZMmq0JIQoRnbkPsMpBtgZJ67CEVzLaGSQciCAs9+1F1BKzCxX4s8mA9r8LyWmmRXe7ca1mM+XcEKIEkJAsJyAmSgfGSrnYq8/ZwT9pffvk1C2MSU87valH22K6WiBOOOgTax9Gjs1GCLA2aKEGtmfYIRTk+sJu8kEsxkT2LuGG0tTBshq2j7/ceKFg3MNmqbFQbqUTLoJXr16jb/9298JlzJh/XAvJBNWOqzkI2o351wp4gZkDmrAttpGgXKsBhkq+cva6dVq/Nzrc793pHBlfy1V0thKnZ2n8SqAYbyLiwXIMO+tjx6ghIuLFS4uL/Di5RVeffYKX379BZxrsN/v0N/1cE0DYw1C/JyJDtbMabvb73CZr3Do92VcEQhN08ESKyFmmyFu6ZYGZApoHGG5mqPtWmy2W6zXj7i9W+PxictyYoQo2wExeKQYuCwnMr9xChEppKIACVHqZDNiBLLh++mD58xqw1Z7zFEgcJSmFJqdmiR/QEtWNEtWGaR0TgMonNdd12E+n4Okcbx1XHamaRtt1XiC6Um1Ty3vMZ1NQfSA3W6HwTPCw9mlbCillNEPfB6+Z7iZDQYrbfDYwwl9j8Nug5Q5lDCdzbDsWqxmU8TFHBaLMfQBiHKTMAhxT1NhwQNlI/2ReT3Xjc+tsUDOYpQwrLdYLNh7dw6H3RZa0lMYiAA0DScfdl0nYaPhGRKjypMRoBNa04xnQrX2amtESNdK/f0o5VXqEGw2G+z3e0wnU7RNe36d/Ywg/h9RtD/l5X5MThx/h8T4H9nLgI/AotV7KmvLHIR6vpD8E6HHRXEbqoQxRhlGo4aNHPZCY6kEyDmhjZFpFw3BNQ2ajps8pCA1uOBObko2AWOOyDl4fgnJkVadwKBrO8707wcJaRgxyLQj3PN5UW8f453+Obl8un0SypZHhb1Pi4Yp+kTgO+cY+pWegkzXZrlg2lohFZD0fWvRuEYECRdOs+JkwonJdA7TMF1jjmzhKwxBcoOVpantJtju9nh4WGPaTfDy5Q1++7fA/eMj7h7usV6v2ToXiKvvD+i6tnjYTGJun90IvrT8/EYpFFP2O7MPzi+4jwmHsyP9EYvsXLxHLX+ggpiJ4LoOy4sFgITB9/BhQNtaXF1d4vJqhdXFEsvlHNcvrkGGENKAx6cHNI5bYL28uUbKgPnzn+HjgLuHe8QccDjssX7ghRr6COc6GLJIiRUTL7yAIeyRc4BrCBeXS7Rtg710ILq7fcR+x3B1DBkh5MIohCw8yckjZVa+OSbpLwzkRIghi5LIgGmQU4YPPYZhj4QIY5kwwccAkC10nIq6cD5TKt5TuR/xmA2MxPpy1qLrOlxdXcE2DYgsYjYgowURGa5rCim7EaMjV329rOPeqz4EDIEbuTPZQkbXtIiRs/WDD+j3B1hDJbyhIRBrLeAb9k4Tr43U73C4ukDcXQL+ACe0lkoqw+0vxRsESa0ioHXyo8cYZY1SQQWCDzx3/ICUcyHySODcgJhDGVfQSLAymTBsv3t8ZGXrQ7WGjgXm2Lc1V8rhPHx8GrM9B/UqdaoanpvNBrvdDsvFEphOj9bSxxThOaj6p7ykf8/rjymB8WllYFKtV/UJlacjSYWWSGmGOu/Px5QxK9wC4/3Q6lNVtkAa65MhHNwyV30MhRTINQ3ayYTpP700/hDjMosRpgje6fhZa0WR8nuTrsNysUTXcsKms8zpkBOQSBOqxlrZWoTWo3vq0EDG9y/otwTgE1G23WSCX//mt2dr3rTeU5u0K5+uptxbSTuvBR43G2aWG+X6DSHgabvDZrNDP3D/S2sJISXY1mI2n2EynYCQ4NoWl5eXOBz2ePf2LQwR/sPvfoevp1OEP/wBP755g/v7eywWC6SUMJ1O8fDwI6bTDm3blDibZofyxtCKMexpcJIMoTQjhnmWdl4v/HMK91QwnGbHncZw/xLr6zT2e5qd3LYNurbBYjnH5nENHw8AZby8eYnrl5cAZazXt2gawtfffAHrLDabNf7zf/7fESOwXK7w7a9+hc+++AymYbj2w4d36Ic93GGEKA97D2saEDmECAyDx+ADDkOPYdjBOQNjAUsJ+8NGMp8TnG2BTMgBiIEXztCL0WAyMgJSDsg5sOINkZVRZI+WyHJCXswwhpVl8NyZKKNnZQu2ykEOtexUiK3Oci33RmgMa25rAqFxHKb44osvMJ3N4doOZDvEzArCkIFtjDTT5usxRNwUIWeE4LF+WmP9+IjHzRMSAB8iw2gZsDYjbDkunULAsNtyhqljwen3W1a+zoFSB0oes65DYxu4FNEMD2iGR7TDE5q4RJKmC0zqLh64sUiGjdiUx7HQKgGN0XUdk5yEgWHYybQT4Wcxm89BRBiGHk+bJ/SHHqAM19gyF2fTmSAAhLWwOA1+wGzC8ewUDZKON467anHML8MLv/Jp0/h6bZwmRelrNZaICH3f4+HhAXd3d1gtl7hYrX52bf1/vZ1TtM+UsSg/5blmf1SyiDVzRHBiIu6QYzQEx4TF1e8pnMwUoyZL5YVRYhP2oTNlyUWR+Ws4R0a97BgCYkoYQs+ZzSCY1qAzHbIq41RljhsDEJNmQGDsBI4dFL3hxgYTjcT51QB2zgFJKwAqVUmcZFWgPkFsJJkaqC4/q23HUGBtyXx0+ySU7Ww2w9//w/98FHQfN7XCrSzgACWk0J6WJS29KAa+iUGaDWdwMsgQPA6+R0gJsNyMfELcGH42mWK9XsMPPbpJh8VqhRQGPG23aO7u8LTdopeEk8enJ2y3W5RWesslxyBjRkoVlFXHQrIpWX2jIjRF2TIfNMbrOfP8dDtVsvXz08dz3zvdlGe2FjI1lK0xr04aM2hyiiZLNa3Dev2ADx8+oO97/KfhP6FBg81mh+12j/v7Nf785x/x49u3+I9/9z9huVrhs89e4+7LBwzeA0hwziKFiD7vQTQAZBB8xmFgyNF7Dx8DtpseKXqAIobhULwXZ5jIgrvvGMymc3h/QIiR7R1RslkaW2iXJvZsBSaOESFEpmkD9/SM0XPcUOeXwKdaY5kBgchkzCRxIEtCStd1MOBVS+L9xjzy5M4mE8znrGwTDEJIRWh0XSfeFGfoEiwaa9E0DsbMmKYyeAyHA0Lfw3ZdqU3MiSlKHREaw83Tp62Dc7yG0oE7sDARPC8U7vOZQTEgKJnGcED2A0uZzOvLgeO9yIL01u0FIV2iEis15xp0kwmHZ2iPw+C5DIfYi3FNg5gSyWQ87wAAIABJREFU/DB2+ik80JLg1LQtE62kfFSHy+EiTcRh47r0KuFFwXM6JvGGNScEklFNrJorNOc05qnIjtaUhhCw3W7x+PhYYHtdW6cZrOX1X44Yl60cV4R/ludFAchzWylLnmdUlGCiEs0EBIEgUnYny4qUtIH6sXxw1p318vVYLBf42ClEmCTxYB0/olFp6bEr3RRj5sYCgatKBjPAgLg1KBi1abqOQw6Ru/ekzGQuKWmylFI9cvhAyXiK45AZBVWXledUM3rg1XXVlJrP5KSGTKBwuVIFS7nTz9zgT0LZWuuwurgsC4aVE9gGO71wrwoMxRIpUAVGSIQxeYCkRiwkaVeYhWYuZ2R4HqATyNZai27SYdgnWOcAImx3O0SJSVnrJJElwjmCcw04ycWhazss5ku0XVsWpibC83kdgxGqyLR7zBHMVXmZddzEmLEUolCFZYVkGOYk/Tyn4kWNcNvze5BFgBqhXWN2HjmKTGhDgGkaNG1bfnPSTbBYzrkDyqFH3w8IPuLD+zvsdwdY2zB8TE568XpsnjZ4uL/HcrnCarHEzcuXePvmLSdj5YSUI3LqAXB9tR8C+mGA9xLvyRnDYYfgPYg4DiTDiUQRwUfxAA38YBDCoRAipByRcyxjM3biUa9RFGZKiDKK3ESCC+wLfCbzk3JV1zeuxXGOQmWNmMsJ4O5UzN1riNAJPNoIRAxDnB1NCRYERxmJMlMNClsNosQyjUHoeyAEmJRgUkL2w2ihSxmFmuFWendmuV7uRgUABikRQA4xkzBSNQiJEDM3iEgwbKgSgYyVREQxzJSdjS8PSTKRo8zjBKBpO7iGW1wOIWCz26NpHbrJFMZa9P0gGeusQKX3JK/HrsOkm4BA3GVq3yNKLLhpWuz3OzaaIrdezJlGqFS1VObQUiZOLEs5IUeWHYWuD6Mg0VVbC19VuiovmNxii77v0XVdaceGDH4u8yQlJu1RY6sSAc82OvNM/M9yTgmiVEdJIr8rj5qTSRjXP1+EKNYROeHdtCd4ro9WjaFc1Dnbv4ahmVWIH5WvWmSO1smqgm4bgvKFM8VpQjARgQIa65jkommQM+BDCwoD4hClBaspBgSZETVUuafGhEQkYQ0Bzsr94X6442iqDOWwiH6HxDjWRNrTezTOK7Z4Mp0bnHH7JJQtiEDWjcoyq4UsNGcF4z+2FAvEo4q52nLOiCkjEfc2jTExnYBkDHsfkHq2iJS6axgGQJJD2rYFYsJiMcdsPsd2t2PLuuuwurzEanWJ3XYPbvNHcLZB41rMZgtcX79AzsdZbj8Vx+HXtlyPxn31tSrbonSrUoQ67hQjxyCocEejeBk6+Qq/bOUJ6748H5novW0chp6QExMHBM/1xG3r0LZNuQfz+QLXVy8AEJ4eNxj6AGsbvHv3AU/rHRazC1ytrjGbLoHMscXeD+j3PRwxzeOrlze4+3DLCiwkAL6U1qWQsBcC/iCQZDaE0O9F2Y73GxmIEEIIMCXcPvjisWsGqsL7RMSkEwIpssVejW3OgDTfI+JMSMZJ1Thj44ZXpCSIqHBRAS3zm/vycucnGOZtZV3I/MDTbsJzOwW0tkFClHKkCAQ+K5sjnMS80hDhPXsph80aiB6OMhrKiH4o8wbOwuQICLkLkUHwCVE8Z7IdAGmLl5iFakiEGA3cZAoPh2RbwHXIpkHvB1jn0LqG0QJ2MQSKj9C0rhgjeqmjlsoqNN0Eru0Aa9Hv97h7WOPiaoXl9RVABrv9Dts99+adTmfwg2SrGoOry2u0TYMYRvYxIw1Cum6CnAkxJIQQ0bjmSBoYY5ghLBO6poPNgAfg0xhXF11cvFy13g2ZYrhoAmRtAK/Xa6zX3Havm3Tshcv1q2GriZ8k7EdaTH1GVbK3VF7V0G6ZTIyo1HMLKOdb9kkM3WaiYuzx1MwAHEg43UdaSxr/qsFLMt+lmqeMZ5Fdwi5WlDEkVp71qtjrg+GENT42gbIRalI2UkM/YDj0CBTgyaBrMmxjYBsCWYJPHcxw4BZ5YYDPwMQ1nMsj10BQ75U9XGNNua9EBLIWFhbIBibzCOas4QGVhVRGXjdNClTHrN5U7py3Qo63T0PZ5ozkj9tOlYSYNAbUgeeZYaeJDfoYU8J+0H6UDKelwJCCJYdsIGwy3K5pv9sJ4YDDpGmxnM0xvXqBtm3RNAylNE2Dv/rVX+G3v/k7fPnF1/jXf/1XvHnzBu/evUXTNAVe2mw2R9mNp9tp7BVA8Y7PQb5KsqHJW/Wx69Zsun+tSPf7/UfHq2bHqeHmuna5hpG5ZKODNQabxyfsdjtcXV2hbVs2ZMnisOvx7t17bHZbvHt3i88//wq/+91/wK+//TX+/OZH7A8HdF2H3/72t/jrv/5rXFxcwFqLH374AcHHAlEiZySptQx+j+A1zsbX6HuGEdnQOB4vNkJy6cDTOMl+DbHUbeo1aS2nLha9Y2LqfRzGz2zFKz1JuWsiTACMAUx2c6TxgGFoDiyMnLGgjFLuZghorQElXg9MoC68sDEAMTDpv9KgpTS+n7iMggzJT2fmg/YDMhk4cjpIyEQlvgniZKxMRk0z5EzYh4hFApJxQNMBrkWWVnxZDBRLtghMK4qK42tibBgD03A3ImM58JeNRcoZu/0O5AyayQTXuz0iZRjn0E3nWDQdBoGJdQ4Og+duSocDCEDjWnQtty5EAnvjsDgOsrERkVMqMDfLfirQYt0sPKpgpQp1OnmtWwgBu90O2+0W2+0WVy+ui6L13nPnJmsBIkQwtFrPsTNO7dH27PN87s3jfUewuM4IPreprDkX230+59kfeZ4Dwk5dKqcWkWAyYLKsQ2Xur1CfnLUkmx0dRxbOtog2ICcg+oToPZQEA8Q5BY0koHLZT+S5VFkp+eg3xjI0qCLFODVS1DN+nlSac5acifF1OfFqV3XwtHzy57ZPQtkaMpg2HRSmYNhlDIpHE8tiGHrOntSRIKBAelkUdAaAlOEiYKxmzBE6siDXIZJFNA6DB0ImZAowGZi4Fs4Spm3HMbQZ1/whZ2k0TFjM57h6cYNWMpGJCB8+fEDOGY+Pj8WjmE6nzzIdz22jYhzjovx6FABEVBLE9E+/VyuO0wQzgOOppx51vel5KWGIl0nunCvNs3XjTFDH7bHmc8xmE9zc3GC1WuHNmzfMmbznvqvL5bLEtTabDXMjtwwh3tzc4Be/+AWur6+5xERIHHLqj85HhZYq/iDJTHredVMGvbZSVpPGOmouvwkMPyWGyiEWvx6veLopVijJCKlVshvqXciJlD3Lk6qGWm979L4IS52n1lo4yxZ+23CTBjJA07oSGCEiWGf5vJFhM3PFcoMNAIFj0TFzbWFIEnMv55oR1SigJB1aKrhN2q1l4ppDVZZIET5HXKdrFlDWcH9dZ8Zj0+jJGzlXIxSPbCyLgSwGo8Zmndy3vh9Ado/JZgvfD7CdResaYDpFazQBLJS5MPQ99rs9N2wXaLmbTKq6/GoylFsg1yRNCpBTEcKKlNHJOjhdqzo3Tg3Z3nvsDnusHx/xsF7jy/wVlCYzsvXJ42aIDSFjnh9bJ1Ief2ycS7kgBVk+K5+WdSyvjfpiucC2RcMRoRTHgrgmtY5xFE+byvGOzoFI/FWBnuuJTQLBy+Q24h1yZyuh9jQEJPmmOs8aukEGBEmMwSOliBADDn0PGAMHV8gwuq7j88kZYfAwknCsaGg5e72/ek+rMddrHM0D7hJUjJT6/uTjzGSe7zi7/bxf+4koWyCDpDBaIWQJPgI5cbJJzvw6JpF1o8DMgMSJsrDGZZic4UCwhSMzI5EFuYxEBpECED2AiAiDxlg0hru3cE2n4USdgfvfNkuD6D3HJQ8HtG2L5XKJqaT8p5Sw2+0AcMKXJrWc4149F4BXj00V5SmcrF6tNrKuPdlTiLlWwJPJ5JnXe6qcAVbaJUuWxkxw7W+rtcMaL44xcgPw6bSUY6SUmL4OwHy5wHw+R84ZT09PePnyJa5fvsR0NsVnn32G6XSKGCO2221JPAli2Z4TbPz3vFzj7GySOVQWW+Q4TypsZMfHVgtfOYZrL/90cdXC8SO/fuRPZNlRk+lUIKaUQEKwr6Vpeo+sc3BFmLGiSpRgIUxIiRVwuVYR0GrNWxG2RExOYYw2CsgAscBUflyI8tULTRgVHDxJ1jV7yyAUhVHnEWSIB0sj+T+XByk0T6PB2PCfGjYhcNJbTgmGGs4wbRqGQat7r3XLzGIWMWnashaGQ89GdjUf8skNKu01Jbu1sEjlY37k03WaK3dJr1nfiyni0Pd42m6wflojxFgIQ0RD8+sqi/loLhV9Rcfz7KNe0qgkn81LOn5eXuvz8lf91umO53/xSLECzxWQolH6L8vfxEmfOQFJFVo++qVSNkYk/AYWgxfDynu4Vso4MxX5lBOTWZDqgpKUN47jKQAwXm41EEai1kesWRjr4ZOa3GKcyx7nRumj6NfJ9kko2xQTdk+b8bUkj2QcW5oqRDX+YNRqg9zvBMlC5f2dsbBkRwFnmGIuUUIAIcIiZMCRwbRp8ZgyLAxsJqQh4H7NWccAMO2+RIoR+8OAP715i7brsNlsilWt7cAAFP5gVVioruOnPFzdn4jKcfXYNUOWNjk4/X6tePXvcDgcLfTChapUa5VyPoWSa6NAhSWQ4f2Au7s73Ny8QErcheWrr75CSqkIxPlygW+++QZd1+H+/h7ffPMNLq+vsLq4wNXVFb777jv88MMPePv2LfaHg3jsHJPT7FMdN6VvS4kZubJ4PAqDa5ylxPChmYqsXFTR6vgdCz5pPF7G4HhMzz2qAjHgtCk9ztGCr6E25Gff10zbpmkKoxIjFuBSCT0HYIQfcy7K0wgEqoqUz2DcSt25ZvnGwB6uGc9Rw4elmbh45d5rrW5AyEzHqKE9YwnIdaxP3k+cWBeyIg+a5JegnVWaRtjZWmZnY+GWgRwLmqKev5dGFtqekEMiBxwOB55zLRsojXOIst7yEaIwetaA1FrHALF8jtbWsaId14DOJRXetbJV2dT3PdaPj3h/e4vD0GNpVowAnIS7juZUdXN/WoxX3/nI83Pho9PPj//k1ypUoozZ0bcrGBWjR11ksdwnSqxEtbkGJ25pz2bOUSCTQYlT3Y/h+VRKhaxpYNsGFAJyTvAhwYfAylbmZ9M0RSFS1M5AjFhk0QWmHl89/yNDhL3ZJF7tUehO9EuSzOZTA05RkHocxuc/r3A/CWUbQ8Dj7X15fayQxoJ0FfhZJ9aJ9wOFkbNYtWSQokIxlUeZhILPR2CIoJBgEnDYbGEXM6QQ4Q893vzpz9hsN+jaFt98/SXW6zV++PMb/OntO+yHHtPpFI+Pj3h8fCzsSpo5qUpCYSU9x9p4qBeKlozU16mfl7pi8TRPPT79zjnvVuOup/uf2/Q865jtYrEobbaUHpDIYLVa4fPPP8c333yD3/zmN/j7v/97hBDw+PiI+/t7PG03+Oqrr5Bzxv39PX7xi19wkXpOWK/X+Kd/+if81//6X3F7e4vXn3+OxWKB4CP2u70QgpgSp1avj5UiGy/qhbNQM9Iqkduf8TWzALPOFJgwCWONCptawfKwaFOKYyF2fsu8P45kZ9mOHRUCWaCpakaDYTYsShGH7QYPtx/g2gYJQO8HROSSHpMIXKcbA3yMbNVLkpUfBtze32O333EZkZCzaOE/iKHMlIAhRS7pUUGaMhqpo1QSjRgShjTg4HukFDBpHSaNQ2MIKQysGGGkqTxKFvfoiB8L9kJXKnXtyhfNuRAV4UzbobGOafyGHvt+h91uizD4MpZhOHACmTPo2gbWADF4eDnXlCMDhBlS1iVrI0PCCJxRn8RQK4lzKRZImePqJP1985GgBoAs80MvOKWEp6cnvHv3Dh9ub7G6uBCjohsh5Xh8Lqe+5McULQMUf5lyPafczyng2jBTP6/sXz4boWRzsj/AtJwaEeb3eX+jEK0kHBEZICWeyYaNLoVvCdzRzWVbqiwa5+CdRYwGOUVxKvjXmSuc8xvQZi4zIkL0BAYsuGubNWOb0NO/cTOIwiA5ylKUc9ekUhADrJVPN94XKYETYOloDXxs+ySULTJKf8FT0TUaX2yx+MEXq4wtDSrfOlVmBgawSWAUVcA8MpRZiTWWSyM4N4/KYiCiojQn0wkuLi7wtNtis92wNzb0WK1WRZkpvNV1HUIIRUGVkhOFrdIpTElF2ZLgSurZncJbunBVYAMjDFrHaWvFq/vo4+lfuQU5F6HQ9z22Wy5nAIC2bcux2HDkc1kul6Wh9ps3b/D09HRUp3h/f1/Oabvd4vb+Dk+bDX788Uf8y7/8C77//nvs93tcXl3h8vISi8UczjIlnyaCKWKgta/ej68BhTWZZECbVOz3e+TMuQBN67CT0iWiY8rE54kR6aNehI5RbTidk5FHx6yfpzHGrJC4JtO9efOG60Ubh0yAj5HjfXIfU+bC/yAKl+m3iOkXB4/HzRPuH9Y4HPYgY+BjKHGqnDMOQw+fIjfZjua4ZMQY2GykPZqcs3DQNs5htVxiMZ9j0nWsMCElaCqKSQSsejI5FfSJ56TWb/JCtuLBqndrrWUEyhKYAzkhBi91kyMhxrjemZOZOyBl+HCcTc7QMNf35qRxZKlqSMzdq9BxXWJXrxtOahJxUSEhdQ5FPTe83Md3797h5cuXZV0AOOZcPlK0xyr2nFFX73O6tk/P4ZxXWz8fodIRaSlzlVRtnvHSSqbvme0jdmgBlZOy9DGUbDRufALXK60oSEIoKSL6XNa/GsaNOBqFGEYQppgko9jYwmJ1Gk6rrzdnCakcWVKVXNT/jsbiGOpXBXv0vZ/Rtp+GsgUKNFNMBYx5niRWdBY4SG+MKkUA5bua0ARgDCcYKjCYfqbZiJoAFBPTwWkj4JQzLi4uMJlOMJlMsFyt4N6/Q/CcgRhyKkw0qqBCCOi6Dn3flwQjhalO47enVuqYHThuNWylY1QL+yOoUj7TRf5TE+B08p1u6tkquYBO8Pp7MUa0LRsjDw8P+P3vf4/7+3t0XYeLiwssL1bYbDbFS394eMDdwz3ef/iAP/zhD/jhhx9wf39ffo9hxAZdhwKpqrGiY8AJUxFt23KcL7MC03hobfQgsyfcdg2G/Q4hGIRwbKToWKj1/LHx4Cmlxk8VDqDjxTrun4/mGgBACvf57QQlqdjugPw+Y7vdgCzzf0cAxlmpOWfvMXjPdasaTyUOv+gc22y3iDEUjl7tthMTt6XUOl2T7ZE3bqxBm5ygRAYkitYRkwNcXaxwsVxiPp2W+2/E40owsDBSfx7HMazGtiAFVczXOS4fs0q1ql4wBMbTOJwIu4LW1OiN9MtVY7b8rq61yEofxsjbEqtVpXly14qBagWiB9cKlyQ8EnwscUFnWZuQ5MLDAR8+fMDDw0PpTFQbzEalszgIo1dJRWmdez2ierpu6WhcceT91kqy0oVlVxIjgh2P2mg/nrvje6VuuDr+R9EeNVB0T1Fc/FuSYHWixznGmxi+ETmTnZNyMuY3J4J01LIgwojwibJFymJMa+tUM4ZbakMpSd5HaYzAPuz4WZb1nY7XbrnciiCo8mjVvDga/zPbJ6FsMyRjsgip8TO27CsrjooNNirnehMvuCQfEI3fUQFJHHNS5coE+RYvbl5iv9/CB4/D0OOXv/ylxCQdVpcX6CYT2Iat8heXl+A40r4oW+89nHO4v7/Hr371q496tXwqo/UPjAqmhoPUk9Vj6Pe05OW84hgVI9FxP87TMqHTTSHqOiNZvQ+FdZVInBl+Ih4fH3F7e1uU54sXL/DrX/8a/8v/9r8Whf309IS7uzu8+/Aeb9+9w7/927/h4eEBOeeSLZ1Swna7xZOUFGmcti5Bypmzh/u+P/LeU8o4HDhWXJiHaBSIXdciJ+6xq8NLxJSZyhHMx8vld2pBlKSUpb4fOY9xzPoeFLs+jzEvAMhR2aKUJANIwaDv91iv2ehwTQOyFslaOFFGeh5Kul8rF50X1tqR+QsMQ2vMX1vKcaEuwSb2jEf0JyM5WwzcnCMcZbjGYbVY4MvXn+GLVzd4dX2Fw+EwJnkJSQzZFiEl7IYB+8FzSVDmcE5ZkMTt5mEMbDN2/dFQgFYeUGaKVUuEIY+kCyWMUM1f/Z5epyraLHWhWZQtZY4jpiSJOxCHxhDIWVhCYdtixi5O4KrvaZQM5pS5HM3quYgwjymh9wP++MP3eHHzEtY5zGYzgdm55tMxqTZHCumYT7f2cUc3QUgaTuFLQknYGRUwf/FEbco+BCAJwlCkpijC43lez+FT9G08K1TvVQYmRkV7fBqnRikKCmmg+U1V5rq1cNQiC/8416azUdVIcxdlsovWwtmAQZWphuIMjX/Ewr+sF2mCEHLl4aJyTgqBRSpZ++WsiY4MGL20FMWo+IgNotsnoWyNMehmUxl0hXRz+Vct3wwSyDfrHWMqMp0/hlDSoVJG9gnJjJ5LFMuZE0RkJC1Td027Btcm4/vvd3jcbXG7fsA/vHo5enOG+FjWFI7mN2/e4OHhAff392Ktcxxqs9mUZCn10NR705t6WrKjVvqpUtTv116qQqwKs5wqdT2OLqRRKY0UkgCOFpmeY9M0xWvU5J2u6wBAvHeOTc/n86NYtf7eu3fvsF6v8dnnr3F5eYnJZIIXL15wTDUE7Pb74i2oAteEsmHoS3YyAAzDgMPhUMYyZxaa/Un9Zc5giDWEylBoYC1fX9u1SJnbsSm1Xm1M1MbH2GdXxwVF0XJS1qjkjK3FGyd8jNuxdWzIIBWUI8Jag2S4EUaU31SjL5Y5Ot63U+hQjSiNaddCU8ch5yy84hYhRS4/SkzwoLkN2TrkEAHDiBGFBJMZ9VlNZnj94gavr1/i1cUVnsymlO3knDHEBNNO4GMC7ffY7A+gMFJhancXgMrc03XSdR2cNeJpRCAFGDRwxqJrWmzDU1HY9ZzVseCTkLV/YnCz8h6N0/H+jt5HndtQj68alwUtYo0JOkmmKt67ZTamlBLefXiP9+/f42J1gZuXL9E23EDCEJV4tK08znOy+Vihjc+NyCyF0kEE5X5iwZ/PHG/ct/wmQyVlj+J1Vxtfn45XfaTznhsbRWPM9tmWVXmffE8UYZI14czIKYAUSzKcNsfQOQRznAiqIRmfJfygRlV1LVFQoRhiaSKSadynOCz1uZ08sqE0mkk10vhT1RG6fRLKlnECC0IGZXs0GbV1k8I4yuCDakIob6jePAL4PVPBhJRhsxl/j/jRKJ0hGXQpoJl0CIc9HrdP2PUHSXhw2Bz2aCYdXr56hd1h4FICUWzqdejmvcf79++LolSPVxsq6Ht8KpqFnMpiUm/lHKxc39ASXwKOlG291YLqNImiPl6t+LsquUMTEwAINK7tC21RzpPJBLvdDuv1mo8j3ZnUM/Xew1or/VD5sx9++AGbzQYgKmVAXEcbj/iZddM6ypSeZ4tyS7xY4rhEJJ13AnPzBobDffCIUu/oGofpbIbZbCaKNIrHnEqNqJJojAQrWvZAgNyrwhJLBmMMKMvrUQAaa5Ek3mqISx0Km1e1DxlCY5xQDuYjT7q+h6exOw0f6HMdI81wRsgwcJhNOsnM5hhm17RsoMaEHIHWOsBGTNoOn728gQWw32yxtg16IZMo8zwD2fXwiQlkDoc9YvBAzrCVEhrHRC82l7UQgy/Cn8q65nKLxjmkFOE1yS8nNHKd/eGAnEa04NQQGQ3UxIoiZ27qYCtfRee+OU4u5DPMJ+xLXEaVUxoh5cojI/Fw379/j/lshsV8jr/59V8hhQhrCF3TIPkAzQsZ1yAKJKnaqPYky2/zzS/wM4u/XPJNlHe7zCedGziJ8aqhXQYBR7L0CD3No5LR1+OWCyyNyuPWjk/qKKH6Tf05kjFX6JYqh0AVvzUWXdsheEbQhmGAEdnIMskBknFvmwaTKR8j+FDKd5h/nL3VMbRkMGkmgDHSOEMNOjnvzBznOiZkGF3JOjeT3neleQ3Fw/1YBrpun4SyzWCDW/vMwowxjdqSI4Bp7grcLJnGzwwKmWS2vGRFXmEA7PZnWLCAM8aiSRM0kw5730vSyQPmqyUmbYv95hHdbIqbz14hZuD7P35fvJ26GbVOhh9//LF4HMMwYLVa4eLioiiyugyFF70R2GgUGke0aNVWZzfW+5XYROWxaqJWGetnkFE1anIM9TzUG9f3m6bBMDALUiJO6ppMJlitVri/v0cjLQqns+nRNer1v7i5wYuXLzCdTvHP//zPTE5gDBaLxTOKSv1d9T7ZexchXF2T7l9D6EbidCEEhN4jxQEhDBhC4MVuLVzTYjqbY7lawfuAvj+gHwbAWG6Hl5lmMIqSRwYyGRbMomKtYWq+THVuZi7Cp06IMYbHLIuQalvhJM4ZybKBaZ3jWFPTImEMO9RJXXXooZ4b5wg+xnsqln5KWExnnGwllv6kaQtNZsqROw8lYD6b4/XLV8gxYfP4xAxvKrTkuBEG0Rh4ZAwp4XDYMZ+0niMBOSvdpeRNyPzUXtBZ2LvUUIYqSEPcKzpkDAPnQyBpL9KM/rA/MjCNUUasLAgD34uU1OBhA8Bac7RONH6rrf/q0p5ReY2dbFI1rjz/xFAQhX17d4eu7bBaLPEff/s7BHhYMmhdgx578VCp8sZV1lGpsijrX+eRerFEZf8oPARZIG5rR+as8YgkqKApGdaq3YuxgFGB8NStjfnK0668eRnOap5r/q5eG40HKAc6NiBYPvjiPFElZyDe9qTtcEgRffDwwyBGBqNSjRkbC5AxaNq2VHRwh6tYFG7yjEhwS9YGk+mUEwxzRkzHbS81TKfIiH6meQAphAJL5zyuh9pQ+9j2SSjblBP2fhgtsFQRNSh0IvdNKOSPFUiJdOgNlQbD5XUdP1LLD+PEM4REGbZtYLsW8YnLVf71u/+O5Axef/45usUM1Do8bXdMpD4MQkK+KbEsjSHd3t7i4eFBOpJYLJdLrFYrzOfsmiPZAAAgAElEQVRzXF1dleQpXezqtZ3qP/2sjtvWpQTH33/+COBsTe65Tb9XQ9AAjko0RtpIgxwI2+2mQJWbzQY3Nzfl+y9evMB6vYYx3BXpm2++wbe//CWMtZjNuFXabreDaxpcXFzg4eHhCCKslXwN1cQ4Quk6uduWFX+tsENgCJMhag8gw7UNurZF03ZouwlnjotX632CD+yRkuX51xpXzSyBr3S8iKCFEeW2lR6z7IXVW4wRbdeVJg9EqKzjKIQPDYyzyJLrq6QQ5/4+dg/LqVT33ICAJoFygjMWrjFwJiIai+wDhsA0j411cDPC1dU1rq+vcXlxgQaGy476ofTk1RFJRMiOxyiKMIpICATEXHngqu7SqNwAqbG04lWkDO3onHNG6McYdUlElNgugNL4QOO1dbjEOcf48jNodTS4j1AgGoWqMUZKWyqFqmOrfMd6XURjD1d53x967IU1zfcDHHFoK8cEB8ME+6dCWU9Kmc30d8XDUlFVZ5Eb0i5iBIfzqFVtmBlR1Go4ApDuU+q4nJySfB4HD4VqUVbD+Bv8KFWrluvwWfFwVykYK4YIl+hpSZozFhYZURLrDIidqCo3IlYOjMoBZZXLocplkWsIglyFEJBC5LIjVeZyD5MoyMlkVpJhgbE6QQl2VNlaa0seiM61VFCu507MT22fhLIFlFJrTIpQ+CdnsdGU1FJmHn92omR1YRPLOg1+k2I1uhWXI8u+UmLQNJgu5pjsd7hbP+C//9t3CEh4eFrj8vICu90O79+8x9u3b/Hhwwes12tst9ui0NSb894X2sLJhCkNP/vsM3zxxRd48eIFEw1UvMQcCzqGt2pFWkOJ6ime7qOf16UGmnSk43ROcddCRz3G+vfqesS+7yVD2SNVsWJrLRaLRWGPcs5hPp/j/fv3WK/X+OMf/4j3799js93is89f4/r6Gv/wD/+AH374oSRDMdw8wvG113+cEHTsmfM+z+OZeq18PEYujCO0roF1DUAGh8EDPmDoPYaePd/GNsXKtrBCYm64jMwIYgIJb7gW6tAyCjeSwCHp/VXjMMEpTEbMPoTApTLOcIJSEEacIw7dMwr2WdcY+f2j96vxQVZFRjjsDphOpljOZ5hNZwxlZ1a0067Dcr7A5cUlLi8u8NnNK0zaCSgTgtdGCuMyDJlFZQArW5NZcSoUqCUYKWf4EEbKR4HPrTXIiTsdaXw3pSS9f4eCGIXgEXxNPpGQg5AOSAISMlMDWgIbS1ZKjqgeDr4XKWknIv4zNBK9kLXFUNJsY/1dImKPMstdruBnffT9gO12i/XdPXZPGyxmczhnkH2AI2KKwVPBLCUxjACMLqMzbJSRtMAzRpEVnVmVvEjHxp3cfFaCmrdStKQS9LOSyzkDpjZM1KDitczzSyhcajEq/yiqk0KEMWyIagzZQOdnZuVXnPoqzKKIBikZjXrtx3Nfyx6JqMw5TTpzQkwDa7mHsihu5DEDOmcmrAiDxzo8cP06Rgg5Z+5e5QfPCJQYYK0TJE11FAmSIXpJkQ/j/n/g2YIAsma8cTT+6WQnaeL4US+t3PlRKZeJUVzZrEDfqGzl+DElGGS0XcvdO5zD+w8fYBuH/eGAq6sLbJ6ecH/7gNv3d7i7uytcwjV/a62o6oSQOvNyGJjfWa+FJ5Ha9R+HeGvrvVa0ar3W8Kvu23Xd0b413K2T9zS7VZWUPipHMmcG9/B+KI2a9Zpvbm4K7DuVOGjf99hsNnh8fMR6vUZCxtfrB3z77bf49ttvMZlMGAGQ3xwGX+LfNSyu58AwEY+Fjrkq23rs6/hvSomJLSwLqkzSJi5leFmUMUQplTGcYStwWBLPhXN2R8NPFVwMaRRgRwpx5LSVIAkA4t8tBhTH7A0IxnKMOcZ4VG5yJFSLRzg+V2WSx53GmkU5Ask6sIYJOLwPWC0bXFxc4ubmBovZgjs9uQbTboKubTCfzTGfzXGxWqJpu6L8cdq3UzwjPS+OubEwysI8xe5TRohB6mmlj24ajU0eS48c25K4Ve6n/qUKzUmZWYPEc+Hzy+XPCCJ2LvEnCfKg6FiNpmi+gam88nrtAZAOcvnoc31ujcGQuSfvfrfHdrvFtO2QieODRlvP1eck9ykbAEmhZL752muCCIA1QDIFrh5BWT5KHbMd7z7/U/r6sDaHUyPiCCVUi1HmjXy/sa6MlyrII7+lRnOkDWV5S2BuEF8XpMIHOSOBKjpP8TwTRDmOyIIlAysGW7mH1T1Dfe+c43ySGBF8qD4TAyejyMAhB0ZJqUIpAEA6NNUOijWmXA/Kb5/MATqeD+e2T0LZEhFs445e65aPHoX3FVqYXV0cVY86eHY8SpZFn3RyZZ1u/K/GyJxrCtfv7YcPCN7j4f4Bq4sF1g9rbDc7bJ92eLi7L8q2Vk7qVWoXIC1xUAIDFSJ1nGAYBukr+ty7PYWGVRCdg5FPnwMoiTM6rjW0pPspBK4lReqd19nRWooTgkeKQbjMTSnN+frrr3F3d4fpdIqrqyvs9/vSEWW9XuP+/h4f7m7xpz//GSklfC6sUXd3d/jj998LXMjlO6fGxji2fM81g3mEl0bygNEjHw0L1/IiTACGYgwJ+qExWRAyWfjI8CbBwBqw4M04GlPdfPRlfopPXc3HEXIjqBcXxk5GYRhJHeCQJRubM5UlW1uEnmbcF/AjjUJCm4NTHpVJva8muTTWwRo2SibTOV7evMKvfv0rvHrxGbqWObcnTYeUI5zh3sNd16AxDXvsWVs9yliBYFLkBEMR9s45JCQm0BDDAbLeQvDouqmUWhG4J2kuY+uHAWk6HeOQZ9AXhfEks6XA0uOcP57n54Rf/c5RhivEy6m/U5SaKFxB3lD9Tr1ZYeFKMaDf77F5fMLlbIFMBjFmVlypUm7ybyKAi6tp/E3SzklsvJijErXj6yMAjdRXH12rWGK1Uwtw7DLTmLfyfG5TAf+cGelutcYcqJClysjhhNRcjMMUozg2FTSOjCTtHvPRepFzlbVoJVM/OwctA9Lfzfm4CYmOhTPcsCOGAGN5bZJ4vlQl1sYY4ZOX+vDjOm6DU2cmIoZYfpuSVkCM4zDG7587SfX2iShbg8mZyXJuixozOjawyqRCFjefCNQoBJIAJEmukt0rmMEQoWla7HY7bu2UgfmEF/76/gGP6zXub5kLOfiE6NMRdKx1jnwto3ICeEE/Pj7iu+++K+8dDocS/zTG4HA4oGlakBTqnwqaWrmqcDiNF9Q3v/5MSSnGsf7481NFrNdUe+jGsJfUuQbeD1iv15jP5/jtb3+Lpmkwn8+xWC7w337/e/zpT3/Cjz/+iLdv32IYBvzL73+Ptvsv+P3vf49//Md/xOXlZWHcOhwO2O/3BZavk8BqI8YYV+LH9fgrBK5/wQcM1iMTcBg4lqMetFyxLDDLMLE8732AMRnGZDjbgIhh6CxKAZptaQiAlditqB9yAtmx9uOaVDHsKMMSn2OTEvrDDj5wX2X4QUKMXGxPKRS3hMS1qf0h9gLEUKwWvnq8lc9YGgUMAvevLq/wy1/9Ff7mb/4av/nbv8H15QsW5kSwZOF9zyEbyLqJel4ZhpjpSW1VCgOcIb6eGBACYT/scTgcsN5ucOj3GMnegZRjiant9/tiDBESDocDlsulEGZkKdMIRwiL9p3WdVUQJOXSrr2fLKSC/MNQ3wzmODkqJTYOuE0hIyCyIMrxIIrpY6JUPThqCV3TwpFF6Afcvn2Hl8sLdGS5fadxoxPIA8yZxCTTKlaakRQazsXLRRqhTVaU4/yIVUP7ejtSyvLYuvZoPmXx1Ea5YcCNKuR4JRErPjM82exiQ8xZi5yjiNVU1LA2ZyAS5V3WDBUPVuk/jcx7TpKzMFK61vc9gvQaN5KFXCs5XQsjIkCcvS18+MwamkppUNO0sEiIOSJnSM39SIebAseMhyHBh4HHW28Pjcm6KUcxwMzz8MDJ9mkoW4wWpcLIBa5SWAVguEknYEYZAH0EZJDVuwUhFu3K70ED6jphZCGGmNDvDwASWufw4vIKTy9v8Pj4iMNhj8N2h8N2hxAyQkjFa9PSlrHEYaxz1Cy29XpdlGRKLFjqer79fn+kbD/mtQLnPSx9/9zjucV2+qibJnTpd+rkBOV8Lty2qws8PW2Kgr29vcXl5SWm0yln6WbO6tO2e8vlEmQNOsleBoCHhwc8Pj7i+++/L2OpirdOICteDUj6/hIWiwWm06kkbx23EeR2bAP6fsB2v8N6+8RlP7JYneWm0841IOOgjETGcKa1sRbOOjRNB+ZiVtiURGgYgAyatikCj+OTo8dhDMOb3FBH6A8bJt+PKeL+7hZv377F/cM9Hu7vkGJE6xyc5ZIIhQDlZj4TLDp/c3Wvn60rGsHslDJAFtc3r/DF11/h5vPXmC9XyERMAQnAUgZJhrUqhWwyKEtWPBlkMxoehAZtYzk5yhMoBvhhwHa7wd3dHYYc0XYTtC3fn15qpg+HgxhVgxjARpKgmC2MMpfGqdGlj3V2d83kVeY8coGhNZmIiEBJfCiRKafrKQnSVOK2MtZJUJ9TfuTTMR7ht4xGWLFSSri/v+cSpdkcrmk5PloJ7czOIHu3R/dbZKLEnUHKNcDy0ICK8iINWMQkqJ3aaVQes8xP6J96eXyRYqRV3guNHdgyINnKglJU8ihD4FlJdivyFZWdYqigK87akg8hP87XBZX/UawOZQ/kpCunxlQcHZrTe08AvCjTGKN4rAxDN9IzGikhW762SEl675pigKsBd5zZL5nSOp+yZP7nDFRVATp3fmr7JJQtgGJNq9WgcbMjOEgmXRZpMA44cBSglfk/wjUqObhLBfQ7qoeF7ivFCCckF26xxMvrF7BEeDIG+90WjbFMS3eiEIExe7ZWDnre3nvsdjtofFTpHPU7+/0ezvnyfeC5t1o/1or93Oe18K1h5J/b1CDQ8zpiSyKS2K1FDFMspzOEwPSIyu+rSjSlhK7rMJ/PcX19jbZt8fLlSyRkTGczfPXVV5hMJri7u8P7Dx9we3srCvY4TlyPwcgJPWYiayy8bbujMqkYI5x1UotHCBA2GgCucejaDs7xdw1JuY2xcMahaVv+ruPjWtMUgQeoMDYgY7nN3amylQQhTmoh8RoVPXFMhJ8S3i0XCClhCB4PD/cIgYkuTLaglGEoi6XOnqH6VWVMTubfuJH+PwZa5Di2aXD14gUurq8wmc2QiNAHCRcAsCaxYONfKjAtR60x0u3p7xKqcxwNNDWyPFh5W8veQhwGDH2PXshK2FtlReiHASEwIUnwxx5tMfoqz6L2sEi80KyeryoCeTnCoBiRfjnvjDFxUDNRrYxBIU4pJTP61UpWqWOQCSkmOGLu6ZwSNk9PXPcJhfG5JE0zpTNyIVYg0nMab6N6eyBVyvnIuz+xyEbPq77ErN8fz3+cM3VIrTpurXjrfXTOaRimuOkJORMiYvFoRwllWHlLm73aOSJ5TYTjc8h6LSr3JcsctpzWqRNirWXYOlQOAlk4Y+Csk0xnIXShDMZ/GFIYnZqRi5mVrDDMWVPOj3MsTDlPk6v2poqKfGT7JJQtoQriA8eTZlwtPIBmZLBJKQmccuLxyVwZChQpUdnqRmoWG+/PGZAWhMZw/V/TNMDr15h2HR6nMzw+3KNtGmy2e2x2+0JmrjWguugLNOV9IfCvFZbemNqQKMQDGK02fV4/ltM9I2Q/5vkeK+AsKeupwJD1ubVte0QOcZoJzeQcFsEHLGcztK0rSVDfffcdbm5uAHC50PX1Nb799lt8/fXXpeSpm04xm89weXmJh4cHbrEnLFwa/64TzerrGA0MUz4fsxMHKCFIqUGtoO8Ld8lxTUNouw6TyRTOMRE+Q6MNrJXuM5MJe76qbO3/y93b/FqSZHlCv2Pmfu97L15EZGVmV1VWdw+DBIMELFixnj8ACbGDDQsQwwLEhhVsQBrNjo8NEtIgEGIBiCVCSEis2NBCLIFVS7BomumqrsqKiPfuffe6mR0W5xwzc7vmfv2+yKyKGku9DL/u5mbm9nG+P8bSNpwGwZe8vuegOluSEIMiubI1hgJMtZZUrlXgSsLubsTheMDx5Yhf/eqXOL28qM8f4HT+Wa1QiebrmTL3UK11LQnSMVGWyzHG/R5v3r3FT7/7Do/v34OGAU9qMQ8IoTA6j4FLxDJzqTCDI6LGvxvCtVsAECMmTUw8gcV32EkAlPCi1uxq1Q6OGXm8HF/wcnyB8y5b8mdEG6NGBaI5JwmFHc6piwchKhEt4k0zNso25JqfV4gi8mJhnkLxHbactLVUycFL6L5GSpT/QCBmxGnCOEis9RQlG5AQ8B53+70SUc44gcwdMqFEMzKkCxXbqvqLGSWFHQPsKCNQJg1GQgQmiKsRKccFkih5EMkEVBdqhKsRZajhSZ5D5D0AQ7JpLlEwna3o6jWusO5DViKEjNDhuS+q2B46cw+WNauRv/bPJGkwfaUCmDQxB1AMUVMSWw1AfNYH5zG6AbthkNy3BvuJwWkCIep6JJwnERsLESkSimFw8MM+5z+WPU+iSlGCiswTwlFBYgvli0C2AIHIN8AVsFNVh8Frwxdm/ydbUC0MlughsHbKIsomKcUNA8ZBDJpsc6WU8ObhLXa7Pb795huE84QpBhzPZ7yczgip5G6tdY21K41xaCZSNl2rRY+qw8XV76YgqdQsB2swH0MWa9P96NXAQDZnTCmLdEJK6mSOWdgyA8aJAMACrQsgMSmAdxbEoeKMPYHVGtATgzghTCd8/+E3+MXPvwMzZ5H6n//5n+NP/uRP8POf/xzfffcdvvvuu7xODw8PiJxwOB7xF3/xF/izP/sz/OVf/iU+fPiAwXscDwecT9OMYs1cC+ZcfYwRv/rVr/Cb3/wmA3jbR5LMYJ/nOzEjgHPAgHHc4zge4ZxwqACw391ht7/Dw/09fn2eshh5t7sTPZtJW5zDOOzUfWUQwEwFwREZEEbmRmTeWQ3MJjhCFos55/Dw8IB377/C6TxJzF1mpDQBxKBIkkvWS7CXVHG1kdW3Ud046v0sh78S15HHu5/8BH/8N/4GfvHHf4rd/h7nKeL58DFHAAPEOOw0nTJnmNuyP91rJvbzjvDyYvUZGDyGYZSzxADHhOk0gfgIpATvBqSQkIL4S3sF9ayqlcPzESDCp0/PYu2u8ZIJUIM8lXjJwGBxmj0I0ThMI3jhioQBHnDitxxSzNxxG7q0p8JxipyQAPiakFFjmsrq+Xx+QXDSF0Xg+XCQVIm7AeP9HabTCd4LErA+E8pcm7hapAUJgxNdJqsZL5szoyKMPBvEYhkPvc9O1BjqsuYGgiMPEykzUxFbK27MPjnMigXV0iXUxpiaOSlB4BGM6CuISESHgtiJxFgMkzIMbprtJ8n4VCJ3WXAvItPdSiz0mEI+cwK3EtI5iEpROdjd7g7nJN/m/CDiYz9gVKmV+YhLBDDGx+8/YIoTyFMmDs+nE6YQcHcnsGC/32M3jmpUWXG2Rn+kJO56AIha8fNl+SKQLTMwRcDk9bD/Z+SoFQlZv5QPREMJFS7QTBo4tzkrQvYX6RAThmGXKRsioUJ3gwfzHnwvx+J+CjhPksLMKO9av2QWhMycQ+IVkbJS11UUHhtrDJNS8JIUebJcm+cJJ3sWEyInTKeT6MmS1D2FSbLBhIizBu9OSahNpCqWNGy+7BqZ6mSI7so5zqIdOdPmfmW6czl003TGh08fEFLAfbjH/d0d/uqX/wAhTvj09BEfPn3Aw8ODBnBw+NWvfonD8Yjn5yf86q//Gn/9q1/i04cPeP70EYfjEeeXE6ZJqVXmbNhTKGibKkH201nS/2WDJNOpwOHlMGTrTQEwLgeh8P5YZQRxKHGUR9GpkoiDvBNjCe/E79Z0MoMf1I1I3DkMqEgdI6BUh2OuMiTWojEGod7JLNE9Ht+8xU9/+nNM54Dnp48I55M8QyjiT6QiEzTAz9XOFkoAUI7G/HW9d7i/u8f9m0f87Ge/wC9+8acIIeHDhyftHzifA06nqfiK5tB0BSFlSYxyVyYe96jHoTGe3YD7+0f87Kc/x6fng0SqepkQpgkODqfDCXEKuNvdgVOQ4PEp4unpAO9+g91+pyJB6YyYlCBMqLaxrLXuSYlXzRBfddMv259OmSYi4AREJDWWkxCp3g3KoUr+6wjhfiVvr+jxTVdfhAyK6LhEcR/3O6TEmGJEdAmRGL/68D2++vBbPLx/h5d4xgkJA/sC+EwUbAjPkgxABZ0Kj2oxds6HRtWdYTCGEoLtGSCHRA7kgUQ+91MzJaRnPzNllSQRAOBjvi2EkYb8YAZQJCzm5ZWBh5YSCkPGxbClkTOZzC9X18t0y5oEKHP8icXrQPYAwfsdoISwJ4cQGfADBvIqQtZoYEQIemTUTFaI8/0IBMEnLzHilBICEZJziESYAJAS/udUCH+XxwiAvPjqKnEaGreutnwZyBbIkYEAi1ZSczRU1SyIuIdoyTZaFpBcItqC5IyUVB2PchCGpMlLe7WI148RYyzcV8/txsa9Ju6dXydwDDm4RgyKbKMg23OYxFE7SRjBl8NRgFiSfKan8wlhEi76PAniFUs5Rghn9WdDvle45CJOZhb3i9lsK8ciehoVFxki5oSXl6M6hAtg//Vvfo3T+YSn5yccX4549+5ddoE6Ho94enrC09OTGEb99rc4PD/heDiobmtSXZ1w8aT9p0aczBwRpjpMX22YQFmcSBas3HmwRa8BzSL+2LvOFcMNE/2bysLEoF51tNmAxqk0JouvJWiGZSWR7CX2TKzdzbfUVAecxCry/bv3+Pj2I2I445giXAogdhWHmXkfAZb1frK9aSJkFd8579R47RFfffMtvv76G7x7+xWmKeH5+VAZ6DkQnTIB4DUKEGCEg8/zZeKyHAJQo+qLKocRUkSCfOu7x3fgCByOR7xMEQiyF+NZgsWPw4gYZD/FxAhTxNPTM+5CwP3DXcngwvZtlY/nDFnomqvuzeYAKkKWvW1AVghLUQHJtSMPzphG2opIeX8IShUOkWosVI2BWUSdwzAgnMXWwCVJlfjbp0/4/vkTfpYCjilgIIZD0T/bfsji7lTW0WUi0xBbxXXUJzVbvmeoWcSyYDVyVphqXFm/pTmiBcCukY16quaBrfsmV2+1Psa5sxBDpk03mJpIuPdElNe57LXcQ4ZR1qobXKZTHEgJXw/yqIwYlYNn4cGjzkICq0uRpPALSeJLMxEwDGDvEaCETkoI2q+drUSFRkrah8HWtfJFIFtwUQ3kW5lkL4hXSjbVkPtUPSfZZjTfC1u6L6mWZtuwVDBdETkBomWcCzq0pb4univ0iAF2oFokXvcBYJblp47wZJx2rWd9enqC+S3W/rOt8Ylw4vMk3G2bJTcvZ0tNM4hhljRwFsTicDjg8fExJyw4n884Ho/ZEvXDhw84HA45LZ6FW7Q+2kxGvWIiw2I8VRE4UY3W4BG5CoqOwm2aS4pzPgO8YdhVz0Vv4zQ6jXOkxj5ykEkjUVnsWWf5WZWjHnwxoBo1rKFZZe72+yxOHoYBX331HrvB4fD0ER++/yWQXPn+2eGwfV9xOipWFktrsRp/eHjA4+MjfvrTn+HbP/oZHt6+g+TFDTiTQwx1XG4pJnq3uS0c+KWu0jkJawmHrP8kIpw17jKicDsjDXADkNyIjx8/anQgAJq2EESaU3oEkhCSx8Mz6iAWlPs1wpeyFa2N286HSY3kXTtf5dwxOK9Pa9Ro+64QYXPvALP6saT0DFNzCLZJJkUiAN5h4ojD+QVPLwc8nY4ScYsBl0WSKLClmtvMDHBc3PuX5ZTb6LVV2320NiBLpbaBaNu+qEeU4eLsGyrYDOaMqGcqQ1RSE3uDWcL2kocbPGouuu3bSg50w4zkzd5Bz4rzok5IHsQDwvEJUxREys6B1OhSCCdBoIEZHCOotlDXsdUqzNo1c618Gch2Rrk5zIID5Gd2TYBGqRHJktE++miBm/3BRtqZ0No3da0sb/IEPw4lzJ0rgMV8QA3IzDeyicbmi5/dInCJsOvgDy1ylU2TMuIz8Xite04p4jwFfPr0BJFClBCSp9MJz89HPD0949e//l6TCIger27PUueVNpHFNKaTt41fI9v6sNcRpHqHf34DhcXR1HfCETLgCSmqMY0Tn1zDZQTh3sgQqkPWfYEIgZULsXUxx3hS5JPvS5hIM1rx5DDsxhymMXHCdDpnX8lhGHO0x/YQF65tjmyJCnC8v7/H4+Mj3r17JzG5Hx/hhwExBSAScOYcrzb79pImTnde9w+UuPCoOZEZsnUOIQWQF4Q5DCNCmHA+TzgdXzCdz1nKQiC8ebjH4J0E0fCEw/GAMEmgD0BcjOxEhzCp6FiQauGwnXBC1dxItD2RwhBYJQjljIiOUgNzqPjVqXOrU32o6AaTRvICiAeVbCG7jeRJMEkYUfazZsJMPUREOX76x48f8fQkbnJgwJFKZYzLZJ7tbbt29Ho4toZctyLbXjtLSJxA8PXvBUQPzPd0t63qnkjh8mG4gOxkIni9LtKXOHPFm50ZSnj3/ivhurmCl3z5nQC64XFbmyH5nj8EZJt3dPmjMoNzmYfVYcCyA5XntR4DYK5fvjIEKiEO16in9nn9u/du++zyEAgB4clXHFVZ7FpnVr9nvz3m/dbGDELF95411H6zceyvhEmMMy43hIjnwzG/G0LA4XDAx48fcTwecTweNYbyOXNHdRvTJHll67alT9Ufd8bZAxgXnEBnnoma6EtZZqbvwhArQAawuWj7kQBx2pck9Y4K0A3JBHbqJ6gWolRdWwdxGPNOzHXJIhexik0jYgzCVYmTGYho5kYmY54bE8r3OjG+GYYsuk8p4Xg8wn/4ABoGsBMjE3Pcr7lY4+bsr77X42ptTwZF4JzkG0KMCKrKCFNAmIotwjgMuNuPGAeH/Tji7rjH6eUFx8MRx+NBEJGjjLST7eP8rwYOoPm5LgAzwmngH3UAACAASURBVHLp1sjWgAiBRbUNs46VVbZoRQAjBpKAGCpRYCpRkNgoejbEbiFA5b5x1zZfFk/cCMvdblfOHZe9Xp/F2X525StuLWsw6RZkW0vU1pAtACCmEi+hczbbcbWlRyDkoDDN+713aji5ytFTAlIEVfiih+jn7Ra4VOIhAN5f52itfBnIFgLopBh5UT+sa3L+P/XqQoyb8pl8xXZtEWjv/i0IdzY65mZBFRA4p7YR8+ct4qn7BDADmPPnZvF6+U59Xd+rXX6M063jDddc8Xmau3o8Pz/j4eEBHz9+zH8W/rEWW9dIu+W0mYE2m4aNsffnVQzbcnmXpX5e5l0IG87X0ldhYDJQJigHqPF+TRSWKqtOEDjRjOMpqkACLHSdDCLH6EUWn5XxeO9hejgjgmbAi93Fd4qo2yuHKcfa1uUcIuAGkPMg1dVm3bLql7136l9c8i47J3Fp6/Rn2QBMjYYiB1AiBBYiRVL3RTV8klRnIUwIacLOP8A7h9F7PNzd4f5+j8PzMwgsGaQSYyCH0amva9S4uuALoI98JoqVrPyFEpSfkIl2AwVEJF4KKUmcYw2sAK+2HpELkk9Jgngkyha6ZhVcdohwUnZubHzMYrlt4UzNhzeHayQjAJYJ9OwTs6EswZze/VuQbZ0wZQmR2fdyTEVvnAnZztmkkqziWjGr96VvacdBVOl3W1itYwIlxGkCOIlLl50DPfw1twwA93f3imyVMK5hP0r6RbqyWF8Qsl3Crj3KyCgSunheOOOMbW/s+zr1VNdpObA1xFhfz/sU6lqP7EW7tc9pK4LpIVuuABFMh9R813ZdUKmbDYeGAbu9n+m83r59i8fHRzw/P+NZU4xZdC1DusbJ1gCo1tNma+SL71geV6svr+cpEw1mGKZNmai9wG+LjzyPuWr3Cndk4iKZUIlH29tjhPq8MhgpTLAsMQTk/LIioJHg8H5Q4y1OgHdZJ2jrbOIwZmS9YdGpFm7U/mKMOBwOSIcjnB9F3zyUMKEWns7CX9q/cTrPuNy6zRnHaxbfzoFJsqmQIwyOQPsRifc4EeN0SuDThJeXQ7YAf3h4wNvHNxg8IcYJf/XLgOPLEUSEKd5hP44AMWIELE+p6HHlT+lS2TcxIiY1MKz2jxmN5d8s8YunMCEF1YV7YBx2IBqQ4BBASKcJhASkgBQhbjRcgjIUrpo1NqYHnL8AxND43EYsmRiZRW8y+4bZ7rEx36SzvSxrCHgrwu3V6zEcBmbqHhmY+eXWbfbgaK84wu3ItpLULb6jTBkiAPXCWJKSHY6/7Y61Jvp7HHFbviBk2/7uA7EYa1ENzd6riJkqFdX1TdUu0lodu15Dsnbdin/Xvs30U9Rpz9q8eIfnFH9dLyNIb6K3yzG0bbbiyva7S9u1r7uM02ue2t1uh7dv317Ec665WONua5G1iKNjBVj7/9pfyx3X/bR9nicJ1cicxLUjBXGjiozEQXXesgZs/t2EzPkUJjRhHruv9qszWwNjkUXMqLQwkKgKjCC60jL9jGEYlWMEwHPd38z9hggpFoBpImNDwkDx3zZL68gMP4zw4wjQHIGKXn2YIVbru0W09V9+NvjZODNHTA5v3jxIlii1mD+/nHA8veB0OuH7738NEFTP/4zTOYi0RMH1bjeqXtWDBp4b56UAXxkpRuVmWYNA5P1LNUIrZDhiUiv3BO88HKl+mgawjxjV4CrGAE+SdTVRCQEJW2UqnDfx/Own80euxPOAqhAsq1NrFdqcO+YSuei1pQc3aqOna6U9+0ttAshhGet6PRjZgymL7VZqhF4dg2NL4l975wKJKsFjZ9oyigldzeWcE4PIw8gIruyEwAA5FnU+COTW1+rLQLYEdJN0VmIgAErpGzYtVorzMqegNnXfQaRrdZbauPWdupjYwxaSjTWyoVTNXLTJeStAaLYipsrIODvBV+0ZwYKMErQJI1MUgBNVbcu73pndoLZLUH/VAbtdofzs21rE2WYuAlgNs2S8LdLsId1at9z2USPiSZNKM0fEoMg2KbKNkxq2MoCEGGwmWMXCFnxdkbEdSEhQmrLdGmRblMO6mg6SM5RAcILkzV0FrFGpZB4dzannue6U5MBz4WzNhYe5EEyFMx0QWYL1kxtEvF0hTUOO7Z8Z5vkm24xZZnu1PnbVuLwXvbH3DoNzSNghxT1iiJhiwMvxBYfDAU8HsUZ/PjxLQJTDQVzKnAA18alMmTMl5+F8cQMTYs9E63lXynxnUSEhpw+ouMcQpuxaJj62xbXJ9rwjB7ZEAEmuqRwyWUMqXTKrTzsV4M7Mkh6u0oFLxLtyBi3tm61zjTiY+YIzv1o6oLD3Ojl3UfVau62tVgutAUAd9/OdHDlq9u8coFHT2hz2MshCn+QMUk2/Ldxm+ej6uwn1PMiFRSK0UJOsCQn4AtkmeDfmsReiW9oSfGTpYf8QkG1FuQA6cVBg335AlUuSqr0omxT5YAlVuR7Roy1LiHGJWpuNt0M9LVFwdcn3m01YlEyzuwCQdXmz8TDn+mUDl8w9MibMgEoee+6hPp3V1jEMiwLknRuqb+JsQW1tGtCuv7FGrkuceq9uyyUbJ01U8ti2bdecbYyTiiAFwcZYDLJSCipOtvmytuwQlsDqciDLPExTnZNVYsDOctstUMdgQkxTRSVLRh3xDZ6n+Grns9XZMrPmStaoYNX8GLI1mkDysxR1QM2hWj/GLZsRVSsiq991meCqOHASq+bRO8AXOjoRcD6+4HA84tPzM2JM+PjxCS8vZxyPL2By8MMOStIgqLGN0yAjSblHYlaffLNHEEM0mWpn+DavGTHnvKmyHxIACWhiQUoshKKdIwmoIoni2ayQKys7UiZAtZKILL671GAkI2ZsDqdp0sD7Opc14mgI/r666UppQeXSu3xRdbHIfrtsr9cyU6NXr4mSCzi30B9qWMkSq14Tm1yTOua0m51n3Hz0oEFdBIkSiipJrmtC2bkBNbK1ulQxIVZ3rXwZyLYpM+quQXR16cnXqxs/+jh7yLUttejEfveKo6wQ6rY9q1shsdbHtLwjdXa7uU9wPSZgbm2Yk5avzJ29Z4YTNdfT1umJuK8dmvrafpvBT/1ujWxrw5R6bgTAhnwo2kwxa4RTO97eO0LMZc/AxW9pOfJe38IxFqTVumXNEC4K8H55ecHDw0POh1zHtjaAN8UoMZ2HMacfu+SYy1hb/Wzv2+wZc4WIM/cvoQNqZDMMA47jDu+/+gl+DsLX33wLNwzw/2CPCA86nzBFCdJyfjni5CJ2o0Trct5jJIcpRxFKSIoEPAFwgwaKMMBn6yd6eUbSbDAJp/MZ+90d/DA3JquJtprLtJCNq3uWWXToTSD6+vsBEZnXZjSXgS3mf+35WSt1is+L8TXXtyDw1iakHWNdsiGf1Wv2To2a8jO+YKdyXUCioQUz0tIAPMZp23Umtkwsr8SQNVLkhcjI/uV8FoaMLmPVz9VDcyOxyxFS516/fEHIdi567FEJM9GAOL81z42SUqrqChBsxZy9Or33e1ystTP7Im6/qd+2iJyAAiTWKaQLy8wrY27HY9dtPy1gbetbP4Wqm49hqc8agLWEQe/Z0hhK/+VerQ+z5/M9NFQGZpUV6TVJw8q9jGwtBN6GkteM5fC3Fo+OXAUc+vYD+bs000hKCY+Pj1nsC/Ss6EmMw0hYPkbhzEDzfi/OS+YSTTRb1aNKXKtI3TkGQ8TZnBS4ppQDBEg2HUJKjPv7Bzy+fY+3hxMOL2fwcQSfz/DDHR7evMPp+QlTENGxHzTKEDtIiCDWmPoiCYhhUiDKqH0nYUnoNf2c82KY5WjIrlGGpGqJSJ15ys5ErduerQsjG4tFzInqYRhwrzF2jTD2tlaKoBmXZ8DaqI3/cncLMKVHSLfP2ja2lC3Iu+63hPMkgFy2KRO9tiJbp4neFWkCmmABBepXLReJASOjzSI4UssIKvuX54KIUrfmxWARtwggTWhSSfvqkvgSblA5DBdneal8cch2a73efpnPEXc35lLZSu3ViHYJ0W1F3HUdyXnady36vHHPOeb6vTVJQV1a4kJrz95ZmoOaC2qft3Xq93oAoj3obZuXgECPOZuaYrthyJZCvL293lz3ABnjMppa0ytqI63SLqFdk3yfBOFalLQlgLm0/v06lP8M2JBymwSLdSvzb4jFey+hAx1j3N3h/v4N7h8ecf/mBYE8InkwQwyUQgRZ0gAnmY8MPMZowmZCYgk+b9/OGky3BHopfA2R+PCiql8jNAs23xJ/5o7WQ3pgFS1WU2d1vffY7XbY7XarZ2vWXvOs2yeWzuRlO0vSpVvKNRhjBENKSf3HdU+or7mtgKVTJCJEijNka9ctsiUzciOUSGo14qyRXX2vh2xR+qNKIkXV/zIBWX2bIRu7ni03md3ANY3tF4Rsy94tbj0qoalrNZtnrgivf1M1+60Yt8eJ3iJaKWO+DILx2jZtwUl3igVW0EatwfnvTQ07kLkTVe92D2uzyWgBELDJb+r5XphfQ4ol1B4yhdoSQ0b92716flvkXOsa23IBTG6Yr1asuliUe9tatkoCQDSztO33XUTldcYjWY8WgUvdZPvJtc/t3fUxLj2zmOYFOYle27jdTGyRk6wtTCAG3OBw//CIN49nPJ4SaLgDu2eEIAj27TsPTgHgpPkXIlKYJNhFIkk8HyUi1OBGAFI3g0VD9EQ6X2pYlQDKHCjl+/InunUJrEEg8ohxUikCVN+rhjrQoBYEiVtOEeN+Xwz6oqTfvLu7w36/xziO0n6NlWn2q19qWNXbN9QA+bpO+47+3gqVuPl3rZ6k/2OhFDUIhBj6tsyRpiBNYaG1ecsuj9cI53mNev/WDNbVkiqwypgHSHINHNTx19x5nhUqwWv+oJDtdVxCqHFti4znvyUlXGl/GQn2uIzfdeEMYHV582ozLk7H5qEm1Y1ULgR1u/MRXDa8UNcB0Fx9nbm0V0oIQQFrJZA7q7hv3hUBlFBJhC+o/lZ83CN05gSQANMiZr6OHTfvAyLknGAb2txKGEj/a8h2ztkWycJcdzznQAFiDZTeh9ez4i4Qch9BM8SLhfWmjFqNu5K1pfowSDxmJg8mDzfs8fjua0TaY7x/j1NgfP/xE87nswTCOD4hTiekEBDDhBgDwnTGNJ2RMCDhGSkGMEukLdOdkxmw6TwSRbUCr+Yvi90dgJj1unAOngZJsADJSXs6vyAGFYUni8qG8r4bwDEgJREbW2g/coT379/j/fv3sxjh1MAroCf6l8JODbfk18W68QritHdqArviRLaXrciLGWZYlFjNx2p4XHGtJSHB9VLbb3cjAnIh+FPaNlzH89gFjijvVwIKbIPhXiX49Z4lHLDnf1Bi5LII7d3O5NY1OpxR7/fSe1Zei2iviYZuQeLdA7dEzW5rETOgfYWila5mICmPq/cNt+mKLz/DOAnpSzarzFdfb3xNejDXKddjLpG55PQTLmRXNWWcLZNtFpaucWEAslZ6Rjbt3LKKJNendE4UzddhBdmSA3HavB/XONsyDsDEaGUKKYt+ZyJuJzGok3KFjgHQDsOOcf9mxJ5G8HCP0+mMOE34lGz/nhGiiKXZ8JsPcD6AyIOTWJuD5fuggB6sWZ6IQFTlgWWCpoYBgRCVY7K0dMMwwg0qDXASMIM5Zv0qmY6bCERDTkBRS4G8JoP49ttv8e7dO+wrjteRud2UPbco1oca/qxtiqX79s5nwBBaa7+pJ1IWl+tfSs3yTtRhbRmTEuwoxPsS7CZlpTcZlREkKcECkWPfNPuWStJI7Riqumvli0C2QIeBI5rj2YWPaVHINSHJLYYxS6UFkEvI/ZY2e3Vbw4elMSyMsqp7fSxb9HVlsMv1WqQ3e20Bcc/6WYQplyExe3Ny2YfpVBSo1lbfJuuCYYsk+SmtrrnzGDc5u94ehSc3j/m+QXOI9cl6WxlrrIcF7Q3Buerb1+pmIrGuu3BuFBoWKp8v6xoHZ1nyWPSukQlMA/zoMY4P2EcH8mdM5zP8+En9roXrTJxUT+tBboTzO5EGkWQZkrjW9fxwZ251jCSuPTKHplOU3+QszSBASHB+UGlaUlWvK21qO44cEhV3s91uh8fHR3zzzTd48+YNhqEy0psRd9uI1SX48jnSuB9DkkfO5bVeJeyxeMzbFsvZVRh2acRXdKZElxbQS8URz6QM7T65QLYoSL9ln2n+v8XyRSBb2eatmfglEmVmOOoP+YISB7BFbAgYVbatbi0OvKaz7f1eG0Nd1owfth8UQ9Trfb0WEdu71+ag5z7Qa5vBJa7tQl/1dc9oqttHfq2VllD1J78tP2953l4bUSD305yhXCwJyDF0DdHO/pVBAy3Rea3dWfD7lvCrxp9Fw1uQbZvQo0ddWWu1T6L8ZmK18lJ9FssLwzAiJEJIhCkAL+eA0zliSh670QNuL6JTR3DDA5yTyUgUMPGElBwSezDtQJ7hfAQ4YmAHpEk4UAqqVk2ZaGJWH2elb6LY8YAg15Y+2znLeSwOwsQk7lIJSJR0eSoCOGpyA0+AIxyPRzAz9vs9/uiP/gjfffcd3rx5A+ccpmmaWTLn1agkShfzvEFC1xL+7fP2+prUb9799p1IJGFcdanX22fOwWuutsua2J6MhOogOmj87FsOTyMJaoHk7Bc19zvEPs1gRb98EcgW6Ftmttc9bmn5Pe4asPTauKWscWefUz7XWOtLLWb01IpRW4Mn4TbMR3Nbu0ul3TuWRk7frFu5uNcGJuj2bf9+5jItiufXpsBE4e2YFGPM9yerWF5caFKn4d481kZiqwCcgKRB2EGkYlxFasySqIHUdcOJG0hiQmKHmIAQHEIEmDyG/RvseAf4Cc7t8Pg2YBr32O+PGHd3eDk9S8q+6YzpfAKnvaagi/D+GZwmcApIcUKYXpBiAGJQGBAzLDULArFk1g9RH2fnCOQH5Dhfg8eQIgCvPs9RLJOTBrtwkByuLPrdaZrw+PiIr7/+Gn/8i1/gq6++mvmIz+avIax688xGHWwoSxKwizW7AX5trZtbdzQ37PxBilF124iDz4Ht14q1XTNmt/T3hSDb1sfTkGv5beqHlnqYA1Z7V4F4w4X+UGVJP9hu+NuQZuGuUCU9FobFRHOmN6INh1CFelQiqlQSyPnepepZM6TMz3UZI2r+re+3wKOmqg3ZVm8Yw7hxzm7RI281YJCx9ZBxfc3l/3Td3F8b1fntUeWAme/YUq9mRMnM9VbAUvZk4ll8yXz/critbresVYts2Xsx1CHS8INzZEvKnYIjiAMie0RFdEzCRZIbMQx7DINHTA4pAvu7B3hiCatHA5x3OPsTJn+Sc5cGEQUiIYUAjg4peSQnThjRObBzkpwgxcwRVdDCjpQkKNfIXc5LX1ne5gd4YlBK4OTAIUmaRTC8H7Hfj0gcEeKE/X6Pn/zkJ/j222/x9dffZEQL9BOYeNBMslH/y7IR8gp2hQs1TORqh9aEJbcrjgud42rZmlO3IgJt/HMbhGLIJPe2iHtLbOvcDahaS2uwLynb1q7Bahtb78y7Zo1qrlbh7IY5/TKQLc0nvyDN9rchnepFXC5mPkgXHM6PR/UslVsQrgxZLSUrkWjWIdomoUtJQLe1Vj+U22qRIVXPFsZ+0V/tPjEXT9l6zEXMdV2gjjw0768vjrmV2291vFvLbXp2XBIu/dF01RQXRACjuw6XHffmqC9Cz/PZdsUFyHS5Kr6se3FN6u6hxJ8zoJM0ML/5IZN0JCkJRYKRxXgkoT/JjWKjRAmgCW7YKVdJYDgVbWswD47g6DOyHYY92BFSdEj6neQI7MR9SPxnC6EhaiMAzJoqUOM9Owc3jCLuJ7FQdV6yD5FLSMnBq/7YEWG32+P+/g5TOAFnSZ7w9ddf45uvv8FXX301k+ZY6FgD1uisYJn7CpjPkGiHGq6+6dp65XudfhfL1soESGrTy7/tMGu5f/kMmt0z6UBmQDaP1YLK9FyFenO3nFmsfWetfBnIVssqbEdNya3XkweF8ukB3S9ObEsq4KoAZn3dixp1rT3ZBCWGi73b07PWz9o+5tcGQIuu7lJsW9ogKm4vbShFG0d5XbHNBVHV/+4eUOkBl1uynKyF5isDkdGFlC72Y68wGHEKWZ9VItXkG0qKyH1/jbNFb+7XVDGEwQ8ADWCeI53cbHVthj4XXddSHCX8OEXrDFEnRvAJyTgjYBIaCXqQwK7ohBmSw/h8CjgeJxxfTji+HLFTojA5D/gBtNuDYgKHhIiTIEwwHBzgdxBp0AQijXvsHDAk5AxKimxTKBmiMiIcvCZQGLLUiJklV++wg2ONy5wSyEm0Ie893rx5g8fHBxwOT3AHwsPDPb77+R/jZz/7Dl999bXkwaUEIofBjxIPO3N7JV5vTajOdYFLiICq3zXhVRNJPQ7tttJva6my/M98bW19oPG/LWezLbyNeulLakfItLBPgWWYvj5Qzr7AW4iUVuJwuU7bypeBbBkAhzk1DWBOi8+f5F8X77yi+86kLSGb+p06ZuZSEvetxfvaJIwBLnomO6CskIycx9VujCLO31a2skU76Vpyt+2u9mNAsz0ANu5qMACYY6den+jhPP7ZJ83an3PtJRShVSwA/cadsXENB+cuotRceBXp9bgbJJyf1o3EGktYEZdxqzZ2lIAQ8/kskY5kqGtjLUhNPR8B8hnIM3g2NxZoxMOr+FYJpmYT2PuglBM8JAARBGaHnEKcPABLZOAQooNZ856mMzwRvHNgOJynAOdHjHuH5AaE4/eIiTVFYsDLKSAExpQcotsjMJDChBQDUhxqxhXkHcgNEEgfkXgCpwjHEcNovr8uq5kSAwx1L4IYaDED5EaZ86RiYyIMalOw2+3wzU9/in/ib/1jIETE6YT9bsT79+9xf38P25usrHZEkgxMKcKyR2W97EIJYbJVRk2UCWHFKJGz6mCHRmCnvOotWqPaIh+WbMOIqJqQ02xVuayjSOFiTQUhJ5Kc2adbQAgl4jRJElX9cqz3pNNv1B3H9fXlXM2Jdh1dBUDm77DE1kZ5Pn/nsu3mjnzfjaD+y0C2C5xMfyJuAZzbZ+OqS0pzbw1Bv0ZkPUO0eudChzOrs+HbumKn9qqpsVHnsWWnKZOwKKVYeVO76c+hcQYLb1183I+hPaj4ydmNvnSGAYImC5PfDsWtgbNjfqWPIpr95XYgfqOvGnPNTjawJnNZmOvEDOnPv90oCTNsM5BMSBajmRzki51CVYLX6wQCBVZgzmCWYPMRTt15HKaoWZuSInHygB/hd4SdpsZLYUKME6bzC5AcwB5gD0IAYVCCNYgQJhGIHQYkeDKLY5LxsHBPidUdSRePBvVVUrE4OQI0E1Ai+UY3jHhz9wajA3bjgP3dHuOgmYSyZM2C9Gvc6IqIXi1sNhrVWlVHgyxKVn5o2v/q3uLZqx9U17MhUVV/NrDeUC/6l24q/agRC1w+xZp2UMt+btqgS6J9CQekTpzTJYnXj6VaWitfCLLd+kF9quZzyxyglXu967V37H7PaOrW8fQ2yTVdTK9srXeTSwBu26w/RrmZmPmBx1t0ahWXWffXXKdmvJWFQoOg5/uu1cMy8zZRd1PWRP2t6mBpn/WeExXexlm8WRKkmTJnJfckMpNEk/LOghRI4P+ECYEcAgMxJUxTlAQCzJKDdxgkUEYaMYwjsNtJ5KYQ8PwMMHsgRYADwBOIAxhROO0IIIq19M4BDioEJ+O+oeH7GIgiOSAnuXmZWVyZWGgGIQAmcEx4OZ3x/HzE/X6Hu/t7jN5jHMacXxjK5c3F1gXbCn5aWUcqMoU+EVeXlhhvr+drVq9vkZxcWh9LUodeu5f3aHaXO3g+i22UCK+Jf/Fpz8aCuvdrddNSqfflkvqjd2+TpfWKeurW8sUg2y2lG65rsS42131taRHr55QWQa9xx7dulFv7v173FpnBP7zlhyZ4gD6R10OUtxJz19Z2CQEvF+Ne1PWHLTGZIFhxmKHM3QiSUR9cdRFK8YzzOeF4BgJFnDEiMiEmxul0FN/ZVFINSjw+ta53pFbEjN00aPOuRABTPQQnRsIgCeA5YagSp3MWdxKSsxSBYrlsom8izHyUCQmRZDyn04SPHz/i/dsHjON7eCpzJ9mOSopEC2oxeA/vLVZzDyFVa6Kz/GOc9Wv3fihubqn0iMglhmfNzuR3Uf4h5GztKm8xezK7TonQJvddun6NqGArEKupqB638ZoFajfc53K1rx3HtnZvqXsbsrlmgPCaQ/djzMNr1+Ga1KR+5xrRdUv/S3v7VgQu9UXoPSdoHYo9AIo4miGJxRNXokRBfsQRHBPOiXBGEmtlZngn+lOGRmYKQfSzKSGFCQgBzBFIQXxeOWrigqh/DMtfnJL6WbOIGp2KjwExm4pJXJESxPp4NzgV/XIBR1BpuHfwMWWOL4SIGJMgeV/mLjFL4AydU++9pPNrxPdXJnouIVlARkscnT17zb1sPHaDceHS/un9tjzB7b2W4Gvh3hqXWhtj9srSGbxWXmMM1StfBrItkpUKX9aI037XQL59Pm+wFVNcHUIlLtjKBbQbYUn8+zmlh2R/LApvM3fL28X5r0WM1+bx90Hhfs4YlsS2fdHdNsLqtXOwhYtpOY9apJ2BGwgSi9i4XAV41m4tSmSI/o406CIBgyd4BzgHcNIYxCyI3HvJW5vAYOfE/oklOEeYJnCYMnJ1xIJgU1Su2cJCCWBRVSCYgcgsATYM2SZGjJyRrR+8RI1igKcIkM2PIh8iOOdhxkkxchU3ea5jJypJHVJKkqnK1proqr8rWSMb13Hr897++iHP2TVk3hIHtah9aVzXCPC6rWvPauS8pfzOOFsi+i8A/HMAfsnM/7Te+/cB/GsAfqXV/l1m/h/12b8D4F+FGP3/W8z8P13rg4GSzYcZ8xNa/2uXa9ox+ffW6VlzremJ8YwKs4UTA4g+V7q1XBOXZKp5Y2jJW4iNW8WScXTeKQAAIABJREFUa2EV23a3jqOt2x6wdoy/b4R7a/+9de3d27q+t4zh2jq0VH9NBLTvkihboUJk4WYJyomJwRQRVfKnEtyAVV83DoRxGLAbgV1M8InhknC2YGAcxcJYsuMlJO8Qo/LSzGIFnYK4HjkAxtUiSiQrJDFqgiDIpNx4TOJbm9gBTIgxYpoiYmLVKzs4N4htbyKJlc2GxOUbM7JlJ3rlKg9uib4lfLn9NvhAJnFj9RteWbMCEq+vcY9guwZH1q7zGF4Ba64Rcympnr4DM5ckLC3SbfttidZrSPc1sPFzyxbO9r8E8J8A+K+a+/8xM/8HzaD+SQD/IoB/CsAvAPzPRPS3uPX56BVeuH51IbQ+pltLD/Cs1ett7BZB3Nrv2rtbOdDNnOqNdTeztbgdIfUQ6S1Shx9iDL+r0gKX+p5d98qthNFrxrW9FJc3p9bExcgFQNZNilg3p+6Bw24E9sljnwjDFPESBOnFxPARYuSk+l1msQh2nEQ8OxCIBxA7ESs7sTZukRgzg8UOGgmiD06a8Qcsku0p5lDO8IkwRY0mNQyCuB0hxagteJBaYqfEeHk54XQ6Y5om7Md9TikoxHiaqZok68/tLiNb1qgXsz1//0ZJyedIzNb66CHbTHx0kHRL6K2dh7rullgEvbrXyq3IealcRbbM/L8Q0d/c2N4/D+C/ZeYTgP+biP4cwD8L4H+93s+2DuSjr384wTbZ69wkbi1LiGAzp9gg52sb//eKQHjLCmjVDaIfK7ap1wBEK978fZVbvgtYD5axBJzafz9nf91SaiJgSdStFWEGS0TC3Qppqz6r+twQJfQ8Smh5jdrkCYN3IBck7GGImEIEJdWosvjyhhCUG4qF0zTRrpOfJa61Eti2T5OIiVmlYjEbURESe/jBaco/B8KQpWwu642VcGcNL6n+nykxpingfD7hfDoh7DzGccxjMOnXDPGZUAC4Gke4tge9hszWEFf7bg+2bN2ba+UWhGtlzY5gKyys+1g7K69V8/3OkO1K+TeJ6F8G8L8D+LeZ+XsAfwzgz6o6f6H3LgoR/R0AfwcAvv76G2wH31s+vFCTW7naa6Ljre9/rih5jbvtIZ0t7f3wdV8vKdhaf+lQtFTv76vcygUsicd6v5fWvAaUt377rWNdm/f8G+o/KqMW616nYQnI3J1SQbgQ614J2iiuQH4g+IEVsRXE6hTZSozliBgjolomp5RUVMzFSIuMg1ZO2AxBUkl9Z8nFU7RvE19Z7y1Eqgbd4KLWYkjyBINP5BwoORASWINuTFPEFMKMWxPd86Uonqq12IRAOmvYW5segbZGtG5Fhjb2q+O80t6a1G8JMS4Rl0v16+c9pLt2Bq+VH4KofS2y/U8B/F3IXvi7AP5DAP/KLQ0w898H8PcB4B/5m//o5i/5sQDsGrJdut9755redWt5rcj0c8r2/raLwj5nU1+jtm+dn1t0ltfKD3H4loDntf5fuy9ukbL0uOrZ+8aVScJZSGBjACR5XyVucm2slLAf96IXVb3u6Dx2cNglYBgiHE25z8AMbyLkqAgzCtINIcAhQWJRSbTl7OaTpC8xmErgGJFiQEwahY29GEkp2zjsHMbdHs4PgHOIgQVxMiMmCc0oxs0E58UdSKQUHoyEGBkxRMQp5vNvelpi4d5NtOy9RwyVaBzrLAZrhS0SrhjjBee2hGxrONVrqy5tAoW1cgsytzmpxd817LRnPW71lvNy7d0t5YeA58ArkS0z/5VdE9F/BuB/0J//L4A/rar+id5bLQRaXNSWwlkTBdgCWfxeCYtWZDE9IH3rItT1bMMslV6qsqV/27Zaqq9+VoeJbEs7nl62kc8tRqFvKc65C/3IljFcE90Mw5APY60X64nUbtHP/BjlGuHWPm+BZNnXRd/0Q6xj3d/S2No6s3EBKnoFyCIv5WeS1YaIRHlLFpsqIjGJuw0iCA673Q7v3+8x0R40vgA4wCdGOJ0QpjNOL0fEJKEZWf1VU05pwEjhpNyyIV7OyEyYUvHHTSzJCogc2AnixLADnMRWZjgkTIiMnH5vPzoM+0E9gKKEUFSunpxDCAEvpxNeTi/Y7/cIIWCaJAbybpDnzKwic19PsIbz/GHW0dpuz0AP/izBjyXmoS4tIdbCwy0IvD6za/0v3VsrS/W39ndr37ecw1chWyL6jpn/P/35LwD4P/T6vwfwXxPRfwQxkPrHAfxv1xssC3UNMPUonbqOPOPcLlU6EitbuMalSVxDiEsbq/f+kjhwi/h6Cxe+1E9Lob0OaF+jydfHu9T3LbqRJQJsaX2WONeWc7ul/1t8EJfG3pal76jnphWZvaZcW/ct+4QBjXcrF1x71/Jl3OyUYjagYo2g7JzDQAP2NOBuIkzJIQRGOLxAWWUR76oo18TTjhlREWx9yGVnakAKEy+TxRYnkB8ANi5cDLVU2C2ISN2BM0JRIEIEMcYiB2aNdESCNKZpwvl8zu49LaE3W9PZPF47e3MXuy2i2hrZ2r0Wdq6Jb1dH0zkr7fWS2LZ9/zX79rVc6dLvre0tEZ63jm2L689/A+BvA/iWiP4CwL8H4G8T0T8D2S3/D4B/XTv8P4novwPwfwEIAP4N3mKJjC0cptw3CsW+v7eYzHLI6ilqkfRrRQM9AHdN3GlljXK8Jhq9ZZzLREj/9+19lPi5t47nGkH1WgTWK+039xB0DyhtpWhvARifu37t79cg2h5R0s7BWv2L59U16w2mSjya9ah2dqM8Jy9v6Hp75zG4HXZ7h31ymCJweAlwzkv6O+/BPEAQuSDXlFiF0SnjWvNbdVxGp1pcJBZjJ+c8EjsdL+XnIonWTDUo5GRitbfO8MaBSUMYsuQIDiHgdDojhFBEyIqgjYsra6VzyBvEyCvPLupWiHZtrxmXfUubVpYYgZ40ye6v/X7NGNbq3dru1nd78/Wab9tijfwvdW7/5yv1/x6Av3e154ti1oV9caf9TJrSqxYXI4d5mW82P9DFPWv7tQCrHds1MUtdetTfUju9vnq/e20sfeu1treW62BiuVwD4JvHcAWwfA7Xt6XcOvat9ZcIkx6n+5qyRvj09vLVfryxtgDUMArdNqu1IomPDOdA3sP7ESN22N8NCBgReUQ4nECsyA2MYRiQ4oAYPSYwAhKgrkHTFNTPNsFxgib7kz6Tip011Z/bjVD2GID+kxgSlxdF9KwkQkoJ0JjO9bykZOn7hLM9vbxgmiaMo8VGLnVtHkiRO16559dKex56Z+zWs7YkMer93jI+e6enfmvH2BvrEnyrx3qNsbDfLQJd6v+HhCFfRgQpACKa0U0DoxwhlGydxwwk0h87vLME6XaYTbJUkPdyv5/HoawhsR4XsQTgeotft1P30+of1gDmLd+2GYizIdxtZc0HsAX+a/rodqz1e91hLhy6ayLS1xIA18rWtbhGGNb76BZJwBrnem2ca0DQ9gLDlQhJSFBJq55OsfIFOSQiEAYQeTC8+L9CEhfIUfcgP4J8APkIN4zgqDicgBgnUHQSdCIB52kSRAu1Uk4hj9NBEre7QbhkKCcrrkn543K0JiIxZMpnzgkXDdboVzEgxiDGUww47zAMA3b7HYZhyHPEDAyDy2157+G9R4osVtp0XWfrqATxqNdl6ffW8jlSlqVnt7RZI7veOaz/XZL+9c5sjzBdQsAz/XnTZwt7e2PttXmtfDHINsdUq7hbKQWBArK5y3ObFFeERnlxOIuXgGUq7bWiuCWRY724twLCHhXa4+B+qMPy6romSLixzWvjvvXAWvvX3rvGTf9YyLUdw5ayBHDae7dyK5/zjWvvCidI+RoAan/XGVFGSjdbGj6WmMQxAYEZUwRCBEJCDm5hf8yC8GwoTNkcSrICkTRu4R6T0uHkHPwwYhhGEDlMUXTL2hxIxd7QNkhz2SLPsfxrbkwpFRckpwZgu90ODw8PGMex2l8KlyppltyvdO9XJERM2+VH1yQWPQJuS1nyD1+TKtnza2UJri0xKy2R3iNEl8oSodIbc9vPkvHurWfqi0G2+dsdVacWcl0hT+8dOCdWt02dcrU6iXuLwNa4vluAYcsBLum/2npbEOaa2Oc1APNHQbZ4rRD5hyu3IuYlbvp3OYbXtt8Gba9Dhd7S1hqgqcscOVyOZ3aPapRa1DYi/hB0mGMAK7IpQS8kMERgRkiCbKfAmEJCjBBDqZAwBQuXqISniWNJ/GSdH0CIZuUk+lnlHkGCbMfdHgDhNB0V2QqbPENorpIUKDYOYYIkHdCIUOp+JPtIEtDv93u8efOI/X6fwxCm1I8ONqNSa26gtw5Wp1mDJTjWQ05LTMHW0u6FFobVfd7SRxsHuUdI1mVtLy7B8d78b9n7S/P4DwWyNSQK2GTXH+arepTvMZv5+HxCnOubu7cT89pNuOSiY6XdBO1iL23W3tisTttHTVAsvWe/e9z15yIbAopvxC3vXRGD3SIJaN1f1ijV33e5dRxL39IDelvF7mvE3bX7PSAjHCVyYl4R/wpCApuNrxDCxAzLFQCXwE50uxFAIGBCwjkmTBMwhYQpMGIiTJFxDgnnEEFIcCQZe5wfsdszOHlw8gAiYpw0AXwUP1oQvPPw4wjvBxA5RAYmY3mN6wQk1KOjCoZI2EdOCSBG4JRz5YY4IcUJSAyn7mfDzmN/J2Jk25c1QVT/9hmhm/HY775sPf9LsK1H7DHzTDS7ReJUt7n2fOv5+RzGwsbbkyT9UMT5F4FsAQ25xjWxV38g5ftlAoBiIGW/20Tc6w7ZrxUnbxFvLJU1zrftY40TXiMW1r7rc0ToZTC1qPCG134ATr19tyYorkkRenP2OVzvj8nZtiKyeuyv5c57wGMJ6GxrUN8XJlHOr6tEtMwg6HNmradIzUskJhMnxwSEyIpsI6LqViMDMarlsQfgHYZhBNiBMILTBEeMl+MzzmFCTBEMwjiOGIcB47gDg3A6T4gWfco5CRZFJNekXDKKrMxE3qwfYwJfIvs+i0qVcHo54dOnTzgej/0QjdUfSQZ6AIDjhLWZZlc432tnp7en6/Wej2G7FK/2Ye/9uzampd9L+6t33+bYvqO3d6/B3y6xuDAPbfv1HGz5xrXyRSBbAvKmypJjIItQ7JoISFH96kA5fVWeHpsoFr1MWYy+tKZ+vlUwOlsoNrEYZ+lQuVbfPirf1f1u1GMo3y4HnfQGAzloQK4BQLTVbIZjZbJmfXB1fdFvmYyrqtjPpe/ag9AH7DdQsZnAKq4W9sXMy6K1a2O65Xs2F+bZOrRfObvHnCN6l71/CQSIKBvRLLVl1zOksYBsra81biIjfzASQfLOUkFQSQljMEBMinAZ5OSbyHlA/whOkwcQIieEyAgxIaSIxEl0ozEgxAiiCIneRAA5eKc73hOQIqbpDJomJDiQdxjGO4y7HcZxRAwBU5gQgvnHanYi0sAWVImlLRYyI4ub80xoXV0iScvHjJfTCZ8+PeFwfJE4zzpO45zZ5sBeNKSzstcZmKXt3gLka4S69uw1WaW2IJVZIgDI3LT7etY2Cky5aF0fMjO4zissJupzPFH1KlKXprXq7JlxZxnrZSvtQGom7w8e2daFmusKjcymhZyDJzkwxt8m3chKi0meS0ARb9tCQVoCtwlzy+YECT6uk6mHLEYTXxpSFaDvIGIx6AZLYDPIlGg1xrbD/Pbs0ItIzWm4OyaGY/X9o9KNAcWEBEpmGMJwICT1Kc7XOi4mgFID5Gk+t/WUOGAG5C9mq9pX9RZbRTkryE3GQ/kw5I2rxEW5bkZGLGI/RuZQSqLuslc4xzsoiLZHWNUE1Pw5dz60frfM7CUC5fqxZMRp3mx3Yhl3ykDZjI8y8cmW/FxEn4MfKiLsYhAF2ep4ZqCFOpHAiMApqUEQMrKw98p9OV+C/OyYWCo7JYRYOpS9mWTfuwFwHo48vMYZZnKiu00R5xRxjhEpTgjhLH/TGeQiHDwcDRicIFTnHBx5DPcep3OAmxLIR5mXu0fs9nsMw4jz4YAzJ0wpwpEDwyt36wHyYHJ5bRNc3ufimysIGJDUeqCggTmS+O8m4Pnwgt98/wFPz0c83N9hHAjeayAMzeEr80VgTmU9m/1QX0vgO847aw7T29+XyKCWAFoKwIKIW/K7LZUh2gUHXffZvsaFN7BvSEXl4GoikoFkIFefe1BVt7hlkb4nbI3BUGVyiAq4qL9NgRujwDWqPjuEADsZmfHoEOsgieM9n3ObT8KMIrqS9OaLQbajyftZiNUlQASoCIoIGg5cFlSRHIHUYtkoLda0VqWVQuUlMEcgG1nMiyyV+f/6AlAVKTuF7bbBPFi4TBad1TB6EDmh0EMyRhhEXg6jflSCJNImEiTNqRYxEYg4I2ivoi9Y8AAWIxFpi+DIDqiMyzk3GyMvzq0BxhrB2AbjjJi7eow1Do8Nb8zFQTKugqQ4xQrZAeRKm3JtKgG5J9uloLg5MZV03qS+c/PxXgAMKu3WlocpAYyaWneztnIeU5tHM+4zoKJUtvTh8mS0fWYkTmpXT4pXK/rC2U0i2e/C2hUCSReoPvqomiebx2b9kWR1a+mMuMvo/skcHxRw1pIAiV9sM54wgDDAsvrYlDjtyHkW5AaPswJSi5tMfgQPjOSB5BNiPCDxESkdkcIBMUxIowfvRuzHN9jv7zEOA4bBIcaE+zdfIYSI0+mMT88HxJhwmCJePp1wPDLI3cOP93AUAUrygd7DDTsB3AoPQB7Oy3lyxGAPRIg/rScCRoeYHCImBGacosen5wCHAz5+fMG7t+9xf7/D6AneJSQO4CihJt+9faefTAAbF6ZBNxAV2ljS+5J4vqLTN/y+JCRrmGd17Ky1olkz7rLN4Kpz2CKb2bU+lL1jonnZc7LUSdy3kODIYRh8gd067LLHZW8kKLHp/cVzB8r0OJIwLByFSLxQJyoMzWQryb3EBa4VrA/MkaaK/nVYXB+wQpG0NG63fDHIlmuDmxret0BJJ9XQIFSURkTwpsNlieyyTGnU1J02bUC+5m6ZCyCELOLgHdgZ4LTWWH/m5ZR/FfhmWKq7ivSa8sbhDEcdkwZxN26Y5+Mzio6LcQVVwI/yZhFE5mbxWC9noQa8zKl6Vhtv1JTf7cWQXmvdV3Qtrd+wfgvVvy9L3WbpxzgHE5nqrx6R0Bnb5Tj6SBooDmd2eGuimvK/RlRx1R6322+2NEQEZ9S6tV/naLX5UaDpMjFEDf9cBj5rv9qnWc3BRR0yW6d6fE4RBNkgWL1jUbVoolhfIXbZl852FVnN8mYiI2vl7EY1ROI0IcYJ03RCSh5ICbvBYz/uMLgBBI83j49gEM5TAOiEU5KEAm6IYL9HpB2IGIMD9p7B6VxJUQgpmbuPZf/xSiRF48dl/h1AboDzO3gIIvPegxwh8SAiZ83X60gJ6P2I5AGOhMETOBLY6cypBMtmgcFwpAQ3M4rMrpRb9aC9Ysiwp1oxQrjXnpyVOSdoINL2CpGrru18m7QugVjgtXNOMjq5sg6zd5wSpvqvwXkbI1GlvlOCIFZMSXueZieMSIguQCVryIdbPttVtVlpaMUBTurKkGQu2JiUCzJ3Xr4cZLu0WRoiyjknVFIt+vM+byBm9YnbtPdarggoYPIS2ALiO0so2SiYDdFy2XS2GUx/wApYltbiYqzFyf6yYhFFLbx85X4p1Fynag3ydp3/U77rhsPdM2zo/TaC4/JZPQKbgz4yrpGr3WflJm8y/kEPMa//nj1bWG/GNsOMtrj2HlfzOOOQO2O5Nu4GTqwZ30k3KtBjUmJCEH8ySUX+dNXZZmKkzH3mUoCsE7OzK1KFaA9AsIhNjADG6TRg2p/hNbj/MOyQQBjYYRhZLJVHMaxy4ySiazAGx7gfCeF8lMAU6sKj3ZRJIDcTKwjyIJCTABneezBGMCdNz0ewfLfVJME5ghu8hKg0Ha4jcCIF8po8QIl/Jsv1K7plYjdbUrbJ6vxe0sOWvMKc6zvvZ/ClPlkZ0Vaqg9mJMeRe/bb3ze/4AgbWsFpDV1qCkiW4wCzi49aYaU4IGkmt/XeIhKW9L6oYC9tZV7i8JlTTbjClIjj54sV++SKQLfO2yEFElM3rc17LihKrrccSi9n+LUYsLRLpvSsbsmyi1lqu/teeL1nD9X631+3334Isem1sqbsG+NeQbZ8aVqmD94vzVIv4a2TbIuW6bmv12V2rPI+X968ht17f7Te2AKVtr31/yVqyB3B6bdb7ql6ruv7SfC1z9pfvLn173TcR4FRUbADZaCIiRpG3qXEQQQ1dWGSN5FT2LIiqtu5NMYKTiO+8HzEMO3g/IcWIaQo4Hl8wep99Wu/fPALOg1my3zw8PMC5AczAFCJ2d3uAEwYHPOwcXg4eLy8vOJ1OOUPP5d6t10kJQQgnm3jQj2X4geAUMWfLXVjiP5JgGt6BQxQulkhcjapoW8Y1MYqkQXhfJwhlgZuti0HPdi/1YMktsX6XYM7FPZ4T5O1+tbmpc/7WbffutYi6/r52Xy+NdfE85BSNy6V33lbn4Er5IpDtLcUWpKZi7NARUT6wDIYfXHcx2r/WvL2uXxeh+CR/Z9tGvVlqLntpQdpNJPkoq34642nnYEvZuiFew6kuzVc757ZWFrqurmv1yzfND1+vbnvvGqdobmXt+Ot6NRKv6/T6tn/rtGY9ouqCUqf1QCttf3X9JWTb1q37ap+tESc9BN4rsz44gjLCJSRyGFSglhQZiZGi/SVV4gIgFTcn0Z3FQEgxIYWEFBnODfDjLnPJzIzTyxFhOouLTZA4xLvdDk+HI+7v7zGMO/hhxG5/h/1+hPMekRPG3QCnY/EI4HiWZPQWoILm5z8li02l82QEhHJTFvtYuG/ZW4kZk+oZjWlPKSEZUCdCClE/vY6CV3ijZqZnyKue/97ZG4ZhlfCs36/P4dJeWnp3rd0U4uLeMRhQi7Db9uoYBi1c3rIn67pr30NEmkyizxy0ZVFq8IeKbLeYoxNRFv0AJVdqlzOky43Zo5h6f1ZaClBEWZWEqRpXXVoE3Ktj98r9dMGBtaX+7luQ7da6vXeWNvpaCLMeAqkRR69+jWjtvfr9tW+59n3yvM/h9ZJX23U7zz0AUM/HzPWhg8zbee2Nv56rrdxmO56lvntrU7/bjqnXX83ZEvuKgyW19AVApjs2lxe5jpmrVXehBCQSw6SUBNlyYoABZy45RIqYy/zHGEHKCYcQMYWAEAJ2+z12u72sh3dwwwCGGA0O3sMRI55PYC7clXMO7OaBGpjnKqEiIbwUGApilrsxJrWAd3DeI/FJ9oQG49CJrVowPaW2anuSxKLbUZWbu3PO6tLu4y6j0NTtwTx7v/6+3v22MLNZws3qLu25XmL4FlYsjak9Q3UbWzlbL+asi9/zY5QvBtlupRKmaQLQByRW7IAsLUIPudbcScuFzJ6rsWC7OXqcUDvOuv8WEa9t+vY7rgHeedlWr7dR1+ouBRJf2/AtZ7aEcOp7vUNW97X07vy5uG604237MWKut6ZLnOjSOG5Zoy3v3bbmy+/05rNHALR1O60DKJbvgmCdGvepuDgLU4u+UMxV5W6i4quaEguiTQzLXZtYLL6jiZazrUZCTAA0MXuMk6opotSDcIvDOKp7jxMXB5bwi+a+Z/s4OdM/V3tTcazAElbmvOjniKQ9CaUpQ56mIHGcQZIWMBQfXSISdyP9zwgUUNHHS4IE7cMRHPkyv1p6+9e41bV17521Fln1ylrSk/oep5Td1C6eLRDgbb2auN2yb5eYqLXx5neLWeFqMW78hyhfBLLtTdJSvfP5LP51ahxh960URCB+e3avnfRah1DfW9Ir2jNHkhPT+rG/pQ1UI6YCtPMRrIA8qvuXCPgaZdsrZQNfrTrjqteAbE2gM69zR21bPaDeHsStnPjSXPfmRfbJpQqhXuOa4q7bl2eAIet2XzgLXK/9XH5/+y7P5u2yTpnX3BaVcczf5dz35ZRRNXb7PR/L0jzP9+hlu9Y3yGUjKYbgUSbJLwsqKTMNgTgQ2JEmYJfgEYklclRKACJAEaAoBlJhCginCcfDES/nM5ISQrvdiNEPcL4KbEMJYTohThOOx2fs7x4wjCOGYYAbRtzd7eEIOB2eEcI5E1Xee8RQpBUZuFZn92JPyTKKYDxG8YJg4PlwwPF0wtt0LyEisVPJeRJjLpiu1sHcoxIUmYORSLhgdXqBJ0tEP8+adblWnX1aVqnUM1hin0GUDaWMGJrV7xSTalwQ8URdeLzWVg8B10R8O/fz/cqwsL52O6XeuSpjrX9zR2KQrzvztDTu3u+l8kUgW2CbGFmo2DjjQutkzXVbieWv5QZrBFYb2dQGPFZaHQIRwTvxEbNCSsELMKdmI2YQVAEFi9bG+XcNSOXeHCBuoUCX5mvmyrRSiCQl2FofZXw2h1zdNyRWrrU2SMVhVLkxGZeCbFrjqvZuE30vcZsFENXfYOslYyDSROTVOtQExRzpFBctZiD75tXv1P3kKVBfvdJM5xtsHsqBJ6eIGVDkpewWc+G27PdFg6yDIkUchuS5ArKdyQRUlNvH4qRcKyunJzpb5QozotV1VIRLOfqIk+hR5JCiR4DEK46JkQJAGsDAgXE6TwjTpMEHgPv7OwzuQfxXvbjWQEXJp9MJYEYMZ8ltSwCngHEcEbxHZMbBe3hnyGt+noyjTXzpk29fbbkCxYra6TmOCCQEwxQTvv/wEb/97Qe8ebPH+3dvsN/tgETwxBg9wOcAUqMn9cRXAgUANNlEhXgdu7yU7bapjle7es166XdWxlsS87kgWhCp5a/U4JQy8qWsO6ZZm/maygUNSxzzMlFXb7Ni2S3v2PPsz16dEdvLNcHZ2mZcjDH/Znj1KIHhhGquShtcjvjFOaDu9Vr5YpDtVs62BqKWDaVGirHKymE6hB7CajmcloptudVs8az92bs9Tri8RzBdLLNTIG0bRA9VIt0kfWvS+ttvRbbV25tqOXfJmVnfdTuFQ+sCsGsBAAAgAElEQVTP6fydHtLnZh5qBL7yFRu4ZrteFu/OiYPyXS3nWr7XDvicUtbxoz2I5ZoroF4kURVC7X6LunZptYumDftyaX/1rFffUQiKltJvx1KPsNEzt8MnysBGRK52nyvEIeNgJz7qEjGqcLYpi485v8amvyUx/tntRtztBuxGDWQRJsRpwnQ+4XwMSAmIISBMk4RKTKP4DkdBxgzAO4/7+weAGmkTKniQp61ILGZglQCQg6s44ATGFAKeDwlPzwe8vIiu1vkBzokvsneE6NQ3OmdwqOZL2zbvIXP6mYUgn3F57XngGdDvnU37N7vc2D6onqOCi8ZdbhHp9sTW64T7nBBuJYDzsbbfXf9bE0/9Pb28zys4Ua19Pb5ajLxlHtbKHxSyNQ60B9zrBTJk6xqutu5rLn6ZWxLX99vE54bcW4OKtq3aHaknEm6RUfu8/p5ePz9Gqeeptx7tIajH33vnVuKglUJsfad9v73u/a7H2EoveoCjN8aWOOrN3dKctG32xlX/2xKM19rpfcetwKH3DfPvaan9mmxRUtMQMInojsmDaZB/wZYVD+AkWQdSAhTROiK4YcSw2+Hh/g53+wG7wWviAeCcIhJBIjSlhBgDOARxX+U7EEuQzHA+IARBfuM4wg/jfO2qT7qcNzu/eoZJQ02QqZAIrKEmD2ESUfLxhBAinNvBsVfEycjKXSKJCQ2AG+qlnsM5l9Wb//Vna+dyXYVQ/m2TrC+dzR7saOFcD6Zda7sHu9fGvfSs127LvK2VpTN6yzn6IpAtkSRgXqKS2tJaINduF0TmixsRYsD5fAYgnOn9/X2eXKPu9vt9Rp7DMCxShNbu4IeMcO15D3Fan/YtrX9ZTzdYl6XNaO327q9t1LW5tX5MZHetfrtBlyi/+jtaB/Yl/c6aMcJriQzr2w5H28drDqo9q9/NbmcdINP6kfckIfVeaccW1BioNeIbhuGivfrfpW9a++aeD/PFN6l4ugxVXIHgonK1STlIMQyC85iwA/we8HcA7ZFcUHQbATDidMT5cMDzp48gMN6/fYc3D3d4fHxAjGc8f/qADx++x29/8xucj0/gFEDM8J7AIcCD4Qfg46ffijb0zRu8ffsWLp6x8w7kEo7HZ7x991X+ptPpBJBkCRqGQQ2xNDBOSri/vwMxEMOE48sZcQoYBifWzs6BcgpQAiPh6fkFn54PeD6e8O037xGnI8IUkMKEtw/3Eh5T/4TLLag2pQDOJAgkJeHCnrmltHDA9kyvtMg1r27nvNv9WqXX9rfUVg0X7NrgzzWiv33XzourpI69d+o5qN+px9qer7bPpXa3IN4vAtkaN3ptM9XAaImDyZMFzJBiy7Ea0LXrFvgvUWW9oa1xEPXCtRxw+067iXvXS332nvc2cM/ir8cFLpU1qrSt1/uOLQdpa2nndKmdHkG01ucSR9zrYwvgqwFCO/4W6QKYnYW2LAGTXlkb+5Z3239n/ZLa1XqVEYvpjyBaDbEgxlBqDYwBoBEJA0J0OJ4SPj2f8fQc8HwMiMFhP46gh3vsHOHd4zfgdEYIJ/z613+Njx9+jcPTJ0ml93KAS1Fdegi7YQdyCSmpC5AH/ujrt3j/1Ve4u7/Hp+9/hZCSiKwxwPshI5xpmpDCnED23kvkqypzj3OEwXsE1WfW9VOKiEniJx9PR3x8+oTf/PZ7/PSbdxioMsBkkji+0fpTi1hOOXMSQ0TnjFSADS+v3RJntsYB3mJdu4Rkev0aQbmV0FuKb9AjYOt2ewS6fVd9PpZgWsvs1O22DA0RzZiQXrtbOeQvAtkCl8EElkqXyqa+iK22WK4RTY2AezqJHoDKCwI9EAsTuzj0VmdZ/Wr7Wvrm3hiv1U/JALf8ye1qjkkFVzn4wFwUmO8YBW5UJXMxsGB5g6svKuMrpHsZl81lT8x1O/fazk8XQFD5mtl3XXwnzYcwS5PUjq3u037PjceAYnRVhsSzd9p5QTYAQdNGLaCdf39dp95KcyJx29yS7gk7izZOi5xmfUl6P4KFrSvDLeMkOCT2YPIARjBGJIxIej9ylIQPSYxxnAMG//9T9y5JkiTbgd25qmbuHhGZkf+sV+/TeEQ3Gi3gBMKmkGsgF8Bx74ED9hI47RFFOOSMa6BwCew1tAjYFADvoaoyI/xjZqp6ObiqZmoa5pHxgB4ktCQqIt3N9Hv1/j8mSQ6XI+fzI1+//MLD158J40AKI04SfefwAt6R8zNHVCOSAneHnk/v3/Du/Tv6/Y6/3XuOl4mUAjid0zzWSH/GGRWyndMPAiIOnyVfKARAc1GQ7I0tjnGcOB5PfPn6wGW4cLPvrHhIcfhJ5oC0nHPJCF0IbW0uKntYwWD5NW92zs7VMr/Pne+3Hpi71jk1bh4qw0Oa74JmMV21uiobqEmLI1MWhObfGdusrtzq/xVeypdiC74ha1FWSJX6Gtbm8eXzej6NIPFEIKpeq/fopYzsd0FsXyrZtq3ldNYqyyqPqeqK0NYSVvnZkjy2pWdd5RBu51K3OpNUebfqvTHIbxGq7flsPXNNijEnWOOWreqLFrqLZqeKamX2TvWZ8RVrojgDZX6WgpCbabfz0fmybq/pOQ7+ubbFWdZz9V3Tr7Bmlqp/lz2Z+ynORUhzYi2zVMZU6gIY5SgWQmVv6saGrZHssnc1oW058VY9tibKzbL/hO1VXSq+FEahPju7X+bghGavTa3ZrUyERQBnifplh8oBkR2u87hecZ1Vz0ppJIaRNI3E6cLf/cMfOR0fuJweeXj4hRhGei/sO8/tzQ27zhmR1UgIA2jEpUAnkfdv7vn1Dx/58PEDzjv+5u7AOI5MYbJMUt7N0QeWGGOa10eRbMUiDxbJ1pmaOUyEGC17FJoJskPE03WecQo8Pp746edfOJ7O7LpX2cvWz7hJ531aCG3e9cy35vta/mvBd+Mcn2CMZ886bbyw3TSHT9awVpeLXDSJT+3Lcx8NEVtNs8BzvaiVIKVZe7J+p/7djMa8ONUVU7KMkeei621YaaDKnGTBBq2AtJrLxkza9l0QW1gf5jX1XCvNPquOrPqEp/a0QoBDCFeJbd3msUre5Y151M/9qS2Eb+eGvjYnYLVnNZEriKNtW3bBa3u+pTX4U9pL1K2GgP60vftWv8u6ak9w8mcvV51vtSIdtGf/HENXz+uaqusaLLV9lfm3STiea3+K+nlLjVzb3RdV5CLNm19umsNMkgopOaJ4ovNIfwv+kCVbIaaBaUqcLhd++eUXzo8nhsuF4XLky89/IMYRjRNOlMPtnkPv2XWO3gkpDIT8vRAJ04Vd33H/5p6/+Ivf8y9+85n7N/cIyu9+84kxDMSvF7pXN9k/xBFjJIRg4UKYvdLldSYBVauz67MzFGIFTzToXA+16zoj0H1P33vidOR0vvDzz194fDjx+u6GXdfjnfWlK61W2VudJWOVZByygMe9mChuab+uwcNLi8cX+GphtIaDmkCJ3865XD9Tax1Lf8+ZLJ67O9fm/Ny/V/03TP9W3/Vdu0ab/llJtm17bvK1o1G78PogFZ1zJpc+C2LaQnRbiHcL+a0EoivIcQsQ67YJAGw7JtT9bX32jzn4a8Rzyzmi7FcrPbbp4a71/6351s9aGbk/zZ70XL/1XNtt+RbheQlhmssksuxTHRZWf1c0LPU+Xru411Jh1mveQgzbmpjlu5cS22tMSMugiWiJ2DEbp1oaRVO3WRWgiJCcI9IRJmEYE+cw8tPDxB//+Au/fHngl1++8vDlC+P5QpxG4jTgHHjX4Xbe1MYevChOEylMaJwgBXPKSiOexKvbPb/+1Uf+/M9+y5u7G3bepObf/PCRn3/5whSF7u6OznumEE3abTLSlTs7xciUIl3nLYGGA0jEnC7SGPe0ujOqxmdMIXIZBh6Oj7wfX3PYdXSdR9Tq6JqsD0tsedE2mfRlBJccIvSy82pzcz8ntGzl8X5pewnjvNVamKydFre+r+G1jFcT7HYe9b15bu718/XvFmfVDGybsvLa/fjWvnxXxHaLyyltjZSf2mhr4Fo2kJWUUfdTj3GNo9mcWya47Vy35n4NoK8Rz2uS3XPE9vk5t8rq5wFia83t3pU1tenhSmuBdktqrvtb//1yYtue9XP9OrcwZ+3a/jHtGqxc48ifMmzPj7uFeLbGrbnxa/tQP/tSiaY8v75LT/0kTCJbCL/TZMkRAFRyXmOHJk+SjvMlcg7KcYIvXy98fTjz+HjmdDpzuVyI4wUNExrGXA/W03mh94JzCeIEMZFmol5Uhkq/63nz+o7PH9/zw8cPucRpwgm8f/uat/evOA4JPewAskQ7GQNewdy8R5pI0wT0+GJ3IRFDtIIJ2VRVJCRNSsifx2iZ7h4eH7kMF24PO/aHPeTkKbMf2ey7YNKtEdqi4Wl0nFfOqJ73c8TkGtP00v7rflu4EJEXCeBbsFQLT9fGruG8pQMt7rkG+0/Xxoxvv0Uk2z6v4u9/TsQWnhLTre/rRV9LKuHEbC4vBZhrJf62EPq1PKTbyL8e/7oUuiXZXiN+1+a59e/avmw2uLL29fvlsa3LuQW4zxVDeE6Kev5S8WK1WTv+t5izl7TnYO7aZ99SfV/jynnGxlWnEm2JpIis/BueQwD19/onbG7J2FPgZT3vZR4iYn4A9oCtCa3CWQToEDrQHV++nHgY4TjCl8eJ0zkwBVOqmrNVIhHRXLK9c8Ku6zjse0QnVJSokQnzRHYC4gSXPO/f3fPj50/89tc/8PHdPQ8PX5imEcHz/s0rPn94yyXAV+05jYFhGKx6UEp0ObNUKe/nvRVYSMGyUBWbfoiBaRoJMZCS1bIFq5tr5f9GHBERZRzhH376iU8f7rnZ9bw67Je9q/6fNy/DwrKHlP3eOLIteAwhZAois+Pi1m+lwNeLyKOdi3EVFKTh3Bw5PIdNwrc1J62A9C3Y3Xp/i6HYSoZR9vSaBihF29s6YmV+NzOMm4Lf1hpFrn9Xte+G2L7EG7nlhlqO/0lYizzl6FpCe62VPp8mpieXDVs/W+ZTpN7StqTN9ecZQNK2xL01z2vI/xqXV4+7XLK233Us7LeR91MC3XKe7Xq2xl0TW3kxsf1Wq/uNcclCs3XxXvrv9juHkGThsFskwiwRGWpqL/41ZFNquxqhLR6rzM/aWGuGaTnvhcFbz/flG7uejhHDGp+IVM8UePaCS4acDa17kB0iO3AHOneTn1W7l86zO6i5GInDaWSUSByUIIm3928QK3iLxkCYInE0FXMYB9JwJsUR55Tf/PCRf/0v/5wff/yBzx8/kOKEkPBOESK73Y6PH98x0jP8MXAabT+999zd3bHvD8QYmaaJaRzZ7/d0ztE54fb2ls5ZxqqHx5EQwopYpZQsqxyey/nCobdNiTHyd3/7d7y7v2Hfed6+usNrQrB80o5yXywPsoF+RLE4ZdU4550uW/0cLIpaSJIUglvd/0JmK0h8IanNGa8oDlAZ1rVK9zh7IytR0zN4w85+gfllHc8R6QXeoTAjS58lTa49V+zosJb0n/YvhCkiCl7M8a0G8HZOq7jkzbm2l2K7fRfEtnDvrdpyS53WGufL76fPQpjCav1btUq3CNpzlS68d+TErBTQta/LnJe/a2miIMLy/SJdFsmHfGZPJdTnpMFr8yxzmT2MxVRXdWSLUoh8dtBAcmHrwqw89cQrI2vMcYBSfZ6ZDUUtnlDI3pTLc+WP5R3m8dGlOs+32nMMTbtHVq3tn0Zsl8tefS5+TsNYI5Pl2bLK8jfwZEfnWa4Q0NInq2eW9V4L8TFC3J7Yc8xlQcPzWwsXNTOWxlwVT80C5y4bHzO8i5AoiR46khxI7oC6Ayp73ry7Q86RdJp4uDyYs2GKc3KKzjtc7+lcx93NDdNwYRhGzqdHhvMDGkckTTiJ9J1Dup7OK3eHPZ8/feTD+7fsdx3j5WzTygVJJCVuD3vuXyk3Xx85TRD2PSKK9z19f2CazM7quoGbw4F937HrfU5EkRguJy5nx5yVouyY5py+neNysWo/zpuj2OPxxMPDkdPpTJgiKpqLHgloxZyRcumBUlvX7MEWOCVFsLbTmYXdWjOSieLMyLvFgY+ifajh7qW3zEIHV3dCzBZvf2ZtQMbLKcUMGGvcNs+yIrTFO7smwGuGsPaszyxCys5WavilCFMLfpG5F628pCmRSpU2SqPO761muiHEtRJ527ZU11vtuyC2UE/U4riKHaBG92XjC0JfASEFISycSQhxxXDYGELJ02vakXVWoRrRtcivzKOUAEOKC7+QC4utCJUdeIG/2UKwAJEsF2kRXraJ7ZqIbzEDNWKtv8zxgCzEtsB0Us1Jx43Y9b6DXGrMcGkeG5nfm138VRfCrMyqpkK6JRPbGTNLQQl2SbRCGqXfcglf0grn2trkbX/WErafK3ykCl4q5KM2z8K9V5s3P6NXnFVqWFzeWcOj8TBShpkPYSGQ9Vhzz9Ultu8XWGgziK3fL5KA5ZvOBGdGXPOq8ztCCbmSau4zt445QuXjzQPkf1PWJIBDRVA8SgeuJ7lbotwQZU+k5+bVPYMb6cMJla85v/FIChOo5Q/2nUdch9NEnEbGy4Xz8ZHxcsQx4UjsOqXrHL3vOOw879/e8+7Na+5uD3TeMV4Gi7GXQhzh0O94fQv3txOn8UKKHuf27A53SHdAxkB0PXR7bm5uuNnvuLvZcegc03AiTM4uaUqz1OhsK2yszhlRc4JiqtUwTpxOF86nC8M4su884kA1h0wV5oxCcEtqqYWQJrJavsFzq9RTKGQCa/fV5TOqiWxD+J78wROG2HjmxhZcaVDMQa6yp84EEMwwXcHTig4VeZkZEdjf7Rxzf+R432ITz39rXq9Vk2KOi1YB0jI3kmYBiTndgWihJd/2br5mYqw1qi8xV30XxFaxMAEnxZPTzsl7R9f3K0IouVB0rSbw3uO8xdQmJQeeL8RbZF0KD54Wiw7hKQEr79VSc4wh5z1d6/nrQ/Per7JTOedXYwJzAHY5TMlu/k/UQ1KX8pOsLmkldFbIdJGyEiXnm9m33OJBW0kvKY/bOZdz1WaVUbIi3HO/lLqjWbsQtQxs1VoqzkaqqAXVOtyBRWVeE8X8zktZ7nq/6zNqfwwCFmKbYiGO5pDFCiEpKTITE8HS8smMQRbEIKIIHqWoe23+BckrSgwpc/4R7/oc0VE4cT+Pu+xOJtq6nKvdBduYZXsdBVHHWFSataT71Ca/chIrTGsSwFMSUxQGaK7IlKVal/fDd55So9b2NhKCguvodj1JdkzJE6VD/C3u5i2BPWPyHIcESbiEyBAGxssDw/kr0+VCGge8BCuZJx0Slf/8N3/DeDnlGNrAbW8l6TQlwnBiR8dut+f9m1f89V//1xwOHRoDeNjtdlXiCA8q7Luet3c9f/arjuP5P5NiwnnH4fUrLuxzmskDB+853Ox58/qWz29f8/jT33P8+hPHrz9z/PILOg6ZKejM1jvbey1dYQqJIJGkCU/HMEQeHi/8/MsDn96/tbK6Aioxq3yVhfUpbFs+6wy/ieZezHesnKk5ZeVTRTJzVy5UgVGD05hNE0/VpQuukVkiLhWC6nta/ifzXC2hhFXPMnxXcF65q6l4qatx/DGZead4dtt73fx8CIEYp4qAGaMTU7LSqTFZrTWBznnLbpLxSrfrceT+UzTHtM5bxTbnK/pvEvk4jpXULfM+lLkMwzDPsaQVLmFjwPzZPwvJVlhX2akdRBY3e1tIn4nvVhqvdV5axXfLhrU6/ELkinTU1iK9pr4t5eIsfnWhWYu0Kbm/4pxlwGf9LfNb0oqZfWbLY7aeSxkfWOXDree5nq8CzhKwk0uH1c9kArmwJBshAQ1R1rTEUM4cUf29VlmlyjNV/+3fRXsBzAR/QZLrfd/ak2uu/i0SWZyTqr8xglkSN6xMEoBx5jDr3espqEknzpsUoWAmyrVKYWHYqGFJ5j6uzbnsSqtRWbb6Wpq79dYv09EZERaYtFV6ZtZjwfmk1EjcIhRhepGijbtwvUP8Dun3qBxIqSNJR3QHUvScp8h5DHx5HHg4/pHLZeRyGRiHC16g90roEtN54HI+EsYLcRiJU46x1YQXwTuxvMU5tvbm5pYPH97y468+c9j1eA8iMQufCdXlbhizleic8PZuz7u7PSEqcYicz2cuQJSO/nDD/es33N3s2XfCZZx4eHzk4eErx8dHwjjkECdjNBORJBEvO3xvKSCl6CwVJHmGYeJ4PPP4cObTu7dZ87Ooopn1SstZLnfSzXtezm3dyr/dDBM1LNRq2qLVaa/Sc+aYLc3RljBgvx27XbfCreZwtjBvC0GzmuAhFPxeCyC1Fs849hmniLfyis6Dz85N3tFlYStMIWfMy/vmFe87y07mzGG2JDoKYVrvua7vXJFmVZX9fv8kjLQkOfHez/j4mgRc2ndBbAuB2nLwqTmwmvjWz1zzjJ0ltIYobUk/W4WKtwhu/fkCGIZ86+/rcnVtXdynwJvXsCHWbRHSbeLarh2YiaxknFkkOfvOCKT9XRDurBivEO38jjhDumXfdH5wUSXnrpWnF3vut5bAZT3e87zhVn9PiWV7caqnZ5haznbZS9W1Z2NbZrGWgNd9rkcpyKPmlstrjYw/v7OlzvoWp1zPYXnH+pXqbOehJNVKYupMV1DvRWHCrPyjOCl5Fpa3JSND15Fch9IT1TElYVKYNHKJZx7OEw+nkZ9/OfGHf/iZcZwIU2S8nAnTQJoGUhiYLkem84k4DsRxYO9dNgcL3mfTTyYazgmv7m559+4tHz9+YLfr8X5huGMMMGu0/LxaJ7Db9dzd3nCclCFNjCGiEvHdjv6w59XrO252PRJHzsczj4+PPB6PnC8XYipl83IOXsHuRIaRruvQFDNBNkeoy2XgeDzx8PC44JxMXCXDQyqFB6Tcm4ohfsHZr+FvcdQs6y6488mbL8ApLd7cIrrlHnnfzVrHgqs1ZXYi8xPWh/2YI2Cd8KLVGJbwL2+w2+DtRRL3uOzolNJSkW2WTqXYlMvYJfFMenZd9foL3qiJcP19Lfxda98HsZWnoRwt8iyHNwyDvSJFgvSz2nadlGGd6aRuay5Lqs2/Ltk+Ba713/XvVtqsczFvhSrZ2t2cl7Xtv92LLSagXRdZjVz6RMQC6qW6jOIwm66pJWfZvBBYMVXUvHKBRYW5RtQLCVmh5I05Vuubp7b4SwpP97zdg3bNLSOz9Vzd6jNvL9nWOX6LkavnWMPrNYn8W0T1JSqp59rT+UomVPlMZCG281EUPwSWX84t+WbXzFCRzzzqepL0JDwhOcYIQ0hcwsjD5cJPX0/88nDiH376yv/3t39PmEytR8pxs8niasN0Jg0X0jSiYWR/e8DopOA9oDn3MUrfd9zfv+LDh/d8+Pievu+QXLt6dtRh8c1wuUK74Oi94+72wN2kDMlxPkW8Kl3vrcLQ3Q29E4bjhcfjka8PX3l8PDJcLqCw77JZSySrMT2SCW7XdabOTQ5J9swwXHh8fOTh4WFR31IkziLXrpm3LVjYgoktPNTC/9Z9sPN8GfNeE5qW6NZ9G6ws+KUlPnMe7Ty+SbtLyFDpY02vTDW/3+8qc01aZQMs46vqTAemaVrhSVWdMwXCoh1dGJNtvLF1t7fC7mrm4rn2fRBb1kiz/BtYHV4IgePxOBPWIr6XlIRrxKjEkoe0AayWsLcl88pz11obQrQFrCmlJ+O0qm+RJWa3xMm1/bXIW1XnUoFbe7j8LkDjFrrZzPMaodp65p+C/J9rq7NpJNvnxl0uqKPWdGz1fe37a/1uza0dt5zJFudbn3Nr878GL/WYdX/X1tSu7dtNGlZGFn+UXA5PMjNVCPJCaI0Qq0KqVM+JjiAHIj0heS4BLpMyBmWYHI+ngYfHM1+/Hvn69THbNc2ZyAMeD8lD8MQJdOcg9pD2JiEm4w5SHBnHE6ITfef58P4tv/nxV/zw+SPv3r7B+4y8Vwi+qE6jnYma81aKA7f7He/vPd3uBulHjqmnO9xyeH1H3wnj+cTXrz/zhz/8Hf/w00+cj0eYAoeuY3dzs8BJAuk8LkvVZoqKoMu9H4aRkz9lYhtNRe80O/1kFrcoPtSksFrb8pK2xbxdY/TK3pR/v3SMtp+2/5QM9muzX2FAivSpaZGyY4wZf5va17RBa/yvqiCatSrb1Xxq3FiIaCF6be3x+nfXGRzXlYrqvagFuFKmtTy3NleSJepvZ+X6Pohthby2SogVAtl1HW/fvp03sRDcNnVged93TxMfbP0s01hLKlsE5xoQt8/X79WcT0EGZd4zQFaA1hLpGoBrIt4S5fX4i/TZzqddXxmzDr8qf7fagRbZP0c4tlorEZaxIasA01PEsfV3/Vmt+m2JmojMtvn6u7LetiRXffm2stu0/dStdbprz7Ce01b+5LZd29OtvftWK2rNDCEsBSk0E90M40XVLBn1eY/FP5tTixZbGo7od9C/Rl1PTEJIkdQJOLNn71LPXfQm+UrPrt/jnNB7z75zeAI6jYTxzPlBuJwjYQzEUQlxyBJQJIQLw3ji9tDx6vUtv/3dj3z+4SOvXt1hBR4CmkNUpEjrkvNLaXYIQkhqzmq973h10+P6Per37CaHdj3OKXE48vjlZ7788jMPX74ynEcUwXc7un2HdD1x9opVPEUaUwtHooxrYT7eL9q3fCvn+1kXAvvHsLLfuhtbd1SErGbffvYaQWufaaVKUEIYiTFg0SQmaZqKv5vvW4yJFBdm0vvOmLi0llxjNBvzOI7EMD1hWst8WloAy50oNtVyr9cMgMz4cSvstIxTF7Ap/QGzg1R91791F78PYsuCgNpJ17lm52ocmevYzP5RtVLtZYt4Pyfl1c9ckyzafq55JxfiWnN9dT/ze8Isd7TId4s4bM1tfUHqz54S29LvNQLcEpj6sy2g357D00vafl4D67cQTj1OvY/tmO06r/WzxVBdG29rbVtEeIvYt1qOs5AAACAASURBVO9v7fv8e2P/rhH3lzI4gmRpq7B0xYN5kQIL4YUqbrzsDVDCVYyEdIjrwO2tuID0pAhRRqIoAQhAEgvj8V3Pfr9n6M/Zax1EIylOpDAQxwtxupCCldBLcSTGAXUCKZJ0wjnlcNhx//oVHz984PXr1+z7zoipRkpihcXLHNAc/kGy9duq6ERJXrhxjkkdQWBCSXFkGKdcM/dMjMHiZnd7OlHzcu06y3Kl0VTbWRVpFDcXvMi76pyj7w8WSnRzg5TNFPu9De/Pn+lzmp5VL81dvsZkP6e5eo6xbMds4b84iZpncp1sCHNWwmecLjOxXdl6K/ypaanatoWjymetxFl/V6TPpY+sSagEmHYdhZFfqcMrwaDeg2sMc92+C2K7cBtPC70XTqI2ehei29rc1psidP26rFWbMu8aIrx2oPX39dxbNXTpq5YKC7Gt9forqUyfEvK6vxqQWpXFsxdBF7tcAa75+UbCKnYMij2pItQLQ+Tn75d+axWQzmMVaQlktkvZGvI8XJEgzXGhhLzU7RoAt9x1fdmuvVszODVs1US/dZCqv6+R0hbsbDEuW2daf1+/N/fd9FmP087hGrO52oeiQJ4db5b4U5Ulx3BStaQKKiB+Vt2pWpRXUCO0TnqQHvwN0t+BdESUSWBMgTFEpikxTJExmrbC5p2IuUTdEAbCeCSNZ+JwZro8EqYLmiY0BSO2CcuBrIHDvufN/Ss+fHjLp4/veX13a9EeISDkzEG6SG95RXOFLsnpHR1Cikpn6YO4xXMJAULgMk4MxzPD6ZEwDXgvHG5vcGln0cOdzzJ9sH4ojIh56Rt+MZWAYrD06u6Gt2/f8Pbt2zU8ZoLb/tP4nO373BKSrXYN5p7DEc8R1Foj06ZF3GJ062eLBFm+S9Ue+blCkJtxRQkFWs0tsWgtVuuaR131XaTYZc8SJXrEpNkFB9Xv1Her2HdLP7WQtLXH7V5fa98FsYXnJ1qrEKZpIqW0QpR1HzURXmjKAhTtpl2TDktfW8B9DWnW39XEvRCC2pY3TdOqvN80TnP86pZEVV+M169fbzIm22uq+hQgxzPPI8zsNmuGITuaFM9a40g9JQbEpAmqPTZUUQ9dCPLsKaoLEVYFYo4JdIYdnVtL99f2uN7TrdZyps8hqJZotqEO1/fVWstNbxFZWPwK2jHrsa+t90/hnreaat74ZC5oiYg5xkXQQBLLXKRScmkLSASvgCMmISUhqSCyQ/wB193g9q+46J5zFI5T5PECp3NgGEYul5Hj8cTlfGEaBsI0kmIgjBfCcOby8Avj6YE0XSBc6JjovNB5wXeOSzBnKOeF3c0NP3x+z4+fP5qd9s1rnFOTatNESes4x5ZmqZYicTrr0zkH6himERGlQ7jtPedOGYcL0/HC+euJ6XxGUuDmsEezh7GmiMZIVEXFI14QFTROKybYO9MipMzMffj4kV//8Inf/ObXOTRoYWALU7CcO4tHv51cxfSu8cBW2xISSqtt2S2lv8Ys1t9tfd8SwHVugSIIKSmF7BxW+sh4o+AOLbhiIdKzACY5R4CsJc6YawrHuFaL1/NJKVjoo1ucOmOMjOPFYrF1MZcVYa8m3EXKLjSnrLHMr+/7FdP+z8JBStWqZNRSIKwXVp6r39lyfFnUrXbx6o2rJZ8WWJ5T1T2H7FpCWF+81gW99NHa9kIIVsar7zfn0K6xbdekKQPKNAPxipNtiFmZBywcX508pDzT2nLX+/bUq68QmUJk7bv1eooaJ6UaEW0jjfrzLdX91hkX70RgdqBobdSlj9aBrR6z7b+opspPmdOWl3NbV7iF5XrOvuuefF6vv+77GrO4It4qOcVdMsTmsvMQEYioBCO2qiRRcFbnRqPmsAlLOhPxOOlxfg/dAeluuQQ4TZHTFLlMiTEkpqBMQYlzsneh8w6vud4tiZ0H6YSU1dWSBCGiIRJI7HqTHbvO8/r1DT/+8JEfPn/iw9s39J0nxamIPRk+dbaVFphKySRbL31WaTpSUEt+4cA5z753HLxy1EAKZ8JwtIxWMVnKUbVqPjFG4jTOlXtEF6dNch5mG9vNmgTvHa9e3fH27RvevX2Lkwk0ZnN5hi1MCiYzw7Vkq1r+9xTPtO05rUn7U1S3LczD9aiQFseUv1u/hhoHbTGoc/+1VkwL07rM3+6LWgKRTel4eb/gp9oMuTWfcnenaVrdx67r2O12s823lo699yu1dhmrPFvo00scFb8LYgsLooeFC2ultvJZCyBbCEkR0rTepHZDagBux6wJTNt3i6Bb1UXr/bYl+bRzKk4U7XrrcUtrpaTnONqaINWEc96nah21wb84ABQ1Uk1Eajt6PeZzhOG5dV0jQnV7KaKpW9nbVr28Nff28/oC1zDSErhrkuxL57iFzNr+W9jZ2q8WHp98l0yqE8VSdOYcvMyhJ2rEq5zl7H0MSRwqHSJ7xO9RtyNJT0yOYYpcQmKYlDEqIRpxCjHmcnT2oyGgcSKFkRgsttYREEngcg7eOKEaEUkc7g4cdh03N3vev3/Lp08feHP/ipvDzqRDNbUw4tAYFz9rVVKsVYPrs7VwuJT9qSOigU4ivUR6SXSS2DlBfd73yrPYIpbibN5OqqRsxZ7hI//DOUu4cHNzw+Fwg+88TuNMPNElzrb8m+IhXuOeLeapwh81M3cNtrbgtW7PwW4d6dH6yLTv2nPls+07LdIyiUW8t/WX7lp8Vn7XWs6agMLa6fQaoW9DRFviXNbcfr+FG/6UfYTvhtiu9eewTLyVNGqCce3gnXOkmIhxenbM58rqwVNg3SI2tUS4hcCLKgIWgtp13axCLgDQV8HydavXuuUQ1oaf1PMAiykre1vUIVvcbr2OwrEX4uucY7fbzWnJaim3rLcAaH35C9e3xWy0e11foPq7mputf8petkyH937TFnNNSq0vWzvXWrNSGJBra77G2W5JudeIdXmuhstrUkPppyWyNRM3j5PAabegP02mRpa0IEeRnHrQoa4jiSeqR3GI2+G6G3x/D+4WpWNUz+k8cYzKJRqhjRGmAFMwWAvTwHg5Mw0XkxiHM5fTA5fTV6bjL+w78JhNNo5niCNOFL9zvHt7Z5Lsh/f86lefuT0csv02kaKFAPXZDjfpYItUzbm+TSUuIogz+7RlDAqQoO9KWtJIHI+4lNh3yuubjmHc0++U8xg5niMxLXcvpcyQxnwvMBOJAKiF7wmeztm98x7ubu/Y73ecTmfu7yw0RUiWQCqZ1iBqnL2U7cgWPw50TTDqe1HfjXUR+6f23QWHFOegbdhp236/f5ZRXPBRq5ZetFjl+yWLldImASqhZgsvUnBSzE5v63tS8FoN67vd7smdrBnlGo8VXFecbYtgUeZUZxRsiXF5d+tuPte+E2K7ILxawtzyQKvbFvJakOj2SO2z8ww2xmgRVwGuLY5pa05dZyncynuFOLSIue97wjitEHk9fk2EnFuCtlsituVRl1JYXcrnJMcyR++91fGsWpl7Acjdbreab8uAFGKramqbdr/rfa/7uCa91RerVV3V77Vn8BwiudauMQP1Htecc9v3tUt3jdFon9nv908+uzbHFpbK5yvmxzmstJuF/5AlD0UQMZUqYgQI57G8zaVyzw5cj8gO2KH0Fl+rnphVwEkjYQqcThcup6PZPy8XxvOZ8XwiDCems1Xumc6PxOGEJ9AhkCZSuBCmM69vD9y/vuPDp/f85V/+OfevX3N3e8urV6+MQIUJDYEUAymMDMHkp1Iovj4HC9vMxEDMOUtweKxgQFHfOgev9p1lWhNL0TiFETnsuH/ziuN55OF4gfPAFJWdai5cnwx5arT5pIAm6HtP54TeKzd7z26/Z7fbsd/v6XcdKU5WMcsOp0poIZTUMOUTq6u7xgHtfbnGcJfWMrn23lP8Uj9bt9rJs+6zvWM2xpPXZ+K6fnZ9V2cY3rhH5kH/vCTZ+lm0+1MzBeXffWWya/FHu9aWCW/39aXtOyG2T9UFbWul2VoS2XquBZstpFsDca2egLVrdysp1eO3RKH9u/Td2p5rrslUTnaxWsl2y0bRcm/XJFtVRfGopqXCjz7d63reXbcUdZgLQ5ToSmffSbaHz5q7rM5jdv6wWM3iEKW1N3K1tqwxA8GSridDfi1iaZFBS/i2iG19SbakzhZurpkR6n2qGa06JGALFlo4bu32z83l2ly35lwjw+t3yAgtOEoKXc2ngngLsSGr+MSjeMsOJT24Hbg9uB3JdUQ8MVlaxiHBFCLTMDGerTrP+XhkGi7EcSBcToTLiWk4MV2OhMvRJNgw4nIi/uJ93Dl4/fqWj5/e87vf/IZPHz9y2PX0fWdq3xhMIs8EEpVcci1laiuZXFWIv5LawbIYeSO3GUrFqur0AtKhCF92Z77IBVIgxYlpnKzObQgkzTHuWiyz0dy0Z6mtVJoBs1W77GiYi3TkO5jUVPby5NyzhoHlPGp1bA0/NQFo4a9818Kj5E3Z+r79d/35Fo59ik/zukvwsLb9rOfvfUk2UY2hOp+ZkxxxIoX9qELSyljzWqGooEVqPFH+DUWSLs+Wfdjau639Luu+ticvad8tsX1Okn1OZJ/fZznvLWApv7eArvTTAlVRRXyLm9mSfLekzrqfUjGnPvz2ufLvrnGg2SK28zr8wv3W89pac+m7lsLrdwviKmnXWp58JrX5j7TcCLbiCtv35zqVPM1VfY3gPgcLL23PSdz1361UcY3YbhHTPwVmrhHXawzCFmMwz2uOLjWbrZVvK58VCbcwAjnLEp0xadLPhFbdDpWOkBxTgjEmhgDDODJeBobzmeF8YjifCOOAjgNhOBNGk2zDcCaNlzlFo7hgZdKSOQ3d7Hve3L/mw/v3fP78kbvbWzpnCDZFs/ca95YsYagIktciNUEq+5Cj2ArMGuJ2hsQxW7QoSEp4B/SOqHDoPZ3AmCLTODBmQhtzrdZCbEVjDveJ5m2rixo7IaQc1hZTrjwjlmWpML1ku/M8bVhqTc9nWGOxNQz8Y+H+2r3/p7S1ZFsueiuFMjP6JQ1oO6ySZuey+Tkhn2+bx7vGi8sYC1Gun122dBnzqRNV+/cy9zWxrRncl9zt0r4LYmucjn/CpW9JN6VdQ5C1xKO6IMOaKG2923qylT5aybF2ZPrWPOq/a8TYEnuzA63th21bS5/dk8/W617G6Pe7FbOw1eeWqqV2fX8ihTdOCs/1Wc/v2uc1d5zyhaxzkG7tQb3e0q7Zo9u29W7bTzvucxezPrdvSa31ObTfScZIrQ/Atb7md55pWkI9FKDULo4mic12tcwsiSPhSFjWJ+324A/QHcDvCewYVLhE5TJGLmPgy8Mj58uZy+XEeD4ShzNpHIjZThsuR8LlRBqOeAJOIuoSGgaCBrxT9p3jw8e3/PjjD/z4q898+PAWNBKDZSNK0cLMPFmIdY5OnJVV86xZv7IfhqXnakVW79VUyl4cLp/DGCf7DM/Owb7z7DrHeRy5nE6EuNgI+66DGEjThThFk+DDaHqcLJnFqIgKMU9jGAbGYURfWWRAkWyLVKs0d6iIY+W8dW3Geo7JrLU51+BFNc+juR/XYKv2i2jv9uLNX/AszOk+s2v1IqUv0mRptfq3vnNzaVOXcy4D5CQYNbOxNd+ttvV5yVNd79u1tkWDWqHsJQT3OyG2zPa9rQ2tgag4Fm0t7on3cqO6aJ/bGqNFprXKdkvKbOfaOlGV1kqWfd+vOCXvnXHeWeVcWgkvqefYzqmM30o13yI6bR8l9qxcpLLX9bg1E1LGqSX3JfTKzWf6nFt8S8jqYgwvuQClj3ot7XpbW3Dbd/1s7RXffndt/u1z1+bdMjH189/SmDx3vtfGWr5LWRtR3kksZc8KsRWSWHiPug78DmEP7gbc3mrVquMcAqdx4nSZOJ8HHh+/EMYRjYEeBUlMBFIcSJcj6XyE8QxhwEtEk2WHCuOJpJH93YH37+75V3/+X/HrX//I/ZtXdDmGtbj2qhMjTqqz6kSlyt2siorLyD5rX1zZK52JV1Jlmga032UThqVvZBxQ5xE6bvcd7+5v6fY33Eye2+AYIlaSL0aGx69c0kQcFeJEDoiai3xYqIqpuq2UmzkaWmm3RF02e5ZiZfXBEw1QOc/y+1vM+BZs1M6Ac73iJ3CyvN/2ufV9HT5XL6rExOabvHnvSvy+xeCb5mWudmSjP1nPc/P6U6X8uosWR13bj/bfZV7PMe51+y6ILbKk09o6/OeQytLFImHY4i0Mof7+ud/teO0B1xLqNS/mrTivGqjX3NsiZadkKcnUrdXVW3O/xrm2l7B8F0N4ok6vAb+9kPWYrQT9Lamune9L2zwH+baK/sk7bF+Oev9bqXNr7e0an4PBLSbwGjIsn7cOZO2z8zsiMyZ4bk+vwcLWmhYZqnyeihUs2y5dDvVxKB6kA+mM6OJJ6ohZdXyZLNPSeRy5jJaoghRxGulIRE1IChBG0nhBpwENIxJHkgY0jqZG1sR+1/P61R3v37/j06eP3L95zWG/sxkLuTxkZuLA7khW3WY5CScOspp2JTkVgb7Y6ihe9gnvoknIhYDndI5OlMOu4/WrO7RPpLMyDhDUVMEpJaYwMU0jYRrRFCnXVGfcU+2xKuMwME3jfAq1WrOoS634APMa5mfmcJhv59K+Roy2YLZtW/Bef35NQt7GyfoE7ja5B1oGcmEGV/3nc6zn+Bwze22ca2t7SR/X7l6N/17SvgtiWxD7FodRS1qbyKnqo3jAmtt2QsJ11d9WHy2i3CIsW0i3lvquPVuvpw3hSWmp/FE/d20eL2E+5r5XgL9eC2KoTNUQcUzJQF4EcW4uON/OSVmIh6l73Fri3Tibl1z6+vtrzzz3/Zb01z7XftaqntuA+G+1LYL7Lcmjne81BPqSVmtQ6rk8GbsUHgBmU6AI5t3m8o8RWnE9kmNpE46QhEmVyzRxHuznMk4M02hZzzRBikiKECZ0MkIbxzMpE1uNExoG0AAa6L3w+vXdXJP2/Yd33N3d4pyQwoQVQy+OeQ4vZm9ORIJThKwJEmexrhmGZzstRRDWGd9rqlICumLNLgTNtmC/63nl9kSfOIcRN5o9NoSJcRxMLTwOTNOAi4Gd75bEHOUMNeaxIpdh4HIZZnttmZ952QrIgnNK9O+iEV8kyBaG/xQ8sL4Tti+tMLH97PPJGjbH1uU7k26L5K5ATZS2YF9m9e6CaxZnqDL/ZfzlfJfhG5zAWopdr/OpxLx1B7eEiS1B41v397sgtt557u/vV8S2RoatR+5We0pslX7XbW7E1saVMeufejPL33WihzpHc91qaaYOoi65kVV19k4WMfvkcL7MEu2WVNseeM2EbCFrI6BZus3/FkC2+sl2pJRKxZeGCck/MZ9DiVer96+olGqCHPOYrnHoSpmor/YK5kwx/6Vbzai1zFA9L1j2uXV+mveiIqh1LF7drjFtdf91ApMtpq9u1whoe+41Aq2fd6KIN+/xpJodxx2qpv5Mag5RUTocPdLfon6Pys5q1CZliBPHIfB4HrmMgWEKhBRxmixZxXDm+PUXTo9fGE6PDMcHwukIwSRZ0kCYLniJ9J3j3bt3/P73v+XzD5/44YfP3N/d5XSgyVSLIVe6QsF5fC6f5gsTmGQ2u8TiQiHM6Q5Fsk+85mQzWZ282+2KWIlD8Tl2XMU8sIUO9gcmCfhjIMTI5XLmeBo4ny8MlzPTOJDChCPDsSoxLYXPU44FHoaBh4cHHu9uGMcx25wzs00mPW7xoM4RuDNxkKwa/5bW5BqR2MZz1/1WtmC21Xa1z221NbGMqJIjG8BxTXt1XVqdYdZmX71imomS/3prbmtRIxNeBZGnSUBawlnj3tVMN5jklzDK3wWx7TrP2/fv7IAaw7Xqkkxgk2OvWrETGhGEe17N3+U8909UGkaABO/8irDPyNYtl9oVz15dYlLrAyrEtBDku7s7DofDnAyi/q4uem8wsyBxhyy1Ro0NtfGzxDlcBmZVYMrcMmbvVMH2MF/hRKl8QrZtLeAa01IDNKZE51wOXdD5MwrzAWhJWwZL7dCK2Ma8thAjmpKFCeXx5vcycX962TXb4PIhaeFqC+dq+yDF9d90hPZMAisunczBquie8gkvhBN8kcQLwQV8NTdDChZOoqqWFKF0lRaPbHGCl3Uijy0zQfm7ZopqBq5m7vI24Ds3/13mlag4+VW1ngI3FZefCzrYvkvO1ATOm/eu5tquqp6ouagAHcKeKDvc7hb1O6J6pqBcYuI8Ji6XYCXwJot3dTFAHEnThcv5Kw9f/sjp4RfzSB7OSDgjGnAacUSEgHOw33V8+PCG3/3u13z69JG3794YsxdHnINd78HtZgcpsiTm8vmr9xV8g/jZSyqfTz7L+fxjDiV2dPsdKZoa24tYWTxxpCRMKoSkeKfc7Ds+vLvnEoUQTW3tRPHphkEDURIyMTOmguA6b7CX9zgkGMfINEViUhLeiK1k+2lRH2ciS2FOJRcRyiF0BWnJLCHmO6B1kpctIlZLwyUnsRDjtn1yi5hf09asGVabj4ilBRVcvpu5EhILTG416yNl2Kyl9Yz/MaczV6TkjCIKrkIhajKTQtmhgj8EnC47KTNiXZsCDWyyxsQv+EHEQWVLniVnu5iZwVvv9bX2XRDbuYkg3lSbKQdpOgFfqZjDNK0Q1rIpGZHN5feKe3lG3EXSK1wj5WLmOFjvF+muEBItKiaLC3PeE3PMqnelfNQCRFbn0ohNipHbm1v2+wP9rp9j7kyNFRaE7wwYu4oI5JosFGxbPs+fsM/OVYWwpiK1iiDe5ThC45DjbJ/TmeEosJEMYnOdT4sFnAE4WSq6wghETcSSK3lmRvK+5z2IoVQ2ssTjdiZlt8nzLxek5uDzd1LOKMffwXwG5eIV5Fm4dEizajCmiCZwPtvyjAItc2VRjzPPba1maomfc2UccsiGTdjln5UKOp/Dohkoa1Q63y37Ve2LVGOSCYRfjn45O4QkC9OCYKHOTozRqJCAU4t7MaRjiK+TiM8IOqgjqWSvY/M8jrIjsGdih3cH1O0YIpxC4DwGLmNgHANxNEJLDEiYGIcjw/krp8efOR5/YrgciWFAdQSZLI5WLemDc4mbmwNv377mh88fefv2ntvbA50XpmhpGgXQJMv9zHtkMK6zBlwLc1Hq11aq4AaprBwnvRNEHU6zlDnzZOYhLJkY9t5zc/B4iXiX8GL5jyGX+ux3eGcJPTKHR4iRzll4ket3jGNg9I7LEDldBva7G3yuH+wEVGNmEMtdMthUJKfUzIy0mGQ4a+AoGq1kBFuK9V0byY+Z6SLvHRrz2IU5K1BW4N/uMzZ0vivzlxVcF4ZuYQdSjHkfFzMVc5jZfAPnvgtfXe5AyiFRNV6IyfbH4SCHbWXtO2XVy31yGSLSSrhSHBZgvmYkRHI+l1KYpdAQFvqQUUjZTmonrsL8rPb8mfZdENukymm4AND7bpYCSxqy3S57D0aYTlOuBiFzhqbaS7YmvCWcqDhWRK1skkVabFS9kA8+xjnmE3I2F++ImZi2zlB2kdcSed/3dL7LXJlDvKfzkFLfIPWEdx7f5RqQmUiCAZV0PhM9yzm77ztDsgaNTMlCI5xAt9vhs/opqpr0Wrh+xWxVhX5VUq5JrmkmxsKacIcYGS/DXJxAROi8n5kbWJcR3MpstKWyL9855wgpMKVASku4kX1vDm+pYlYKowMwTYFxHAlhQpVcsNrjXCkcbVwzDee8pa5tnd+21Hb5H1biLa3LN9ZhUXXoVO3pPfe1Gt4urQO6VJLglwIAdsktm7ECHlxWrTljtmbtBRbGklElmpylKBRlJ8kq/iRlUtOCJOcJsmOSAwN7Bt3h5Qal5xIDD8PE5RIZx8A0TMRxMi/cENBw5vL4M8eHn3n8+hOPjz+hcUI04r0CVpUnpQl04nbX8ebdK3788RO//d2P3L++o+8dKU1W3SUzx3Ea8fN9zurvTHxm0iFrbYAx3m01qyKxmKZLVJCU6MQYccnMx8LAmJOUI9F5YaeOFM5ovICOeCIpjsYcdzv6Xc/5csZkL+UyjRz6HbvO413P6eELfddxHia+fj1yf7cnihF0TyJpIIQxO3xZ7VuXtSUxBbNFO8F5R+frjFFFpldUrDKSSYbNfUOyw9bihQ7gxM/MuMriGTxvZpKZ8HS+yg1eebCXzZ3vhyoxBLzzizbQi2mdVvemPG4ZveZsVinNmrP53uWxY4hoR069aUuXDL9G1F0WZjBcn2+TZslz0T4WzViCGM2M4CTD2sJ8z3tYhJj5Zi1wVT8s1F9cb98HsU2J4/GIqs52sDBNxGBErYTJpJRw5WJl+01b27bVu7cOMOVzEclESWZi2xIDSWtiIN6ZhJftlltF7GvkXKrLrFTGT9Qx9nO6HA3RuoV4QVaNp8X2TMpUVclB9Yk0LdV5whRmdU5CFwCt1t0yGkVD4PqGCSjcL+DFzblHiyq4MDptAozaRlo+26pBvJqL98RkdsDE2l5axqzDZurzLmFKJSNN35f9Kmout1IH1bbjdh5btqzrgBtMjb9SfVkz9fbTYhT1z9NwA8UDB/FoNJW4/ThCgoiSsrpcZcJ58L0QdJrXbnqtjjmJRfS4OODiGZ8GRCOD7AiyJ8iBk7zipDvOqUOnjil2HCflch65DIHTaSCOEykEk+xjII0DYTgxnL/w+MsfGYcHREcOO2G8WE7ycRqQNOBF6T10u56/+jd/wa8+f+TTh/f89re/5v7VXc4trPP5lf3adf1scpnz2Oa7McOgLvvbOii23xcUnKJ5EIs4OtcZMXJWfSiqM0KTmZTeMf/svKB9x2G3Y9KRGAJTMOa31DICGCeDieQ9SscwJk6XidP5wuFwi8YzIQxY8fnRfhf9RSownCNLfUkAASUdZWE4U7rO0C7/XmCyrBkghKK1eRobXpvstlI11uM8GQ/3tE9Z34tyX+uzLvC/Mt+JmJc5gvc9zdX3RgAAIABJREFUFL2GMmcOq98XWcrkOZWsHlrf7epy0jlmTdTGEuept8xbeV+rvS+aiW+174LYxhT5+vgVVaVzZkifppEYTF3Y933eYKWrHEscFYDNBFRmbphCbFm4q1pd0OXntojPon6xt0xFnQElExJfA5bIrGYpXKObCYkzCde5+WClUik6EWKYMGbOCE/hlpwTuq6fOcAYE31f/m0B5VYwwKZgRC1Lgqo431fcGIsqNdupvfez05SkNFdMKc4pZZ5IDl7XSuWTOdGigi77rHnPRY3Y73a7hcgWZqY4Y81jQYjBpNPqTMS5GZVJZujFCq/m9YAXj/NCyhmHXCkRl6VhLx5xPqeAK+r+RJSsEagYouoYKwK6KJIWJIKVXKO5h7rYtBc1+MKEzbDYEmgRJGdH6qlT2UFIzogumjUeCZVgxHbniGnM+16YpA5VQZOg0SNpT6e3dAQjbH5PkB2j7vFpRxqEMAIxEcfIMIycL4FhnBjHS67YE5A5haHlQD49fOH08JVxsMLvKUy4XPc1jCNpOrO/PXB/e8unD2/57/7tv+XTh/e8ef2KD+/fsd/3Jl2mSIhhTvqgKXF3c2tpEqeRYbB9Lg6QM/OtWWuVVbuFGBcmOxWbZgXTYRrxXui9o/emSUJMexBUGCIMqec0QTqNHA4H9udAiKa7POwPxggV3wTVGYcUXCaazQHOyjkOl4HT6czN3R277oAwITqCDrNq3OKKPSW7l4hkptMk4ZaBKEVCSqtLlLaMb01wtohnTfC2BJMFRK+/u/V9S0zLuZSzrAWb8n4b4pSy+cjMNmWMvBd+kSktEUb1HQuOXXBPuYBC7zqzOGirESjrIt/RgsvyHaVmJoTFzPRUMm7bd0FsU0pchosR08x9TdM0e/0W5JRSImX7LaoLDamArNhwyQdlwmmW0iSb60VmwlaTVEO4xXbaAKZkj7oNz9a6rWx4jZq6BdyF2DpDZrJUoajHqPMqxxhXpaTKZ6XPNgez73czqWjnvTiTrQtBtPHONWc4X/oU8tp8tj0XKK0ub97TXfYkrefVcqWmwg2EuNjki8Q7Oz4UGJidZiCV/SoDSnEuWZ53PucGdnn9qvZQrOaQPUTRol58ShDLfS0wk7RoJhY4SIXrJsOaqy9lOYg81Uol5RBDqqq5VmqGWRVTmanM+Z+M2HrEQ9ebc0+xtZuk7Wdim6KH6Nm5RO8UxJH8nokOl3pOo0OmQNLIFALDaMXfxzEwjYEYJqxCt8XIhunCOJy4nB85Hx8Iw8B0GRiHU3Y6yrZrNWbs0O94//YNf/5nf8a//P3veffmDTeHPa9f3eC9OaOl2fQQZ03Bq9tbxnFkmiaG3ZAZ7Q6fiS2sNTDO+8yoZjiOFbHNpqSYImNFbLv8o2IpjkMSughd6mBMDNpxe3PD/jgyhlwbN5snDKkbkhcnWJlAI65Fq+G7jjQFpmnifBnY7fe8uu3ofULjGZjwkuOJFcJUHNhykh/jLCnMXi1x1pndAM7n83yXCk6on1u0cJ7dbpHyWuL6Lc3Oc4R5dsyrfvTJHZLV7zb65Mn4xrlm4geFw67kBxvLLQJSYjGViSx2Z8kvaNaOFlJd1OtLj2Xoct9m1LJax/JTJVR5pn0XxFbVisejoFmqW7zs1i7aRd1UE1uoEF4+q4QSdLFBgun4vchKqizjF4CcVRGNuzcUuK8kZFj1Ua+nnVfdX0vEipTu3CIt1yqiOmNUuTz1HFtVijhzikmq7A43V4lbqwrfKltV1lfbte39TLhYvKBnD8C8VwlDkIf9fo5rhKwBD3F+1lEupklttbqwzK1Vv5a5PZ3Xcsltb4TUJbwLc3/FrlyqJ3Vdh/Y9slurfVsP+FZCiHGavcRLvGeKS9FyR0YCzhHGVMV2GhGeL6rLcCnm7DTNUouAFtknO8+U55ziXKnpKgvT7hYJyTzPPSoO76HzDpwnuj0RD9ERBgvjOZ0HHo8XHh5NfTyFxBQiGkc0E9t4OXI+feX0+IXTwxceH36x5BXTyHg6Ipq4OezxAr2YU+H7+3v+7De/47/96/+Gf/Hr33Jzszd7aLekVE3OkcoZZhXNod/ROU/wPXvXZ/tlNh313VxMQDFdu8vl9pw48ySPOZxNs/0bU/eNcTJtkc/ZnjLKiKpMEVMjJ4d2QnQH7l+95uFxYBiNUEslyahC53uMYmZGMCwqxb7rGcOFMQaO5wud73lz/4bDwZGmI05inofZ1S/nMdtPLUTJ9x67yus72ZoggGyGWxi4aZrm7FVrc1bPzc3dTIzLMzWMFxwIlm6yxlu1CrgOZTSTyYKXWmLb4sfyfo3XVirk8jsl8yVBqxoHitOSDMTMgYrSuWIKZNFeS06Isgye/8iao2Yf6zmWnxVhrR+a/7E4Qj7XvgtiC2tpyHzfF6S2OEvIDDhkyaO1l6aYZo/hMHv5LQQ3FrWNDTqPbT9iEqY6nLonQJKdETPqa6TTDdtoa49oVSrlGe+9hRdkSa29WDUXeE2yraXp4jEcU2J/c4MJck/7q+2thQjV39frgbWNp+uc+VGQiawT259MeNfu9oC3xATOWE1LUuCM2HSFoGb1XCdPw6q0SDJpWWfZv5abbufsXbci4HWIViG2Xd+z6/vs0bwgtJThrPS1tknluOi8hojOatCoOjMR83oz9+uw/aiJsZcsHWGOJknINqoCbZl7lqJWVKwmbaR4tebTQugpNltNHSnBBetPXE9wyqiOSxT+4THw89cLX48Dj49nTqeRISRiljAlTsRxYBrOnB9+5uvPP3F5/Mr58Svnxy/cdNBJYt9Z6FcaziCwc45PP/6af/MX/4q/+su/5K/+8l9zu99ZPdqQuIzlPiiKqTqLCUgEjo/HFWMrYOrpYEySL4g1E1ZcmGGtFGAv2qwCa4iZZApS1JRdmzQSdQ78oPdWz/cG4fX9HftfHpDH85znOGStm92hzghtDucpZfGSKt53CI4wRb5+eeDheOLNm5u5vJtzOTeAd2iEru+s1HD2j8iqFor0VfsUdN1aS9b3+/lvVZ2JaBtq6L3n7u71DN8tsa39SwpOKK0msuXd8neKiTCFTadVE04rR7S8hhDCiimo7/Ki4UuzcxwJklrUQZySOZGpeT/jNHssG8MquegGYiF6qZRgTJCSaWm0IHN5qgKXzL1qgq5fArkLUZ1NGA2NeK59F8TWDj4akAKSxCTYaAHu02yDNA+2HFiZ340UN/Q552uy3yVetVYvF3umvQtmE8nqIFmAIaWQ1ZFFGnSzDRPsQMkqn1kKafqt7afl+/KsOT44LLg6r606s5o4tlL2lrTVEhkV4/xjXBP58ntL/V3sPlsSYpG2y3shLAEnRkOyN2iW2GrJQ1Oas0yVsJuiYi1q9M45wjSRpoAXN0v4xoHoTLjJF9Zs91KplDPhMiXwrF7y3pOinVuxURekUS647zyd93RdP0sRBpPlvGyVK3VVYTQyw+DFQnNKnHjM8IeYinrf9VXsNNmkAUXj0okjiYJTOzsxqVwVRC1vrMz2OysOZ+EMiVJYwLpzONlhV9uh2s3pFqM6xO9JfkcQz5CEh7NyPA9chsniLzWrslMCjcQ4EqYz43DkcnpgOJuNNoYzwsQ0BkQjO++YAoRpwAscbvf86lef+fzpA/f3r5jCxPEYQU1dnGYkbhjNwmGy5Ooc0zDOTKDLd28OO6uYbAuJkzlcJcu6K7j1zi9JPcQkxRxgY+puNIcSOaLbEZwSkydMi6ZJU2IYBoZxyFWAsjOP8yY1Z42Gdz5XM1rC40IIPBwf+fs//JE3r3f0/g4nIWuFskBQw3A2YY3TZKr1Kpdxe9/rVn9Wa3zqSl4u5xMorRDGFp+UVmorl/FrM9PKmaohtnW/rcq5zKUmtrXGrtzbGadnP3xSrp2cImlKRM2+KmqanjRlwl8TW8z7OuasXiaBB8bBCHnJsfDUxFXkuZaYPnWE3dr/rfZdEFuTMtMsuSDmBp6ihepEV9Rqic7vMvABWXoSMueabSWazMPPO09Jh2YGdAx5a4lNLKrLgqgzeVDNlwV7n4JUmVUU5tjBDAyp/K2a+4/0/T4DXOFO86Tr2DPJBDvFxTogMnNOFNKhpf9EjNkpZJb8KqJXEE+Oc50506ziLarfwhuo2vpK6S/L4vP0jNYAZxctzuEGml39TSPgxM2ZfGZnsYwky+clY3NR6QfJktEUzOFpVqtiXtfV84gQ80UOyUJZFptNCazPKjHvGccJlIzIc9hDTqenLIjbpJJKim4u2oLomPvXDBcOI7bF1GCgk/V6IhYbXSBBdc6uVc7O3ldw4DpvLmGZ2KJFwlXLYiyREghUfJTziCAO7/bY1c6ZodRK4wV1SBehi0TxTDgeB+V8mRimSIjZIUeN0GoMs412PD8yXB4Jw5E4ndFooTBxGixUxuUoR7UEC3c3Bz59/MCbN/fs9x2n0yOD2N1M0ZArkvdIk2mcMqHtnWcaR9NG+OXMZhVmrJi3/A4F0ZVzyzfCFcRdHKHyHZXsBSyaspZAQDyp2xNdYFTPENzskaqaLLxssnJ7iyZO5jmllOhcZzbg7DUMloLwdDrz93/4A58/vOaw93SdCQ6qji5mRjtlSJBF6jOv40XjNDMgjQlpDZ8Lk1x77bvsGFkk2frzmlA8Z8ettXhFi2ZX1BiNmtB2XSG2a6LlnCUfCiHknPhxTrThZmY2a3IyM4QkRHNueo2kUOKTM05wMA1T9g6PuORy3L5lrYpqXuIalZimrONUvHd0vp+ZNZPcQ8bndsLjOFX7WzSBC1P0HANUt28SWxH5HfB/AD/YqvnfVfU/iMh74P8Efg/8J+B/UtWfxUb8D8D/CJyAf6eq//Ebo9C5YgMxpJKyptgDbpahlL4TYqgceWIuy5asJJM9FnFi2WHK4c7ElmJHyAHQWhhi6z+lMEvaBVeWOK7iyGCXtHBAVjnEcH6+hApKopsJl9rhsRDjlCyUgWSqo0IUXXb7X4XPlBQXak4el8tl5UFbWn0JU1JiyPGly1mu/o5uDSy1N+f8bH1xxeWMSoXTWQAejTMRcl5mVZETwXdru7shpzjb3hFhwiRcW0/FaVonM1PgvJ8JGBmpSmGiigotGZPmsto1RAtbiWV/qnfLfESFKU7zHFV1k+mYpeh5f5Z+ZlhjgSnNKsXTpUI4+bOFMMxdmybGZyZDXf6wZOXBsg+hWTKquP4ypnjE7RExYpvoCdoT2RFlB71DekdykYhwHJXTZeIyWSxtjJa8JOZcwKevv3B+/Mrl9MD58WfC5YhOAy5NIIkpDsQUrKScRm5u9ty/fsVvf/MjP/zwmdubAyFM/P3f/x2kkBFZrFeMJguhgcXjGIOCxeGxOpdWyqudAtvn5rNyJtnGnJmJFI3gaspl+wScJ7kd0R9IsiPIgZQEwQq9x2mcnTad86jZTVaqVd97kkJQi00X50kIp/OZ//Q3/y8f3t/T9Y7bG0c8OLqi4UiazSzOiAOK67LWK62lvpbYtv4YMxxWhLH2xZimuCLcrfNmTWwvl8uTK7ClSSvnmVI0rVeKhPAU94gIISjn82nlwNX2V+brSLhsvyuZqRJa5Bdm84MT/K4npc5iyXURQkjmAJdiVvenxP6wm/1USoY/25spMzmFMOTohoIjK0cz79e1v/9LSLYB+J9V9T+KyGvg/xGR/wv4d8D/rar/q4j8e+DfA/8L8D8Af5F//nvgf8u/rzbvhfu7V6jm0B4RUylm++xut6dInL3vGGs9f0oGpEXd49QC+YutRqoQHedmJGueyslqeKouaqH6R43bdh6cT3S+N4k3RlTMyQLpcJK9bYuzTHURFpWk2VALkTH1ac5ig1vyZ9S/S9rFijNMMXKzP9ihe7/KYlRaWYemyH5/gIyoy5xKK4i/kAuVhGZiVEu75Y0ue2u7zhiZEBdnttyhXYbKhiwi8znW4+rCOgJFUxCZkmXFSQ0ymYE5A/z0/1P3Lr22JUme18/cfe19zrmveEdmZFd3VXWBQEgIJkyYIPEBesYMIYTUExgw5hMw4gMgMQAJCSGBBAPGDBjADIlBq4uCruysyozMiLiv89iP5e7GwMx8+d73ZmQigRS1Uifj3HPO3ns93O3xt7/9rdbRfgGbDKOq+max98+leDYYKEgEUA45Bzw2wWQBi8vGrtvO3YMM9XXbxjNywpZnyuIQ99wHqg4ZjxR3YBF+D8Sc8LkaI1scAQlpkYTB7wUQyXEhdttxkRNJhk6woBRQGwJfsS9lh2iiNxsCfzidOZyMFHVw9m9tlXU9cXi6590P33F4eM/5cM96eI/WM/QKbUV7ZbcI53Pj6emJm93Cl199xS+++Rl/8Wf/gM8+e0UqYj23gqsnKSHRkwcEa06PZEiBZmGRbE44EJcICj2j0BjErtbOE2vj2liHnKnd32Q1W23+1b2XcwtWWqpUqVQWznpEbl/ac81zV4Ht27VvbSMRZJdSaCogZ0sWpCBk6tr5/nff85tvf0tOyou7hbs9oBXtDelKluIBvXBuld3O2vZG69tk8MM5xP64JpLOnIfrLHi3u+H6uMx+LwPu65rkHKDPWfHgKMz7ZQoC5iDhesRk/D6uaV1Xel0pJbHkzCA0TXvq+r3nmvCGPGwoVjj3WitStmu4Hu/aHFVVD6xfvnz5EWe6oZNxnX+odvsHna2q/gb4jX9/LyL/BPgF8I+Af8v/7L8E/mfM2f4j4L9S++T/VUQ+EZGf+/t89Egp8/zuzjaV/yzYicmhP9zplJzZB2vW6f0OjNrrvK4DwpKz1UUCmpgIBuoOdjwgj5LCwVSX/wsoqywLxYlMH1soc3T4sUV6zeL7ABaaXmuJ1+ViCkij94C1t40R8PRWV0kjMNnv9gwd4Y8siHjf+HH0jY1zEBmZm7E9bVMtuRjED3Tf+LK94ajNAhd1tvl6xwJ359WbnUenG1IxDCyuSmPOrzt0r2JZbbwGh91trngIAyQTZHCUYlJfvNhgc1AUa8Gcp/diB/RO1FOV1aFQQ283ULj1bX3gdeRU8iS8scFpF/cBC8jLaG8DUSNXFbLfe8hjPow5nh4Zm1rbgy//kekihZxvIN/S8w0dDzC10RrUtbGuZ46HI8fjE+t6Yj0feXx4z9P9W9bTE209maBFPUFboVeSw8JCZ9llXr16wZdffsZXX33B559/yu3djcPdVh/tEWX4/Y8eyi4gOaNiM3XNwVYPBDfIPpaUoLgKpT2PbTWPgG/s68FLm5CSKMt0NaY13T9LaKnSJaMpIWmhVyvniHpAp2ZrVIwcJaKoWJYDVrsVEXa7PR3hXFezI2Xh/uGRx8cnTuczL57tOJyOaFtBO/tc6Kyjh/xUV5d1lYv1aLblEoGZM8Ox7K5Qq/hb2xOni7/9mPO8fr/Ztv3ezLb3Czt2/ffXmfb1z+eA3Ox4pbdEz2k85bFPR8kuTnCyu0Fc4lJKMQJ88YC3q7LWSjqf3ckaA78rpFJIkskl++zk0EtYxnkEp2OGk3/s+H9VsxWRPwX+deB/A76eHOi3GMwM5oh/Nb3sb/xnF85WRP4x8I8BvvzyS253uwEvqiqSt7qdTPd0KcWzjqil6GC6de+lw2HBXS7jPYIF658O4DVHd3pebxBhY+n1hog1vudsEom1WQP+5rTcCMRC0Yim+iYWQdiATu9KqL+4nwNgV8omlXgdHV58Y4tCYgOmND5zNk64IV5yyARu7LnIXMfbDmeD164ZkOy2oKfgwEU6kgg9Ja9P+XMjIk2LrLtrKotDgkF4IZx5V5o0g22S3x9Vyzwk+f3PY6hBnK9IOOCZNW53qizlYhOfdHvOpM0492nTxvNsU/A2WpqGlfc76xu51WqwX/o4mnERXOSEKSVuLW1RZx7s5zj/ku1+NLufRZIxtN3ZSvfSiQeSqpZpNRW0J7pYhmj4ekFlQfKevNyiaWdZYTOiSW3KeV05Ho8cnh55eLhnPR9YTwceH95zenwP/Yz0SqLTmo3LozckC7WvpATP7m746qsv+OrrL/jii0958eIZuyUbBNobgtJawIF+/52noIqzha20U32PzJBoBEkzZH/dTob62kGZQYmxN4NLENKdISUYrTWAaqanBrKQUzZOgE4iNhMakTwJSKmTKYCVLLJklmVHPRskqa2TS+HxcOBwPHJeK5IL67HRayWh3JSdIVm9e8LdWamkLCOwttuxOZ35CGh+c3L9o3937ZxnB/iHstnf54iHfWlttLBd//2cAYtsXQTX0PilMzeIfxVhDqm2a74kf84Z/9xGdJ2UhO0xzoaXEnVuR3IyZTGI+Xw+u83MJJcTtqDc6vKS0rB3P3b80c5WRJ4D/x3wH6vq+/mGq6rKrA32Rxyq+p8D/znAX/zDP9f18XDRt+X51fz39pD2++1hqxpTdWLHNdc0TghkUwmJqT1StnYBiQ2MMdy6rsh+z7IsiGRaCVgicH9FW2eXErtlv2XFU4ZqN8oX6kSh/0Pwwlj8cW5XCzoWwqhjXD3U6yw4Fl1OedxDe4/wGZHebQQOXIZh28yg6k6QaFNYTHEH5VzPVi2cegDj8z+6Gf1NZ2d/vbmaGnGo1s15x70Z1xTEqInBGMd1NB3vv1uWTfRB9eJ1QcqJv72+jmvySDxj6PT++8fkXSMZsRY+JvE5v63gPdcWtVim0xRom8Y1xmXo2s0xCZ6JZSMQpls6C51CY2eQaMNq0iXTgHVtHI4r79+/583bN9w/PHB//46nx3tqPdPWE+fDPefDPdJXMo1FYJ+Nx9tRel1p9cTz58/55ptv+Ff+5X+Jr7/6khfP7xCxLCEyW7SzrifLNuZbJTK533FzyfNYRoxwNN/rEcROa2x+zwg8Ga81VCbL5Z/Zi6dPVjVoOTVElCLCrmT2S2G/37PsOtKMpNj61jJjz9ycZENJ0tDWqc2C3AzUBk/HM49PB9bTiro0pGxce8umshUM1m61w/QR0xoOK76/hpHHvdNAu/pH7ZCIjDr09Wvj9/N/5/edyVFJhJulmEW5ymY/5qjn97/OlLfP6vRqNf6PTd+cr09Vubm5uYCE4/2uM+aOItklXFNC5HwRJEOitU7ORlIDaLVT105dA7WSYRs/lpl/7PijnK2ILJij/a9V9b/3H/9WHB4WkZ8Dv/Of/y3wJ9PL/57/7Pce2hqnh4cLokFsprj5YXSXgInixa1/4GxVlYywFFNP6vGAYUBAsak76plZZe8PS5ILFEQt0l/f1UgLkjc93mtjPy/KuRc0fj8bXI1MtXdub+9sw4hpMG9x+VZDMONt2fb1Ih1OEqEn+xtNlUzyrBdCxnJztp7Najjx7JcqbgTZ5oNio+ikG4SZJeQynXGYL07DvtXNikXgstXPthpcUO+rdqpaDb5nxwk9owhZyeQsxXo17CCycVs3hjaEU49WGtQyABstqIPcNUYoBrtS8PeIOjEX7iACh+YIR9xfG821PfNQQeu9s9vtLpx8LhYIzc7fUBiHSVWRhnX3NBBn5ifwntzgHjR6Enou9GQTfM7sOTehNeFwgsPaaLnTs1LXM6f1zOF45PHxke+++443b17z9PTI4emB9XxkPT/SYuh7PZJp1seYhaTNJt20Rl+PvHh2x9dffc6f/+mf8Bd/9qfc3OwQMTJRGuKyIVIf6w423p5MzPWPB5FzpjLvow/3AB+8fvuvredSiqNiHtz6UPqQIg20S5spjKUilJRZSmFXFkpZrYYq0XLmwWFfB2HT9l4e16SaaGRab+5sj5xbY5cyIn1D7iIaZnOmqpalkyMMC+RsWDN6V08StvsQvalJkqNGHoAoYzbs9X362HEtnjHf07l2qiLoYB9fiuHM9vsPQa2Xn7W1aIUTZ/qvHZ7zilCrjTLc7O1sk+N+Oks8ua2c7GB4iE3jOY12QnGUTaZ1C1OJMtbSjxx/DBtZgP8C+Ceq+p9Nv/ofgX8P+E/9v//D9PP/SET+G4wY9U5/pF4LhrG309kgtugLjUxPBFIaY490XYdBj4yTiNp6Q2rg8oK1ReBQVUCiGvMygKgb2b+rnGmrRatNzSjLNMsWEXqrkLbZtBtuH2zd7abL9NkQvW+JZdl5FGSvra2TSWNixhga7ddXXcpuzpau4e1AmDqb0opgKj5xvz5moAbJwudBGtFLhkQi071b46JErMbGHBJcXq/E6+wNxvm4V7QNKA4qij2nhlq9zmstUafNyShCVpNtFvTAqA8NDOTiM5iuW0ZPr6krXdZ9hoNOBhWFdx0G2d/swiSpBXFzFH3dRlEkDZGMUgpatqArGLdjzaNjWpP2ag5BxZ2tomsLBIwsOGNZ6XRaTrSU6alQZaHrwroapLpq59RwyqtwOp+5f7jn4fGR9+/f8fr199y/f8fxdKSej8YYPp+sRttXCsqSrVsg0239N4P3bnYLv/j5z/jFL37OL77+ms9evUDERANWbZSc3MZ3Vu2UZUcAgg72uil1JAUZzyzLVs8fPAe/77MRDSMXQaIAY1AH2/qzPmV/PupBTSA6gv1eFdVERmjC4JDE3g4WqvEsZRC9JNWxE5StlCKuyR1ErN7hfDKt59Y6UhJ01xBwDkpo6A8nxlbKiRU4O7r498fad+a9i5m+D47LgOTHj+u//Vhi8cce1xnux89hyzZFLp34eI9pu3dPBqZPmd576p9XpdcgybIxj2NdEdcSzt2f9/TvcL7pYyn37zn+mMz23wT+XeD/EJH/3X/2n2BO9r8Vkf8A+CXw7/jv/ies7eevsNaff/8PfYCqOduI7sZiDbhNcCYmZnT8EDBZQHU91m7KRaqu9sTlgtwciw5yhmKM47IsJsTezMmu60pzLdRSCmW/s5m3rdNXJ1DFpBLPSnSGB0UGMaj5NaWcIWcKyVi/OKxRK+fGGJs3ZMlUh6Zrn7Kx9XS2cX0ls192lm27d269bQELUEoaWV92Jzl6WMOYTZDQrDQzZB8nxKF368W9ubsb/azA+H44Ww0OJf5A3Gl6+5DKPDtzayXYAAAgAElEQVS3u7SmZ6DJWKM5JyRbn5zNRLWotLaV3bIbzNDNOdr30Yc9oLmlGGzkGTISgY7Vmwfru+lwgpcLdPt23lpJo5LkUby57MHKNJGMYsHfVBdLKY2BGpHZGhRoRJBaV6tvhy5yU3o2WBK1sWCSTa6uAy1naso0yUjaUXshqWVmVVZWbUS18XA68ubtW96/f8fbt294++YHDk9PpkndG0uyHlT76ixF2C+ZJYGuR9a6IqosOfH8+Uv+xb/4h/y9b77hqy8/58XtLa2ttIZBzvvF9mxvHER59uyZrzuLm1rswe4NTI44x3zWMd2lde9ttbUU0qDhCZNizzfQiJS2eEvwopzD1eqIjPo+a+ra004+tDQSIVHRUbMPp271+WxZV06IdGqTcW5xDma3MiU3U7RrZtRPp5Xj6WTtabKzdkWXOmytkYbzj5LL5HivbNmPQcMXy/fKocmP/O73vcf8szlTtRdi0pd5I7J+6Nm30DzmeMd7DOd98WEAyW2Zwezj8+P7EQjH+V8GO5GwxadvAYyXrLwE2dt2rpZsMOr52z3fzICItymmQspWdYgW0B87/hg28v9yfR+m49/+yN8r8B/+ofe9ehFSqzW4+zEcbs6k7rJ4CH3dGowdK3RVMycHxfPXTqtXrOFkD3rjtjEIMxqLvCumStVwu08uwrJkdmWh1zr6OAue3YjY8Hd3ZKOX0xfUcLYpkUthn9L43XiAtfrGsog6goGhnuRZTRIoHsGlBki1leGuTlTJ4+LUMn0ioRRobRC3FJDWNmH+br2oJAsGFLbMwn/fVa3O0ZrJYbpBrL0jMUtSPOhxI5VFhjyhZZnJSD5hbJs527IsJmUngqZKS+Z8K4laV2/0t7aUZ8+em6QdStSaDV7Dn5/dy45S9nvImZBNDDaxtj4IMJg95nZ/QyRYoe+Mfz+MvB9LSmSZCT+X/Y6zbN1AOHy9ELKcamQlkeh7xuf1JhP3wIlVa3VlIpMY7AmT8QVqSbS8o5cdfdmzpmIwfAH2DdFK7cp6OPL69ff89ttf8+7dO+7v33E+HmjtDNo8URNulwJZaefOzWI1y0zn2CrttPLs9obPP/uEf+Ev/ox/41/91/ji809YipG4dEmgCwIsOxcJ6Z12s7fnJZGRi/U+dgvUWiBMfn93U2+1KLbW/Dk19da2eD6t2/oSl8V0aVDmteifd1ytLznTSWqTjETrIFmuXaiycNbCSRda2bFbqj/LCKbNcVQ1hCkCJrqVYkopLGVBNNFqpkVg2SuH04mn44mmUHZ7kmtUp+6IgUrk5yxlgfRhPTCCs9lRnc/nzc59BG69cKrt4+Sp+TXxPnPwee2MN1SIMa7UAo7LjHw4PZnW/5xqX51HZJWC/W0kJoNw+nuIWs1VB6PXPU1O/4N2Idca7/GHfp4StlvUg8JhoRnBQgo+TgE6Kt0U2tqH93M+fhoKUqqkNsMeU2YizYYIp2Q9sRMT1xZgVDImxtoUhmxs0g8Xn33Z4j3XlbIs42ZHtphL8b5FX+RdPe5N9FSuIM8JSlEmtuOWhUtTujSgjaxVayWXXeAVdo0WHlrUKAx4VESQ/c0EoUjQ6QCrpWYfrB6Q3ryYE6b0M9aY2P0XMVJK6Mpq86zds2QBH0fmxILWSB6Ro53Ut78bW0WsF7W4ZKJqcxGRS9gmp0SWQpFMUTFmZVWQ0EVKJDqLmmrWblnYIZTmLUCqBIphpbdwtrZpkvfMdbXeyNramDSz1ZKsVNAcLlI3BlvcoheRtACabDQbWJBWm/X+xgjG3bKQp8lKfarZRrCjnq0jrp6TsFobtp6SJqQLWnVMxAF1vXyhZ6HmTFuUXoTeV85l4ViFY4NTVQ7nxul04nB44s3b19zfv+N4eKTV1eQCA5LoFmSmLI7ENnS1kgqiaGvc7BZevXzB119+xZ//gz/l+c2e3BVZV18b6nBs53w6DKOYc6IejiMYUxJtbFWHJSZHY/dax7rP9iKitmpZsCFaSbJDw44q6IYujLKCCNkWHB0l00iakZ5Imkf2VDTRZGHRQtbCmvfslpWlZNcxLl5+MKdtCFfz9jIf9i4GN9OdTKbWIieKZ1OGIN3c3JClk7SRtdF2Z5KKIznKqGhMEG049mvnMUupxvq6tnVxRAZ2/fN4VjM7OWYHX9rMy0xbwq6ktHU8TJ8d/50Z+3L1HtfnsDnVsCW/n90crwuORHzWfG/GeWB2IeRsR2SNrT/1ddbdtm2SrRGEZPc/YXO61YqvOCQfO34SzhY8N1HPJhTbTe4MInnR+KU4AUaDULDV1Yj32Yo7WxQ4st6tZte7mtZmD6ECp3D7Bk0lj7FduBE1CDDRU790guHu1ckrajWB7FGa4GL9rQ/DYUQMRSU2iw7n6bmnZ6VMEGX0fvoV963AL35vRL2bQjcIZXvvDYLRyJJVkWzQWkC7tDZqIGbIGO/fvL3KcsotCo0jMuns54zXR3R2ymnLRqIuK72TepDkMGcpMeTbo87i2slcXlsET4MAJ9a3mfC6jNe/1QUxenXVq2TqYtkubAQMwxBM9xa2QMLG4U0BYq1o8zFxInQVpCuSLNpudR3krNl4DgZ0xurGOVqG3XH4JBpiXeNZbRY6iYZQXQy/987aYG3KqcJxbRzOK8fDgafHB56eHjmdjtS6InS7pd33Ft3kC1V8XB7O4LUJOTc3N9wumS8+/5wvv/ySzz/7zAZOnM9Y7dMzGLUeyebiHDknKIVa24WzjZq9xpAGjezNaqbbOpr3re+bSfBFiv9RD2EP20+GLsUbWbA+CH2BZnjwF2WY7EF9IlE0G9owaXinnEjdjO1wfG0TaAlxG3EEJQ51h9FaMO3NkS05G19Di61VFbL3QYezDRsWdiv0va+PH3O2F/+9Kq/NDu+a1zF/7lyKu3DSjqjZfjSy1MYtucyUfyzrvv69PZN4Vzf9bL5ic4Fh+cM2ekIQ58N8X2wtBBpmjnvLXrfPx39+OYwhyKk2wjI4AWGl/z9q/fn/8zBaimcTImN+Z9zRYKQl3xAje+qeDeB7HHvNeHhB9hnQgLPr3Bk2h0cVq9Xtdjt2+73JpPkmFZ8WApaVFhI7SUjeFkgcW6ZyJXzBZVQW6jf0PhydrnXAghf3JrJX3RZWa/WDxcvYPDZxJuR0UwQlQRAAc1rT0T2wuW4ByHDhQNOISMH0iEOmLBlM+/sOjeDBLmi0YzksV0oxBnKrRsDpzbLZZLBzKTLac4wxHUZXR5Rq+Xp3rWI/JyzA6iTaWEf2P2M8M6Lk7BB/5vJ5bt9d9iImvz84CiPNvLyKyfhJBBodc2Bd6edKdxH7JGI1fC63aFLT9B4qNg0Dd2QZ5Lnk8Hry65b4kmQZowprV05r5/F05uFw4PD0xPHhkdPxQG0r0MgZck/UZNkXYi0qdNNbXkpmXwpLsZF4d/tXfP7pS7784gt+9tXXvHr+gnY6czo2ctIRVGnvaFvp2vw5Cy0n1tqHsyWcrRtHxDSyYp3XgOcj+LteT76WAJJP0ZmPa8OtkugpU8uOLp3UK6JWp87UsTYlqcG+IqgUX5MWQEms2wQpeWCz1uFUAloMGb82TWJKSShSqK1yOp9pzj2x8YyZIrZ3E4kcBj4bejKuQYMstLXCxTWOf8d1jMBwum2xxpJc9JdfZqkyggtb3hskHPyOD7JhDzZ7rWhLF0TO2ZGGslokJ/GeETDPz2t0B6wGDatnk2Ix1VCFm69OcrH+/7kLREHSRIT0967NUbBkNuT62O6LTF0n9qzmzB81fWWRPjntjx8/CWcLOMRjBrKnZpGv2g0uZWf1EhFa7X7Tg4odhlDN8GEXrhh0kwQjLvm8y5ysfajrltG21li9FzJuIM1bMtyTq6q1GUmmS7Cjt/Bb1ETxY05qq20sqiHzZmc54NkesKc6dd+Dg4xYXXNa9PNxOByGk7K5l1tP4rquJmXoNdbnd3tbzB7MqDJUbuIwsqRJ7i3LQlkKu2VnNSM26KrVRu82QiDlYgvZGdjz5AzYWgZqrZzXdestdSczjENkqKrUdWU9nSgCOS9EXYXeDIXQTfYynO+1sQjyxTBEOXE+Hq1VNSXPogWSaTAD03kYfD6CkmkTWpAiA9ISbAB5JwwXLBFA5DwUrKIuq2Ds167eUlIoKU9BRAqMH0mwslJ79TGR9vOUTdEmFXtdxTR4SYVUCrIU0i7Tk3Cms9RGkTOFI6kf0H4g6ZElVVI28RftBmMKHUmwLwu0lSKJF3fPeHG742ZfuLvZ88Wnn/D3vvk5n7x8wctnd+wKZDKpC6LNJFarzQjOKXGz2w/GeK2NEgF13+B3m9ESOUod9zqVPBytTkYbJta3Pzt1Y3i9Fua/VxEago1P0FGrFa1kmiMtQkoLbXxVGpV+eLLRgW2liPE0mmdOVgJIpLJHtI06fWSfVkIWJFvQcjodef/+gfuHJx7uD7Qls2ToovTzOZaAtU6VMgagoNGN69n8QGRsvdXT6k4W72rwveaExA0hMK1y1TT4Asad6ETRJF9F/JszMq33ULUinKJHRW2ttLZeONtQlgsuy1ZWuBwl2qYASvyZkRK7PeO8khS/bohpaeKBG6jZJ1VDa7zlUVXRaqW7hJHWTM3NCXdzqDv2vW424MoORABvixPPZn48o43jJ+NsW2SsYmy/0XQsajdObEHm/R4dNQex0UlR49VumQ5qEx9USN1ILKZBvMGYYQQDeliMb286q8OJTr1hnhmbefAWG//L+K571KVeSzMHZOSY8xTBKerPJ64Ta4sQH+OnjOh0yACG0dZO9rFXXYRz78h53eB2BEoxBEqg52KyZ727CDvD6Q1lHYc1l9vbYSyklAkOUqpD1QGHmTzdVEMhomiPXPPkyMIJ+2Y3nYaYdOJwscOJy35Pycb0s9c66Wp8yWB/m/OULdZSRbsrfDlxq6Es2ZjkRpCKeo2OKF0dXreEfVO2iczTTZwbBB3/ri7jJ1hpYa6thapWi77eCAZKJi9bHVdFaD7MQNQDnxowemJZbCyaTSYxw1k9UKwoq8JhrSwlW+2xn3n/7h33pzOPp5XTw5G3v/sdh4cnTscj/XQgN5de9IAsR91WxGFkpaTE3X7Pn/z8az775CWvnt/x6tkdr14842ZX2GWln0+27lujrmf6aizqnK0vNWFEOFWvuU5qX5HRRL92DH2PfZd9jTSHpC0zSR4wJ3Le5Du3xSXDgMe6Ncg5MA0X/ldvEVF77pYlKdIFpLnTFTSttm7OR6Se2KfOk1baWi142C30R0Ayy5KQ3m3d4j3iDtOnLEgXL+1k6tr49te/5c+/+Zm1/zTr2V8PRxImpCHa0bVZRpwTSLaBD37/UjYRE0ToUgfqpxj5rPh4zw1OjdskrGehEcF+H07G7qB3RPg+Nl5JSG6aox58A1V62uxIq9V611WNIa42S9ba2DDj6HYpkK7sjmrroAmETowpLvFcbV0YeOkByLB5htylqNU7fLKVHVyjOoKPDtHek8RlVzyCuQgEvB4rbAG0iLAOUqUiY4zqRxCYq+Mn4mwjqwUTUochfzVo2B7/5jxuoKoapZ7A5uO/W+0uLt824RYla7hImaA5NXKSn9FFf+ZoWBZ1B++wWThF0nC0uMpSxxaFdu8fnaO3bFGWRL0yLyPD0z7Vv/wzos4Sup1htJpOer7IkA4Lg2GBgf23KptmccquBgXBEtzlTeawI1Qf5h7wkTgMFEzZcS3hCYmNFNHvZd1ndm6zUpNlyOKwsZOKhmG+JB44gm33r2S/Hr+30UIRYuXdtLNvl5shj5iZhtOp5VXdA7TxAXGLgmSmXDjaWLMeEzGLjIzn0hprrUNjW5IYxBWbNm2RN34uSdIQTYeALLPzBop/psl1nrVSFSq2+XdiGVSn8Xj/A/ePjzyeThyPK49vf8PpcKaeG7p2pDf7ao3eNikJARMtadWQpdZ4dnPLF598wpefveLF7Z59tn5bobH2itW0Km1dTXpwWQaS4xbZ6tbhDENqMn7m+tajM92zBkGNyKPNdZJBkpLIZFFjgU8Gd8CejjL5SmHMO/Y/zAhJ1TkhttfC2foNsLYpbaAVlUrqldwrRdT7ZQ3alLyjuWNhEkJQjcEmhm6lJC7SYhmZNuXt63e0taPFSj69Kn01hEFTsnPyLoxcMmRDn8Rb1WTnTsydhaQ8JRJAjjKPwhTsqUOow9nG/fFbn3DUJ4JkVaS2YV83n6hD2pRsGW9ogo9byWaAg4Q5HvPsmESGs3Xkd9j7cPPWrrmRY3UQ+9QD7U5M5xmiZSOYwGyyJ0vq1ymyKYrFPOiUEosk4z+0GNepFPDpQol5vrAlLf4eP86P+mk4W0nCfndzAQFFzQ38YjTgqLoRnQByGVEG6nCJR024s1Sxvqp4KIHDWPbnDjGgCoJOr6YGM5hrG11+iKtFBqRpLNaR6eXM8Xi+oOlHNFrygpR8MSQ9CDzaN2ePv1840pTcoXtWMFbv9uGjVtvxqFTbiPLDyQQr0xwaPolFuNntx4ip0+lE9TarlBK73Y79/oalFESFejqNe60iF5NZTDgAd1riAZKCCxO0eaOxBQCRuVmk6f2VrQ0kI+pDHRv4vuwWh7frkG8MRyVJKMuOJWX2u900+9dr05NvHfIcyeuGESgQfdIW1MQ9F8+qd3kZ2dHchxzGtjr8DbDf33xEinOYrrG2QAeTNjkygmIQrWLRNmYyGgYj72/3vHj5nOXmhkOtHB/e8vaH73n/+Mi5NfR8D2u3aKupqVF5Vkvrm84y5s5PxwOntqKnJ15/8oLPn98gr55xt9yR2krSRqKxLJmnk0+tkalHO8WcIjf8/rzrum77m+Bb2CcLzv7E+xUrtF5RNXlE2wNmsKUND2v3rffBdZgz53D0273ezkdbtLJVc/QJSD4DO9ka7bWCntmJtSKlbm1U1r2WOHnJhlqpArf7HWBroNZK66vd05TIS0FXg6t7F06nMw8PB4rC7ZK4KYm825G1k8X2iqixrVFFa0WC44EaizptdkydeMeQEFREt3ZGejgnD0DSAITGsHvbBYIsydElI4dWNj0B2rS+mwsABSksb9liOLuZgV8kDTnF7vs0EqIxdUu3unAHajdpzO6P6HL/+OHXPCYdxdPuW1nh+nX7YkGhTTWO7N1LDrVt1+izf7UUm6HtgkbxvmlNrvj3dySzFRhiFK17pOfGO01QpTKReCaItUz1sfEFw/HMv9tEM5iyVoxuj3rBPJz+ZYHf3yiGYvp5KEhHchjoaIkHTdngcV+MKbJoTKhAMEcyJoiwnWssPo0Uncu86vr+DecRUWPEA67CZKSaDQ6x7JRRr+mqnI5PYzJNEmW/Wyi5bEpVQKvrIItMsIE57BH5+eKeosuqHydN4M8Bf+bdo/l4rf1761kt0/vHuV5T71OyOZWlFNtUhFG3603J4BLLkwIyczgsFUcSfMP3Np6pykSmCujIA6RNxHx7JiVnujv53X53weScUY44IuLeeXZojlZovbG2SXwkJ5ZilOVaG/208vD2HY13fP/+LX/1T/8p37/5gafjkbzf0zVZlN6N1pWkW/uZWqDSWnc41Q1Cb9Ab9/fvePvuNYfDF/YcEM6n0xiztyxGl00peekiSEKGegRMjV/v3As6tHz9+jtuaHuzmbejvcZhfVxIwJ+j07VtnzuCcd12MiW+I5Ah7qGTBmNfRTBrSl9WIuk9sYIRJ3dGbGu1UfLCIomH04EkPqWoddhb5tha41QrrVaWnZF2hMT5fCalgqbMsTYeD0f2JZFl4fluR9nvLJDpnaomw1nxDFJk9Ffrdtu2oDxF/7LdzO5GIVjmYSAUy0A3lSTG2E/tHRUbMsKk5W0QK8NBNpdVnW2UaCd1K5N0P79wVvb7DZGL10TiEjBu9+c4uBlYKVAZCtsD/bs4+vaeUZ4JEZc4aq3jekWEyuZ825Spxt/iKFWt1vPee7eyUpKLfZxSIqjzfyecbVzUMMRu1HAYdDR0+34ZaBNsdcePHTJvtN//2ZGNfUCymJzCRcQ2ZdYBmaSuvuDjMw2W1RmSmU7q8rOgBAQyQZHgcx97nKvVrYN1qDBqjaOfWGUw9wKeUfu/kXmneH23GmcoM9l0HkMVlrKw87GCIcrQPHs0w5y3k4qbkTyK9rp2wKqt1g0ynY3hBDODDKeP39ftPmzsxHhO63oerOw0ZVX4ehkqWOLj/zx7i2eRPIMVCYgzecDk/AA14lNkfNbvywgyFGWt60AjYu1eEEBkW6jDuMx/61H4tr51wGTjc1S3/lp//5JMBSvvMrt94vXDPT989z33T4/8+vvf8et//ivePT6wtsrNs2ekvIAsiNhIuGjnsck4nd7WLTNSWHIilULzrM9aO6ykUOtKO59tzB4LUhZHbGRwDYwRH2u3XxjDec9JSsbEF/vZhg5s/doQfaumPmY1ubgf9kdZkguQbIx7225TCYOtdWRwMJwUZ5mqK3i50hiS0VSgbVKI59OZ4+mIFqFLsYk+wH6/Z5cz+12heZaUUqKXZYwOBBNn6AkaQutQHbnpweB15S7tFgh1h1IDBtcEip23JhkOFQwdMgU2RZM5W3HWuoa/9fU4pFgnFGCeLx3reR40sBGZpj0ahCdPNKIGHA6x18vBMrUL0gwFjFbLoGUNJzt/DXx7k+ud7cewPzOiFvtvkpv9mLZ2OO7498XvfH31q8+KvfixBOzH3awdPxlnG9MVYLoZc+E5EoHx5f+LhWzL0B64yPRQwhnoeP38uaPGwWV90Xolt1uYPJuZ25I2SMzBMMVIRZgxnhm6Ok5B6d0M0uZ74pspe77K0sf5is879Xc1+CcMTGRnowK2XYJwuWD9GlsIPHgUuuRsjO1SDH51FnUNqM5fGzXuzRhgjkfCLTHg5aDuhzOJzTG+/BT77GCvnO21szqdTrRmyj67ZaGUfLHZxjpSr8PrJSPSYPRNEIUIdPw1El/2Ro68GCyp4iS5tV08q9nRZo+CIwVZQyRkyoDTdA/8hIk+2k3JjFF3CoMaTM2y7Fhubvj+7Rt++O47fvvD9/zqN7/md7/5lsN6sjnDrZOXHbnckJc9pSgimexBWBLLG7SbHGRHycueJdtovt2SKUlAzSnXau1LtErNVoe2ik8acGQDb//x+uK0/8be8/VsNdX0QSAyQ4ZZouXLg0RlBJkAZUk0v9VhvKOeqUDSbT2i0z7xlVpcTCRE5SPYL5LBA7oI8E6nM0l2aMoDhbm7veXF3S3aKsfzycl1xbrhIgBXoBSDySURM4XHV2/UakpeitWpm6oNUVFDpkYbojtbne+rgSAbopd8/3lQFedxPZZSowbsLxS/wdot+G4erHZvKWwRAAiDDR38g1arlYrivQNt8r3ReodWL5KWLRBy3QM8241sYtofyfdIrJVtz1wG7rPjDbs5nGj8bZjFSD6mv71Anvj9TvUDOPsPHD8JZwtc3rC5HcJXakQ6EeEO0lJkuopFxAo4jb1twe8WKQ/RcockuhFk+sgo5KKeN85PZBjrNPUA+y/tfWc4G1OKGXJ/8fmEkS3jWlV8io1uU4Q2GPOSHIRaJN+1G+TuurHjPIsNsk6us7ueVyI1TpErTNFbIAoAtzc3FNlmZ9b1RD3p2FxZEje7HajQq2V90TIQ5zaChNYJQfhx/3Mezme+KFXPhJ1EBJgxVYO413WLTNVbq0A3eLnkARvDFskaPKZQvZ4cDGkCGZjvNa5y1cczAy7IX4pla5FpRu07Nvf11zB+uk2kmjPgyMAv9Ji70tc6plmZPKYYgc7rYojVtZdcuLu5pa5n3nz/Hd/++m/5za//lod3b02GUoSHtaIpsdzcstvfsez27PY3RrwSYbcYi7knsXmkwK7ALgv7mztevXjOzW4haaeeT0hvlGSsWrCeb9tDjEk54QASssn4gemPT4bMDPEWGG/NJ44WSXbRE4OrxfDGIdEYmU9eMiRTGevd4NYQhvFdbmUiEZoHWClnp3Q4H9YftMm8Vstwl82wD1KM2Douy467Z8+4vYMvPvuUT1++4LvvvuPxdDRSnK/61bP6lBL7uxfQToam5Oz9/Ea4qecT/fhEobLzfs0mQnMEKSPG9cgba3vO2FJvw+4kfB9KdxLndk8FWJbFss5qrGqjbBg6UQIlqNbqpx7A9CtHS0qbHoHv8+72JAL4OO8kZnmszus64IHmyNYZcH3o5OTGv8fz2NZRnpKy+GrKRb/tPHErUNPhlHMaqFj8bXUy2mgHhdHCZ6e92bE5T/qx4yfhbJMkbm9vx78HzONHaz7AGb2MJiIDig60eBCb+bcWHY31kQZMN16PGfta+2iJiayqOfFjZB8pfsfGuBuR8OxIlEqfFJzCqI8r3LIa//dxNXWhEOEYznmqUca9Gc5rS3m3KDDC6K5G9FjPDh0JTNlBkI0kF0jehoFH0ABq0PI2hUmRvHOiYjLyBdtzEr//84VGQzzusDQIG/GspmxVVSm7xQxy2qJQEOubi6zGN9B+v7MBEaUMUf/r/r7IRHNylaopeo3/hsB9ZAQ5LROyIg4SWHZR6daW4ySTvbdgxXvNcnS1VtZpUlOQKMIARPab8tQk7zdPk7GSJVip2YaRS7ZWMQUqytPxid+9ec1vf/tbXr95zf37e87HkwlorJW1NQ6HA1IW8uFIXp7Y39xxc3tnwYm3b5UELIIsC1mVjJIzPLvb8eLZLTe7Yq04dR2wq2CZyno60z0fj5alhGmF73bWzpbc4EW9fR58cR3QSgLtafxGfQ9vwZeObCme0RhogGXr2vqFaIOJ2ujYd5qiB1Uw3kQw1xut+XSr3MhqLScpJW5ubvj6668pLzvp5jkst3zRQCWRtdPXM4fDE+/fv+NwWqldjbwp1i6z3y3sb29JfccijbzLqGe3ajEDJcOCjEy7qvdxC1arzUGytLrwLDAxl+GS2ydytjUfpCm//qTZRXU25CZ6vqM/eKAwBqn4FraWM3N6nexOcpQBtLO2avUUqywAACAASURBVE460JuyROR0wbTvYePFV75426R/TqCDBHFLtkw+HGJck6ZNnnHA1ikPuxkT2ub9F+un9z66MgYSNmXjccz3YxYUiQDngyTiI8dPwtnixofJMcXNvai3asCgW+Zn/7zMrGAONAIm9hvrZJz5Zo03nz/K8DuPWsTh4eRO9jIK2x6KZ0gazdwR1U+/Z3NMUZ8GhqZu1FOSv87WtY5zDhhlZIyyieuPT/JgIaA0Q54iM9/OVySRFY+FLaoPdoMJSuCOz+6r9uZMYnM+Gwjr57m5i/H5sDENg2kdbONIGmfnN+oiU0YfxJXkm0RE2O0uoWNgbLQPlGtkQ0PmzxmZgd/Xcb9g1OVlvM4KYS2aBj0qvlgv03tbdLwNuC9pGec6RE6uzieenS8AYnScJO/59awm4PbTeubtu7c8Pj5wPBw4n0/0Vq2oop3ezOFmNdSnuhHUVlmXHUsxtaNAdOL+KmoGuS0MBrCft0qwhz2D1QhtN6hfZaqbe+ZoAg/Wf5p6H1mLCKO2HZ0AIrbWXFV0IA+zTGMYaUnihB/flXMWEupeOEQ8arEbgUYVY5P3RuuVWjurKpqVTIG8R5Kw2+/55LNP0aOyslBlQbqwts7x4Z7H9295fHzkeDqzrpWGtTDmksllYbe7Ybe/JfdM0pWmlafjkZvU2JHR/Y6lJBZgl4ybUcjOHTCS0JXZGY5SFFYXkwipUO2TQpduThWSkZZqcC9kBPgR5I81ff2BsV/dVsY9Dv3gEJwZdfMPXr0dXSNrsYwknp9OnxElpGvHd30TxtqcfMX19/O/c85b8Ia1WM17cSBK/rezn7n46OFs+fFz9OMn4WwFgwJGRDPfnMloAoOFiDD+9mPvhxhxxgiRW3SURBBNFxAD7lhn7F5kYtOGMXEpizmKGeIiEbHHomvGWhw6y35O5ghlkz7zTDx6ZWGLvgZ8wVafiCgyzjFfbRAiW1ZFO97croQGscnQBgPXCPXiVud0Xj0qDFUoGZl179CrsSQt2C0esMqoAxGGcTK8KKNd5wNd1REIJAKOHb24fWN8D0nHbIZ7m8ByGXle11sG9O9w5AhyerT0XNZ9UoqWlW3dMQIWD7gCkZg2+Me+AkqbHX8YtKEwdO30CbRCvffaarOSxDI2wWtnxqBca+V4OnBez6z1bOSl3oLcbSunV1L3Gb6totV6YnMpLKVQljIgZWP7Wm2sl8KpZNb1PDoDcs5oywNaz1i2L+NxTmztbNB+RkZr1LxGR6Ai4u15877fkKkIdIM8FxD/EGYRobr629iXydj+AfuZJkRGckFS2Rj7ITTvym+1Vda1sQLaoXKmPLshkVgk88nujv7UePe0cjo1aoPHpwNvf/iBtz98x/39vdXmPRvMJbPb77m52XN7e8f+9oZUE7rC+Xjk3f17St9RdEd7Vigls5PEIsraGzllsiaak4ndTBkM7fcbtf7qc/NsUvGardudyfzEgl5P59GxMFjevlcuDwHciTiaIZPSFJjT/NhghGFr41Onn1/a7Eu3PJxX/L8GgTHO5voML3kPWxLDR49t37atNahO5TvVwUYekpHDGW/3YyZrxrP4O+FsgfHAQpAAthszH6Peo/rhjZ+i5flmz4sgMpyAl+z9FdEPhQk+XBjTTQ1b7E4f3epya12prbEsPh919J+ZU6E73NV9XJrtGJLIgEaHo/UHvQUFl9l/GMHr64wa067IkHzbEvC5Ktk8wBSe3ey359BWeo+s0GAmXdTqms2YhghozhcBUWyMRr+4f6KWEfar886lmKJSKdTWWFsd/ak6egYZRK3I7G2NfHyBXxAlPA+L+xOBUHfC14Uucs6cTisxNzgCNCOd5eFE4/Wr941eO/lxzSldCLnFNY8arZ/PPK3E1qhQ3FFFPHFcz1bzmtigy82Ov/9nf8rjeuL7t2/Z3d/7azN7LSCWdSxLxiaYdLSeOJ1OAYtsvYlxz9Ta8HYlsz4+8PrnX/CzLz8F+Zz9fo8mrM1DMGGR05mq1vPbVxOfyCLsl539fdtGXV4zQnEWcyzMC5g4zyYXm3CEbJnqUsb+jRr+4ECg9GYj9QBrY1kKpewgFQv8WqPToNn4vuYO14JCC/ulWTbeq51XWQrn04Fvv/0tv/7uDW8fDnz7u++opwP0yu3+hpv93ghpy8Jy+5zbZ3fsb8zh7jMc3p85nk/cv33Nr3/TOT/f017e8uWzzPNnC12g0jidz6S7WxbJA55nBOTJenA7jkgYQhWIVsLEWzKJaCic98ThcLzgC2QfDXq1iaxu3burJHkQ5mmHeiAuYMGgQl0Nqs0RCBHL3PcDG/N+rIWhGrYhdWFPIujt3vo0txpt2aYpB1wfYTev7fmw3+K1YiMbbGUN3+NDt9zvU+yRqn1T2Yv3j/P/u+Bse++c1/PIbkbtCz6oTXRhE0G4ulhg/Nxu2vbw7VfJxppGNugbVzVqd1vLgYgN/xaP6OJobNmrRXOgYgxPQZAi5LJzhRQfQB0Eph4n6iBWAklWD8vqUBkW1VqdC2cpmmyb9Y/uDGLr03logC8wz1o0wf6zhcMKKtMA7ggiZoe229t1O0lpZIIjS/V+xJzZL4t9hrMRw+GPeo/Pnw3nNrK6q6wdNSb66Xw2CUJnPopu8PGylPFMt0h6DjiumMZ+3sayVnpyR9237HpeK0zXuSmIjfTQBwJsBqPkjOZMXdcLUlw43+jz3e9u3PhDdeZ0nOO4ZieUxLVKctWaJZPyQkqZRqc1qwGvvVo5PptgfU7CL/7Bn7Dc3fKzP/mGX/7yl/zV//1/cX5zorWVlE3uLxWDEx8fn+jVPi8vC1lgXc/jntzsFsCm0zw93fPdD9/zw+vP+eyTT/jk5Uu7Hr+PS7G2llYb51Zp59Va2LL1U57PZ0MRaqP2Zm0+sW8EH19pDre54IkZ70RtAe9PhmIKuFoykpioQik2h3ns5U4TQSNoLQVyoWEZpSRx5Md10c/WRqbaybmQbxZUCk0WO++ykDRzXlcOpyNNO7lkyrLw1VdfQa+INrIIu5tbyn5P2e05t8b5fOZ0sKEHLz59xUk62lfQxusfvueGV3x6u1Bbo+pi9d/WQCyI6C47m1OyNjwxCcx1rQOGlQy7ZLpeuA0zScqGoI5c+D2ckpkLZIarrNPt3rIsNEesYu/MiIyIeK++OykMAmfs9a3lcGruuLDxM0Iu+DW51ZVi0H+sj0hIlmUZ9jpKb7MDzMiwParq/AHZgjPnovRuRM75tYMToFsNuIZwDlvNdvT05jTO6ceOn4SzBbwWZMeAEvXSOFoNZ4Mc5WozhsrInIsGADFHOXaDE7Q2YNKxeHSGCeTCMUc2rWwZadSTRJRQxLFI3aHX6DHcrnQ4iM1RJCcCWL2S1rYpOnGNEWAkMSW5keleQq4B7aaxcKYaSL9kNwNsgypMxSqg2cHXHR/TB/wsngkK6SIrif/OwchMhJnh13jOPYhYvbM2lwB0hx9/Oztaxnub9otFnmmIaYy7PAUI5ryj3Wr7G4n7ott9mWGoeHb+ALZzFxmkkXhNZLsRVMSACI33ZIuOwwhcC3GkbIo9jtN7z6Zl+6dax+AMHFbuvjDvnj3jq5zY35lK1cPT41gPT8eTkdnUauhLSqQcgZbVRRN9lEN6q0PF67w2Hh8feHh62pyMB7e9d/Cgp6kbNazXPEZSRg1RxeZC1/Nq0o5eJ1csaBBNm7P1tVvVSzZMUGGsobTZCjSIaVu9v8MYOE4y6L+qtbic6zoIW5Z1Gwo1y/VJzmjKKJlza1SS1WZPhkKICMtu4aYLt88KbT3R1pNlm8nYxa2u9FbRXh2mVbJ0Wj2zng/0eubYVs6nvbUUnc+c1oxkM8pG8ImWRldk66BiLVW9dW+PwvumfcCGguBTpRhIcmA7W3lk2rPX+9eyQMaaF/Qi4Rn3WmHMhfUgHkcOh5BMwM9sRwRM473G+c0/j8DLesqNA8MHNiEua84qo4tl9h/X3I5o5Yt9MpeFruu3471FRokkst0RgEy27vcdPwlnK97C0bvR7mNqzQwnR9vDsiwb3MCm/rFVeXx5CUMabL7p6vNGoj4X3+fsN9sjGasxOdwsspUWxAyvZkF9yIAtHhvJbj1jQdQhvMx4rYjBLxsIroj6BJbWh1Ob63tz8T/kCWenMIsjbAFF4EoBl4RTq9gmimtevOZq984EBfx1GveAsfniUDEqv7YrCJUt+5yhm9kpDyLTjBKoiUSc60pZFlLZAp6ILM23xLVUQJ1V+yH5KWo9ETyM9eGBUPysRT1/nNeWndcea8XaqQa8L1Zj3O92rLUOiUuwNXdzc8Pt7S1VO2fPXve3N2MdhqNNIoi/ZylltIJItjrkej6xrpVzXY2Y5s+6lB1kk+7svbErO54/f85uv2e326GqvHzxgt/85jf85je/4eHhgbY2pMPz29uRdR5PJ2pb2e/35FzoCKfDI7Isllm1ztPpwNPpiafTidoaKSeaKmvrnOrRBwU4rF0Wdnvr0c3iY+K8nWQpC2+eDqx13do8BNPwmggpoT27BrlJtoA3vhLbMxzPtl8GTYRDTsK5mdShqqknaVf6akSx2s7unGJri2uTQ86JtVYO68rjCg/HNpztbr/nxXKL5IXH+3ecj0+oKqenJ1sPrbLb7Xn56gXPbm548WxP6iunp/c83b9lPTyyL3A+HY3FfP/ATer0/cLtrnBzszfhGDVXKV3HgPrucqN2b8Q1e/Mgb5rmeiQYfpMmYZEZTo3AyTLPuRRi98P+rRsatpkt+5kPChFV74dOQ7KzODkr/v7CuTH/ezavl0S3SDIuOjSmfc60RoaMojvm5qIa80D5jSuQBnQeQe7IatnOx/b/xhmRkrm9vb1gP6+r2YBQSPt9x0/C2fbeeTwciGHqMVZsrnEF5X1AewFd4I3x9oLxH/EoZMbrB0PY/mp8hpGHxCdqsLFmFTSZhFn2AQjWcO0ZbiCh+KLVfmFQxUddWYS21WyDYhDsSnof48e6Klm2yTZR96ueBZ3X1foAIxrD5oVeQN2j/teRdEnSweHuUOXBhxYgQlubBwrYIk5MTN74MmbkeV2p9TJDmyPEEHX4AKb1ntoZjhq1ypTYLTtrAXLItTWbGRpZapo2VhiDi2k7fj7Dyafoo5zW22brh/GKXuRSdr6MTBe7OGO3lGULCP35Ho9b7evZs2fbZ4JBysLIckVkQFFDEvOqbhb1/1qVp5PVVk/nM7W10RZVdgspx7Qo8ejaxoftSuHLzz5jSYkvPv2Uv/+LX/C7b3/L0+MjTw9PPD088vbNG96+f0fSzq64ElFbObcVVaGUhIjSe+W8nnj95jW//e47Xr58xeeffcqL2ztDeZqJLzx79owiQvFsIZ4b3dtRhqE7cXKyVTzrWBcf2IM5MIrugZwGCW8+lE0wZF5HUWoKCL816+ldsik/1ZONA0Q6+6VQisP4udA8ICbZvbA1agHY+Xzm/v6RH94/8tu373l4PLDLiV1JNoyhd5alcPfslm+++TmvXt6RRDkeHvnbv/013/7ql7x/8wO6HlizIOs969Nbzk/veP3ZJ3zx6Sd8+ekn/Oz2BcvujpgZ3d2gVx9hmMRg5ZLz1ssaMf3kEWM4QZS8bJBJ9v5++8uGQuuX2Wc4vd4HgufveBHQzvrDwHCym0oV4xy25+u2Od5zApA0kpNxHmxIpv/xKCm6U9ULZgTjPWfbH0nLaLPTyJy3udofIKn++qenp/Gzst9dqNXFZK8/5viJOFvltJ6AaDif5NmK1SmCsbjWdTJqMePxEjoGRjYU30NEVJOoxci6nM06ZdL+LsOJRRZpC9ZVcqYxD6ppQIbd645FCiFugGfBATsPwW0XDzdYdmLwic9JbVvdtrdJaB+HzN0YdIwYsbECPUtOYdwgpWJQ94B6/P5bOjcMo6KOZE7EmdECY9lvXc2AzVDoYIS62k1AuxobVqfNajdtu99J2C1TUDVlmK2FgTEjuLXO+GunTXLt+O3isztmY3bHZ4ta4jBoTNO6iA0Vzjb0fmOaz9rMaZZlYXHm7UzGqLUOYhzghnJzCoHWzNByR6m983g8ca4rtVk2vywL+/3enO2yQDZDlTwIPB1PrI6IlFJ4fnNL+uwLXtze8fWnn6OtczocuX93z1/+5V/y17/8a+6fHjmvKz1hTFZfLzb8PPtUFeFwOvL96x+4vb1hv9vx8tmzUTtcSuZrEW72ew+Erfe2u8RoPI9aK+fzmZLyQAesJWYjAja//q4dumddkW46khA9810gFKQUI+t1X7Oxd2KqTLxnZEEtasaWEhE1txwQ/hS0rfWESja0oCT6Ihx0x0kzpy68eTqSDkcLBkTY7XY8f/6MV69e8Nlnr/jk1QvOx0ce79/z5nff8uZ3f8vh/jX1eA/1zCl13umRenzg9HjP4f49h+ORjnD36lP2ug1Dx8sJrTZa7ZCUimWUipDzAIqNMaymxTTKOeEcRUjLbiA00cOMTvdvso2uL7a524GYTUiCB869NW+R3CD/HojdsK24DdmGR+CZrW1SmRDAgKJdf/qaYMdkjyckbfxiuo4ZJQTrCZ+2/Hj91qe72Zmw/6o6kI1BmKp1tE5diNN85PhJOFvYgD2uxPLHRAUMGq1OJgljBWwQpWzvo2pTRkZENG56vGTKBn3aiEGP2/vNdQBHVoejiIWs0+/DGY+NHBJr2O+6L2hbIOF0LiUMER1CGK0b7N2aiyk4BDZnBZEh2mv6yMzNqZncgEGpMvo1IwrGSVZzdKpxsuKhj2zgTUSLvXXWepkxh3MdztIzkrjWQCKAoTM8bybElICS97W1dSNXBYFoPDcxEZFwthEsXEemwMgg47mM2lPcM436OV6HVTeeMeg+jQwpHEd1RztH4NfrpYfT8WOM/dONExAZ+RagKbVVzqeTjy+Dkgtlt7Df7a1NJ5vQe/xe3Mj1gKVT4qYslGeJ5/sb+otXlJxp58rjwyPr8cjTwwMpCe8fHzj3xoJF+i2E/5MgYobpXCvvHx749nffISSe3d2xKwtLsYHypWRevnjB7e0t+93OZppWM64lbYZqXVeW2815ZGcT2/YzaUyrt1otVUpmM4Xe6x2Bqp3seJ60bgpwbBlZvGf3vSme79WYuSp4e5sH875YRxmk27xilmwtPLLjZsk8a5nnFY5deHVacW0qdjlxs1v44otP+eSTl3z6yQtoZx7ePPLw9gfevf4dp8d36PmJ1M+I2rSk07HSzyfOhwPaqgmY7O949dkjz5s58FIKRWzCUw9DEzYvvlQD9/Us3MVXejOCn/8daRJqEV/v83Qc3WBege2ZsAXK/oF4ROzfdpfoVKsri2y2qPcNxh5ooG5OFg+g5NIeINaIFwhUa2084+se9xgYYJ8R92FzuNftlCKMD59rrjPyEgH3siwjgerAdfabJV1ku7/v+Ek425SS17QmI+yQUZtuxOiL9CwnecRrD2nL8GzspOnnDolFv3nReqJ96w80h+dGUNL0MHU8FHvg2BpVnLCgWwSFPWQRb5Mhsi7GwtSx+YPIlEZUbOexwWsBVUY2tMEeYhAiQWFiM+oX8IcZTpMUTF5fTt4gz+iV3PaOWB+iP5N5wStQQ8qwWztJQCdR6wgodGQh83NrNVKOkfnykQ0Ak0Nb64hkx+g2n/pjP7OAIVpnNizqsk95OGP4cENFwCUbJ6CGtKM/ulYrUDE+UJsgeri7uxsBweFwGIYxWIrn82nUbAManwckhJGcx/M1FxwoOQ/YeHezt6jZUZjWjfDVe6euZ1JvFDEI7yYZtKgpoTkjXc1h3xX05SdjcPo/++e/5K//5le8eXjP7X5PT7D2xvuHe3OEpVD2OxTh/dMTp7Xy/es3Vn9dFsty7265v7/nm5/9jF9883O+/OILq1eeztS18uLu2QWRZCnTPVhcWlN1qA1Z6591H5SybMGwClo3hxBtYRE4iYKU5AGSQdgje3WINWcrSRxOB1+CQsqF4vax92aERq1UMZnEPgLmrYxSdjuev8ywv2P3/BXH09nY3SifffqSLz59xVKgrkd++Vd/za/+2V/y9vV3HB/ecrOALrDricyCaKZVkwY8n4/m1PKCpj3L7XO++OIznt3ecrvfcXdza+jUUsiLEd2Kf2VJ1PW07X882+v23mbHZOimD1LTcHVz9m/hg7gnvIR/pwzXPOmmWOc20RxuZMTYiMPtLS6yZyKActOAKOp8G0ni9tXtgnMjBC4y1HlfD36LO/dwih9zgrPtvewu0YFoLcvCbrfj9vZ2/H7tW9ksylVpQsF+7PhJOFuSnbDh3x2tSk+bxuyA29xhzZltPPxwGl01huWN/rHxPleZyAXJSKZoxuskMUdVLT1D1HvIsiBOUuhO5EiSR01ZxAUQ+gazRNZoPsw/I2210+PxaM62ZJIyWkJqrW4YtqHjeYa2owCpenFtoT5kFPlLAfxx232zRnAxC+OLyOZc+iVcLG5wZ4hGykbk6t0EF2bHZM51g06v+6cROByPHA4HgBEtGoRqRlr8OuO+6MgWLcsLKGd2tgqsrV3U0wPBCAlHFR0KXIaOeMTeN9KU6uX72zD6OTCzY/W63boa2at7xjHzD2JT1tnJ+rMpufDq7vnIYpMHML0GzKqxZei1cj4dWUpmyYUimdQUah2TcbR1VirVs8ObvPCLb75h2e948fIlv/z13/D6/TseTwdaayz7PbV36CbzacQp6/N9PDzRaydLZimF97c3HA8HHu7v2S2Fzz/7zMlTjafHR1JKPL+9Y7/bsSwL9bxe3K/QoB2ziEf2oNyW3YCO1RnPI6tykYcYy6lAUhmawHSGcAmqpFJsf3u+lnNm8cBNkkKr9N5o2tBu7OWOWB/uZCu24Nec183NDaXsKC7H+Or5HdqOvP7hNd99+2v+5p/9nzzdvyG3M3eLoOsTN6nD3oZ9iOCchMbhCY7nyvdv3nOuicfTyp/8yTe8eP6M25uFT1694vnNraEKKbEk08belcLNfk91FCsCCfWBtZLZbGbKiCccI3PwNd8dtRM2VGC2keEQA40L2B4YE7WSB+uWEUf3whbUxvuYnHIyJEXF13Xc6EvAyParMdiNuHapfaDTvp5V2ZAtcZnZwwFtz/6g90vN8mXxiWc+6nK2Vxm9cLYGOcvoy/2x4yfhbHvvHE+nsUEGxJbS2CiRBdRaN0ij942NPJyZDEc8M5c3+ODS+Pu3pp9bbBZnisymbdKIsdiCeEFy6TkNibmt3hPeX2IwAngGZd+NWijbeQ2Is5tRHKOskljvXywWwq/aZomeQdg+az50+moudRdQEUAPhIBgHQdEzcjmurfmjOAguwi5X1dMygnIKOpigUTETN2NjBDBzFb3mesuyf9u3iRjww/Hv6m+RMYfa+miZisyoMMtmpcBYUWdNCnOimWL6D2Lx83G2HjuaNd1HZs2oufqEfjpdAK/hrIsvra2hv5Yy/PAewsMs82zdfUocJTAmerdEQtEoDakdZs5rIK0TlubQ1syxtG1rqy1cV4Nor67veXrL7/i7tlzys2O9Le/Qt6+Yb1/T5LCuZpxGySZWEPi02bENHvPrfHu/T1v7t7www8/8O7du2HM4r8hFpFSGuuwa4emnJzhPHgIya4/EQ7DXtC1W4bkcGfqkbMy9ly0sEmPbNcGr6viWslm0GMg+jCgMvXzjkzL+BK1QZ54HFvABEXw/lN7LqfTife9cnh8y/s33/P6t9/y9PAe2pksNrf6dDpQRMmT41e3PWUptC6cm/JwOCJv35F3hdv3JuP4yYsXPP9/2nubWNuW7SzsG6NqzrXW3ufcd/2ejf2CibGRpYhGRCwUGQnRIOLPHScSDbdCAwmJHwkaNIwsRaSZSEkDKQoKAskgBCQQBB0kfmIprZiQxDbmx/AAS2BsDO/6vnt+9lpzVtWgMb5RVWvfc68b4dx9/M6qp/3uPmuvvdecNatqjPGNb3zj7g6HZUEWgdSCdVlwXFY8u7/Hl57dY8m+b7wFI6gvTKRJAVGDSgg56NVx1c+LgIcx9tNILw1VrghP4xkInNUb9asWOfWoceehEnljSTw7Ou9lChoa4B4VNaAR54/24Onq2uyRVGIgVrhWe5rJmsAw2rPx7nlaGfyXbdsmZGCkfQZM/Wmn+03j3TG257MbKBEs69ojlZSnBDXdn5nFWh9NeCKEpiLIkv0B83O6Z8y9FQ9AlYX/kwfTH0CENYgjl16aDqazv0+vHl4nGTFXNEeM14bZvbtY4jCSDcyjLZWJdo7I+04ygxLXhTd2K4osTyAy1l3U8d6AfKzfqxtwr/GsvRnBkhZoKM6k1HPWBo+g+r1PXx7pD3QiaRp5+GrdyEb3mMTocUnezSdToapvrEfwemIj9XkjObwT6McwtsGOVsLYgYRYq6hB17DpudLTV02DP6CjlKqUcsVy9JzriNQyuxGt69o/O64viFYzdCVEGg4UlghnoNXGSLu5oAnIwqxuhDJCQchz3dYqkRAvB9lpZB+2DaUWnI4n3N8/w7d85cvQQ8alFhgl/y61+ExMZLl+IKojAZHLr81wPp/x4sULfPTRR/joo49wd3eHrIMwNkftAUJGadi2bX0OcnaHJIQQ+t4Lgk2tn3m4+p6VEeYajYC5s2HVpRUN0h29eP6Px9j2fUdG/Mf1wOgxnpAVdxq2C15bxatPPsLLb3wdn3z8EbbzKyS7QNoG1Ata2aBZWSURBfC+d1PO7mjD9ZZfPZzx9V/6JeSXniL7xjc+xrO7e6w5Q6yhXi445IzT4YAPP/gAv+7XfheOx4Orhy2rxwI9SHHGsSKcWw86bEpGjfNnnByAk1eN997TYDEpPYjhGapUKuO+dkn30NP2OW1U5UIIi8SZwfNS4NUfcVVNKoqN5xxcHqNDHLXw7jjJ9drgc56DLaPzFl2rZsPZ897zPuU+j892/YMpx63i5WvTZ3zWeCeMrbWGy+sHaFIclrVv1oUM3SCblFI8CRLyNQAAIABJREFUD2Ej9xbEkplB2r2f6LE34fGAdThTsjh1PiWqFAFA1E/tMCqkgRFoiKd3GlGf3OlBBqmny3oFpHltEGbjYQAWg28H8wWuhKoy+8oCjNr2MqAZQa9t60SwmFMuhstl657orJIyL8iINupekNKQWWzFRdVbMyQFcj6xJjN1hGHWRX08Qi0qSChhUKKfZm1O/Nq3Dfu+4XhY8cH9XYeQY562ickbI8qBVB2+6k5SbdhLA0CoKKF36hlKMeg1dv6sW9+4xnwfMNXXqZO3ROA1r3QO7g53XWqxteb5tJSQDyvyYe2tuyTpSJPU2utyZxb3bLRjnXrNtnUjElyB6D9s5h1eEktAzAy11F7K1eA9Rl+8eoWHbUO1hmcfPMez5x9Ac0ITYDkdsZ4O+NZf+Aru/8XP4p/886/h/nBw6Phywfl8ISog7mzpAsAj/m13ZbOXL1/i5//1v8bzZ8/wH33HV/Hhl76E58+fY0kZCvIPOt8CaNWbIjxsTjZrreGYFyxpcT3llLBt2xVBbk5jxN4LjkU+LOP52Th8Rbiuizs2JkC+O1H2sk79nV2U3xpQ4dBuWlbcffAMLR/xYA2lvMbDqwtevrzg9dbwUAyvt4LztuFyvqCcL4AVtO0B7fwKyc7YXn2Mhxcfw+qGJTV86f5IYcEJioRDvqrZjWRakNKCtCyo1lDOFfu+4fXr13hxeIUkgrJvePXJJ1hTwt3hgK98+Vvw4Ze/jOfNsC4L7CRYltRRsIbmgaIYRBoEC5wTZkg2zjCjIOM4Q9ARL/fxR+DicyyUmVUoFAkJ0YSlUXFNraHx7GyFzTBS2CwB9Va6IXegocFSgtdbe3knkroMJp9rrV7r7WdAwrIk1Op7WZPLG0UgAktAc82A1pys1xLRE2vwzpBO21RyIWogQvsFIglqnspAM5S6k1TqvZQBF96YFILeON4JY6uq+PLzD7AsC46HA/KydtGE/XLBtm8dbtooe5dyLM7UWzPBrEOtPoPjkNJIzCJy8a7EVFuD7Ya6sZ9srDWxITfWsf2JvSvjgJ7xewBkOSrW1Q8PVUGtQ/IrPKXImaoIWC3nXr0ZavYDqrSK+nDpHteacs9dhNHgbzqjtDW0UtDY57a1BqSJuY0p+oRDS0Hk2vYLpI48bM6C03Lq6jRe/uI5pvN26fnq/hwZNQaTN/6ub76GVrauYlWbt2JTVTxbF6yno89XSqN7jTgZbNEFZzPsZi7jp4LD4UBoUlGaeE8FCMTY+5TQuFTgsHgzhmiIEOVWTjTDtWyfBYzNUhA1lLajboXwlBvdtCS8fHjpjkZ419LQkKFw49+iv+u2I+XEDRolNtqbKSQdteQAcKn+/sac8cPDA877BWas2z2sWI+H7hRdasHDfunrb0nJ52rf8erlS7x48RLPnj/Dl55/iIaGFw8vXRqzFjxcNpTLGRnA89MJv+rDD/GNFy9wvpyxtNbbzTp1pUIt4HlAtWHRhCzwaGsvuJzPeMV6ZN+L2tMlXrpXO9QOcUnUdV2xQ1AvO+TiZDdrhf+NnHbrOV0Ak+MmeNjK1XkSMZtH5Q4ENTEXAXl4jbQQZYn1WRwNQGNte0potaC8+gRFXuHltuHl+YKvf/ISv/TqFc57wXkrePHwgBcvXnmbwa2gleI9oLcN+3ZB2V5h0QZNCWtaOvwu4vWagzkd+Uyv64V6zfJ+ofhL9SYh24O3OHQ43TWb93rGy/Mv4P4ffw3f9R9/J776Hd+BoyVcXpyxLAtOxyNW7ilrBqiitNKJojl5Qwo/Hhq2Uj39RUe5NGDJqxtWQ6/7NgO0AakR5heDJXIcIFCWPToBztCsIkNxPN6zraRLgnoI7kZMA6ymw1tgaFlhS0ZL/vmlNU/xQWDZtQ8Kn2EtzLs2QOBnlZnB6hmjBkKgYlDd/e8QWRQVJ9Fx3zQ2qShlY62zr61aGrb94nl7CNY1I2c/n01+BShIqQgOi5cRJCFsWL3kpdJwwHwjrMvSReNDOMERpAmSMOa5SvWtLsOAAHNESkMAABVo7GgDcXq85wIxIBA0VDQXtUg0UowixAKSAaI0BTC4rKAyCq/USXYoKtEoJwi0om+kZq0vQOF99aJYG6U/6C+FRy/MbQUNvzGXqf3arqFufuZVxC4kMJBIEjlsAK0OI76z9GXOZY0evQFvR2ThZCavt5sg/5yxpIRjXnE4eATpVxtGXPr6SCpoSXsOynV108ixciMBmNijfuQKCtRC7MCZ6rE+Yi0kVWBZAMoVBiLh8zJB7GwH5uS42p+NsPl2GKKAqCPlsVEBK5ZM1oSUZvk36Ru6CWgMWaNad5ci7f1MpTs6c82ocT1v28Ubg9eK3RrycYUsCU0Cvt27Wtf5smHfXD/7kJOLVtSKNSW/hn0frF8NhCYihob7fMCz4wmnwwFonrtMqi68EsaWc1Ob9frkWho0J+SlYK8NuVb0ym9rAI1tT6vUUXoBBBs9xBOEa2Dsh7E5wINQ0BRoGdBK3V7ul1ZLryzIGucKBWhU3OF/eMDlxcd49cnHeNgckn/5+gGvXr6C7e5Utb124Ymy72h1J4omqJYgQu1lTUN6NvagARFVRqVDiSloBrOJbBgpjvAkYPi3X/86nj1/htOdi47UbcNx9Tldcsbl7I6uJu3dowCgakVbgg3u+UlYECbVa3qh3di6s1S74+fazX5Nm1AgRqSXzUX6r5mhqoe0SudtJr71dexHkCOaSVBaQ90NtQkUrZ8rPmsNY1sGvwLQ5ue3X1Yw16nMF2dJrQjej/sgglQVpfn3EUjVWrDkcN6NNeOhguav7TXO1M8Xt3hHjO3Iu7VaUcveoafSvLYqqRNGlsMaWXkAg60Y/4P5ayFvFptHJrHp/qDb1GbJrD9kzxcoqsGNV+Q60FBR0UiqyClDkiDDlZh6ThguODCTdWAhJefNzHPyAz2pQhvzF82Ve0Lw2nMWXLScq2aGhZDhgKOBkN+IVlwRcoYykTsEzIN0iUu+b7ICQR5JKXrIMtIuFfv5Qii/8boSc4NCoQNai4CFaGgLIUFrnqcKVaWV+cwDI1qz6nqykc8i7GMg8UMECOawZs+D8rwJHV1IkOsIXUtDuWyOVKTshsDgOUBS91NO0Jxd6Wl3ybVOiOAcdYMbfpp1sIH56Cj5cQewq5HZyE+qUvUnj6YMKQQVWNtl/Oytli6EURtTEnmUFxQa01IL1sMBic5drQUvX79y2NRczvLug+dQAc77BSCMve07LvuG7XxGLR5NHpaMD+7vsGZPExQ+v86LiIMunCoDPjiccFoPOB6OUFGUbceDAfu2MzfvOV5j7ry26H/Ked8LLmmDpMXzwbGGygYel3QibDwHiRRFgsjc5nCkcmKEk+1dagCsAtu1Q8iR947SuiWN0i0TQHNG3c6o59fYH17g/MlHeH1+wMN2wfn8gP3hAdIEqSmsVNhegVqAsntE5zkfmHpOFqtAUuyTiL5psNDcAIsCUJTdy5F84h9zIvzs8nXY8PHLl/j6xx/jeDqhVU9D7Qc3ilkT9rMjHylnpFVH+o1nRPztUgpgg79i1WH1zuzfNu5JfwY74uxq7ozTqEVJDDDO15wyinmg0Qjbwgb3pjXWjqs7CEgZ+15xsYoawc+jvKhZ1OGOnw/Rm0AM/HqVK6rBc/lewti6Ip+qQtmkI66rtdZZ1uB11qgyAVBUIW3v1/J5450wtgCosdk8b8KWR1F8Dh58klxOrrJYu9SKOmURJIWcm58Ky3EZ0mECmLQOR0fuLJiSh8Ohl+F4NMgkfx35SM8Eev4vSwLE5R+7NNzksUXZQC9RMs+vCT9jWZYuaWYAkDzHViprubhJNXtSXiaoHCp0FlpXQolINHnI7FPQJgYdRtRvhH5i5oItfGTXH4c2SRJo1SU09x3b5cKSG0NaF8/TCFjvx4OyeTRfp9Klwm44EQGva8bpeOj5uWYND1tBqy7eHgpJoaAlyXWDM3NDLshvnfTVNCaHUTWfoctYetP1KBEYtbKtP4e0TC2zcuo56NhQMxEu1oOZTVFpRsoLYW1v7t5axV7GZ14uFz5zjw6dpZx6Rypv9l55T87qDNZ4kKyCKLezKb2KYM0LymXDqynVAsAZzcGcBpx80IKf2lyPuxaINRxSwnJ3h/t1xYcfPMcgEA2SiBvcQcyDCFZN+OB0j6UzTq/rpl0AYBymldCxz1vuRDmgweqOYgNF2h9eIXiEGmwfSDe2TaJO29d31H+3yufGc0NVe4oGEMgO2Nawt4EcqZH7IAosAAhZl1KQjiusVmipWJohN+v8irwe8SwfsF02bJcdntQQtCxoS/IIMXHPS0LKgst5w3nb+Hov4gOYLw1+h6p6BAmh8R0oRoM3lXO+iSLnhPsP7rEcPf221QKFeUro4poC5bxBAKzrCt2FEpZDba2fw2aImmLVqLgNMtnQDu5OjMm05jKK1c5DQRmcjkgrBBej1npl5KNcLs6Iw+GAZT+iwHWym14bs7ny4rEBvir1GXjJVS/qcOQjrTefT3OZEAC8fjh3w12JuHaklJK8iLP5c8Y7YWwNrpwThAdNyRu8m3mi2rjIWsXD+ezlBEF6YsSqEzEqgNMM9VKRKa9aqcRUCYfCzKOgfD3JZujyY4FoipgznMVRJkVErBM0Sy8PQD8cFUR+xCO2pK5PbMxlltLYa1OhGUiMmMCoSZJDgLSYftiSNGa1EaqKdk/Ja5RbA7pcZWQruK3FZ8gkiFbCaHNxY0JpOD+g+QfaqFsWEaRl8WiWcJNyvhprJ8ORgdm1KAWLxZfspJZt2yjiffGDNfl1RGu6Cj8QoxQMUJS6+zPtkebUW5IRSQVr72DOaG+jLCei2cPhgNPpBIgjBvu+UxoUV4YWGBs6Nl2MIKYFTN94UFfWY/Y8Kmv3liWP6AmjfKHWvbcELMW8xi8p1pz63+hkNFx3MXl4eMB29jIaSYq7u7srPebz5QGLKNbk2FoTQVbFmhLSeugOpteG16u0QuE+qVQiivKclBLWvOCUVzdUPhkAhnLQLABQmuH+dPK9ljKFN0btJXhoxz5dlc0BNBjE2nFi6w61dtGJZkGQ8vkX37A84HPYK3dqWqxtj2izes1tUmfLd6zSDJITzvsGbQUPKeMAwc5cunf1ATIEkjOqAJU9hKklwfVpEFRYMWQF0jJ0jPv/mfV5Z+yFdWHapBs5j9FUBKfDAafTEcfjAXenE77y5a/g/tk90pJQzZ9hqRWXfXM1tlJ8Hq0CW70ygo9Jk/5f/3lSHevYxpy6fzs4KyZAVWc6N4kSPD+z++dYg7QBWSuj3GAplyAmklS1s1WfCek3QcQ0TNc56mmvbIpZP5sMeHRvgYAMu3BdFjRGJ4u24WRH1D8L1Lzpdx+Pd8PYmm8SVzoyauOS4tCcLRYPpBrZn0aZwi7IziiGK9zMUKx0Xc7eB5WGGwpCb0DOFHan1GAs+S5dZjR6iumQG/BIeHJd5UkGCzeJdvg25DYc+uS9legkkiDqB5BIQgRr/hVQcSzw1qE9Xhzm/HHgJSFb1j0uicU2miKoDmM74G4SHaq3HPS6R0IzOXsUTV3bvtBoaIOgZRTDUBEsFHLIS+6RYDhYpRSPDPYLUk5YNHvPYkpMIp6dueFvRsEMsgERNbyiUIlUgissAZ5XXZWzyDpVJfwYhr8SAqu1QlhqNLcj/BSDGxgEoMCSbSbLDcgcNMaHw2EIx2uIf8CfKOes8nf3vQ0HUnX8TbTpQOZnEdno5WHJO+zMB4ALFPB6JiOTRJCWPDX6IJTfYr02lGKordDYGjQJUl7oPKxYIDS20h0kZ7I3pLqj1sTnR0A5ea9lVR0NB+BLdBAIgZTv3KEN5zucXovyEx1GUZUpV161DdnVHinS6FndYVXdgTN3NheWdiUdncAcTSOUDMBqwf3hgC/d3yOr4Lwu2MuOQoSlmTNtZzGa+YDukORyTVQc559d/5uKdia8HzGo+v2JCJY14XhccXd3wv39PZbV+1eXVqDVa6EBgxVPAVmrSABSrbC6T47g5EyKn139+kBSWZeB9fM2cb95dUbrc36p4WC2YYQDQVMSFmN6c/w+jydhXjiuJclU5ig8L5lK6JAc56i16QzTri4YFRsBa89zXqt1By2IOaPZCqF8zomq9ryv1zNJ54V0NJPOwOeNd8LYxnklwkUGG7ApdQVD73Mve/fuDYBqhrPOhDWI0nMx2+VyJeAAgPKC10IEDrcJ+hzHe3OXqO+eTFch4cZyqvu1J3VVYsNDBsHcjYPMIqp1wgokI2VzWIJShO5gVJQyPUSZmg0AQ10rHj74e4h89tQHUuiRssZsOBDS76nSaLbihKZEAx053NTvcahFNUZysyISaKRzSjgEBMrm6AB6+cu+u+B+4/uhDuWK5tiFLtlZKhoKSjU8XM4AfMMLoq46Do4oqeLh0Cp0USdQmHvKQlGO3jIv5qy13mYsWLCjxIQbVkcBe0T2golQEYgL4bjwgnvzah4AgxDCVEUNLdsQ+TBHJ0R6nWlAqHG927bhfD5jPXqEHuvO53X0v80pQwnto1aXR2wuMZjygnXxfLBKcmGFvaBW34cauXaiNwnAKs6KPywLrESDcq4JML+qDclGGzNEEwIdedbeas8XI7ZNUQTYrOL56a6ztVXz0CUn2gVGfBCwGiGwm2mO0E2Jv7s12A4kc1QqgaV/kT5iLs8YZUpSVM6T4Ij2wQdISXDeN2zRjKIWVHid+rYVZ+uWKd8+pa1KKX3NzeIvEV3N5YyVzk4Dfeh+LvleXJeEw5pxOCxY14xWC87b2X9ncT5EQ+7RJbgnZCZuTU626HVXHJvmIWLqcCwjKDEARsChNsN+uVw9J+NpHEI24ZT2fDCfzkxiBc+qcKzi78C6Kejnc3wvfO9KSdT4G4+d5Nmp8VSlw/fhzEXaJchxBBKxLoerFJRMZ0E1I1r65vLHebwTxlZFsTLCqKXiYvvVzx30xPBwCR8GPBDRqMOy9H5qxX7ZnFGbcxd0zxH2xyEGPoQu1s0HpN6OC4+8Ixfhv/Ze/UBzPWTQgIuIkwkqG4rb8Kq8SkWGSDcEl71AqpcJaB41plHu1A995hkjYoqFCgC1Fve048BvLK+ZjMWsJ90nl3NwOW8wc0Ja1gTNCxYyplWVJVRc9G0wnultuGoRiWwB6Ybkoogwl9t6F5iYp8PhgLwuHpTrUHxpRhWg5gzbwgYIW9mxLCtSciKDNDcM4QWX6lGYoxoFKMCafY0dDoc+X70Tj5GtSEPVoc3ho01r1e/LG7FH1SRYEuZ51q5Yk71b0JyrAg2qTTnUvsbVnYDT3aGvyygpyxOSUErBpew9EnyWn+H+dIe8LDAYXrx44Wtndzqr5uRIR/XoZuFzaUmRk2JJIcbvh1rclcGVklQUxtzGSAMkrCLOMOX1W23dwHsez1GNFAhCDbamw8q273QYWQKUvGwDKrg7HftaiMN3HJToz8iEBMLpWXSZR35abXCDWQrqDqzqKks5JawpX9Vce0/p4ehKqz5fxwPuTkd8x7d/mxsaRr3VGi6l4LwXXPYN+x4QbfEAgKVelaznUpjCqjvfW3zfVkPZty5hWUmUNDBAyCtV2ASSUicXLsuCZT36nmWd8v3dnXMRJLmGdq2jkUktuLz2sqCQHo2I8LFhCoSwO0bma6evdxuiQtwcHREPmJZAml83qHVv0VKUR5B4ZYYEyVKYB67DVdIw9pCuf0+4op8jwW24Eql4NOJ14boRjCBqhqNn49lTIcztzvP2OOf9eeOdMLYAmEetKGQiRzQm6iSAkYMJKxvHVMBKBrSGBDpQKUHYezBTTUezl9l0BmCrvXtKyMOJTdAT/3prbrxrtRHB1fEwA4IxEX+9VQgq9s1VkbqIPHwRhq0LctWSgB3jcK0tmiAHZX14cCFsMHKFGPWbYWT5QWJDtLv3rxUqIMUc1EAO4l4SkjjEmHPGIiM6Cfk9GI1bxBOCXpfHJ9GH60Ub5e/Cyy8wik5oUs9jrot/hlmHi7sZsmGcBE7+yXnxHFTMf2yubsiMX6174uHIwIaK0eztxvzHM9Xp3jvE92jdxkEUqQ4EjJUSiW3XMnHuoFReYzSn14EgqOKwrv1Aa1SastZ6owvAn89h8XwpAG94EMasOXnLKKTRSkGC59/WJBDJ3ZlDX4uMMgRYExsZwGB5cgYeiW944/KJDVw9L6cg3Kh58BZyIvvbPzA1877VPNQVZFuL4KDqtbuAw710sFuPlsaGEAGWJbtwgqHrR8/HX1LpqEmXR8wTMjE5wkLnelTq9kphJBV3pmXwAgyClWmSZUkoO9sVwpB0YZBEOdRWe4RX646yR3ceNkGoo21lQPexPkK4JTgc8SyEP7Pm7RFzChEcQq/FNZNrrShUEtsvFxzW1SsBDoexNoFueOM1JwMNqHdd144IttYgxXOqiwDHPMrPanXjJDKcTzOH2uM14YMUGXs4HL6OcknUhwzf18/pgWD055y85AeGTqJEN9LhBDjk68/ZGe2zhOy0s3vZZQRX8TwSHKFLOUOtdVi591X/jPFOGFszQw0lHsr2gQtL4Z1rek4BGNFYfz6cQEy6ygI2M5DBNAQQkiVG44yYLEYrwjrKkGML9SpXOfLNEKULnZDFB8d10qPKWtwwNbUuWNDf1CNNN9JB+JlVsWJoCpGIAXX5WSNTRF97LWIs0Gj8HoY2+gJXzkGPgFmr16EUGtvu8U4erhs0v68gsERZlhvzaQ76syJDORiQRqINy580a9/Q0c3GYP1Qi2mLiNvbswUc6QvhipzGXDM4h5H7FL3WQ51zaTOUFx6u0uDOnnwfMuD8KIDvKEhE+JMsZzhPkQv2nq+tAwwpkUkdh3si6QceyUYpDyaUwhEbL+2qjHLBuY9I2QU8ao8elmhUP8Fi3dCAzz3ReYn1x8MkjNO8b0EItfIZCx9UyG4msjWF+6nXxqqvn0oHScVTDpISLKdemhMGt8Xv2zgDgqeQOvEr+BDhqAVC4TlaTM8mREvUL2J6rv5+d0B9fasxp6cK6y0/x/u15y9dKz1+Gmx7nzOPcpdlhaqitnLFbPcPDnJVY2Q8HD+wlG02tnGGhLxhpFVySig7SwilUl2soewFZxFs5wOOR+9PfDwex5nDz3Jj6gvT0ZNExM+NbayBWitqNncCVaCZCBv30tz7Ndbinhy1jKYqsb3j7KMl7DXrcc5B0PPpJpOxtf6Ue/mhv34dRHxqzBG3TjXynIPZ+apRkxuv8Xe8jlggjTW89mmi1jzeCWPbmje37glolW4kF5Ip4hCve+lRVNSUDjjCod85LzIbvzblPiMiylNezSNc0sXDCyoVZdvw+tUrPFw2p/Cn7DJlvLa5k8tgPQ86OVS6Zxcf3sX5xe9zbd4FZivXjZC9Q8mALdxH4GHKO3fFqKFhrFEScBWFXOdJ4joDGgGAZ8/u+rx2QolRLq0NY+ZGoyJlZ296y7QoffGotBR2UQEAG7lMYERI4ZlXM7R978IgZXf4TEj4SRAagYykGaf7OzLMjU6Nja4gtYZ9p2qYMmfMCJDt+OZ8TszF5XLpz3HAa6Mu+4owBemQvR+YgbxoFwFBrCGhYYp1SKPuRpCoQWz0UrGdLzjcnVxrlo7O69evuzE9nU5eW5umhvY7a9NtzDNAQ5kzkjWoGJaU2QnKUKTgIaJsDKckHKXYI72vZ3ImfhCzaqswSYxYSofUNMWeoAPanQvrQi4Kr1HsKQgARxonEcH51ctubHnc0oHsu53GhoaGDmQc9ANmBkQan4l17kFOI2dvIWZjwxh7qZKnOhKbQqSUYHkQZ5pPMEp11KaJomFqkBFIQ+x7M1S7eFehaS2peN29aObbiI6FU0ynCwAFV7wuXJRGXtRZ9ca6dEpJBu9iXVYs+YCaKzIAaQ3HO5deDdi1Pz8SGMOglu7ESY9s4yyrRPvCKTarXB++L/daXH2OlR5ohq0WT1VMBs6aYSvemjGiw8xzvHMpJEp4pMPHM1TcMODd4M/gERokMqQno8dvrK45TTefDaranYaOKk0s5CsSXPsMw87xThjbgEBzSlgOy2B5xmDUAPG8UCuVUa6TaRYdVGwRATp8gJ5THPlRHpY6RK2JVLpnTfhlu3i7tyA5iAjuT3dYj0csh6PDhuGJwSXD5vrdtu/I2Us9Ul6RF9c3DmIEQOo5c7IP57MvKkYQkV9eEmX8WIJj8G4kCMjCDAsEkhbIMjzFMBDLkrzt2QSFROcOdxQWlle48xBKNZUbphCOhgEqHlHnlHC4O7lDwhPRUd5gJrqxLa31DjjHk7cjg4grUO2uHNQPDxpHNQErpDzibs60zevSQ5q27aD8NxwuK16fWyuSKk7rwTvhaIahQhaW83ij00G4mnLu4dwcDoMMse97P1wWTdhpZGL+0rJeRSbO6s297s4sCveBbbv4HOrILVmrnYkMawOBUMXrFy9JHvNUx3E9IJ3uRt9g1paGAY5ctKo6aYekDVHF8bAAdQfKBmsu/zhH8nFgFTaT8Igsj9ptGuFM5aPWmqNFVfHq9ZlVARnruvQctW+rYG1GhBAHlqHVHUtWnA4nZ08ndUZ2LVcHXo+kI5phZGtp8AIul0v/3kl5gujbbCK9+XoWxeH+HsIypiD00Z3yPYkG1Gj/V3A6nZxPoF7fX2rpDr7njxtUnRfiKBx6icrM8A+nH0St2vSecDpTOAitucIWjLlKAOL5/Hg/JPXmIbU1yFbIyPbrP+WEU7rraTFnIwt0PeL5/TNPJNEjzCpYDgf0UqpulBpKIZM+544ogc/Bz5IAr3zPnM9naHXX4Hg8IUFYs+ziIXfUN1bRTuA0MeRFofnQoeM8Nywxb/ARpMS0uGZ+nGmtVjQZEeljkpdOhtHZ/oVw+IKUl64r3tNIZr3r2JIXvH71CjAXPFlWOoQGdziZ4sEvY2iBd8TYqmjXuv0UQ/QRfBeeS8DKTtlPnV2HWHBv+P3HDLUwTALqYtZw61nHAAAbw0lEQVQhwnDZNpQowk/JyQiHI5AXh5mUvv+gh/ZrjCbNeV2wrAdvlJ2o2iID9nDT6SO8uNhMkWdO4oY2NrCTcCgZSGhrPpzCc3CjF0SR+X/oc3EF18iYjRkyCfg2SGNK6TYRRYiO+19l/RxhnW7A1LV887qSwTzysWZkiJqTnBIUCcoTVUe+xkCWqP9tb/9G3jmfY8DsSUh+US+xaXD2qguNDLi4z+cU5caaiXU28kylq0DF3C1cp4n1ykK2beDCHrmMsrSVhlkEyEmpPsY6cFW0WnpEfFVoD4fOlzz1twV66Rg4x0YnYobCO+oSJT061qvFGpkjrMlpDcc1mkj03HXz3GyrbhAqIwTVEIQPZ/l6Hz7eg1kTo8VM5qwhVJICoeoQfeTvfSH6OhLtWy/WJ0BpCDOECFkgSN6nOp6NQ84upBOG0w2tz5/XqabDAl0zJJNJ28ypz+BjNnFyHtEg7wqTAbXIFBHNDOb1CCBi/0aaJ4l0kpqpQtWwdISkOYzbolLDoMnTAgb1Ol86xdqYq4VQ+IGkLwYdag1Lco3m3jA+5pDXZpNqns57g2I9kWqP+lrw85O5VnIcHdninoAgL2aol+VFoMIHpfFZ/J0ciQSe80A0XUm9ZDMpCZLgXBAKT+pkyIDZo0wxzncRYFmPngdPCQlem+zoi7KvcYMVoAhgpcGPJQ8EvMUWouoSyRSmvp4+b7wTxlZUsE6eOTDlXRolz5ivGTkj6ZBV9If1Xwz2XJTHuCcdXnZfPCJ9Mwij5FLcM9u2Ddu+u5e8rOy8c8ByOGA3YK8t9ty0f9yzBiEyM0NeVyzr4kITMPaonSnifm8mcs0w7lCk9PsJ4+DlKej54sdqJ8A4SBXAbjaYmf2+pUPZ8ZpPtbvsYTCFxiGK2WfDbHAmZjQ7uCIQxeYUhybz4jW2wg0u/TMnclKNfI2RkTggNph5Yxb3xwkrhdKN9JyiQbqRjfkTkAWNRw3k26cdsHnEnEaEu20btsulM2sjBx71kEIpyAaH8iplRjW5g3I4HBwhgecnk7pjgOQOVm9CZy6JF4Z2FgOJZ9WhfDoRSdFRhDOjvIhGljxv8el5i3RDE8YqmOODnTrSKiEt2HoZS2jkmucMH0XBwIR20GjGuamiUF5XN+zNBWrAPS6qPXKI6F1TgmQ/cE1GymKqjPc7akAPuYxOnLqT2GpFz+gG2bKBesFwicpakdiUPWV3iozWU6aUlgBD9pFQZ05pvpJe4482aqTHHqGalobBjXywAQosiWIxgb40d4VBYytgCY6oM43DkWLqoZ8dZPa6QfZyvjCv4exLXBjPAGP42q/J/NmHbPtMNIr7UgMShJIcgJLX4qerp7ASJy/K7LojDUeH1fjF3/JzRPp+ccfGrgICoaNS0Sbjm7ycjWsaIqi1YN/dgT4ejyPv3dyRqVw7zap/BhGG7rlB+L10m2G+oGEmMP0VQJASUWjArCA0gshVxIv+XtVRWhPs2mDPVeZlK6Mtz5f676gokBRZxmbx9eTNw7ftgvO+oZQGg2I5HHFcVuTVGx+oCLZScKkVWzU3qlFPy/swHtCaEnRZkNYVSA4/lgny6AcKYY8GsMWf9AUYnnbshsg7o1kvW5gPx3iP1+ihOwHh7TVzIoVSCrEbW59MJ7mUnZbWekRrcI/N5SnH3O2TUP7c/k7ZTi4O7Dg4nb3tzkZprlN8PRqselmH1/FSaCEMe6vekaMFacQ9/IjcQDZhgke2bmz93l3nt3yKLSg6ouFeDxqDhqzupX/5GSjsgkRpTHUilEwMzUIGsaAh02M/rgfOE0lEGIxMf+7+7PbdazTDwEbz+fkZF9ZORh48mefDgsiXUoIej1SsWrBvF1j1vLIfxA6zVj8pHMLMGQsZquAeDIMBOhDBTvUGIf7s07J4Lp0QOkT7YT/y6rxfc+djSdFjDV0jvFaD0YNNSaCSOwchjO2SErJm5LzS2XMnTBWDLOMqDE6SEycgZvXyJgiw7RvcUWe5YFjM1rwbPMVSdFmxnu6mPert8Gjl+hoRFVdoqgXL1Mc3nLeKaKVn3oAgDAX3XmKkFsIaMfcGIGNURFRpvWRPJfWvOPu20nxPw53i4BgYYVEnlhlLGp142sznfWwI9N44BkETh+T9detrYCY/ujPmYiBJgSVJl0VckqM6porKqC9n6hS0CWEJpBIDUeo5UX52xqzURM3usiPaq5omZ3BXPydEpMvjphT7LHk4CsH9/Z2Xv7UGq0CpgtYSamrINZAjoFpBpvxt4npKMtjuSdDh+M83te+IsYUK7JC78WvWYFm4SIxEF8CfeuuRWodq+CDNgJqEMnBCNSZB44GoKijdqxsEiloaLmX3+q11waJejrIuKz+y4fW2ezF7NRQAmjMWtlILuFMEnaWWVBltMBJg2yZw0+WIFH3FooRhtagbHfWxKaJywiZc5a75K05zD4nAvZJc5BfDXpIY88dhaFRhso77NKu9zEHpTXYIUf3LDZ+5ek4JhrEfiq7z65sPNM4NcCOKqekDppKkMPjJYIUaqiGAwWvfa+moQEQlCnRnS3MwXoXn5oheixVs1Xu5+rRdkx+CGDecOe0Et8KeuSkl3N/fX0Vunj/yVnKVBtYAlDpIOpDhfUf/WmNo4CQjRirNYJXEmjY0ZMPYhn7ynBLxUjXpc+rQ9oK70x2WdcHxeERmq7t927ze2Bpq23vXI1+rXjObcvZyqpw62Szq1keUBIejm+MmkjKePX/ujc/hMFtrQ3M3iHxCFGko9MyEQYW1QRgC3x/pCa/BzRDmyzJlQpsZUBtZwJ5PHSpD6OTAtCweETWPzCtVsFRH44zG8pakvpaOcDlPCeGWDgNzBMwaIiZUW4MOkZw5fxhRf+QEZ47AldMdc+AhOzWOSfQj6THK5UzZvo6O7s40hOf98ziLRFj+xnWvTA3QeKZwVHzi6bRIR7cA9PO2GZij1v7+lHRwLcwgOXfnKmvqnX8SmfnBQu5zP50/AAj7a2cIN34+1O/Dnb2CneIhRocn1migDMGsFlGUtJNM6M9jWQWH1fPPrTU0NeTMI6AJqi2wBkpIFl67kbeQua/B86V1BAH2KyCyhSry3Wl4Oe36osPYGoC67dykPKQmL1IAJxmE98jfD6jDIuzv70bHg5IA2kaupWlybU7j2lcBcva+P9UPbo9Rog7Pf1G5WEwd2vEaTEab6uZAcu6evUsq+kMdhs+Gwg0Sc6WRv4n8oz/cvihI6CjsYBHF7w2py6IB6GowZg49tjaxJzWgLQziknopkCJgR3eGthKlRu4FgzWIwi8o2x9akEPQPeOeW2aU1UfkJNVZlk08etlbsGwDNvIgu4lBFWiKzlINQ+ceK7s0IcQUpK+HmW0cOTWPEoeCky9NJ2UslCgMwk+gE700rNRAJAdXgn/rSsSDs+hlDiPq0AleX5eFuVJ/5jPjsV+XOOkLZHnG9RwPBzdKyfvnzobPwilrLFVI6gSRaMSgqTcPaMzN1hAt4dX33D0nIS8rUsreRKPUXt7cm9vzHoQOm9Dx9emhRhJZtK15tywYhUkAiCYsq0DTMkqJhCEY3SuV6dA2z+1l5uNy9vjQCx1swNh0IrsDw1AtRDg8fYErA94PFH7vCmV+zcI8fFxf4F0d92IUGB3Kxpk1PqcfSeaT2OXQ+xxGrlq5zsKxoxAHN4bbBk9rhQxuIvkpKga6tCwPwJ4eItavdo3GS+w7Sp4wjEbUKYsBRiIphbK7gz9t96tjtw86Y8AkH8u90OFkXpcxqrziAPD6kxDB5H2ERGyeUinRYs/7c/vlaPPoGxBoVjSod2xqDXsTV0XhtSfJzFuTAxJEdnl0T28Y74SxFVUsz+4Quprh6Ah/5s/OvZfLw9mNjDHPB4wIcTK8fji1vpEM4wH1z+UiTli6UlFlMbS392MdpAiwZCyHBWXbsW+7EyF6gbv0aNL6l6KJH/OVMEfkWTVnRokjwq6bw8aNryZwk6n1NJuTHigWz4NcaFz26lFtV6wShZp/rnlyBcCAg5oZRSYGBOzGhPngCQ524gLQWukbfCvRb0kGmzkv1Nh1ghh4dxaf2a3QoODHCrV41oxWK9yLLq1iq5WpAfQ8orv8hioNAs/b+TVWbGWjYg6jozzlZGWgBBFd+T2F8s/YNT1fSlb4ulxrDs8lEPu++5NUN1oSzp2Nrj8Ryasw0i07zDwHv6bRQWhlSsUfmHkP5UeRn+eJUy9NCA8/ugNFjs07LmGsafYU9utIyHx/EFlczShIZLXnrNxIRW2qH96uYU3niIhUI0TdohgyHD9GNG4JpvaT3LcuBgOX/zNgK8VTNWTg5hSOjsxuNEILtwvhmOtKr8vokhRsVjNnUSeQ5wFGQZMTmFPGujojfefchXFV0e4guEEEpKGXvy1TyQwQqZ++S/p/O2mI/+4GNwKFMCTBJOb3Zn3Z+7oKx8YMEs9BlU49EVOSd1Ri7Sn2LsjjDrufg6kbLZjByCZvZZyBYagEYdB4D3QOXDRsRs9GdBzvbXxGV5aJ53AYWASSFk4GImBS79wWxjWQLXVhDz9/Ddrc4Xdj62dSr5UFI+4QOoE7B8E7yOQDNPXzVatBDwSJBVAklAY0Gek5MOD4lWFskyI9u/MuP0G9fkMezcxwOh2uvXXClzM0eEUWIpsx3h+R7EyMmSGceF/kWAF0GCgvK5bLjuWy0euaDfvYVI7ECJBTF28IRmRc37h+QKBomd012nA2jO5nQ3OyQXiZvTGJH9S7sAUV9CrCRHK5tkcOOckg1qNGIxSSGuss4TnzxM0YZU6tlc7mZTWr562Z88u9hZxvWDC3uG07+2T6hsrZN3cQr+J5mAgKHM6O1m4dQvbJ7WUlTVxIITVvkB6RSN13r9mOtZESDnm9etaPvzoLvRTszXCgss5xdXWdqGE+n89XTN0wsvvmGs8BM4V4iHWnwnC5XDwfak6qanvBvm8wwsaLuoJWMIhnTd3ao7wRkWsQa1K6EqeYocrBTE4o1UutDPDDmM6UqKcaGqzD58HWjpRNjyySl4oFFAhNuOzs4cpo33NkwaPwulrtv574mUKSDfdPwJVEFDw10pBVO8M5s3lFNJI37oUkDjUm8gk0KdKSqTLmxq/s3lJQIcj5AGAIx3jur3Tn5dGBMxAr7vcwchUetWuehSvG+dH3ySQaAmCUJ2KcQW84EQEIdMkAIvoGrFDTOiUIpfIkOTkvnNRu1Ogge+ttmVCXRtGMiajpxHlADDIJMxjRw7B4EdQk9imOAGYuZWqBMvCzInfeR52cRoxUWrRBlY5++H+jkYyEnjtcG+G4rBT3GKVTO8vkFoGnURYnp5bmxNdQ5hM+Sw1LPhGfIWE2G7zCwrCsOt4EQFtCa4KqAuW+9Vv+fHP7ThhbA7BxAyJqq5hvnA9IgLmYSoYYDWR4ZKG/GX5kJyREPoeQ5ryBIFGvuPeIEELP8fGiVMFpOWC988UfZIoeOs93ZBOLEGREkjltMOz76AoiSZBsRTP3vjFQCxd0iBKDgMm42B2CNEK1MUfS4UgRpbElYBTRR8hUqh+MlQhAypn0+sE2bo0PaIoADH4wyXTg55y90J63Hw5OrY1t2qzPt6RB7DBz1qJkRUHDZs03Tdt7jtY8QUv2tEPMlXWzpUUe1j+31OL5bzGP0leX6QzoKSINM+ou2zXUuuiIZsPoxfvjedVSAAnB/x072+mNBhS4MrR9VRhF4TGkIt/E4h3db8p4nzIXDiesVeaIwd8HIcNWKoylCZ1RTWfFALKmPQ8sSV2QgQ5e5Gk98HCSkpeY6FCECuY/AYDaGmHziM5C/Yt+VDgGmQecet7WNHpBK7IqDLs3SbCGWsGaZb+vZoJ9ciZas/67nvNxRbJg2WpOSJIBE1BnwecXzhbe9q0rLFnzFowpOlNpdn31ZlAoWeXjXGmV+utNkMVJZcCofpiN7bje8VogD3Ng8GmDKx6lIrFEh+eMEn5OCkt+yrkONIiQ8NyxQC4YiXJvBMoX9qU739zfiJ7ilMtpcOZ8mMdIcw3NY7m61+ja8vjMfvxarPk54PG97Qa+waFvQUNoMARxHGD53OK197F3GgyogtScSKbqyEptFdt2weVyhiGUzRIDaEFK5nDKdIAHcohmHtBI6oYYbeLaGKUtLZwnfO54Z4xtBTrRqRsLskUxRyKqY4FM0GAcPFG+EmiEH0I6/jZoirkxB2kgHnzUCBqQWq8DpR1DyopVUs9phZ2NQzYuLoTpO7Ows+IcQtO0dShHsjqBiIvLH7JDR8kcNpJmQAsIMGrXfEEkBGHM+ssGA8zzGIJoBRXRQ4W26uUVLerthtxZGPqYX4GzJxUuTwbzAz+gQSVs3A+NOGR475q8SUOH0acoIOZWJKGIQ6bFancAjNGKxOYkocnnCj3aETofFcbG4v5Ml3W5WkOjFGUQPWbiUW9VN0GdsSZTSl2UpNaK8+WCaPcYMFTst0iHxHnTERQDgiAFA0LuMiD7gC/njjGejxrP5XFkPtRspBvnmOfWGvV6jZBbGjlJYW407t/suoxGdRhaOh8xz+G4Rc6sXc2vz1lKjFAi+rCxZsS0O8QppZ5Hjn2T15WpiEcqPZzQpEN32hB7gudFpDDaYG7MBJ3WGuruWsEi3lB9zU6+Sqp0IGxYozhvYKxZ9R+oJifJTc58POsZYZtTDzGuDM301d+vCVvPB07BRE+12Ij0e+Dh16zWoEjIOmRDpQcE7vR66dS1LOzVffLfLjNrfS0/NqL9uQA95Rf581gH85KyRmJe7iyUHlkEHwRNen5d2sjRRiQNDC5FRLVmDUtKaDS8gR7W1nC5XLCRpZ+pmaDx9zHm3bhm+oMX641cwl6YWkcLVOzq5qbswBvHO2FsAXiNFCaDOMEJEcXBDKXLNMAh0/5bQFRbBwvys24uvJqYVE2KvAxpsFjAnoPr5hkAkBMJIY2wDsbm6tT9K81TH0n1Cn7M2zK8vEVJ7ecCrUZUR5DMpi47Rijp+uCJhdgY3Ube2ZphSatHRDbgHS+jqUi1omKop+Qgn5gN1KCXAg3Ptc0/j/zs5NaFPGEzbwJwYIQYDGJVZY4nCskNaIqaFU0D4mZ4r25oU85XB1htXkYTxITQ5IUAkl0kYMkZ6+EATFKWc+4z5A4xPaeVfWcB9AYADj96NOK51oLL5YLXr1/z+SsSW+hFhNehP/7dzr41A1rta1QJwUcqpDVvnTdDkAEtx+aY70Naw93dXY/C4xmH01BKQb24FKoJnMjDe3EWayXETzZ5d7gou8hG99GLF0BvCeiGfoFCUJo3ESl7ZYlVg4jnnr2UawHadfeqgMLD4Erf5g05ewej2uyqtCzmcuxl6a/5+vBrLG3MxYDeCRAWz2Xv29alVleWPZkZ2rZ1h4ILvjuPHtmyhjozQiMkbm8wnJ0RPukEx3XPRnl+PQzkuRbvA8w9EH2HQfZtqY7+lFphE8FSYVjEHdhozOJ5VncANbmxdn6Cz2sYdW4IhD5DSgmdiGkgrOyO2+P+rX5mJz+rzDqv7poM5tyClCdpShvEv26g+flZWK45vbfP34Q5xFyLKjYy+ys7hD08PFypwR0PB9Rtg1G1Lfaw5+ONufLgyoSIT0Tm/qyls8KADudN1/KmIbNBeKohIv8WwCsA/+6pr+UdGt+K23zM4zYf1+M2H9fjNh/X4zYf1+OLmo/vMrNve9MP3gljCwAi8vfM7Dc+9XW8K+M2H9fjNh/X4zYf1+M2H9fjNh/X412Yj18GZb6N27iN27iN27iN/7/jZmxv4zZu4zZu4zbe8niXjO3/8tQX8I6N23xcj9t8XI/bfFyP23xcj9t8XI8nn493Jmd7G7dxG7dxG7fxzTrepcj2Nm7jNm7jNm7jm3LcjO1t3MZt3MZt3MZbHk9ubEXkd4rIz4jI10Tkh5/6ep5iiMjPisjfF5GfEJG/x9e+LCJ/S0T+Kf/7LU99nW9riMifEZFfFJGfnl574/2Ljz/B9fJTIvJ9T3flb2d8xnz8cRH5Oa6RnxCRH5h+9sc4Hz8jIr/jaa767Q0R+TUi8mMi8g9F5B+IyB/m6+/lGvmc+Xgv14iIHEXk74rIT3I+/lu+/t0i8uO8778kVFkRkQP//TX+/Nd+IRf6JmH2L+oL3tzmnwH4HgArgJ8E8Ouf8pqeaB5+FsC3Pnrtvwfww/z+hwH8d099nW/x/n8LgO8D8NO/3P0D+AEAfwMu1/L9AH78qa//C5qPPw7gj77hvb+e++YA4Lu5n9JT38N/4Pn4KoDv4/fPAfwT3vd7uUY+Zz7eyzXC5/yM3y8AfpzP/X8F8EN8/U8C+P38/g8A+JP8/ocA/KUv4jqfOrL9zwF8zcz+uZltAP4igB984mt6V8YPAvhRfv+jAP7LJ7yWtzrM7P8E8NGjlz/r/n8QwJ81H/8XgA9F5KtfzJV+MeMz5uOzxg8C+ItmdjGzfwHga/B99U0zzOznzez/5fcvAPwjAL8a7+ka+Zz5+KzxTb1G+Jxf8p8LvwzAbwXwl/n64/UR6+YvA/gvROTztRb/A4ynNra/GsC/nP79r/D5i+abdRiAvyki/4+I/D6+9u1m9vP8/hcAfPvTXNqTjc+6//d5zfwhwqJ/ZkorvFfzQcjvP4NHL+/9Gnk0H8B7ukZEJInITwD4RQB/Cx69f2xmhW+Z77nPB3/+DQBfedvX+NTG9jZ8/GYz+z4AvwvAHxSR3zL/0BzveG9rtN73++f4nwH8OgC/AcDPA/gfnvZyvvghIs8A/BUAf8TMPpl/9j6ukTfMx3u7RsysmtlvAPCd8Kj9P3niS/rUeGpj+3MAfs307+/ka+/VMLOf439/EcBfhS+WfxPQF//7i093hU8yPuv+38s1Y2b/hgdKA/CnMGDA92I+RGSBG5Y/b2b/O19+b9fIm+bjfV8jAGBmHwP4MQC/CZ4+iOZv8z33+eDPvwTg62/72p7a2P7fAL6XrLEVnqz+6098TV/oEJF7EXke3wP47QB+Gj4Pv4dv+z0A/trTXOGTjc+6/78O4L8m4/T7AXxjghK/acejnON/BV8jgM/HD5Fh+d0AvhfA3/2ir+9tDubT/jSAf2Rm/+P0o/dyjXzWfLyva0REvk1EPuT3JwC/DZ7H/jEAv5tve7w+Yt38bgD/B5GRtzveASbZD8DZdP8MwI889fU8wf1/D5wp+JMA/kHMATyH8HcA/FMAfxvAl5/6Wt/iHPwFOOy1w3Mrv/ez7h/OPPyfuF7+PoDf+NTX/wXNx5/j/f4U/LD46vT+H+F8/AyA3/XU1/8W5uM3wyHinwLwE/z6gfd1jXzOfLyXawTAfwrg/+N9/zSA/4avfw/cqfgagP8NwIGvH/nvr/Hn3/NFXOdNrvE2buM2buM2buMtj6eGkW/jNm7jNm7jNr7px83Y3sZt3MZt3MZtvOVxM7a3cRu3cRu3cRtvedyM7W3cxm3cxm3cxlseN2N7G7dxG7dxG7fxlsfN2N7GbdzGbdzGbbzlcTO2t3Ebt3Ebt3Ebb3n8e7ih/rRkeokKAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "L5mNQuc2GsVE",
+ "colab_type": "text"
+ },
+ "source": [
+ "We need to convert the annotation into semantic map format as an image."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "WnGZfribFHCx",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "import os.path as osp\n",
+ "import numpy as np\n",
+ "from PIL import Image\n",
+ "# convert dataset annotation to semantic segmentation map\n",
+ "data_root = 'iccv09Data'\n",
+ "img_dir = 'images'\n",
+ "ann_dir = 'labels'\n",
+ "# define class and plaette for better visualization\n",
+ "classes = ('sky', 'tree', 'road', 'grass', 'water', 'bldg', 'mntn', 'fg obj')\n",
+ "palette = [[128, 128, 128], [129, 127, 38], [120, 69, 125], [53, 125, 34], \n",
+ " [0, 11, 123], [118, 20, 12], [122, 81, 25], [241, 134, 51]]\n",
+ "for file in mmcv.scandir(osp.join(data_root, ann_dir), suffix='.regions.txt'):\n",
+ " seg_map = np.loadtxt(osp.join(data_root, ann_dir, file)).astype(np.uint8)\n",
+ " seg_img = Image.fromarray(seg_map).convert('P')\n",
+ " seg_img.putpalette(np.array(palette, dtype=np.uint8))\n",
+ " seg_img.save(osp.join(data_root, ann_dir, file.replace('.regions.txt', \n",
+ " '.png')))"
+ ],
+ "execution_count": 13,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "5MCSS9ABfSks",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 377
+ },
+ "outputId": "d093e054-8db3-40e5-a800-061de844597f"
+ },
+ "source": [
+ "# Let's take a look at the segmentation map we got\n",
+ "import matplotlib.patches as mpatches\n",
+ "img = Image.open('iccv09Data/labels/6000124.png')\n",
+ "plt.figure(figsize=(8, 6))\n",
+ "im = plt.imshow(np.array(img.convert('RGB')))\n",
+ "\n",
+ "# create a patch (proxy artist) for every color \n",
+ "patches = [mpatches.Patch(color=np.array(palette[i])/255., \n",
+ " label=classes[i]) for i in range(8)]\n",
+ "# put those patched as legend-handles into the legend\n",
+ "plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0., \n",
+ " fontsize='large')\n",
+ "\n",
+ "plt.show()"
+ ],
+ "execution_count": 14,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAAFoCAYAAABXDfHbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXhU5dk/8O8ze2ay73tCEvYlYFgEBAUrarWvUBQ3iksVtbW0pbba0vatb7V0ubRVa+tWtSoWlFrx54JWi2hV9n0LIZAQsu/JZPY5z++PhBAgIducWZLv57rmInOW59wTJjP3eVYhpQQRERHRcKAJdABERERE/sLEh4iIiIYNJj5EREQ0bDDxISIiomGDiQ8RERENG0x8iIiIaNhQLfERQlwlhCgUQhwTQjyk1nWIiIiI+kqoMY+PEEIL4CiAKwCcArAdwM1SykM+vxgRERFRH6lV4zMdwDEp5XEppQvAWgDXqXQtIiIioj7RqVRuGoCyLs9PAZjR9QAhxHIAywFArxcFCfEGlUIhIuo/KQGlzh3oMCiEVHuUOillgq/L3blzZ6JOp3sBwASwb25vpBCi2ev1vqQoyl8LCgpc5x6gVuLTKynlcwCeA4C0VJO8Z3lWoEIhIjqPdCmwvVgFeAMdCYWK39dZS9UoV6fTvZCcnDw2ISGhUaPRcJ2pC5BSwuVy6SsqKr7X0tJyEYDbzj1GrcyxHEBGl+fpHduIiIKelBLg1wsFjwkJCQktTHp6J4SA0Wh0Z2VlNQO4pLtj1Krx2Q5gpBBiBNoTnpsA3KLStYiIfMpb7IBzczNreyhYaJj09E/H70vb3T5VEh8ppUcIcT+ADzsu/KKU8qAa1yIi8jmvBBxKoKMgIhWo1sdHSvk+gPfVKp+ISA1KsweKlVU9RIOxcuXK1OLiYuOGDRtOBDqWcwWsczMRUTByftIEpfK8gSBEQeX3v/99vt1uV+07PCwszPOTn/xkr1rlBxKHxREREYUYNZMef5QfSEP2hRER9Yd0K3Dvt0EOoplr0rhImM1nPlYPH21Bc4vHF+ERBa1Vq1YlP//884ltbW3ahIQE9xNPPHHWsH6n0ymuv/76bJfLpZk6dWrbjh07LB9++GHx6f233357hhACL730Utn5pfseEx8iIgDSJeHe0jKoYezTLopBcqKp83l1jYOJDw1pe/fuNf7tb39L3LZt2+Hs7Gx3YWGhwePxiM2bNwMArFaruPbaa3Pj4uI8//rXv4rLy8v1jz/+eEpdXZ02Pj7e63a78c4778Ru2LChyF8xs6mLiIiIBkSr1cLlcok9e/aYnE6nGD16tGv8+PFOAGhtbdXOmzdvVHZ2tvPNN98s0el0yMrKck+bNs3697//PQYA1q9fHxUTE+OZM2eOzV8xM/EhomHPc9QO5/sNnLSQqJ8mTJjg/M1vflP261//OjUhISH/2muvzSkpKdEDwJ49eyyFhYVhv/rVr6o0mjPpxtKlS+vWrl0bBwBr1qyJW7JkSb0/Y2biQ0TDmueEA54SB5QarstFNBD33ntvw86dOwtLSkr2CSHkD37wg3QAmDNnTsuKFSsq58+fP6qsrKyza83SpUubCgsLw7Zv3276z3/+E3XnnXc2+DNe9vEhomHN9VULZCP74RANxN69e42lpaWGK664wmo2m6XJZJJe75kBAo888ki10+nUzJ8/f/Rnn31WmJKS4jGbzfLrX/9646233pozadKktpEjR/p1/gjW+BAREYWYsLAwVbP1vpbvcDg0q1atSo+Pj5+clJSUX1dXp3v88cfPWpvzD3/4Q+XVV1/dOG/evFHV1dVaALjjjjvqi4qKwm6++Wa/NnMBrPEhomFKsXrh+rx5UMPXiQIlWCYXnDFjhn3//v2Hz93++OOPV3R9/uSTT1YA6NyWk5PjMplMyre+9a1GP4R5FiY+RDTsKE0eeCuc8B53BDoUomHH6/Vi9erVSddee21jbGys3xfFY+JDRMOGlBKQgPtgGzx72gIdDtGw09LSoklOTs5PTU11bdy48WggYmDiQ0TDiv2NWsgmdmYmCoTIyEjFZrPtDmQMTHyIaFhQmj1w77FCNnsBdushGraY+BDRkKe0euCtcMFzwG+TwxJRkGLiQ0RDmpQS7q2t8BTaAx0KEQUBJj5ENGRJr4RjfR2UZvbpIaJ2nMCQiIYuCSgtHsDNRbiIqB1rfIhoyJF2L6QHgFdy4VEiOgsTHyIacpyfNMFb6gx0GESq+cPvZuTb7U2qfYeHhUV7fvzg1j7NDp2Wljbx6aefLlm4cGGrWvH4EhMfIhoSPCfscO+0AgAULjpKQ5yaSY8vy3e73dDr9b4oymfYx4eIgpqUEp6jNrgPX/jhPe6AUu2GUu0GXGzfIvKHhQsXjqisrDTcdNNNI81m85Sf//znSUKIgj/+8Y/xKSkpE2fOnDkaAP70pz/F5eTkjI+MjJx8ySWXjDx69KjhdBm7d+82zZo1a2RUVNTk7OzsCS+88EKMmjEz8SGioCTdCqRTAZwSzs9b4PpP0wUfniMcrk4902oFjAZN50OnE4EOaUh4++23T6SkpLjWrl1bZLPZdp9edPSzzz4LLywsPPjpp58efe2116Iff/zxlPXr1xfX19fvmTVrlvXGG2/MAdqXsLj66qtH3XjjjQ11dXV71qxZU/zjH/84c+fOnSa1YmZTFxEFJeenzfAWdyQznGmZBmna5GhcOju+8/n+Qy14/+PqAEY0tD366KMVkZGRCgA899xzCT/84Q+rLrroIgcArF69uvKpp55KPnr0qGHz5s2WtLQ05/e///16AJg9e7b96quvbnr99ddjCgoKKtWIjYkPEQUV6ZFwftIIpdLFhId84sr5icjKMEOnO9PIodGwxkdNubm57tM/l5eXG1atWpXxy1/+Mv30NimlKC0t1ZeWlhr27dtniYiImHx6n9frFYsWLapXKzYmPkQUXKSEt8QJeNhPhwZHrxfISAvDqNxwREac3cE2IlyH7EwzSk5yGRM1aDSazj/glJQU1wMPPFB53333NZx73PHjx43Tpk1r/fLLL4v8Fpu/LkRE1BspJaAEOgoaCoQAYqMNuPmbGeclPQCQk23B4m+kQq9nzc9gxcfHu48dO2bsaf/y5ctrH3/88ZQdO3aYAKC+vl774osvxgDAkiVLmkpKSkxPP/10rNPpFE6nU2zevNm8a9cu1fr4MPEhoqDhPeGA7dVq1vbQoM2dGY+lN2Rc8BijQYPv3ZWLnCyzn6LynbCwaFXnbOhP+T/+8Y+rHnvssZSIiIjJa9asOW9E1rJly5p+8IMfVN5yyy054eHhU8aPHz/+gw8+iAKAmJgY5YMPPjj65ptvxiYnJ09KSkrKf/DBB9MdDodqGamQMvAfMGmpJnnP8qxAh0FEAeYpssP5UWOgwxiwby/NQnLimRvV19eX4QSbUvxu3px45GZbkJTQt0qDN94+haLjbYO+7u/rrDullFMHXdA59u7dW5Kfn1/n63KHur1798bn5+dnn7udfXyIKCgoTZ72dbWIBsigF4iLNWLyhGiYw7R9Pi8m2oCYKBcam929H0whj01dRBQUnJ82wb0lJGa8pyCVnGTCnbdm9SvpAYArLkvEgnmJKkVFwYaJDxERhbyvXZqAhV9PHfD5WRlm3HN7NgwGfi0OdfwfJqKAkm4Fru2tkC2ctIcGzmLWISJ84L039HoNYqMNmDU9FkkJPQ5QoiGAfXyIKLDcEu7trUDgx1lQiNHrBMzm9mYtXwxL12gEZk+PQ1OTG9W1zkGXR8GJiQ8REYWknBEWLL524M1bNDyxqYuIiEKSACCE6Hz4yuwZsbhmQbLPyqPgwsSHiAJGqXfDc9TOZi7qt9xsC7Iz1Zl4MDrKgKz0MORPiOLMzkMQEx8iChjvKSdcX7QEOgwKQdMLYlCQf94kwT4TE23ANVckITpSD62WyY+/FRYWGoQQBW637+dWYh8fIiKiHnx7aTY2f1GHr3act75mQP36+tX5tha7at/h5sgwzy/W/3SvWuUHEhMfIgoI52dN8Ja7Ah0GhZDcERYU5EcDAJL9MORcCAGtFhBB2DaiZtIz0PLdbjf0+vMXhA02QfjfSUTDgbfCBdnAJSqo76Ii9RiZE46ROeEwm/133x4XY0DeCAvyRlg4weE50tLSJq5atSp51KhR4ywWy0Vr1qyJysvLGx8RETF5+vTpo7uusv6zn/0sOSMjY4LFYpmSm5s7/pVXXok+vc/j8WD58uXpMTEx+enp6RPfeuutKLVi5v8gEfmVlBLSK9mhmfpFowE0AepqM2l8FG5clI4bF6UjKpINJef65z//Gfv+++8Xbd68+fBdd92V84c//KGsrq5u74IFC5oWLlyYd3ql9by8POfnn39e2NLSsvuhhx6quOeee0aUlpbqAeDxxx9P+Pe//x21ffv2Qzt37jz09ttvq9aBi4kPEfmVbPHC9lIVZCNre6jvbrk+A/PnJAQ6DOrGvffeW52Xl+d+6623oufNm9e8aNGiFqPRKB9++OFqh8Oh+fjjj8MB4M4772zMzs52a7Va3H333Y1ZWVnOzz//3AIAb731Vsx9991Xk5eX505KSvI++OCDVWrFy9SViPzGc9wOT5EdcLK6h/rHaNBAr+e9ejDKyspyA0BFRYU+IyOjs+OeVqtFSkqKq6ysTA8Af/7zn+P+/Oc/J5WXlxsAwG63a2tra3UAUF1drc/MzOw8Nzc3V7Wps/kuIiLVSSnhrXPDe8IB7zFHoMMhIh8SQkgASE1NdZeVlRlOb1cUBZWVlYaMjAz30aNHDStXrsx64oknTjY2Nu5pbW3dk5eXZ5ey/SYoMTHRffLkyc5zjx8/rlrvdSY+ROQXzvca4DliD3QYRP0mpex8UM+WLl3asGnTpqgNGzZEOJ1O8atf/SrJYDDIr33ta9bW1laNEALJycluAHjiiSfijh07Fnb63G9+85uNzz77bGJxcbG+trZW+/vf/161qbPZ1EVERHQBW3Y0YufeRgBAqzU4+qaZI8M8as/j099z8vPznc8+++yJlStXZi5dulQ/ZswY+9tvv11kMplkQUGBY/ny5dVz584dq9Fo5OLFi+unTJliPX3uypUra48ePWoqKCgYb7FYvPfff3/Vli1bInz7qtqJYMhg01JN8p7lWYEOg4hUIqWE/ZUaSKs30KGo6ttLs5Cc2Dl6F6+vL8OJk7YARjR0TJkYhZG57UPZ/W3Tf2vx5bbeJzD8fZ11p5Ryqq+vv3fv3pL8/Pw6X5c71O3duzc+Pz8/+9ztrPEhIqKgt3t/M9xuiYQ4I6IidT5dlLQnUkq0tHrgcCiqX4v8h318iIgoJBw40oIXXy+F4seGilfWncSufU3+uyCpjokPEalKqXfD8WYdpG1oN3ORfzgcXrz0einKK9lRngaGTV1EpCrpllBqfb/CMg1PUgLVNU4cPNICp1NBTrbF59coLbOhrsEFQMLlYjPXUMPEh4hUI90KJL84SAXbdzehqdmNlGQTTEaNT/v8HDjcgj0Hmn1WHgUXNnURkWpcX7TA+W7vo2GIBqLoeBuefuE43O7Aj06m0MEaHyJSjwIuRkqqSU8Nw5yL46DT+aa2x+uVePv9CpRXcnbxoYyJD4UUqUh4Tzrhk2EdQkCbaYTQBmjJZyIalHCL1qd9fCSAEydtcDrZPDuUMfGh0OIFnB81Ar6o2tYAYbclAQbNeduFxv/JkFQkIKF6Iia9EhDqvkYpZUdtD6t7yH+klPB6JbRa0a8+P16v7DyXhj4mPjR8KYD9tRrgnM9Hw7QI6Cf7f3ZY12fNkC1emP4nTtXrODbUQ5Okh3F2lHoX6fjdcgg7+dOpCjveeLsc994+AhZL37/e3tlYieITbQAAZ4h0xr9idUF+s71Jte/wqLBoz79/unOvWuUHEhMfChneGhc8e9sAjw/vyrqpOfIctUPaFegvjvDP7LBeCdd/m+E95YQI06p+PbglvCVOOB3taw/pp4RDE6v3+WWkS2mv9SHyE0UBHE4FH31ag0njo5Dbx2Ywt1sJmYTnNDWTHrXKd7vd0Ot9/1nTX4Ma1SWEKBFC7BdC7BFC7OjYFiuE+LcQoqjj3xjfhErDkVQkvFWu9keZE56jdtU7yyq1bniK/TM5mnQoUKpc8ByxQzZ7Id1K5+tV2tSrLZFNHniO2OE5Yoe3zHnmd9zLQ/oy6SRSyaHCVhSfsKK69sKdlBVForzSDjuXpBiU//73v+axY8eOs1gsU66++uqca665JmfFihWp7777bkRSUtKkVatWJcfHx+ffcMMNI2pra7Xz5s3Li4mJyY+MjJw8b968vOLi4s5s6Mknn4xLT0+faLFYpqSlpU3861//GgsABw4cME6bNm10RETE5JiYmPxrrrkmZ6Dx+iKjmyel7Lp42kMAPpFS/lYI8VDH8wd9cB0aZqSUgFOB4626gI0MklKqWuvjrXDC+UHjmevVe+D4Z/ufk35mJPRTLD67/pkFic/+Zbr+29LnMsJuSYCICfwdG1Fvtu9uQslJG5bfNqLHY1xuBa++Uca+PYPgcDjEkiVLcu+7777qn/zkJ7Vr166Nuuuuu3Luu+++KgCor6/XNzQ0aMvKyvZ5vV5YrVbNbbfdVvfOO+8c93g8uOWWW7LvueeezI8//ri4paVF87Of/Szziy++OJSfn+8sLS3V19bWagHgpz/9aer8+fObt2zZUuh0OsXnn38+4F7taszjcx2Av3f8/HcAC1W4Bg0DnkI77OtqA5L0yBZv+2riTR7/X7yDe2crHBvquyQsgyOt7a9JaQjcayKioWXTpk0Wj8cjVq1aVWM0GuVtt93WNGnSpLbT+4UQ8rHHHqsICwuT4eHhMjk52Xv77bc3RUREKDExMcovfvGLym3btkV0PX737t1hVqtVZGVluadOneoAAJ1OJ0+ePGksKSnRm81meeWVV1oHGvNgEx8J4CMhxE4hxPKObUlSysqOn6sAJHV3ohBiuRBihxBiRxs7QFJ33BKyLUBV0LI9UXDvaYOnRJ05PdxHbO1Ndz1xSSj1bri3tvqmk7DS/prU7nejNHrg3tYK8C6aglhltQP/3VIPxZ8rng5BZWVl+qSkJLdGcyadSE1NdZ3+OSYmxmM2mzt/ya2trZpbbrklKzU1dWJ4ePiUBQsWjGltbdV6PB5ERkYqL7/88vHnnnsuISUlJf+yyy7L2717twkAnnjiiVNSSsycOXNsXl7e+D/96U8DHgUy2MTnEinlRQCuBvBdIcTcrjtl+61qt+8qKeVzUsqpUsqpFrMfOnQSDYDnkA3eMqcqZXuL7PAW95JUOSTcO63w1rqhNHmgtHgGVAMkHQpkq39uMJRmD9y7rADvZyjIKIpEQ6MLDY0unChtw9adjZxxYZDS0tLc1dXVekU5c0dVUVFhOP3zuU31//d//5d07Ngx05YtWw5brdbdH3300RHgTFP84sWLW7788suiysrKvSNHjnTcddddWQCQmZnpWbt2bWlNTc2+p59+uvTBBx/MOnDggHEgMQ8q8ZFSlnf8WwPgXwCmA6gWQqQAQMe/NYO5BhEBzncbYF9T097/ZwAf1O69Vjg21Ps+MKIQYm3z4K8vncBfXzqBTf+t6/0E6tXll1/eptVq5erVqxPdbjdee+216H379vXY/6a1tVVrMpmU+Ph4b3V1tfZ///d/U0/vKysr07322mvRLS0tmo6mMeV0TdKLL74Yc7oTdFxcnEcIAY1GM6C0dcCJjxDCIoSIOP0zgAUADgB4B8BtHYfdBmDDQK9BNNR4iu2wr6uBfV0NvJWu3k84h7QrcLxRC29t/88loqEjKixa1c56fS3fZDLJdevWFb/66qvxUVFRU9asWRM7b968ZqPR2G1S8tBDD1U7HA5NfHz85BkzZoxdsGBB52qwiqKIJ554IiktLW1SdHT05C+++CLimWeeKQWAbdu2WWbOnDnWbDZPWbRoUd4jjzxycty4cQP6IBzMqK4kAP/qqMbSAXhdSrlRCLEdwBtCiG8DKAWwZBDXIAp50qXAU9g+DN9b5YJSN4jPKwko9Z728hwS2owL1/RKKeEptEOpcQ/8mkQUdIJpcsG5c+fajhw5cuj080mTJo255pprXNdee21rdXX1vq7HZmdnu7dt21bYdduPf/zjOgDIyspyb9++/ax9pz3zzDOnnnnmmVO+iHfAiY+U8jiA/G621wO4fDBB0fAhlfYh652EAIz9m25edR4J6VD6FVf7UHwJSAnF6oXrs+beT+pPSHvbIO1Kr4kPALi3tfqtfw8RDT/vvfde+MSJEx0pKSmeZ555Ju7o0aPmhQsX9n2eDD/jzM0UUEqdG471Z9raRaQWYbcmBjCi83kO2eAtcbSv69WPfMz+zzrIZg4dJ6Kh7fDhw6Zly5bl2u12TXp6uvPll18uzsrKCtpqZiY+5HdSkXB+2AjpkoBbObuzbpCOsJAOBY7/Vw/D7Cho43uewM+9vw2e4+0jtaTVo+rrUU45YT+nw7LQAMYrYyDOXXiViEglDzzwQN0DDzwQMr3FmfgMEUqzB0pdcCXY2lQjRFg3X8AS8JY725uCQoUCKKdcQC9T2yuNHiin1Bn+fi5pUyBt51xLA66PRUR0AUx8hghviaNfSw/4g2lRHLRhZ/qgSK9srwEJ4QnDpCIhvRJCG0R9kKhbQgBaTc//TxLgUgVEwxATH/Ib53+a4D3RMWFfN6uihwLnB43Q5ZlgvJxr7wa7nGwLFn09pcf99Y1uvPR6qR8jIqJgwMSH/McjQzbh6eSRXKE8CM2ZGYfoqLP7XkVG6GE09jwrfGwM8I2rkrvdd6rCjt37fDsSj4iCAxOfEKE0eSDtPQ9JVlpCf7iyCNdCk8CVv6n/8kZYkJoc1q9zTEYtJo2L6nafxaxDTa0T5ZXqrNNGRIHDxCeAeltzqeucMe5dVngO29QOKaB048wwTIvo/UAileVmW5CeGoY//fUYPOwHRDSkMPEJIM8BG9w7W7vdZ7w8GtoMk58jIgotEeE63H5zJixmfpTR8BKf+Zv8+gabam/8uFizp+7kz/wyO/TKlStTi4uLjRs2bDjhj+vx0yKApEuBbOt+7LEcgvPe6UaHQZOkhwYC07UGFBdbUdGlKcFb5oRLC+inhAfXzM0UlLIzzBgzKgIR4TpV3i86rcCls+Ox72Azauu5NhoFFzWTHn+U70tutxt6fd+7SYTMC6OzmcO0CDP13HEzGDh1mrPm74vKMcMgBDQApuvNaGtxn5X4KJUuyDYv9FPC/R4r+YZi9UK2qdffTKsViI5s/4AbmRuOgvxoVa918dRYnKqwM/Eh6sETTzwRt2HDhpj//Oc/xwAgKytrwrhx42wffPDBcQBITk6e9NZbbxU9//zz8R988EGM1WrVZmVlOR577LGyq666yrp+/frIp556KllKCbPZHJ2RkeEsLCw8VF9fr73vvvvSN23aFCWEwE033VT3+OOPV+h0Ojz55JNxL7/8csKUKVPa/vnPf8YtW7as5sknn6zoa8xMfELU9ItiMGt6bKDDuKA33XZUyDNfgvN0RuRq2t9yrNEZmlybm+AtUW8Cx/hYA769NEu18omof6644orWn//85xlerxdlZWV6t9stdu3aFQ4Ahw4dMthsNs2MGTPse/bsaVu9enVFXFyc95FHHklaunRp7smTJ/ddf/31LV9++WXVuU1dN910U3ZCQoKnuLj4QGtrq+aqq64a+cc//tF1ekHTffv2WRYvXtxQW1u7x+l09usLhYmPHxVo9RirOVMdJ/NNkCPjuj12c5gb5V3qS+bMjEPe1DNrWFks2qBPHhboTfB06cAdITRBH3NfeE86YVtbAwAwzIqELpN9sfxpKLyHiIaKcePGuSwWi/LVV1+ZDx06ZLz00ktbDhw4YN69e7fps88+s0ydOtWq1Wrxne98p+H0OQ8//HD1H//4x5S9e/eaZs6caT+3zLKyMt3mzZujGhoadoeHh8vIyEjl/vvvr37xxRfjTyc+CQkJrlWrVtUAgF6v79cIBCY+fjJeo0e2Rod4TZfmKYsWsHR/vMHtBZQztSWRETokag0qR+lb0UJzwUU9szLMcDgVHCrsvoN30HJJyPqOTlihtOwGEZEKZsyY0frxxx9HHDt2zDh37tzWqKgo78cffxy+ZcuW8Dlz5rQCwC9/+cuk1157Lb62tlYPAG1tbdqamppuc5Bjx44ZPB6PSElJyT+9TUopkpOTO9ucU1JSBrxGExMflYR1+cYXAGbrDDCLvi8caYQ4qwxdf5YFDxHjRkciJsoQeokPERF1mjt3but7770XferUKcPDDz9cGRMT412zZk3srl27wr///e/XbNy4MfzPf/5z8saNG48WFBTYtVotIiMjJ5+e0kUIcdYdZE5OjttgMMiGhoY9PXVaPvec/uASzirQAbjdYMHdHY+7DJazkpi+WKAzdZ5/t8GC0RrmqEREFHyuuOKK1q1bt0Y4HA5Nbm6ue8GCBa2fffZZVHNzs27WrFm25uZmrU6nk8nJyW632y0eeOCBlLa2ts7mj6SkJM+pU6cMXm97K0dWVpZ79uzZzcuXL89oaGjQeL1eHDx40Pjee+/5ZOQLv0196BKtEUkaDQQAPQDNIPoiDOZcIiI6nzlMi1uvT1et/N8/c0S1ss8VF2v2qD2PT1+PnTRpktNsNnunT59uBYDY2FglIyPDGRsb69HpdFi8eHHz+vXrW8aNGzcxLCzMe88991R3bbZatmxZw7p162JjYmImp6enOw8dOnT4jTfeKFmxYkXa2LFjJ9hsNk16errrhz/8YaUvXltIJz4aADka9RqBihUPup9l54woCCR29NvJ0miRoAnuIebBxmTSYOyo9tma66UXDVoJ77H2Ie5K7YCbcGmIcji9OFTYgrwR4TAYWGE9nIzIMsN0ztpraSn9G1ig02mQndlDx8oQ46/JBfuqtrZ2X9fnBw4cOHz6Z51OhzfffLMEQMnpbY888kj16Z+Tk5O9O3fuLOx6flxcnHfNmjUnAZw891orVqyoX7FiRf1AYw3pxEcP4GqdCVoVake8UuIlVxscuHAzYo5Wh0t1HNUzUDHRBnzz2lQAwFaPE1sbbGh9rSbAUVGwarTbtxEAACAASURBVG7x4F/vVeK+O0Yg1uCfzv5arYBO17fPGNbTqkOnE7h8TgKSEvlZS4MX0omPmjQAbjNYekl7ANbv+M5UrQE5BoHnAh0IURffuDIZSm9Vvx10eqY+vhYVqcPyZSP4uyWfYeLTAyEEuE64f2mF4BsyyLm+bAH0PTcxDcXmSZ2OTWqBJISAXi/6NH9TfKwB112dAgA4cLgFLa1D7/1Ig8fvGQoqOp0GmWlhvda0AYDTqaCmTr1ZgvtDSgml2q3qcg3BQM1ZmYkGy2LRYcLYSABAZbWDiQ91K6QTH1Z8Dj0R4Tp868bMPh1bWmbDmvVl522XgZhTUAKO9xsAex/bRIaR0zfqAfl/ISI6R8gmPmM0OszRGTkR0TCWlhqG792de972V9edRGMz7/SCweVzEzB+TPsd+Euvl6LV2ucRskREqgjZxEcHAUs/ZkKmoUenFYgIP/stLKXE7BlxsDvOb3LyeCQ++6qONQ8+NHVyNKIie+4Nl5NlQUS4DlJKzLk4Dk6Xb2rEzGGhMaxgyqRo5GRb4FUkPv+qHl4v33z9kZNlxpiO6S6IfCUkE59ICFg4wR91QwiB/AlR3e5zuhQcKWpFY5MLLrfvv4A00TqYwyRM/WiEdboU1WtBRLQO6DIcW7Z4gEF2RdJogNhoAyZPiOrTEGMhBKZMih7cRUPQ6TmqPB4FhUWtcHfzvvN4JZpYQ3memGg9RuWGY8rE4fe+IXWFZOLzdX0YkljbQ/1kNGjw7aVZeHNDOYqOt/m0bKERMC2Kw6V6E/I1fR8PWFRsxZvvVPg0lrPiEgKmb8Setc3xRh2UusF90VrMOiy/LZsrpfeRTqfBHbdkdbuvtt6F518p8W9AIeCWxemIjgqthZmHo7S0tIlPP/10ycKFC89adPHdd9+N+Pa3vz2iurp6X3fnLV68ODstLc315JNPqvcB2IOQTHwA8AOXBkQIgSvnJ2HenDNNLp99WYcjRdbO59OmxGDKpLNrjex2L157s6yzmUynE1h2Yya+CvfiZMf83qffk8H23jwdj2L1wvFOfXuNTz/FROtxw3Vpnc+1muB6jaGgp/dFbLQey2/LPm/72+9XoqaWo+ioew+Pysq3NTao9h1ujon1/O/R0qCaHdpXQirxMQCYoNWzmYsG5dw+KWNHRZy1LXeEBQlxxrOOcbkUzCiI6Ux8tFqBxHgjjIoDfZ7drhsx0QbMKIjpdt/JU3ZUVjsGXPZ5vBKysX9Jz0WToqDXaxBu0Z33OyHf0Ok03f5u9X2cLVotBoMGUyZ232zsS80t7rNuPHwlK8N8Xh/AoUTNpMcf5QdSSL0wIwTmaI1Bd0dNoW3c6EiMGx15wWMMBg0un5t4/o5B9tVNiDfia5d2Uy6Az7+q65yHxGb39q1TtgSkzQtoAXGBiQYvxGjQQKdrnzBu7qx4WMwh9TExZISZtLCYtZAAbDb/zg+l1wvExehx+dwE1T9vj5e0nZX4aDRAWJh20NcdleuThbypD7Zu3Wr50Y9+lFlbW6tfsGBB0yuvvFJ67jFffPFF2N13351dWlpquuyyy5rP/f/9+c9/nvTss88mCSHw0EMPVfzoRz/K2r9//4EJEyb4vNqTHWWIgtQlF8dhxfJcrFiei9iYPvZ1kIB9bS08hfYBX/fK+YlYsTwX37s7J2RGTw1FNyxMw4rlubj39hHQav17szd9Sgxuv7n7PklqS4w3YsXduYiMYMIdKtavXx/34YcfHi0qKtp//Phx00MPPZTSdb/D4RA33HBD3o033ljf0NCw5/rrr2/cuHFjdJfzI5955pnkDz744GhxcfGBzZs3qzqUj+8soiAlhOic/O9/rko+a0TQh5uqUVvn6v7EbmqGxml0GBttgnJD781V8bEGaNiHJ+A0QgCivQbulsXpPp2G4fOv6lB6qvvk+LqrU5CeGha494AA338h5u67767Jy8tzA8CDDz5Y+cADD2QsWLCgs7Pzpk2bLB6PR/ziF7+o0Wg0uOOOOxqffPLJpNP7161bF3vjjTfWTZ061QEAjz76aMU777wTe/6VfIOJD1EISE0OO+v5mJERSIhzQVEkCo9Ze/1SjBQaZOj1QAZXoAs1Go1AZrrZp2VW10YAQqC0zNa5zWTUIDfbguxMM8It/vtqsFh0GDf6zA1+TBTfo6EmMzOz8y4sNzfXWVtbe1YVdVlZmT4xMdGt0ZxpZEpPT+9swqqqqtIXFBS0dSmjh7s63wiZxEcDQM++PUQAgLkz4wG0d7ouLTsOj/fszka8Y6YLmX5RDJISjKioOlPrExdrwMJrUv0eS1KCEYsCcF3ynZMnT3YmOsePHzckJCSclbikpaW5a2pq9Iqi4HTyU15ebhwxYoQTAJKSktynTp3qLKO4uFjVeQxCJvG5SGvAxVrO6UDUlV4v8L27c87b/qnixEFweQjqWUZaGH54b96ZDcyVaYBeeOGFhMWLFzeFh4crv/vd71Kuu+66xq77L7/88jatVisfffTRxJ/85Ce1a9eujdq3b5/5kksuaQGAJUuWNHz3u9/NvvPOO+tHjhzp+uUvf5nS/ZV8I2Q6N2sA6ITgiC6iLoQQ0Os15z1Y40O90WjOee/oQubrgNA+z06wlL948eKGBQsWjMrLy5uYlZXlXL16dWXX/SaTSa5bt6749ddfj4+NjZ38xhtvxF555ZVNp/cvWbKk5a677qpZsGDB6Nzc3AkzZsxo6zhPlVWfhQyChYvSUk3ynuUXHkEwXWvALB3nEaHg8p7bjiLlzOfDZTojJgdBzeQnbgf2K2dmZ75Ya8DF/PshUlXUz3bulFJO9XW5e/fuLcnPz6/zdbnBateuXaZp06aNdzgcO/X6gff52rt3b3x+fn72uduZ4hMNgjjnQURE/ffKK69E2+12UVtbq33ggQfS582b1zSYpOdCQqaPD1EwulxnwmVdxo/rmf4QEfXb888/n/Dd7343W6PRYPr06a0vvPDCSbWuxcSHaBCMIjjrekZqdYjpspBvioYTERJR8Pr888+L/HWtIZn41EoF1l76LmkBZAgNO0vTkJSp0SGTDdlEROcJisRHAuiuk/W5SUlfO2K/5LbjI++F5z+KhcBaU1QQ3qsTERGRWoIi8WmFxKfy7EX4RgoN0rukJf/P48Tznr6tVF0vVRkBR0RERCEuKBIfBUDbOdvc5zxvhkQZExoiIiIahKBIfLrjBmDv0rTlCYL5hogCTZFAmyvw8/EISFgMLrCLHBGFmqBNfI5KBUcDHQRRkLG5jPjLV/OgyMBmHJFGB74zc1NAYyAiGoigTXzUNE+rx2KdiR2bKSRJGfgh9G0uI17dfXG/ovjmhF2wGFRddJnogtpcBrx14CIVr7BTxbLP9uht4/NtrY2qfYebI2I8q/5+cK9a5Z9r5cqVqcXFxcYNGzacUPtawy7xmanRY6bGgDGaYffSiXzGKzUob47txxkSB6tTEaZ3w6j1YGR8NZvJqFt2tx7H6hP7dGyU0Y7MmIY+HVtrDUdJYzxONccg0DcOvqBm0uOP8gNpyL6wntylD0MWJ3OjkCVh0Hrg8uogQ+rDW+CTY+MAADFhbRgZXx3geEgtHkUDrzLw92ZtWzjePZzfp2NHJ1R2Jj4erwbec5qAhQAM2vYRw8fqE/Hp8TEDjou6l5aWNvHOO++sWbduXVxZWZnxG9/4RsNjjz1Wfuutt47YuXNneH5+ftuGDRuKGxoatGPGjJn45JNPlvzmN79JdTgcmuXLl1f/7ne/q1q/fn3kU089lSylhNlsjs7IyHAWFhYemj59+uiZM2e2fv7555GFhYVhkydPtq5fv/5ESkrKoBZoHXaJD1Eosxhc+N7sT/CPPTNQ3hIT6HCIzvPfE3nYfmrEgM8f6DiWjUcn4HBNylnb4i2tuGPqlwOOhfrmnXfeifnkk0+OejweUVBQMO7KK680P//88yVTpkxxzJ8/f+Rvf/vbxOXLl9cDwBdffBFeVFR0YP/+/aZLL7107I033th0/fXXt3z55ZdV3TV1vfXWW7HvvfdeUU5Ojmv+/Pmjfv3rXyf95S9/KR9MvEx8iEKIEIBeq+DSnELY3QZ4FA3eOzIJiuQ0zTR4UgL/LhoH6yBGDtZaI+BR/F+r7pXivOs22Cx468AUXDHykN/jGU7uvffemoyMDA8ATJs2zRofH++ePXu2HQC+8Y1vNG3atCkCQD0APProoxXh4eFy5syZ9tGjR9t37NgRdtFFF/U4Sd/NN99cP2nSJCcAfPOb32x47733ogcb77BJfDReLaJbE1BpMEMRGmg1CjKiGtnPgEJSVkf1vtOjhUZIKCEy20NMWBvSoxoDHUZQ8ygalDUNrDZPr1WQFtn/z7X6NgtanCYAAoW1ybC6TAO6frBxefUorE3GpSM4RlhNKSkpnVPvmUwmJSkpqbMpKiwsTLHZbJ0ZaWZmprvrPqvVesEsOTk5ufN4s9ms2Gy2Qd/lDZvEx+SyYPKR+djU0S/CYnDg/ln/CaleEkTdEUJCIxRIKYK434+EgER+ShlmZh0PdDD9osjTI+n8w+o0Yu3e6RhIB9yYsDbcPf2z9nWA+mFHeRZ2lWf3+3pEviKE8Nvt27BJfIiGIoPWi+9c3D6fTmlTHN4+qOZQ3cG5Y+oXiDWfO0d78Hv/yKQ+jzLyhcHM1dpkN+OpLy/v93luLwd8UGAlJSV5Pv30U4PX64VWq+77kYkPUQgTAjAb2muCUyObsGDkQQDAoZoUnOrXcHP1mfRu6LWht+yM06OD3W0IdBh9IiFCJlZ/CDc4MCurGBaDM9Ch+Jw5Isaj9jw+apXdnWXLljWsW7cuNiYmZnJ6errz0KFDh9W6FhMfoiEiyuRAQXopgPYhwcGS+Og0HsSZ26D1X002EYD2ZPv038RQ48/JBS+kvLx8f9fn547KWrlyZd3KlSvrAEBKedYMj9u2bSs8/XNycrJ3586dhT3tB4AVK1bUr1ixon6wMTPxIRqyuiYager7I5EY3orbCr4K0PWJiM7GxIdoCJozogjTM9pvvF7fMwOtzrCAxDF3xFFMTB7UlBtERD7FxIdoCLIYXLAYXJASmJpeAodbD4dHj90VmfBn7Y/F4ESkqccpOoiI/K7XxEcI8SKAawHUSCkndGyLBbAOQDaAEgBLpJSNQggB4AkAXwdgA3C7lHLXgALz6KH16gdyareMrsDc8RIFkhDAxZntNT+N9rCOxMcfJMINzs7lAkKZWe9CmN4Ju3vgk/oRUfDoS43PywD+DOCVLtseAvCJlPK3QoiHOp4/COBqACM7HjMA/LXj337LOTUJ6VWjB3Jqj0TQznFCNLRohcRd0z+HSefu/eAgd9XoAxidUIV1+6YHOhQi8oFeEx8p5WdCiOxzNl8H4LKOn/8O4FO0Jz7XAXhFSikBbBFCRAshUqSUlX2OSArkF16KiLZYJipEPhRhdGLZRe2djAtrk7G1LEfV6wnIITEzuhAYCot5E1GHgfbxSeqSzFQBSOr4OQ1AWZfjTnVsOy/xEUIsB7AcAAxRZ8IQACKtcTB4hsaU6UTBQqdRkBbVBABwK1q0Ok04VJMCX3+rRxjtyImthVYTenP2ENHQN+jOzVJKOZCppqWUzwF4DgDCU0xS62nvzyP8ODU80XCVHVOPpPAWnGiIh8Org/ThIqfxZisuzzsC3RBKfDRCwqh1w+nVgdU/RKFtoJ921UKIFADo+LemY3s5gIwux6V3bLugcFsM5u5cjLk7F2POrm9C72EnQiK1mXRu3D/7P8iMbvBpuSWN8fjzl/Ph9AydQaNZ0fW4f9Z/hkSfJSJf2rt3r3HMmDHjLBbLlEceecSna7ukpaVNfPvttyO627dx48bw7OzsCQMpd6CfTO8AuA3Abzv+3dBl+/1CiLVo79Tc3Jf+PUIKaCTXiiHyJyEAnVAwd8RR2NJK4JUavHs4Hx5lcH+LEgJexXc1SMFACLDpjoJKy58uz4e9Wb27i7AoT+QPPul1duhHH300efbs2a1/+9vfDqkWSzeuuuoqa0lJyYGBnNvrp5MQ4h8AvgIwWghxSgjxbbQnPFcIIYoAfK3jOQC8D+A4gGMAngfwnYEERUT+kx7VhFEJNRgZX4Oc2FqEGzjvTneEaG8ijDDaAx0KEVRNevpR/qlTp4zjx48PqT+KXhMfKeXNUsoUKaVeSpkupfyblLJeSnm5lHKklPJrUsqGjmOllPK7UspcKeVEKeUO9V8CEfmCTqNg8cRdyIwZ7FI4Ehox9GpHNEJi0YTdyIur6f1gomHg4osvHrV169aIn/70p5lms3nKvn37jFVVVdr58+fnhYeHT5kwYcLYFStWpBYUFPQ4N82aNWui8vLyxkdEREyePn366F27dp01smnr1q2W3Nzc8ZGRkZOvv/76bJvNJgDg3XffjUhKSpo0kLiHVn00EQVcdkw9vjtrE4w6vy7uTER+tmXLlqMFBQXW1atXn7TZbLsnTZrkvOuuu7LMZrNSWVm59+9///uJN954I76n8/ft22e86667cv7whz+U1dXV7V2wYEHTwoUL8xwOR+cIgvXr18d9+OGHR4uKivYfP37c9NBDD6UMNm4mPkTkU1qhIEzvHhJz+FBwq26NwsbC8dhYOB6VLdGBDmfY83g82LhxY/Sjjz5aHhERoRQUFDiWLFlS19Pxr776auy8efOaFy1a1GI0GuXDDz9c7XA4NB9//HH46WPuvvvumry8PHdSUpL3wQcfrPzXv/4VO9g4h86wCyLyiWiTHTFhbWi0WwIdSlCKNDkQZ7ai3hbe+8GkqiaHGbsrsnrc71E0qGqNBAC0Ojk3nNoqKip0Xq9X5OTkdA5/zMjIcF3geH3X/VqtFikpKa6ysrLO9aoyMzM79+fm5jpra2sNg42TNT5EdJZLc47i66P3A5AdD+pqVlYxvjF2T6DDoD5oslvw0o5L8NKOS7CzPDvQ4Qx5qampHq1WK0+cONGZuJSVlfWYqKSmprq77lcUBZWVlYaMjIzOxOnkyZOd+48fP25ISEjoMZHqKyY+RHSelMgm3DNjM8L0g/6MIaJhQqfT4corr2xatWpVamtrq2b37t2mN998M66n45cuXdqwadOmqA0bNkQ4nU7xq1/9KslgMMivfe1r1tPHvPDCCwnFxcX66upq7e9+97uU6667rnGwcTLxIaLz6LUKosNs0PR/UvZhIdzoxOzsIhg5oSEFSliUuqMHBlj+888/f7K1tVWbkpKS/61vfWvEwoULGwwGQ7cfJPn5+c5nn332xMqVKzPj4+PzP/jgg+i33367yGQydR6/ePHihgULFozKy8ubmJWV5Vy9enXf1/7sAfv4EFGPIo0OuL1auLz63g8eRiKMTszJLsKBqjQ4PfzdkP/1ZXJBf9i2bVth1+epqameTz/99Njp5/fdd19aSkpKj1XHy5Yta1q2bFlTd/vKy8v3A8Dq1aurzt2nKAr0ev2A7sxY40NE3RIAbiv4EvkppwIdChGFiN27d5u2bt0apigKNm3aZF67dm38okWLuk1sBmPfvn1hGRkZzoGcyxofIuoWh6MTUX+1tLRovvWtb+XU1tbqY2NjPffee2/1rbfe6tPE54477sj46KOPol944YUTAzmfiQ8RdUtK4FBNKmrbOGy7J2MTK3GiIR7V1qhAh0IUFC699FLbyZMnB7SGVl+99NJLZQDKBno+Ex8i6pYE8MmxMWhzcf6T7ggBzMsthFajMPEhCiHs40NERBTcFEVR2PjcDx2/L293+5j4EBERBbcDtbW1UUx+eielhNPp1JeWlkYD+G93x7Cpi4jOY3frcao5Bl5FG+hQgl5sWBuyoutQ2hSH9rFwRL7l8XjuqqqqeqGqqmoCWGHRG0UI0ez1ep9UFOWv3R3AxIeIzlNjjcD6/VMDHUZImJBcgbSoRjyz5bJAh0JDVEFBQQ2A/wl0HEMFM0ciIiIaNoZt4uP06LGxcAIabOZAh0JERER+MmwTH4+ixd7KTLS5jIEOhYhCnE6jICWiGTpNt4NIiCiIDNvE5zSJ9onaiKgd/x76L8LoxO1Tv0Sc2Yr2TxUiClbDPvF5++AUfHJsbKDDIAoaHx8biw2HpgQ6jJB0w6QdmDOiKNBhENEFDPvEp81lgs1tCHQYREHD5jawCXiAIoxOhOl7XIiaiIIAh7MDcHm1aLKHIcpk9/nCjG6vBlYffYnoNAoijANajJaIiIjAxAcAUFSXhNLGeKyY/TH0WsWnZVe2RGPNnhk+KSs1sgm3FXzlk7KIiIiGIyY+AAABt1eLV3fNxPy8I8iOqfdJqZuPj8LhmhT4ajbXWmsEXtw+u9fjrh59ACmRzT65Jg0fHkWDf+yZjjquxj4oYxOqEGduw9o90yE5kzNR0GHi00FCoNoaBadn8L8SRRHYV5WGEw3xaLRbfBBdO7ei69Mq0C4vlxnwpRprBE41x/i83Ny4GkSZHD4vtzsVLVGoar3we8erCFS2RMEr+f4ZDLPBhUS0QAgJKZn4EAUbJj7ncHl1cHq0MOoGNh+HVxGwuQ34uGgc3Epgfr1Orw52t94nZRm0Hmg1/h+e6/TooATJl8ax+kRsPj7a5+UumbRd9cRHyvbf5ZGaFGwty1H1WkREoYCJzzneOzwRh2NTsCR/x4DOP1afiLcPTgnol/ZbBy7yWQX7DRN3ICeuzkel9d0/9kxHtTXS79ftTqjftb+8czaa7JyhnIgIYOJzHgnNoJIWKQUUGdhZAqTU+GwKtc0nRmH7qeyztsVbrLg874iPrtA9JQh+j6GuwWbGv4vGodVpYl8TPzPqPLh+4g5sPj66T83TROQ/THy6YXMbUFSXiJzY2n4185xqjkZlL/0oQk1Va/R525odZmRENyAnpg46H4+Cc3u1ONEQB6fHN011way8JRphehdSVeqI7vTocLwhUZWy6cK0GoncuDpsY/MiUdDhLXU3qq1ReOvARbC5DfAomj4/PjsxCltO5gY6fNXV28Lxz/0FsLqMUHzY/UeRAs0OE/55oABNjqHfNPNFyUh8UZLX+f7x5e/Sqwh4WWNGRHQe1vj0QJECz22d268GApcyvEbD/G37HMzNKcS09FKflLflZA6+Kh36iWNXxxsS8OR/LwcAXDn6AMYnVfqk3E3FY7CnMsMnZRERDSVMfHok4PIO/eaWgRNweXU4UJWGNpcRl444OuBZr6Vs/6I+0RgPl3d4vSUVqYHT214z41V8V0PjUTRwD7PfJRFRX/CTkQalqjUadrcBI+NqkBje0u+Zr11eLWqsEThYnQqry6RSlKGhyW5GeXN7n6rkiOYBTSMgJVDVGhXQtbYcHn3n64gOs8Fi4NpVRBQ82AmABq3ZYcYru2ahyWGG7Md3tZRAfVs4Xt01a9gnPQDwRelIvLJrFl7ZNRNtLiOkxFmP3kgJeKXA2r3TcLQuWf2Ae1DeEtPxOmahqC6pX+8JIiK1scaHfOYfe6ajIK0Us7OL+3T85hOjsI/9ULr1952zoBFnMoabJ29FrNl2wXPKmmPwzqHJQTUiblPxaByrT8T1E3cGOhQiIgBMfMiH2lwmHKtPhKePnbyP1ycEtEkmeInzasC2luXArD+7ySgxvAVjE6sAAAerU3GsLhGtzjC/RdkXDo8BlS1R2Hx8FGZkHodJ5wl0SEQ0zDHxIZ+qaIlBRYvv17Ua7vZUZJ63bWR8NZLCWwAA+yvTcKIxwd9h9YnVZcKXpbkYEVuLBEsrwvRMfogocJj4EIWoorpEFNWFygSFAmt2X4xLc45iVlbfmkKJiNTAxIcoZIXaMhQCO05l4XBNCgBg0fhdvfZbIiLyNY7qIiK/aXOZUGONRI01Evsq01HWxGZRIvIv1vgQUUB8dTIPdrcB8RYrTDr3gCfAJCLqD9b4EFHA7KnMwAvb5oBT/RCRvzDxIaIAElAkq3qIyH+Y+BBRQHkVDY7WJsPmMgQ6FCIaBpj4EFFAOb16/OvgRahtCw90KEQ0DDDxISIiomGDo7qIiHzM5dHio6LxrMUiCkJMfIgooDRCQUpEM4xDZB0vq9OIKmskDlSlQYbcJJNEQx8THyIKKJPOjaUXfQXNEMgRpAQKa5PwUdGEQIdCRD1g4kNE5CPr9k1DRUt0oMMgogtg4kNENEh2tx5bTuagujUSTo8+0OEQ0QUw8SEiGgSbS49qayS2nMxB6C0cSzT8MPEhIhqEHeXZ+KIkD0x6iEIDEx8iogGQEnhj31RUtUaBSQ9R6OAEhkREA1RvC4fNbQx0GETUD0x8iIiIaNhg4kNERETDBhMfIiIiGjaY+BAREdGw0WviI4R4UQhRI4Q40GXbr4QQ5UKIPR2Pr3fZ91MhxDEhRKEQ4kq1AiciIiLqr77U+LwM4Kputv9RSjm54/E+AAghxgG4CcD4jnP+IoTQ+ipYIiIiosHoNfGRUn4GoKGP5V0HYK2U0imlPAHgGIDpg4iPiIiIyGcG08fnfiHEvo6msJiObWkAyrocc6pj23mEEMuFEDuEEDtsbtsgwiAiIiLqm4EmPn8FkAtgMoBKAI/1twAp5XNSyqlSyqlmvXmAYRARBY6ABCADHQYR9cOAEh8pZbWU0iulVAA8jzPNWeUAMrocmt6xjYhoyFlW8BWmpZcEOgwi6ocBJT5CiJQuTxcBOD3i6x0ANwkhjEKIEQBGAtg2uBCJiIKPEIDF4IJB5wl0KETUD70uUiqE+AeAywDECyFOAfhfAJcJISajvY63BMA9ACClPCiEeAPAIQAeAN+VUnrVCZ2IiIiof3pNfKSUN3ez+W8XOP5RAI8OJigiIiIiNXDmZiIiIho2mPgQERHRsMHEh4iIiIYNJj5EREQ0bPTauZmISC2jEyoxPeMERKADIaJhg4kPEQVMhNGB9KimQIdBRMMIm7qIiIho2GDiQ0RERMMGEx8iIiIaNpj4EFFApEQ0ITbMFugwiGiYYedmIgqIr4/Zj8Tw1kCHMWgCEgISkmPTiEIC6kY94wAAE0VJREFUa3yIiAZhRuYJLCv4Eu1rNhNRsGPiQ0Q0CAatF2F6V6DDIKI+YuJDREREwwYTHyIKADYLEVFgsHMzEflVpMmGmyZtR1SYPdChENEwxMSHiPxKKyRizW0QHARFRAHAxIeIhhybWw+vcqYl36RzQ69VAhgREQULJj5ENOS8eygfxQ0Jnc+vHbMPE1PKAxgREQULJj5ENOS0d50W5zwnIuKoLiIaBsqbY1BcHx/oMIgoCLDGh4iGvD2Vmahpi0B6VCMMWq/PO1YLtE9k6PZquXQFUZBjjQ8RDQuVLdF46ovLYXUZfV52lMmOFbM/RsIQWHuMaKhjjQ8R+c24xHJMTFavk7HLq8X7Ryai2hp13j4JAbeiVeW6QgB6rQLB3kREQY+JDxH5gUR6VCPy4muQE1enyhVanUZUtETjSG0ypAxMZXZqZBM8ihb1tvCAXJ+IesemLiJSmYRGSFw3bg/GJ1WqdpXi+kS8daCg16RHkQJSpYqZq0YfREF6iTqFE5FPMPEhIlUlh7fge7M+QbjREehQAAAvbr8Eu8qzAh0GEQUIEx8iUs24xHLMzCqG2eCGRsXBTltOjsDB6tQ+HCng8BjgVtT76MuIasBlOUfY34coSDHxISIVSCRYWjEmsQpjEqtUu4pXEahujcD+ynScbIrr83lWpwl1bRZVYkoMtyI/pQxCMPEhCkZMfIjI57RCYumUrzA6oVq1a0gJWF0mvLjjEtTZIvp17vZTIzr6A6kUXCcmP0TBhokPEYWkXeWZWLN7RqDD6JZJ78bd0z9DWmRjoEMhonMw8SEin4oOa8PFmcXQatRZDV3K9qTnaF0ymh1mYIAzJdvdenx1Mhc2l963AQLQCCDWbOOK8ERBiIkPEflMmN6FjKhGzM0pUvVLf1vZCJQ0Dm7tLZvbiM3HR8Pm9v1MzkQUvDiBIRH5zNfH7MPIuJpAh0FE1CPW+BDRoOk1Htw6ZQsyohp8vgBoVw02M17ZNRMtTpPPytxwaDJ2nOK8PkTDBWt8iGjQNEIiNbIJOpX69QBAeXM0TjTEo6Ilxqfl1lgj0ewI82mZRBS8mPgQ0aBohAKDzgO1hm5L2b746L6qdOypyFTlGl5FA6dHC4PW65MaKykBp1cHRapY/UVEA8LEh4gGZVxiBa4ecwBalSbskxB4fttcWH3YvHWuXeVZOFafiHsv/nSAY8TOZvfo8Zcv56m2GjwRDRwTHyIasHk5R5AdW6dKE9eWkyNwqjkWUgI2lxHSJylJ9yQEPL5cxkICXqnBQIfaE5F6mPgQUb9phReZMQ3Ii69GvKVNlWtUtkSjqC5JlbKJaPhi4kNE/WY2uHDjpO0+H8ElJQLaL0aRGggoqo5MI6LAYuJDREHjaF0S3j8yEQDg9vr346nNZcRTX8zHkkk7kBbV5NdrE5H/cB4fIuqXEbG1uDSn0OflbivLxq7yLDg8Bjg8ho4+Mv4k4PAYfFLjZNB6sWDkQcSZrT6Ii4h8iYkPEfVZvLkVeXE1mJhc4bPmIK8iUNUaiYPVqYNehsIXGmwWNNkHN6+PTqtgSloZIowOH0VFRL7CxIeI+kACkPjmhF2Yml7qu1Il4PDo8fKO2ahqjfZZuYPxfuEkfHZiVKDDICKVsI8PEfUqNqwNS/K3I9LHNRj7q9Lw+YmRKk19SER0Ptb4EFGvNBqJmDA7tBrfpSi7yjNxuCYFLU4zgm2+m1prBL4qzYFXCa64iGjwmPgQ0QWZdC6f9lX5/+3da3BU93nH8e+zWgkJCYHERQiQEOZmsMdc7GBsnNSxp47tZoI7k3GdF47rusGdIZNkJi/q5k3bmb5IXzSZZKbxlI49xm0Sx5OQmrGduIGYOLQxJgZirrbFLSAuEggkdJd2n77Yg7sCCXTZ3bPa8/vMaLT7Pxc95+G/0sP//M85iaRxubuM3acbONY6K2P7zaTmzkr+9+QiPXJCpADpVJeI3NC984+ypu54xvbX1lPGv+36k4ztT0RkNFT4iMgNmXnGruB6v6mevU1XHzSq0RQRyT0VPiJynfKSHhZNbwFgZvn470XjDoebazl6YRYtnZXj3l8uJNzYf24eMUsyZVIPC6dfCDskEckAFT4icp3pkzt59Nb9495PfyJGIhnDMX599Fau9I7v/ji5lEgW8dZHtwOwoKplTIVPSdEAxbEB+pP6VSuSL/RpFJGs2d64jA/O1gGpEZSoeey2vXzYMpvXDq0KOxQRCajwEZFB1tQdY+nMcxnZV9JjITx6In8UxZyY6S5FIvlEhY+IDDK7op1543xIpzscb51Be09phqISEckMFT4iEkiNTtg4RigSScOBRDLGfx1aRe9AcebCExHJABU+IgJAPJbk2bt/Q3lJ75j38frhFRxtnQlA74B+vYhI/tFvJhGhpqKNO+edpLykd1yPpehLFGmUR0TymgofkYirLutgQfUFVtSeHtP2XX3FXO6ZDKCiR0Ty3k0LHzOrA14GagAHNrn798ysGvgJ0ACcAB5390tmZsD3gEeBLuAv3X1PdsIXkfF6aMlBFlRfHPP2jRdreOPIHRmMqBBdHUWL3iX9IvlmJNeZDgDfdPflwFpgo5ktB54Dtrv7YmB78B7gEWBx8LUBeD7jUYuITBALp7fwlTXvUBxLhB2KiDCCER93PwucDV5fMbPDwFxgPXB/sNpmYAfwt0H7y+7uwLtmNs3MaoP9iEieiMcSrK0/xrSyrlFv2zsQ571TC3Cg+crEeARFWIqLEkwt7dZgj0ieGNUcHzNrAFYBu4CatGLmHKlTYZAqik6lbXY6aBtU+JjZBlIjQlSWTh1l2CIyHiVF/VRP7mJdQ+Oob7DX0x/nQlcFO08sQn/NRWSiGXHhY2YVwM+Ab7h7u6U9rtnd3UZ58w933wRsAqitnKNbm4rk0O01Z3hoycExPXV975l6dhxbiooeEZmIRlT4mFkxqaLnh+6+JWg+f/UUlpnVAs1BexNQl7b5vKBNRPLAF5bvo25q66iLHnfYcmA1Z9qnoaJHRCaqm05uDq7SegE47O7fSVu0FXgqeP0U8Fpa+5ctZS3Qpvk9Ivlj+uQOKkt7RrVNd38xe8/U09RWRUefHkMhIhPXSEZ81gFPAvvNbF/Q9i3g28CrZvYMcBJ4PFj2JqlL2RtJXc7+dEYjFpExMZxJ8f5Rz+npT8S40FnBWx/dnqXIoqEs3k8yGe2Htorkg5Fc1bWT4ce1HxxifQc2jjMuEcmwytJunr37N6MufH57fAm7TzdkJ6iIiMeS/M3aHbx+eAWHmueEHY5IpOnOzSIRcFtNEytrTwUPIR3ZNu6w9fAKmtqqSGqUYlzMoMictfVHmVXRzo5jt4YdkkhkqfARKWhOQ9VFFk1vpr6qdcRbdfUXc+pyNUcvztJjKDKoZsoVepRPkVCp8BEpcI8s3c+0su5RbdPSMYUtB+7MUkQiIuHR+LWIiIhEhkZ8RArU1NIu7mv4mMnFfWGHIiKSNzTiI1KAppZ2UT/tInfUNlES18Mx88mk+ABzKi8Rs2TYoYhEkgofkQK0tv4Yn1+2P+wwZAizp7Tz5OrfUaaROJFQqPARERGRyNAcH5ECYjj3zD/KnMrLYYciIpKXVPiIFIh4LMHU0m7urjtGafFA2OGIiOQlFT4iBaJuait/sWJ32GGIiOQ1zfERKSBmjPiRFDdSO6WNp+/aqQm4IlJwNOIjUgBuqW5m0fSWjO2vJJ5gVkW7LrkWkYKjwkekAKycc4qlM8+HHYaISN7TqS4RERGJDI34iBSAnccXs6dpPjFL8tht+5gU11VdIiJDUeEjUgCaOyuhM3Ufn49aaiiJD1Aa72d+VWvYockQDFhY3cKptmoudZeHHY5IpOhUl0gBcYzXj6xgy4E72d64jP5EDPex7y8eS2JognOmmcGfLdvP0pnniMcSxGMJYBz/UCIyYip8RApUc0cl3/+fB2nvLRvT9gb89ad+y6q5f8xsYPKJTy/4mK+t28bX1m2jqqwr7HBEIkGnukQKlGP0JeJs+3gZJUUDTC7p44GFR0Z8nx+z1GXtRRbtkYi75p5g0YzsXDEXjyWJx8AdHlh4mN5EMT39xWxrXEaq9BSRTFPhI1LQjI8uzAagoqSHJcEf8IpJvRphGKH6qossqL6Y1Z9hBktmNgPQ2VfCkZbZwetJmgMkkmEqfEQioqOvlP/cew8Aq+ac5HNLDgI3v9OzmTP8/BONSmRaeUkfT65+F4APzs7ljSN3BEuUa5FMUOEjEkEHzs3ldFs1f/WpndhNJtWua2hkTd3xQW0dvaW89P692QxRgGWzzjKn8jIv7P40SVfhI5IJKnxEIqg/GedS92R2HF2KmTOz/Aq3zz4z5Lql8QFKr7kvkOuPcE4UFyWZVtbN/bd8SNKN1q5yPjhXF3ZYIhOaCh+RiBpIFrHr1C0ALKhqobayjeqyzhFNfo5ZkumTO2nrKWMgWZTlSKMtHktyd31qxO2Pl6o53V513TqXuyeTdF2kKzISKnxEhOOXZvDi7vv4+rptlMQTN12/vKSPr6x5h5f33MOZIf4QS3bUTWtlw5p3rmv/we8+O+bbFohEjQofEQGMgWSMzXvuvemcn3S64ii3rh2Na+6YwtZDK+jomxROQCITkAofEQkYFzqnhB2EjEJ/ooiWzsqwwxCZUFT4iIhMIO7Q3V+CAz0DxWGHIzLhqPAREZlAEm5seu8z9PTH0b19REZPhY+IyASTdMP1qEWRMVHhIyISkvNXptA6ygniyWSMZFIjPSJjpcJHROQGBpIx+hPZGV35w9k63m9qyMq+RWRoKnxERG7gjSN38ItRXOI/GgnddFAk51T4iIjcQCJZxM1v6SgiE4X+uyEiIiKRocJHREREIkOFj4iIiESGCh8RERGJDBU+IiIiEhkqfERERCQyVPiIiIhIZKjwERERkchQ4SMiIiKRocJHREREIkOFj4iIiESGCh8RERGJDBU+IiIiEhnm7mHHgJm1AJ3AhbBjySMzUD7SKR+DKR+DKR+DKR+D5Sof8919Zg5+joxDXhQ+AGb2e3e/K+w48oXyMZjyMZjyMZjyMZjyMZjyIel0qktEREQiQ4WPiIiIREY+FT6bwg4gzygfgykfgykfgykfgykfgykf8om8meMjIiIikm35NOIjIiIiklUqfERERCQyQi98zOxhM/vQzBrN7Lmw4wmDmZ0ws/1mts/Mfh+0VZvZr8zs4+B7VdhxZouZvWhmzWZ2IK1tyOO3lO8H/eUDM1sdXuTZMUw+/sHMmoI+ss/MHk1b9ndBPj40s8+FE3X2mFmdmb1tZofM7KCZfT1oj2QfuUE+ItlHzKzUzN4zsz8E+fjHoH2Bme0KjvsnZlYStE8K3jcGyxvCjF9yL9TCx8yKgH8FHgGWA18ys+VhxhSiz7r7yrR7TTwHbHf3xcD24H2hegl4+Jq24Y7/EWBx8LUBeD5HMebSS1yfD4DvBn1kpbu/CRB8Xp4Abgu2+UHwuSokA8A33X05sBbYGBx3VPvIcPmAaPaRXuABd18BrAQeNrO1wD+Tysci4BLwTLD+M8CloP27wXoSIWGP+KwBGt39mLv3Aa8A60OOKV+sBzYHrzcDj4UYS1a5+ztA6zXNwx3/euBlT3kXmGZmtbmJNDeGycdw1gOvuHuvux8HGkl9rgqGu5919z3B6yvAYWAuEe0jN8jHcAq6jwT/zh3B2+Lgy4EHgJ8G7df2j6v95qfAg2ZmOQpX8kDYhc9c4FTa+9Pc+ANcqBz4bzN738w2BG017n42eH0OqAkntNAMd/xR7jNfDU7dvJh26jNS+QhOS6wCdqE+cm0+IKJ9xMyKzGwf0Az8CjgKXHb3gWCV9GP+JB/B8jZgem4jljCFXfhIyn3uvprUEP1GM/tM+kJP3XMgsvcdiPrxB54HFpIayj8L/Eu44eSemVUAPwO+4e7t6cui2EeGyEdk+4i7J9x9JTCP1GjWrSGHJHks7MKnCahLez8vaIsUd28KvjcDPyf1wT1/dXg++N4cXoShGO74I9ln3P188Ms9Cfw7/3+qIhL5MLNiUn/kf+juW4LmyPaRofIR9T4C4O6XgbeBe0id4owHi9KP+ZN8BMunAhdzHKqEKOzCZzewOJh9X0JqAt7WkGPKKTMrN7MpV18DDwEHSOXhqWC1p4DXwokwNMMd/1bgy8GVO2uBtrTTHQXrmjkqf06qj0AqH08EV6osIDWh971cx5dNwfyLF4DD7v6dtEWR7CPD5SOqfcTMZprZtOB1GfCnpOY9vQ18MVjt2v5xtd98Efi1606+kRK/+SrZ4+4DZvZV4C2gCHjR3Q+GGVMIaoCfB3Pr4sCP3P2XZrYbeNXMngFOAo+HGGNWmdmPgfuBGWZ2Gvh74NsMffxvAo+SmqDZBTyd84CzbJh83G9mK0mdzjkBPAvg7gfN7FXgEKmrfTa6eyKMuLNoHfAksD+YxwHwLaLbR4bLx5ci2kdqgc3BlWox4FV3f93MDgGvmNk/AXtJFYsE3//DzBpJXUTwRBhBS3j0yAoRERGJjLBPdYmIiIjkjAofERERiQwVPiIiIhIZKnxEREQkMlT4iIiISGSo8BEREZHIUOEjIiIikfF/THVJi3GOnuIAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "WbeLYCp2k5hl",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "# split train/val set randomly\n",
+ "split_dir = 'splits'\n",
+ "mmcv.mkdir_or_exist(osp.join(data_root, split_dir))\n",
+ "filename_list = [osp.splitext(filename)[0] for filename in mmcv.scandir(\n",
+ " osp.join(data_root, ann_dir), suffix='.png')]\n",
+ "with open(osp.join(data_root, split_dir, 'train.txt'), 'w') as f:\n",
+ " # select first 4/5 as train set\n",
+ " train_length = int(len(filename_list)*4/5)\n",
+ " f.writelines(line + '\\n' for line in filename_list[:train_length])\n",
+ "with open(osp.join(data_root, split_dir, 'val.txt'), 'w') as f:\n",
+ " # select last 1/5 as train set\n",
+ " f.writelines(line + '\\n' for line in filename_list[train_length:])"
+ ],
+ "execution_count": 15,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HchvmGYB_rrO",
+ "colab_type": "text"
+ },
+ "source": [
+ "After downloading the data, we need to implement `load_annotations` function in the new dataset class `StandfordBackgroundDataset`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "LbsWOw62_o-X",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "from mmseg.datasets.builder import DATASETS\n",
+ "from mmseg.datasets.custom import CustomDataset\n",
+ "\n",
+ "@DATASETS.register_module()\n",
+ "class StandfordBackgroundDataset(CustomDataset):\n",
+ " CLASSES = classes\n",
+ " PALETTE = palette\n",
+ " def __init__(self, split, **kwargs):\n",
+ " super().__init__(img_suffix='.jpg', seg_map_suffix='.png', \n",
+ " split=split, **kwargs)\n",
+ " assert osp.exists(self.img_dir) and self.split is not None\n",
+ "\n",
+ " "
+ ],
+ "execution_count": 16,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "yUVtmn3Iq3WA",
+ "colab_type": "text"
+ },
+ "source": [
+ "### Create a config file\n",
+ "In the next step, we need to modify the config for the training. To accelerate the process, we finetune the model from trained weights."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "Wwnj9tRzqX_A",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "from mmcv import Config\n",
+ "cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py')"
+ ],
+ "execution_count": 17,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "1y2oV5w97jQo",
+ "colab_type": "text"
+ },
+ "source": [
+ "Since the given config is used to train PSPNet on cityscapes dataset, we need to modify it accordingly for our new dataset. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "eyKnYC1Z7iCV",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "outputId": "a25241e2-431c-4944-b0b8-b9c792d5aadd"
+ },
+ "source": [
+ "from mmseg.apis import set_random_seed\n",
+ "\n",
+ "# Since we use ony one GPU, BN is used instead of SyncBN\n",
+ "cfg.norm_cfg = dict(type='BN', requires_grad=True)\n",
+ "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n",
+ "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n",
+ "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n",
+ "# modify num classes of the model in decode/auxiliary head\n",
+ "cfg.model.decode_head.num_classes = 8\n",
+ "cfg.model.auxiliary_head.num_classes = 8\n",
+ "\n",
+ "# Modify dataset type and path\n",
+ "cfg.dataset_type = 'StandfordBackgroundDataset'\n",
+ "cfg.data_root = data_root\n",
+ "\n",
+ "cfg.data.samples_per_gpu = 8\n",
+ "cfg.data.workers_per_gpu=8\n",
+ "\n",
+ "cfg.img_norm_cfg = dict(\n",
+ " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n",
+ "cfg.crop_size = (256, 256)\n",
+ "cfg.train_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(type='LoadAnnotations'),\n",
+ " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n",
+ " dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n",
+ " dict(type='RandomFlip', flip_ratio=0.5),\n",
+ " dict(type='PhotoMetricDistortion'),\n",
+ " dict(type='Normalize', **cfg.img_norm_cfg),\n",
+ " dict(type='Pad', size=cfg.crop_size, pad_val=0, seg_pad_val=255),\n",
+ " dict(type='DefaultFormatBundle'),\n",
+ " dict(type='Collect', keys=['img', 'gt_semantic_seg']),\n",
+ "]\n",
+ "\n",
+ "cfg.test_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " # img_ratios=[0.5, 0.75, 1.0, 1.25, 1.5, 1.75],\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(type='Normalize', **cfg.img_norm_cfg),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img']),\n",
+ " ])\n",
+ "]\n",
+ "\n",
+ "\n",
+ "cfg.data.train.type = cfg.dataset_type\n",
+ "cfg.data.train.data_root = cfg.data_root\n",
+ "cfg.data.train.img_dir = img_dir\n",
+ "cfg.data.train.ann_dir = ann_dir\n",
+ "cfg.data.train.pipeline = cfg.train_pipeline\n",
+ "cfg.data.train.split = 'splits/train.txt'\n",
+ "\n",
+ "cfg.data.val.type = cfg.dataset_type\n",
+ "cfg.data.val.data_root = cfg.data_root\n",
+ "cfg.data.val.img_dir = img_dir\n",
+ "cfg.data.val.ann_dir = ann_dir\n",
+ "cfg.data.val.pipeline = cfg.test_pipeline\n",
+ "cfg.data.val.split = 'splits/val.txt'\n",
+ "\n",
+ "cfg.data.test.type = cfg.dataset_type\n",
+ "cfg.data.test.data_root = cfg.data_root\n",
+ "cfg.data.test.img_dir = img_dir\n",
+ "cfg.data.test.ann_dir = ann_dir\n",
+ "cfg.data.test.pipeline = cfg.test_pipeline\n",
+ "cfg.data.test.split = 'splits/val.txt'\n",
+ "\n",
+ "# We can still use the pre-trained Mask RCNN model though we do not need to\n",
+ "# use the mask branch\n",
+ "cfg.load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n",
+ "\n",
+ "# Set up working dir to save files and logs.\n",
+ "cfg.work_dir = './work_dirs/tutorial'\n",
+ "\n",
+ "cfg.total_iters = 200\n",
+ "cfg.log_config.interval = 10\n",
+ "cfg.evaluation.interval = 200\n",
+ "cfg.checkpoint_config.interval = 200\n",
+ "\n",
+ "# Set seed to facitate reproducing the result\n",
+ "cfg.seed = 0\n",
+ "set_random_seed(0, deterministic=False)\n",
+ "cfg.gpu_ids = range(1)\n",
+ "\n",
+ "# Let's have a look at the final config used for training\n",
+ "print(f'Config:\\n{cfg.pretty_text}')"
+ ],
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "Config:\n",
+ "norm_cfg = dict(type='BN', requires_grad=True)\n",
+ "model = dict(\n",
+ " type='EncoderDecoder',\n",
+ " pretrained='open-mmlab://resnet50_v1c',\n",
+ " backbone=dict(\n",
+ " type='ResNetV1c',\n",
+ " depth=50,\n",
+ " num_stages=4,\n",
+ " out_indices=(0, 1, 2, 3),\n",
+ " dilations=(1, 1, 2, 4),\n",
+ " strides=(1, 2, 1, 1),\n",
+ " norm_cfg=dict(type='BN', requires_grad=True),\n",
+ " norm_eval=False,\n",
+ " style='pytorch',\n",
+ " contract_dilation=True),\n",
+ " decode_head=dict(\n",
+ " type='PSPHead',\n",
+ " in_channels=2048,\n",
+ " in_index=3,\n",
+ " channels=512,\n",
+ " pool_scales=(1, 2, 3, 6),\n",
+ " dropout_ratio=0.1,\n",
+ " num_classes=8,\n",
+ " norm_cfg=dict(type='BN', requires_grad=True),\n",
+ " align_corners=False,\n",
+ " loss_decode=dict(\n",
+ " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n",
+ " auxiliary_head=dict(\n",
+ " type='FCNHead',\n",
+ " in_channels=1024,\n",
+ " in_index=2,\n",
+ " channels=256,\n",
+ " num_convs=1,\n",
+ " concat_input=False,\n",
+ " dropout_ratio=0.1,\n",
+ " num_classes=8,\n",
+ " norm_cfg=dict(type='BN', requires_grad=True),\n",
+ " align_corners=False,\n",
+ " loss_decode=dict(\n",
+ " type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)))\n",
+ "train_cfg = dict()\n",
+ "test_cfg = dict(mode='whole')\n",
+ "dataset_type = 'StandfordBackgroundDataset'\n",
+ "data_root = 'iccv09Data'\n",
+ "img_norm_cfg = dict(\n",
+ " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)\n",
+ "crop_size = (256, 256)\n",
+ "train_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(type='LoadAnnotations'),\n",
+ " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n",
+ " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n",
+ " dict(type='RandomFlip', flip_ratio=0.5),\n",
+ " dict(type='PhotoMetricDistortion'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n",
+ " dict(type='DefaultFormatBundle'),\n",
+ " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n",
+ "]\n",
+ "test_pipeline = [\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img'])\n",
+ " ])\n",
+ "]\n",
+ "data = dict(\n",
+ " samples_per_gpu=8,\n",
+ " workers_per_gpu=8,\n",
+ " train=dict(\n",
+ " type='StandfordBackgroundDataset',\n",
+ " data_root='iccv09Data',\n",
+ " img_dir='images',\n",
+ " ann_dir='labels',\n",
+ " pipeline=[\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(type='LoadAnnotations'),\n",
+ " dict(type='Resize', img_scale=(320, 240), ratio_range=(0.5, 2.0)),\n",
+ " dict(type='RandomCrop', crop_size=(256, 256), cat_max_ratio=0.75),\n",
+ " dict(type='RandomFlip', flip_ratio=0.5),\n",
+ " dict(type='PhotoMetricDistortion'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='Pad', size=(256, 256), pad_val=0, seg_pad_val=255),\n",
+ " dict(type='DefaultFormatBundle'),\n",
+ " dict(type='Collect', keys=['img', 'gt_semantic_seg'])\n",
+ " ],\n",
+ " split='splits/train.txt'),\n",
+ " val=dict(\n",
+ " type='StandfordBackgroundDataset',\n",
+ " data_root='iccv09Data',\n",
+ " img_dir='images',\n",
+ " ann_dir='labels',\n",
+ " pipeline=[\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img'])\n",
+ " ])\n",
+ " ],\n",
+ " split='splits/val.txt'),\n",
+ " test=dict(\n",
+ " type='StandfordBackgroundDataset',\n",
+ " data_root='iccv09Data',\n",
+ " img_dir='images',\n",
+ " ann_dir='labels',\n",
+ " pipeline=[\n",
+ " dict(type='LoadImageFromFile'),\n",
+ " dict(\n",
+ " type='MultiScaleFlipAug',\n",
+ " img_scale=(320, 240),\n",
+ " flip=False,\n",
+ " transforms=[\n",
+ " dict(type='Resize', keep_ratio=True),\n",
+ " dict(type='RandomFlip'),\n",
+ " dict(\n",
+ " type='Normalize',\n",
+ " mean=[123.675, 116.28, 103.53],\n",
+ " std=[58.395, 57.12, 57.375],\n",
+ " to_rgb=True),\n",
+ " dict(type='ImageToTensor', keys=['img']),\n",
+ " dict(type='Collect', keys=['img'])\n",
+ " ])\n",
+ " ],\n",
+ " split='splits/val.txt'))\n",
+ "log_config = dict(\n",
+ " interval=10, hooks=[dict(type='TextLoggerHook', by_epoch=False)])\n",
+ "dist_params = dict(backend='nccl')\n",
+ "log_level = 'INFO'\n",
+ "load_from = 'checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'\n",
+ "resume_from = None\n",
+ "workflow = [('train', 1)]\n",
+ "cudnn_benchmark = True\n",
+ "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
+ "optimizer_config = dict()\n",
+ "lr_config = dict(policy='poly', power=0.9, min_lr=0.0001, by_epoch=False)\n",
+ "total_iters = 200\n",
+ "checkpoint_config = dict(by_epoch=False, interval=200)\n",
+ "evaluation = dict(interval=200, metric='mIoU')\n",
+ "work_dir = './work_dirs/tutorial'\n",
+ "seed = 0\n",
+ "gpu_ids = range(0, 1)\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "QWuH14LYF2gQ",
+ "colab_type": "text"
+ },
+ "source": [
+ "### Train and Evaluation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "jYKoSfdMF12B",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 953,
+ "referenced_widgets": [
+ "40a3c0b2c7a44085b69b9c741df20b3e",
+ "ec96fb4251ea4b8ea268a2bc62b9c75b",
+ "dae4b284c5a944639991d29f4e79fac5",
+ "c78567afd0a6418781118ac9f4ecdea9",
+ "32b7d27a143c41b5bb90f1d8e66a1c67",
+ "55d75951f51c4ab89e32045c3d6db8a4",
+ "9d29e2d02731416d9852e9c7c08d1665",
+ "1bb2b93526cd421aa5d5b86d678932ab"
+ ]
+ },
+ "outputId": "1c0b5a11-434b-4c96-a4aa-9d685fff0856"
+ },
+ "source": [
+ "from mmseg.datasets import build_dataset\n",
+ "from mmseg.models import build_segmentor\n",
+ "from mmseg.apis import train_segmentor\n",
+ "\n",
+ "\n",
+ "# Build the dataset\n",
+ "datasets = [build_dataset(cfg.data.train)]\n",
+ "\n",
+ "# Build the detector\n",
+ "model = build_segmentor(\n",
+ " cfg.model, train_cfg=cfg.train_cfg, test_cfg=cfg.test_cfg)\n",
+ "# Add an attribute for visualization convenience\n",
+ "model.CLASSES = datasets[0].CLASSES\n",
+ "\n",
+ "# Create work_dir\n",
+ "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n",
+ "train_segmentor(model, datasets, cfg, distributed=False, validate=True, \n",
+ " meta=dict())"
+ ],
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:14:27,264 - mmseg - INFO - Loaded 572 images\n",
+ "Downloading: \"https://open-mmlab.s3.ap-northeast-2.amazonaws.com/pretrain/third_party/resnet50_v1c-2cccc1ad.pth\" to /root/.cache/torch/checkpoints/resnet50_v1c-2cccc1ad.pth\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "40a3c0b2c7a44085b69b9c741df20b3e",
+ "version_minor": 0,
+ "version_major": 2
+ },
+ "text/plain": [
+ "HBox(children=(FloatProgress(value=0.0, max=102567401.0), HTML(value='')))"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:14:39,770 - mmseg - WARNING - The model and loaded state dict do not match exactly\n",
+ "\n",
+ "unexpected key in source state_dict: fc.weight, fc.bias\n",
+ "\n",
+ "2020-07-09 19:14:39,836 - mmseg - INFO - Loaded 143 images\n",
+ "2020-07-09 19:14:39,837 - mmseg - INFO - load checkpoint from checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:14:39,990 - mmseg - WARNING - The model and loaded state dict do not match exactly\n",
+ "\n",
+ "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([19, 512, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 512, 1, 1]).\n",
+ "size mismatch for decode_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n",
+ "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([19, 256, 1, 1]) from checkpoint, the shape in current model is torch.Size([8, 256, 1, 1]).\n",
+ "size mismatch for auxiliary_head.conv_seg.bias: copying a param with shape torch.Size([19]) from checkpoint, the shape in current model is torch.Size([8]).\n",
+ "2020-07-09 19:14:39,994 - mmseg - INFO - Start running, host: root@71c6cf9b06c5, work_dir: /content/mmsegmentation/work_dirs/tutorial\n",
+ "2020-07-09 19:14:39,995 - mmseg - INFO - workflow: [('train', 1)], max: 200 iters\n",
+ "2020-07-09 19:14:54,192 - mmseg - INFO - Iter [10/200]\tlr: 9.598e-03, eta: 0:04:21, time: 1.379, data_time: 0.002, memory: 3772, decode.loss_seg: 1.5616, decode.acc_seg: 46.9241, aux.loss_seg: 0.6853, aux.acc_seg: 38.7292, loss: 2.2469\n",
+ "2020-07-09 19:15:07,556 - mmseg - INFO - Iter [20/200]\tlr: 9.149e-03, eta: 0:04:04, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.8215, decode.acc_seg: 68.8879, aux.loss_seg: 0.5371, aux.acc_seg: 67.9098, loss: 1.3586\n",
+ "2020-07-09 19:15:20,914 - mmseg - INFO - Iter [30/200]\tlr: 8.698e-03, eta: 0:03:49, time: 1.336, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5890, decode.acc_seg: 66.6747, aux.loss_seg: 0.3591, aux.acc_seg: 65.8590, loss: 0.9481\n",
+ "2020-07-09 19:15:34,235 - mmseg - INFO - Iter [40/200]\tlr: 8.244e-03, eta: 0:03:35, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 71.6006, aux.loss_seg: 0.3192, aux.acc_seg: 66.5800, loss: 0.9079\n",
+ "2020-07-09 19:15:47,580 - mmseg - INFO - Iter [50/200]\tlr: 7.788e-03, eta: 0:03:21, time: 1.335, data_time: 0.016, memory: 3772, decode.loss_seg: 0.7011, decode.acc_seg: 65.8105, aux.loss_seg: 0.3223, aux.acc_seg: 62.9866, loss: 1.0235\n",
+ "2020-07-09 19:16:00,900 - mmseg - INFO - Iter [60/200]\tlr: 7.328e-03, eta: 0:03:07, time: 1.332, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5531, decode.acc_seg: 66.3968, aux.loss_seg: 0.2624, aux.acc_seg: 63.4624, loss: 0.8156\n",
+ "2020-07-09 19:16:14,199 - mmseg - INFO - Iter [70/200]\tlr: 6.865e-03, eta: 0:02:54, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5888, decode.acc_seg: 66.5814, aux.loss_seg: 0.2905, aux.acc_seg: 62.6161, loss: 0.8792\n",
+ "2020-07-09 19:16:28,148 - mmseg - INFO - Iter [80/200]\tlr: 6.398e-03, eta: 0:02:41, time: 1.395, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4988, decode.acc_seg: 69.7736, aux.loss_seg: 0.2388, aux.acc_seg: 68.5068, loss: 0.7376\n",
+ "2020-07-09 19:16:41,440 - mmseg - INFO - Iter [90/200]\tlr: 5.928e-03, eta: 0:02:27, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5177, decode.acc_seg: 72.9874, aux.loss_seg: 0.2512, aux.acc_seg: 71.1549, loss: 0.7690\n",
+ "2020-07-09 19:16:54,703 - mmseg - INFO - Iter [100/200]\tlr: 5.453e-03, eta: 0:02:14, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5794, decode.acc_seg: 65.9114, aux.loss_seg: 0.2557, aux.acc_seg: 65.2695, loss: 0.8351\n",
+ "2020-07-09 19:17:07,972 - mmseg - INFO - Iter [110/200]\tlr: 4.974e-03, eta: 0:02:00, time: 1.327, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5395, decode.acc_seg: 69.2955, aux.loss_seg: 0.2443, aux.acc_seg: 68.5840, loss: 0.7838\n",
+ "2020-07-09 19:17:21,227 - mmseg - INFO - Iter [120/200]\tlr: 4.489e-03, eta: 0:01:47, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5568, decode.acc_seg: 70.1717, aux.loss_seg: 0.2490, aux.acc_seg: 69.4707, loss: 0.8058\n",
+ "2020-07-09 19:17:34,513 - mmseg - INFO - Iter [130/200]\tlr: 3.998e-03, eta: 0:01:33, time: 1.328, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5222, decode.acc_seg: 72.1791, aux.loss_seg: 0.2446, aux.acc_seg: 71.0046, loss: 0.7668\n",
+ "2020-07-09 19:17:47,812 - mmseg - INFO - Iter [140/200]\tlr: 3.500e-03, eta: 0:01:20, time: 1.330, data_time: 0.016, memory: 3772, decode.loss_seg: 0.5178, decode.acc_seg: 72.7657, aux.loss_seg: 0.2552, aux.acc_seg: 70.8837, loss: 0.7730\n",
+ "2020-07-09 19:18:01,667 - mmseg - INFO - Iter [150/200]\tlr: 2.994e-03, eta: 0:01:07, time: 1.386, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4719, decode.acc_seg: 72.4819, aux.loss_seg: 0.2263, aux.acc_seg: 69.9169, loss: 0.6982\n",
+ "2020-07-09 19:18:14,904 - mmseg - INFO - Iter [160/200]\tlr: 2.478e-03, eta: 0:00:53, time: 1.324, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4494, decode.acc_seg: 75.4808, aux.loss_seg: 0.2228, aux.acc_seg: 73.2249, loss: 0.6723\n",
+ "2020-07-09 19:18:28,151 - mmseg - INFO - Iter [170/200]\tlr: 1.949e-03, eta: 0:00:40, time: 1.325, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4412, decode.acc_seg: 72.4503, aux.loss_seg: 0.2177, aux.acc_seg: 69.9681, loss: 0.6589\n",
+ "2020-07-09 19:18:41,413 - mmseg - INFO - Iter [180/200]\tlr: 1.402e-03, eta: 0:00:26, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4127, decode.acc_seg: 74.4395, aux.loss_seg: 0.1955, aux.acc_seg: 72.5129, loss: 0.6082\n",
+ "2020-07-09 19:18:54,678 - mmseg - INFO - Iter [190/200]\tlr: 8.277e-04, eta: 0:00:13, time: 1.326, data_time: 0.016, memory: 3772, decode.loss_seg: 0.4733, decode.acc_seg: 74.7937, aux.loss_seg: 0.2285, aux.acc_seg: 72.0337, loss: 0.7019\n",
+ "2020-07-09 19:19:07,808 - mmseg - INFO - Saving checkpoint at 200 iterations\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 143/143, 10.9 task/s, elapsed: 13s, ETA: 0s"
+ ],
+ "name": "stdout"
+ },
+ {
+ "output_type": "stream",
+ "text": [
+ "2020-07-09 19:19:22,647 - mmseg - INFO - per class results:\n",
+ "Class IoU Acc\n",
+ "sky 88.67 94.28\n",
+ "tree 68.95 86.73\n",
+ "road 86.23 94.42\n",
+ "grass 70.01 91.35\n",
+ "water 62.08 68.32\n",
+ "bldg 81.11 88.89\n",
+ "mntn 0.00 0.00\n",
+ "fg obj 70.39 82.49\n",
+ "Summary:\n",
+ "Scope mIoU mAcc aAcc\n",
+ "global 65.93 75.81 87.48\n",
+ "\n",
+ "2020-07-09 19:19:22,660 - mmseg - INFO - Iter [200/200]\tlr: 1.841e-04, mIoU: 0.6593, mAcc: 0.7581, aAcc: 0.8748\n"
+ ],
+ "name": "stderr"
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "DEkWOP-NMbc_",
+ "colab_type": "text"
+ },
+ "source": [
+ "Inference with trained model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "ekG__UfaH_OU",
+ "colab_type": "code",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 645
+ },
+ "outputId": "ac1eb835-19ed-48e6-8f77-e6d325b915c4"
+ },
+ "source": [
+ "img = mmcv.imread('iccv09Data/images/6000124.jpg')\n",
+ "\n",
+ "model.cfg = cfg\n",
+ "result = inference_segmentor(model, img)\n",
+ "plt.figure(figsize=(8, 6))\n",
+ "show_result_pyplot(model, img, result, palette)"
+ ],
+ "execution_count": 20,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "/content/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n",
+ " warnings.warn('show==False and out_file is not specified, only '\n"
+ ],
+ "name": "stderr"
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ }
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAv0AAAJBCAYAAADVzgoaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9za5tSZIm9Jn72vvcG5lZhUqqngADBoyYwxMgMQOJCTCnRzwAL8KAHjDmCVriGXoMEtBCalEMgJK6M6sy4p69lrsxMPvMzH3vcyMKkeogdTx04tyz91r+Y25u9pm5ubmoKj7LZ/ksn+WzfJbP8lk+y2f5LH++pf3r7sBn+Syf5bN8ls/yWT7LZ/ksn+VPWz5B/2f5LJ/ls3yWz/JZPstn+Sx/5uUT9H+Wz/JZPstn+Syf5bN8ls/yZ14+Qf9n+Syf5bN8ls/yWT7LZ/ksf+blE/R/ls/yWT7LZ/ksn+WzfJbP8mdePkH/Z/ksn+WzfJbP8lk+y2f5LH/m5U8G+kXkPxKR/1lE/rmI/Nd/qnY+y2f5LJ/ls3yWz/JZPstn+SzfL/KnyNMvIh3A/wLgPwTwNwD+GYD/XFX/p//PG/ssn+WzfJbP8lk+y2f5LJ/ls3y3HH+iev99AP9cVf83ABCR/x7AfwzgJej/8uXQ3/3ubflM+H/hvwGN/22Fz4isn/sLuv8bWWf9F7bXs471g/0jqZ0EALVnRMS+q2/pq/et73x278dS9YsuftTn55Y+6m/9R3739Fx5bK97GWdpX2IOBSJrfaoKnfawNP/+RRv8vImsc0xaqoLGq0itZ+EcfM/AZT38JQKfE9ZjbdQfac3nGBBp+Uy0nGNXcKyKyb5u9K3vNGnerEK10FWSHjHOjbeXcRXa7H/31iEiaL0t/U9aCVprkGhTnuqrvSft6xwsc1qGO+fEHAOqwJzDv39mNtk+m3NCoWitozv9e++AWN84eeLPjjF8HNan5u/Ys8BUheqMZwCxNlTRWovP9sJ6gq5lfseYa59VoXNCRHAcx9OY9rGKCBSAej/Im0HX4EunI8dd6okWZJVDEK67ufALx7yPEQDGGE6jUr9/l2JN4x3SxmjHrmn8hq5rUeN95/U61kJr+7PQXJPW5FOWMSaucYXcERHcbjevU/HEwk8iXJO+0/iDfag8ZOtSMSfXVAsaL41wDpZ2pPR5FcjTeak+Iy/48HXZxid1/a9jgwLzfUDPwrNC2ZTyr7Xm8hfP4/gFSinkM/+36OYiu5a6NP+v9dO1wZ2XkqSvaL71q9b96rmylnTvSLy2vrXI6r29n6PVL53i75RnyPLLHbuLTHvCKi/0FfVf0YWv5HjUt+iPIs+29T1VQyaZ/FF28KnOj8rL+drHtC7RKJRjrYnrSfb3w4ZeFo5Bix63dZefJbbI8bySxabnrB/W3/I7cIh99i/+77/9W1X961d9+lOB/n8TwP9e/v4bAP9BfUBE/jGAfwwAv/3tHf/pf/LvLcCtSQtAUsucM4BiPNtd+be+MGUluCl/F3QoIBQFKJKgxFKuHGvZGVeKkmN947qgqjiOA713qKqDC3Wgk+CQwjQnNYEJCj2oZHYFj9Iu+xfjLoqcRghg4Lkfh2PKHM+c0/rTu9OzBQBxyjgNk54L/ZBKkvVR2bbWcBxHzCfn5P39GwDgy5cvOI5kxzknxnVZP46O1hrut5vRs8zN5fQc5wkocNwO9NbRu70T9MAqPJZFpRRwinHZM2yztYbeOuaceH9/tz4/3jHnxP1+x/1+R+8d99sdUyfeHw8ft9PQeWCMgdO/ezwe1ob3kTTkfLbW8OXLF/TWcF1X0HSMsYAXAsgxRvB1FY6qivM8MedwcGh1PB4PtNbwm9/8FrfbDb/97W/x5csXXGPgui6oz6+IxLzcbjf048B5Xvj27X1pq/lYb7d7PHd/e7M+9u5rKs0ngeLx/g1///d/h+s88dNPP2KMgdY7mjQoTOj33nC73WIsqopv7+84zxM//PADfve73+F+v+N3f/GXEBGc5wnVGXP2448/4g9/+AOaj6P3jt/+5re43+94PB64zgvXdeH98YCI4H63Pr8/Hriugbe3N3z58iWEKscsIvjh61fc7/dYW3MOnI8TYwz88Y9/xHVd8c7j8cC3b9/wdr/jr/7qrxJ8ikB9bnvv8XlrRoOffvoJ53liTMXUiaN3fHn7koYOgB9//CMejwfGGBjjQvd1QiUqIrgdR64tMRD/7dtPC9B/f3/HeT7is94bvn79AgD4/R/+gG/fvoXhd9xu+PrDV1unY0CnBo9+/foVP/zwA263G75++QKIhDzk+hvOZ+R7VcW7j+G6bE6C53rH169f0XtHPw4HniaXvn17x9/94e8h0vD161e01sPQ+P3vf49/9fvfh9y43+/463/0j/D29oYxrmXsCeSNQCLAdV2+Vt7x448/OX/bWv7hhx9wHAeu68R1nrjGhcf7O1pr+MHX7enjCZnbW6xXytXQcdWAJJ9/+4Y5Jlpv/rzpid1IWAzFIvPHdFnnNiuhzpwzZMr7+zvG48JP/+vf4fF/fgthSFlNnWrj+oq3tzf01pb+s8+OaKIvzfUX5dIYF3TOeN+MfueLBRhpGEz2y98vOrfqNHW5qKoYaoZs9K839H4EjfeioN7TBEzucOHaWR0rqS85DWFQF+Pguk7odKdBNVJRHBxsr2I7513pBfhu4I9Gza7zayFGqDKm9h1wg75gjBiLy5apitPXrQJQEYg0A/fl+eY67O3tHuuVOAYKaMFj394fro9srlpruN3eIL3jdr9bn7xfj8cDf/zpJzweJ37/+z8s8hTejzEGHtdJIsS4RARzJu8RZFd6BS38mRb6yeb2d7/9DX74+hVfv3zB7/7iL9CboDvObIuLcwb/03GR7Zhc/fbNcMN1mkz58UfTD+MaGMP497wujDHxeJzLmuA6//rDD/iLv/wLn6MWtJdmOtKwVQ85/1/+N//tv8AH5U8F+n+2qOo/AfBPAOAf/fVvNDybeBZk/vzyU0H7R54GLkiFAj0Vdl0ki5X+5FJ4XTHbJZCOn+253XtWn4+6HPSLg20gPWxPHj4AopoAqrS9gPcxwlKuhgPNFy0gBoW+LK3UG4Jhs5AJqPnu7hkj2K7PmgGxCm8ql0Uou1AlKL7f72jNwAaB8JgTY05c5+ljngAUbTRwl6Cp/XvqTGD/Yk4VBqr47zomGpljDhdYs3j/cmL52eUgrbUJkRXQH7dbgP3qzaS3lu3NOfHt2zczBnsPozDmnIJNFeICgkYYPS2cQxNUsJ2UaXVQMB8OBsM49XFPmWGwVVrsgC3G5m2NMRxgGF938rYIxI8P2VwYje+3O5oI3t+/OQiYGDpsBgQADtzv/r6vDSr47oYp3DNf10DtW/XKzjnxcGB7Pk4D1C5wAeD9/WH0OQ4HkA3SXHnphIBKhbsiE3P6b66zJri/3XHcjgXAXOfpc+jGcBNABar05js/NDNyK980B6NN0sHQ3XgmjSds3YsqZm9orYdB2mIXbTXwaQwaWBxlPm0snOcxBnRONPLKYcaZdUuhTYPWR+84uu3CcI4ECE/4GMPGQcDo/WrSoPRIV6WMVWYqAHX5dl2nA2sbiwgwhwMmN4J0NlzOTo/3bwBshyk96XDwcQuDiAb2nAPjutBcDAoA6MTj/Ruus+E8z5Q/zh9zjAC73EEiDRqBJLIuhWAOLTqhggctOmXxYdt3wR/FadVctkyJfqnXE/rHF2mVZbM4caDAkJH60wFgjoPttgCgAYaKboL67heNEefRC/C1Mx0IF33hYD/1Df9f6FMoYoDUf7vtwfWlA1DYOJrO8Pon0AB0et/EHYEqmG36vwERp3vxyLI/vqIgjm7pIKP9o6qma0vPOQ4hExD4S3ZrOF2qpuL88UeKTiZOgP+e/nwjJok+CES8523FPVJ2QlvvkFK3OQENkEtrOUdAyJbeTWZKeWb6jgdpYnqoQaBoE1Yn+8j5ntMcBcPW3nAnAGVRrAp/5nTDkbxZnX2qBdcUfBYYUNXGhCQHp8F0ZHOHsn2jxIf8+yPg+f+yLA7bRZcVvNdMttOh2FrDcbvhRtB/+3lI/6cC/f8HgH+7/P1v+WcfFFN2/q/6cQC4nRhtA1SAL0BdPSC5vgvQ3oD/XvbvqriNd1+A/L3+2FUQ+fA3Ady+WxBdJ/De3o33t3cALACSRkMVDLM1yAJa9akOsO1CAz5b+/GRUUZlUsHY1AlaHtXjsHpUVmXfWguve3cAHMK1eHlibN5mBeWrB+l5mPW5JPyzMTMKSHr17nQAnvOOhQ4E7n3zOl1jQH0cfPc6T4gIbiJovitD78wCxtm3QSWdfAV4mFCD0b0pVLltWX8sFKOpLMbcq3l9xdcqE0DD1AGZgjEH+pyxk7QY7w6SAeA4OuiZF7H3xphB/2rodB976x195juQul6dbyDL2khlnN7m8zLQPwuvnpcBn6/h6UTyw/SdOcmwlQpW6FUV2A5M/a51o7E09nXd1p060WG7lJVPqpxonFfB09gaDZM5MWEAuzV1w64HbXJafS6Lh55riFJ4kbn+O9YjQz1qH53hW5FnSygVFHM2iMwYZyySWqioAzmV8RpDJigfCaw5ngCJOh3MKeYQzNZwXSdaE3tvJp+hN+Awo3eMK4C/elhTiGDvnz2DAP2kg0p626H+E7kyNOePFK5oqLhE6T0UNhjyOecw6V7r5XpMfsekt9jeX8yGufJALW2aE26KrbU5Bq4yBzQIuDabNGjzz2pFs3ru1QwdrgHy/6RsyX5UEbusQ/8dGFeipspChhEwMSflpQSdi32VYLMCOiWo1xoZxYfKvyVArUjOTZVGK1XLYALkU7fnW1PLaDYjisQJA6B8BqROUDjnbXjiGbVIrEepulgEzcd2HDcInSxC2efwu8gsvh/9JvCOfmYYT/DPC8qSV3S4bBppIALA9DrHXHcMa/9ewbsdOwWWgRvkhU4Vl4RB7XNuQ/kekPj4qxe9Wn6HPlmq0fJ08fQ7JupuqMUuy8+UPxXo/2cA/l0R+XdgYP8/A/BffO+F8EBshZ6Kp/AFPAP7is6phPlc1x5CpgLVeC+qSGC4WFs7w/j38akLby0Llu9XULt4bAnSynj5fO0W44FDoZQ+VEZnHyhCqigJQaEK8foWhV3G9gpc1joILJfvvCzeow2Ay0zPNsdJj6XOCbS2hFPthojOienvjzHC20+wImXhYAIqCW7qDkN4fNygTAMpxzPHarAYIM3wIBHzvPbWw0tSFW/sRJV56r0vtGN9dR4ojLhFexRAFnNQDBFVDU+I9cnmLzz1UvpSBC9erDUDjgkEAPP2ztLH2ucMT+gp+CWBcestvMJsb8LirS2s7QaFeVXmnLjGusYXY6PQZxHG6h5ukZVOfN5pNseAiuDx/oA0wfU4LZTJl7vxlG0hH0c3b73vQpkn33ZuTNAyBMn5cJQzCaruQTcQQzATcgkG8kmTNKTcM60t1gSVagXrFoIHQG3XoDXnq+ZA10EpAaN5ak2GMpRoupE5xzBv+RzpkS0QalwWknGeRiuGMhKIL+gLaeTSAL0uM1zHsN2y83wYYL6orM3ZYzx8Oi3PeL/3gTm9jZClCFrNcUHngEiDzhG42YY+IToBcYtXJzCH7Wjo5OJ3GUxvLayeac9SrnR6M5utceoIhgL03nB0Cz0SnwP1HUJpausBBsIIMJLPFaqbvCc4dkNTW8qjKqNibTcJI4wyzcIDvK8FEtcwA3pRxzVCXqRO8t1Cl2gBRtwzHvJWYGNvgu7ro65D8tUiZMI4L/pJJMBcfdrYzIBOTi5ZTyFokEbPNNsy3a8FU9Az7zh9KaHFQySmDq3YIncK8rnoS53AAnyXOpbxrm0FWAVAQ1F8i6nVcfA95w3hoCpu8Y96s0CUqdxjkBxDqQdwkNvNeOu9QRXoboxNpDHBnZ/cxS/9VnaQXnCul2dtE32P+VzRX0Q/sF+a0Q9S3k99bLro8J3NZY+sYDDyMj/HNKO+ucefP9VpsU3hLywrmF+RXm1Jn5+VdJKFoYG6NvIdymqz75Uq/rvlTwL6VfUSkf8KwP8AoAP471T1f/zwBakgOIHb8jPTml/AYBUCIUwKoSV/AwnyFkBfBWlp+7mfdfXq+u86Ub5A6gG+Gr7yBFxKu+uEFxC6gb89RpGCY2Wf5z6nx9W20fjzElBt71UDiB73aoxV7+YvBv30mqpCNlC9gGHkvBBoVcB1SB6gUyqAieSdSlMhGNKYez5DhU5eqmMh4G3u2QrBQDcBQbb3ndvfNA6P3p94ITz0Yp7C5opijpE8tAHZBZDPGfHH9Lqp1vAXhPGxzu8yvTm/zrNjMMxG0Eqoj4UvIHiwenXrAc44D1HOLZh0mlD1LdUGQBS9m2dccC7zF57mwuc0aip/WmhH/h0itQAhhn9ZcAEC+BBQ0LATEfTbgbcvbwUwwJWmonXOH3d2Bq6R3qbKM6vRok+yx5SWeavHBK5xoaud/xAH1KHTvSe53iwEgUYIY6i1gG6fPgehGnGu3LUa43IgPoJelLIMVeMZlDEGWmu4WoM2DxkpckCCjjOMjtN3qwgWz/ORsaz00DXj98tDrYyX7f0xbIdEw2NuSo1hN8NBv4oaSM/pNtAPhei03V81wK/jChkqBM0mDfzlCZ1XgNXmKN1Clzi/brjBQM/RGr7cbzY/cWZruuHhABpAf5Kr65mrXI/cLagOi5SBu1c+5EcBM4PP8Dt/1kD/GeCf62C6IS5+cJ1Ak79tfYqHTQ3iamvvphan77tAdXcoEjUIFp6sf8cOSay1hDUhu9oG+m2gMUfh2ddSg58P2sFWAHr+rnWKrI9j+zfxxJOhQLaydiGr3Covl3arUcLPJcLcxB1KdK5I6dvLBBgF8FX5p2qyivXsNFTVCBWhXgMQOzDv5yP4SYoMA8xmECB2J6pJR54UYIntVxplG3lXT/zzjnT5Eiowh0B5no41Jl8ImhL0L8PWSGYgoIGU/Vg8/f8gyL8MdFkn8f1u2dZvN/xXK9uBPzksdYrjqJ/p758spl9V/ymAf/oPead6YPl7AXFATMIrI2GpazMMKiGqB5cAjwovwOBe58405bdsz+qrd3eAbw0EQ4KebtW179jOBmx9m6po3PoqgBlAxNY9GSiVTlgZPcMmnvv6qqwL9ZnZnoy3bRwR+gIs8Y9S3h91/Mi427qYcz6cptjCiqphR4VTPlvnC4tBsB76kxCOlQdtDO51FYu7a9KWLdNK42We6lyQBo7WwnOaRI5u8uyGFj7aBT2eBIMGS+wG2m7gAMDwtUIgyfCl1iR+Q9tCnw+NR5S1Icma4gbTagD73I/c1jWv8VhANY2eKqg5d2voCufYhaODFzs85sCSimsH7QztkhZ0YV08QFvnc85sn7sEtR6RjIWN6fZBKzxkxb9rTQyw+/dmdE3MJr5edAHeRjMDtufjEYZAXQvTY/TZpzlneIrDQKHh517d5gCfwLXAHgoI45tr4JQzPcdI0WFg33YYbOcFEKXncMQcJKMgdUDd4XTGEQUaJLbmE7jbvxmLz/A1KcuHu/Oku8W0O2j3nY8IARI7DCm+xia9+dxN0OZ9R9LV+VSAWCuLceo8GEYcNplHB4OIt0M5V0G/vVGzmoWRTJ2pxUuoiB3LOWb8hN5AlW1tNegCpa3rdOeDKmPWwtmhASO54wF4SBJ/NMF4fJ4NUYZU2plQbxDu7qKeAiBdHbSG/ifZJGRQbTPBauIM8QHzjFLB8cWocQ8358JAhj9YcISqgVWOiVTy9/rhMfKLgUEu8Gfgcx/1JzgkTOZmy3RZQczDPihgvI10VAK2I6uqluCBjgRff+pov+l2cFakBLSRYIUPi74VN4yqhhAnMJ07tpveoB59EPPvcyOScmHVOS+Ab8ijPOOiyQSLbi0ED1zIfuuGBctgX+Okl9DpRR+TkZZ6Ev3WvyRAvqqdnxDX+fIBVmP513aQdy9PFihWoFKfiwNtTZ6ef1kvEM82ZPaYJ8An+fmeneajkuAKJiw2kBhgpvykUEYKXJGYrH1XoMZcUjnXePlZhA090SnoV6VfKra+8SBLeK1beFVWT2V59QV9a0jJ7nmKvs+Me7X6J65rhoW+p/1i29d52dy4cRMeftWIjw+womqeEgUwMwSj9mNVWusBUGaC4pZ33U3guI4jMwRVpWiZQu42pZs3WorXmwe2pR6I9THHoWf2eQxcLpgqKCAdaoamKiimWhgXQz4IPGf5bPfImqfVvK2nxyqPOYvnxw/behiKzbHxS9Pkg5rRCihdWwwPUxph9Dkvko+g5pk+zxMyEmjQ6Oi947quhe/ungFizokpMzzHEZYQQEHjbzszwnVs3sxrXJaZxcMfCPDNqy4RjsT6hu8i5Jpoy7q1GPALIorrekD1QD+agZTmAFQQZ14IDg2wNigmMMx7fJ3DvHtIg5eAvDULpXm8Wzaio2eGpzQwee7ED6qOgXldQMvQDPXDrtf5gJ0PkOXgd1VXQsDvQPxxXXi8Gx8/3t+9X5bNY1xXAN16MM+MpzRCAsCrjXmOgQGgq8uFMW1bXhVdPBuZKBrXvwINiu5hL0drOFpDE8Y5c568BzpwPTwDjO9qxDrxPjYRKGnpSE/HAOaEyoiDsJapyDKPzTkAPWIso7tc9B3Ia1y+A1UAX6XHVDsPIrkfEbQOICK+E5GgnHQzA5YeQMTO1PmwkK7rvDCvAWZjtd2MI37TkKbs42/xXVU76JrcQMMixJAmSOQD1EkVZBf7zkJJApIJphsZg++77Kvx/wTOaAR1xYCvfJpIL8BS86wsoZ8BaAHiMfbAEe3pM/4dKYSdT0zuFIdcMZb5GflJYw3lOQA7y+ZGf8EqpvPT0dOlhe4jjfksZeykAenzEfXFANQ302rGQ08q8f6w9LdFjnBOqbftt+Bogqmr7A+jCjn/wSeqFqkYa9L4q3lCgHlM3I7u+tHmadSzHx6KlHHuybNaaIFsYqF/ODw8pFLYh+VpPk+jT7faguC19rVl3f5+KsWZbYRIjFjqz/XlczgVw3U9AGA84+i9/CpA/97HAG9VkfrC2Le5gATtATRTZlS7+mc7QGFO4i+PyDa5So8yXkxMfrcKy9UTu44ZIQSexrN2c31PP7KW8/ezhS0hhPbnf45aL9l1G+Orkgt9Ezb2ZYxhp5k9qynwixHDZ9KzpDnWEPDZvjcFYNtNCUBUxvBiHK8OKe7UaZ49A3v4VZn/3cNf+7fSqwBkn69UemmMVcOr9muheTFsYgKU4Jce/ucdmTAUNsNx7V+OsbUM+WC8p/jM7KJwMY5frNRoz89n8J36U+lbx7fTT8M7u9I0v+PYPMOIh4/Qi89x1JA1vpeH+FLoW/Wz0HZiDIQRMUYBBk5j+jjn7Dke11wi8FD0CZ3ihkHNjpTjntPCgwxYmzcx7inwtZ/KLbDXyhtlzPS43XrHzVPCVQ5WmKFifc9xy8n80kiZ8zRfGv2xzxsa1vhyrnkCQJS5qgaIEyBcm/TX2nKmv3gm72/jncrzGOT3GWttNjs3APF4YYH1yT2gBvAR41mI6H8HKAu+Nt5jHxQwQKHIcMM5zctZJ0fnspZ0aTLXvP0EZ3h9+btybEPuSC7hJKWRqkfK9Pv8A01mOKAogjnnpXtpm7B+8p9ZuRafT6akLH7SZSmnWyMo9Opmw0Tu7ppBsMrjphPTM8jQmy6NgKstPFUdOxFOs+tKSZOt9llLv2OMT+8VLzgxSxhX4jzh53L4LOnpNDO+nwEWbRhMuT0gU63vrQNQCA/ism8O3qHp6VcgDoUzjCd307wNVTRl3H8u8U2dvSwcg2zL5bnIq19ZydOzxA9Y1rnsc/FRFV6NPa7lKVm+XxbAS/Oi/vsjZLVKMC3z94pX6pp4wilPwvB1+VWAfofZ+WcAFf+2CKCn+C4UT3Ld3gfMa4aMR149j88wpC7sBvMY7gxSurgAsIWJGHpSQeIG+gJ07O+XCQ/DoYytFcZNz22JryXwK7Sp28gx9iokCgNVAFFPzAMZT13BO2nKNJRhVCCfYRjFZHwt1jUTtN8AtdR59rEydzHbibY8L7VAoO7Vi52QyfFkW1Qa4SVyZGU7BwJpGiFXUPOSmNe0eT5i2wI3YZi0uN1uOT9ljurYXvHvfjaCHurjOFJole8L4eIugN5a5OklXwwPAQpUMGd6Z8cEcFkGErWwFKb/TG+88dWY085czAT55I/DR9s9F/ntduB+O5Lvff74Y+BZS6aUBAZrMRAGrBmpptLr3pffvA8i3onD1zNitGelRwHmqoo5bEfpp5/+iDHPshvQcbsdULUc3JM50FU9/3oni3qfNQDhGBeu8x2P958AEZznw+59GBdu91ssAtspMn7k/RRFszsNM7Xipb5DdnT01qGYsPSCE+OysxE//nFYzPlxi0w+99sNUI0Y1uPoYBo/A68e/wvgaJb5iXc1fP36A75+/Vr4K0Pt3h/vuC7Lvc7D0r0boHq7f3H+tM9oGNLbDSDvYwm9lmBsnCe0NXRxg2tcftB2mvdeFALja8o6ncPi+QVomGjaoOOybC/VGAzDwQyw8/G+HGwGABWTfUMtoxN50XZJBvrRodcd0uxOBDuHwFSAnDsEmKJxPdUPFW8IXtXkma0LN9Kq7I/0wpR9gqkS7zKLmELQm6VStLa8Xd9FsBCbBvQDrQO3fsOt3xwclrTRsAxjNHAyXat7qK9R9GTtazFG+R13OgnwvR6QVmEkWI0tdvN9nfhOHeWptIYb0z57fv0xM6SOsoWqX53G5POopwB77hiwsG5IXmiIol8Utg7e3+3+kjfPonLN3GVmPX3TjRyZ+pyJ5K63+u+B4SGu4pQRDHLtcUO/HWnMqT8hgrf7Ha1337Uerns6oLzHIcd4HHYPRt0dbXLZTlY7F+gbdi1pqtxJ8p9lxpKvVwBcrD9W7PMiknKeSSXMSLVwO8pX9Xk2Plt6uNGcrSZ2gggmMRbxoX/+5MyjkUkb7LsA/nvWiyw/WvtDEuCVe0xgjXvYHc8GUv95GmVp3QzgnwH+vxLQnwsI8IF/BMqfJgR4Nd8KfZqDxRNIz0upO/4dgPA7nm/N9195aZd+ZyNrndtYqoBchKXktuAOqAmEWmuelSaNgAIAACAASURBVLEw8UavHZR/1N99nARqWZ9if+XVjsZHnldx78ETXXYDxInCadRS124NF0yZ3gvkY2t/c+EFLcpv/qfLeDxOv22HU6PuVYHwYFMNeXpNXn36/eTl90a0fJ99RSgK5kavhgHfCdC/tb0e8NxC02q74f1c35cyFwZcXTDVUK1trOIoaPfWf5c+bmDs9xkAeOI3G3OmBuTYY837jxm+4iEFefbDMtUkGF/XkNGJSgo9jbjw5EZb6ekP5a8Ts3WcDhLD0SACVYGIH0AVgYB50H33psyjO50NYPp3NK7CcBwX2sw129q6iygeFqL64nZd1QCZNCZvx4G73zUxC4+FwyGMbAPgTMc6u0GU3jINqt0tUNaq0CO/0lvgBpSqK92Wc8vF7uOGOM1nORuABKPQ3CXkD/PrC/JsAXPt63RZ2RiSmZl5piqmH6AHFKNZhhGp4U+F/2usdt1p2rg9ZInNk58XwISgYX+aUm6REUqd4LxfAqxf7TQYjpLt7NHqlEhaqXGkMWXITBrR1NeicOCsRT5X3VtAuM+7gSqxMx5VO8TN5CDjAIoIQ2W4ZDiLfJ6Ecmxk+mS2TV4BZXM41ErWnFLCOSQrnRbec/npyGP5WWhZeIJOPeXSttZ4oYM5nFoDhhlwpMvyW9x7Lz6fzmcigubGvllCvGjSnXaj8I0I2tHR/K4W8RA7+F0ifCb6x5lWQNUO1QaGJ3nleewo74cODiJpvlf5tFYMRTSWr9n/CrBP8VHbyu/LxG79KuvVefxZawuWD4Ovn9vKjn+MwvXFdyvvvOJFSV5sz3z5EdZg+dWAfpYA/KoL1yyn1PmsC+bh29nrQoTFRPqlL/v0vQL92vK52DrZBXMFaUWILwJ+B5L+mSAPXdWFH3X+gwiV/Qgw7V9FDm33tKp7fxmfvnuLpbVI4zmxXQ5G2vhzkV7xKpf57OOuY8N6/mDdIaB3M3+CPkWwMqNNR4LPAYTiVQcYlX7kh1dhOM1TkzEzgr8AVTs/MNR3RrxC3koZNwu7F/spxAQSBgFBf8aU54FTZil6fzzsZthy+UilW8xhy4wYdV4O/443jrbyLPtGvpt1XQELD/CCocAOFUwXT4y9y7nZZGbV0+XzBbS/MDxeFZs327bnzgVj+RW5sxeZm8oFbwTHiREE2juaK0nT9cPDUChn6Ol3L/r5ADBxHHbT4dGbxZWKLEYOYAfpjhC8xuPfvr2D2WMAhpkYj54PS315nXdLAelKpKZJJc17s3spjn7g6Ifxe6QHpVE7MHt377612QS+W7nusggyxR7QIAocrUPUDnjaId8Lp98YrZr803wOx3XGRNvhv6y3i7jh6ZfzcDfgOoE5/cBtD9tFHWAr1ENqUwYQgA+VyIA2mx2SV++rukdfW8O4GlQk01GOK3cyvTB+N1KY0ggAIsyNmW3I+7ZTwhvKywVxLkuv6/J5oL5KuRNGg0/BiJS0DDFCzD+fIfghcA81VPjixYKx96MfqZume4iZJtVoM6GPgfF/ndBvE/1bQ+tHXLDkiMf7ZC3bWrgtl66xY8PT+lZjK84CAFmPWtiOyW6T51BFF95RQTjyQkYEqPOVrIpreAalYtCIAGMqxsgkCNXIqLxgh1G5uyBozXXTdOCoNFAE0piedc2KttyJ00yn9Lul+0XvAHft4OdLbgcEEpcUxo7KtNvlrd705EprFgbmmcbUacjse60f6MetyO+ygxHv+8V3IkDrsB1Du9DPxjsx1HlbFeflF036QW8LtXLDgpPBNMTFeAPcAbEZjfFKmd0MVCJ/pGHsQsuqTzwf/N8gsftGPltCb5f2M0FLfOI6ooZGxgV8xQjNcRU8WAtVwZPxXgZder/+/VRV+YfgaQ2I5E/tj0h0/skY/aD8+kD/4hF49lpXTzc9NUxr1nv3hUoQLJ5fWyzGb2un7iRQyC+fgYpVn9596msB/st20WZY7Mxj/JWhPFrr296v7yme21d/vtJMNUMhVHUB/SJMxWZCZ8oLD723S4Pl5yzJj3YXdnpxOBXs1ywUdaHzsHHtI5BAMsYOLPMHuLG4LXgC8/DuOOGnzrillTf0UinbNpq9R5BZx6QurGr4DmlPo4kpIkFweV1+/fZ6WLjWS0HGzAiLYdMyLebhKddiTotA40QuuwRI4D/mhF4jhN2+G8RalHGhUnj8ewJGcz4CYMVcpR9jWdfutWkeh87LRthrKjT2vYa9VZHKw8CkAQHbbJ4lpnJMiUO3NWIHnJnzubU8pLefIxDxW3Gb3d44pwGRUYA2gb+qWuhOk8hgw3qYQrHO0dEOS4V43KC3DP8K3nD6M5QoAJdwl+qZnyKfewN0EpzOzA40LXd/1N8ylR10LoA46YA0sh34zzkjZp1pXvvsiDR7WngCaocnyxyGfHMD3zzunPtZ+MkO9E5fW9NDxuK+D86Bz0cc5HajBv47zon44dpIauDzG0C+1MM5nIypJlCByRVtz2uNfcqyrqNdVtrvmtgh31mKAxknbf57KlSmh+3NOJypp0L/1YD+OCG35oC/3M9CG4ZAq+xy0ghKJO6ODLHwMHZxNVJmOI1NviDWZ94onLKfepcAEUDwB0T8VuYLcfmYihuhgqG2/uIel0ppp1OkQua74jtPbgQYn8Xs5WdFVhFfRF3OM92B+ASKXPK0r7ebGwtrUok5J3DVkBuJlJ3ioR25A6KJGXq3H5941QTT4vOp5cd0iGAKNwYIrs0hMjQdLBEmBQeWacK9FvwbT9SiDmarZ5tzuzqDyu/y+VqbOwYE+Dh7T336tZIKeeMMm84sWYyUpb4Fg+1gf2/nI2PgqSfl6VzHH9VQ8eUii+sUfaf8akB/AHhNLyXL4m1cQISWmaEwYbz8OikEZXt74WlR5DXw23N7P70rS6FS2F5fnt9Blz+w1lcBbDUY/JnYSt3qqkKTAJH9iOwrqmglF34oogJO93jzxXMaC+oZmNY6X/WtAnvuQHwPMT4ZVD/zXHrmWgAQLl4ukqeDuGWmZgnDYJ708B47+OxlG5mevCnzmZ7IMJS4OAuW/tI7C6haHvSSgacKrH4cgGoCDrEYxLqun0SMrqEv9awLjeNlXrc+19jWyIoEhDGsUM9WQuFoiui6jKceDwfWwzy8YVQBEQfP8KGY001Y152XakA196Q1VwQGtNMTG8aBA8AIqXG6mveZANVGRk92EwTohQNNnSMyxNguzQlBrj/2bY4L1/kwQKTdx20XNgk6+hTo7Yb5drebl9V46+gNR8+1plPg1gfG5QC+TUxp4YWmUkeZmTkHWrdUohcBbxwwpvHJQ8z5Hc962AVXMy5qOh+npfqEGT1QuzgrYvA9Y1JmdDK+YD3NjaUhPiZk3L/tMtDLzUv2PKZfxHNM2/zMOS2rEJcLqKBbhOBwl6YaxRXMpVLcFDdS0duj4jy8JghYnUyVjvSqytNPrsES7oJyaJmVQVMOggAo4/3TGPAzRlKyfvn/Yleau+CuE1UVV7e+npfRkXJo/DRw/csH9DEhg3HBDhzT3Vna8f7FGpmwVDrpIKKTZMlWQ6uBv3wnVuwQBkQtj54B/jXMhgaZqmcdQxqrrXe75KzZ7kTrDe04Qq+IMSVo1s8yn2E+tRY7djVGmkZe1QvhzHOZ13pfDV4VCyXyM0oKC8bKFKScLP+MQJwnXyXpOJ3ekYnGz4dcY8K85xpGxkmZe16Qfiw7qVrG1T1kJ0zS1qBDI/4+zq40+2AwdE3VL0vLg8PkCfV3aWfGDdBJFezle47C18+ueqHq89gVrVmaPLaffAMkdq7rkF8sRvjrLm+dsvdpwAnSYPn41Y++qTLjxdMm8IpzjOgvDSXhvGjKmdCrP0PrXwno1xQaBRgAeAblnMiSaSRtgi0m2enFZ6rxEOADjDFX7II+e8d/JHGrNQYQ4Kwei+UUvDPn3JnkI6OigH9vYAX75fvFsw7EgSDGOLbu8Xpqsaez0tjb46HL+FwkWU0s925uKW39LGOooG4H/hUwPwmBzQggzVDn9wX452c8YLXkz+cPb9R04c7f0c+ZBidBP1PX9d7tsGTxpjOd3ewTMjnXmoeOND1J47oifGbvN3cVFjo5mDr8d+8W4jHpca2CClj4dQf9u8e+ens5fhFJTy8kMq1Eatitz5rSyLa8VSA4MaeDwDFwHafFk5dQgDCGRuaF53f0oFajA4IwtBR2VgVzoqupIR4G7c0O8hH0T7+a/Sp0jzn3sQ96kShjmngGCQL+CQQIn9ChuHh40t+x1JUd4wJOWN+hdoi7QR3cHAjPm/rh7GEG4K133IqhomKHOnVOjPPhIMAPi4+BOY6Xa2CMHqCXYWl5qzXXaIlFd+PLDiRPv9nWQf/jgfPxjvdv32we7negd1znCVGYMeDzxbSE5IXcGeMldDBDgIaF66KpthsrEPDAurhh3hs8zt8Mt7jAywEXALTmt/deVwB7bQ3jOKBOB8rOXQ6stKNRb1lcGIaXBz/zfEr0PdK+lt2WAGkGznn4cHFaoMrDXD8dAunRG5MXdTcs5K2s8bthIBdHR6syAOg+lve/+yMe14XzdND/9ycef/MNMmAhgQTNPQ+oBrFddgJcLoo5MrUkjZw06PMmaoZ2ZZYg54/uIHva4WrbXXC94GuVKRnrWRjKd4Y0wmW9yedjvatg5MWG9PTHjmvV8Woy5rjdY74rTlBkqAwNR7Yda3FOQAYmJi5VywoEA8sTEvKzOT3VDSuFW1FCg6C5U8dCdlprFmffGto1If1yOW3z+vCU0sfjBFp3euUdIq01HPc70BzcA4vH35I2+KFuVaANoDWMobiY5jUA/7rDzKA+VQu1oXHA716DXc2dnhffRqHBmQgYtpGW2MMcB2W3DiaqIZ5FS8KufpKXdCgADDsubb3qdjyQuwDxWDEuvg/8y8C/O3ivX1egn69mBcqGsWKwJ3z5ovwqQH+AYl09gQH4y4MZHOAAZAPzrwDiM4h/BmCvLNFKzJdzRQYt7SRoKV6nF+Nc+viifS3fk9HqRMd7HF8RRMs2spQdCP6b3pgCxl4BdQL/3TCp9NkBZ61j97DXA56teW7hyeN8z3Wz/xGCtBlCy+5KWVsfeRXovc9GHIRqevjJdwH4yw/jBSvQJqBlSA3j9rlFep7nEq+PAqgrr0DXS5bqGAtRnmi0r5nq5a8CILyCL9qogrYCCrb5avafPaEaRpOIxI7SDrgiv7Yr+Zee1c1QWR0B+tSHzNplQIP3DBigHcHDCgJg9yTOCem5k9JF/FbRDBeicokbKdkmcut+ycWNFPMEnksGI87VAs4Razl/w8+cWE305M2NBnCDY+r0rDMEShr5snlLavD4zOxQ0zMy1VSVNMpKEzmXteWZHtmYGwculEsEodVZYbCe8+5zieTBeM61aaw1zsfUkAnJu9u68e92fsrQtwTI9mjzc5MG3o/bYTsdLlhiHMgD++xiNVYZFrROE2ng3m6C/sPCt9hPcaBe57juLsZFTUL9QIPCnQ9KZwM8jEdDZur7xPyjh/OoA5jihGmtraDMaRQ0LLSaZVxuSYOgqIlieriMpd5UF+M+T6RVGDF5N0wczi1guxogpsvywKmtkTSGKl/Rc04HVnTZ9VAwSfluh1ph27AOru+QJeqGRZXBUuoGuEOl0Y7Ez5R6zrrwl07oBNpsENHwvMdcxvOr408KrRjak6CV4XObYxKpVwNrlrni2P1Uj9e/YppQFUU6FChWKCpP61mwPPg8CUj5EVivypunIsGWlL/pQE5aqfKcFefM23FeX5lAc5B1zFKJtg+kjvuXl5zjbPelBq7z9IQnvt/GrwL0Q5GHbqqXpAA5MsMTMEWGr5AZlmc+IsDCWP7RBwR78tJu1QB5qKSCkCuMl6yH3qvFICjgCMCaqrLUHUp/A0qsW4HwngHpJT7ck8N49Aj9KLSq3uF1wS6EyLY2On/Py2wA2lIbHsdRLmEaOD2EIkThpqABgKmsq6CKsA+e43gx3wEsdBuNP8qDeNe48P7+7mADQaf7/e6eoMPBU3qmramkPWlOz9TDQRUPz/G9mI+qbIvw3kPEngyYqnBmHmg9z9MUEC8/Oi3N2lEOnrE+esXrZ/HdEuYlpoC4rpCGOJ+tBOdYebtqd49vK8+lR0ojZRoVUxqDPnsOXhQ5rn3RBl1bs8uG5sT7+zd8+/YtwOwxO+53i6W9xsBZLomyeH0BxFLkqSpu3Q7vdutw0FNgF4BJbzg8b72q2iE766wBk02udP8ZqpZ+Uv0SqHKhDIZlHGnT8l4rFEcr2ZhG8hPpY/xi5w4M9Lt39DL60kt78ywe3CExGr0vce/XecaFZPO8AA9jCKNDJ0R6GjCTBtaJmrWEBrLDQNCDHbftEq0RJHId84KpYHNvkwaEe2HNABq4zjPWaYDmIifFQzgirhlrJq3V8y/o3VTh7Way0kLGjjAgqxdeWvfD/dPitz1EpvWOftwtlGwRRGu2I/Lt/XbLHRMRP/NTbmXnemTYiuRZFqiGfsEw+kcWLrWQu+rpnr8fuP7mHZgKgZ0/OW639JTXrF8EcSK5A7DL/ILjWj/i/geu8UH9UlNm0ggE5ZCfSbrdQ0c0EVzDveSSN0IL0xPeb7jdbrGjYu/fgs9MPpqHfap5rYlZBUAXy4hTvfchfzUgevBgXrxZztxJ7ogPD42bapckAcAUC8Wc5XnSk3H1E4jc9g2WZGhM68eYeVh+asc1Ru4AaeJQrcYT1wgoTnP3KS4BlAT+NAx0jOiHrS4JsE9nQbuu2AELa/YpFLoYEQuCSFqKYFl/NNTWooDf0q0eNpUOEtku90y9n7dys8bcHayGkb3noWMlmcPiiJXkpRgvCvB/AkcfIqZ/UAk9y3GHkbXtUrrNZk4KCXxo58p+vh+/DtCPTZCUsviWPjLuPihP3vMn8L6e6qaXV0EL64N6rfI43BNtLZY1Qhlx0ir4z1VWVTiNx9c7Dz8z2GDSaCusRo63Pv768DABZYypfhcKpy4gXX4/d4sLvOZCjm+fng0alM/j36UN4fyo7vIF9Aqwn8tPAepppGgam96/8Ky1XUjlWKeunnVFxnzPIqhpsXvHF2MoQO9G84UyIukhRvJPiKPCS1r4qSrY6mFJ/nKPH/tVZ4b9UAlje7mIcJkd9wISlGm9IZJ9sgdCkOkz71TQNre2VmN/47UNkFSjVvBcR/Xwktakk+ODfE/VDqTOzAQTwKCMj+3KRsf6HFQjlpiHb83D2gogTtrXMKxl/JoKwRTY7s3y5/1Q5dSJFjH0I3Ncz8y2stBMqEjW7FeUiFx32SfvTwD6HEd41UEQ5UD+hXhbQMES6rXSowL8ugsXnmL1dehhHkHTkEOINUfPOOvsh93BsaSBFAkaVxlhwEmKLPIxMgQb5TkoRAiHiFA4Nq5FA2iQ4gRy4JY0X2UX55lhDpFNhnrAgXuXjj7d2D+QB057esoVKJdYacwDz1u0MudV9tazCYCDUXXtyoOWTqfaLxQQHA43p0sFhIr8PLlw0zlVaWz6IP4tePGuxFmG4JH6egGY8X5tt8jhkK/QpW9LN5RycP8MmfrSmSlpvtZj9JBV7i39sopqsg7yy3C9xH9HGJUqWtkxflXIyx99H4T/DnaR+P38zC9CPHvTVbc+PUhs9vO1V5784IGo9/XM5t+vyfO63o9x3sdAd9Uwmrr9I5tkK78K0K9AeBhEBA25/faKOWp5RbTWq6Ky3zWMZW07gce8XCFRkFcgFmajfdZbSwFZgBzrohCITC7lXT6/AIvvjG2qYp5nvBvfA89CTDJ+mf3OeOoRAgAU6FpChIAIDwhPbgGkNctMHuR7zirCvjNmm55tKucKXMPj4gqbpQEQxmmXG1NVNQ5t0atl/faZdM9OU4nF3n13gV7v67ow5sR5XXh/PDIPuIhfvNWLN5yKRgLQX7yQ6P0dj8cjPO37+AOYOHhg7Gn3XN7kkxqHHYCvxMJroXGNc418ykheO8gvJbzGRiFhCDIE6eg3nydm7tjuFSCogYXO5CFyAmQaEyZgOy8QIVh0D7SMzZNCsvrfp3voW+t4e+uumDxLjLSIF8/3kw7XdeH9/Zt7p5JGc047LHvkhV2qinGdGOfp2YF4INXWQGcOcCiY6xtjQnTGIfTD5/M6rR6GKEwB5nk6v9/ceHGvqx/YxlQc3Q7mjvPEY2pcijMvOzjcVHH3sJLWmmfZmdB5QSC43Q4Axevsc3Xr3Q/0TrcRZ/DpuK7IdKM6cr2o4nzYZWPXeeI6LzQR/PDDV/Te8fULL9VKXjzPcwG9CYp9J8gPd9taOlzeTIzpmU7OaV7mfoAGY1VTt9uB2+1mHvaWKE1E8Pb2FruXrTXc7nd8/eEHn8cDEODwMf/4448YD7t0TqVB2oH7l6/LJYKPxwOP928QaTjub+i94esPv8HhlxTNOSFd0A9Ax8D1MI8n8WhIcBU79zEHzh9/CjnSnHY8gDst6XAYCI+haOrhZ2JzMhzhttaBZgeMzaGgwd+c+xG7P5ai9Dhu+PLlzeblaE5Po9n48QeM94enuObFbn42iQe/VcEcMVzj9y/+/pyRCY+G+XVdgK7hTRDYjpvLYiZrih2DYXw+xSjRoHZI2B0Lg7qzdchyEaACmHGjtYWmTcuoVrKx0UhywWQg1WW3TB4qLzLiduCLp2A+jpvJBb94cYwr1tB1XZEGn0ajiJhDACPo2VrzQ+GnyZU4TG9jsPWpcWg4DDQpTqDJMU9cyMPMUMbnS3j3r2vg2/t7GIO+LCEAHi6PUngiZOfjPEPvqSrO6wrckFiH8jSNCTs7oXFWIQwOpA56FRrKsBz+0Pjh+udaip091lVStfOZJgK4/h+uA2/ddLxO6g7f6fDFJcVjVR11VfaoZoIGKVsHlLOxCzB8DychVxqV65G7KFLml2Pbz+ctBAq65W8z7JtfSOg62TfmmvPT94wFll8F6CcTLEACOdk7UA9hW4BDeDPx7NWtbcSOQhilaxsKRdMEn+EByQ8CrMbfpZ69v9Uj/Wo66k7AqyIi5WT+1mev96k+Dk9WGi6egvK883aAcXo1lTF9tf+FaaN/FVyWNnev3L7ANDuxCadibJUOv/KafzQ2rwHVW1U9WouHvtAwwhOKhzPEk/MPvSVXub2QQJx1xSFVya23OEhMQ7DQdJbx8z3SpWZHWL3V+jSXPLOx8IH/w3jJt9wFnig750jhGZ44p0BuGQcNjCKqiPsvDORZ/5bzCj42xeZZX6a6KOCDRmHd2sz1Hl7lMn7Svl5KF4JTng9txyFMKX30d3jYjmMF+c3JxXkRZAiDGbLW4oTnq2/daTlza9qzZDQIpjAm/cIUO0wa4S9IEMWbQYf3xRSH9S5T/nnfS3rTWJvu6U6+nRC5QjYagLQDs5Fhxw+s2/0E7kVnBibkGqRTg2EXkQmt8FtedmS51SPsL3aPkh84dRGyAzxdknV434aD8tvthvvbGyKMgfM3Z8TVqwbzozUL2ZkOYCGCMRWtaWSD6ceB43YLkGbvNgDMJkOjUBC3fjvHTVWMi57tji4Wk73qqzU8od4YGztQASobJmpoR86jFufDeVqIoqV1zN0VEcHtfsPRb5hfGvTrEcYggDBGmPVJAr2Q31omgWiGzCnHqsPFEkYk6BfqD+aGr5Ps8ozLNCCOSMoJdqHod85l9V6PaWcZSBcC7NRBsZKjUH5RbqScfr580bDA884g67Txlh1AH5/N6UDK1efdwO76aMEkMFk3kZm68qzAM5yjwcbsaRX0A5nQg7TIA9a6OKn42xwvmZkr5H3Qt0JQEvT5o5VS1KGl90FMXX5VxLZXt2AKlJmNBZP95d4L2bke4ahO3qy3yq11NzGHme9RD1EnuDh4nqAq4Eobr3TzXupHiYNyHhZdJyWjqvP398qvA/SzFDBeSyX+Ag5Dlm7GAa2uwlTLdy8KwcvrfuXnun1eYYa4QYA6SShAmn0k2NjGxc8yztWs+SklP/gHxkWOAwlcSqxfZZwIMVDFVbb+FtDRGjDGwmDyYkFU8E+hUUEWQbJZ0b7sYjEkOA46VhDu9AywX+pEtOGzV0BDegnW3YM5qehXwB8ApnmaM/fI190Merbo7Zy+60HFdxzHIkhq3nwU8F9pGfOxGz1lbrXMSXcjrBVlEVu2Za6qNy7uOBDPENFmepLU/r1nEFIASt5h39wQGsPCUqpOzaxIFt98FM8bx79qrTI/Yik352weaiBo066eD4PoyUBLOkeqx7IWyccCHrblzp15/zVSZXpe+tO8RcxQ5Tg6PiMoqQon+DHSkzq/TrHsIeynWh29tTDsRAEd0wDkwZ2rjnbbhJ8DysWUKev11fqv+b+Po0OV17Kbt2t4znzWM5ynRcwzfztu5lFvnqWqScRl244V703InbEALyiyj/0pIJN/2zmZW8ytINfL7WYx202a3+prslPEPP2RQet+R2sdgtxJJRC29KUD15ye67xbZpI5oX6GZww7+2DeQPGzI8N2nRQ4H2ecUbmu0+ucKcfEgb2vC+4g2JkL9Tt0YQfWuTtRslWFnBZZ+Bu+k3LzzDqWN912qN7f322H8WEXsREshoncO26+G3K73UBvpwDQPqFtGDfR/e48q4NGS3p+zfi3uVO4YeBzR1ozzW04iZw+j8cDP71/S7kN4NDD7i5QDd7h2S7Oae4KzTBET9+VvPs5i/v97jtBNi/dDbWQrYqYU9YPNxilSWZec6Plfr/jhy8/oHW/q6DIrAqke7cc+tUZY9ObMojnugTrDv8C9o9y8VaZe/Wdi6SZ4Ea6VPA/Ld677to3yZSpITqQRkg18rn7OPxs0CLT3NhuFO5CIO39t1ypYPgZUEJiCDZfyKRwsGy6b4d6Czaqr1fMUfpbE2u03szZ4nNmut9knzzNmfHFGAMDZ+IFYUjjinOejICyA+kd/Dmc/bK8MuJ4ps6cIm6xiBvxWEMcA+uI7chDQxJ8t/xqQP/ulV9NnRfPvPjsI2/5P49P1AAAIABJREFUbt19tw9U3i/riYae2kyrTeL7/fk0PHS5jtteW7e1FuWwtfVz0xr1bIuF22IVkItsua0dFDeUA9LA8wIo3g4uMiAXVBWYFEa8xbcC2dYz3RxB/Sx0qp8v43+ay3UxEPC3QueIt5+8eOR5tyFihEVibDwgS6V7Ph6rgC0GAv/m4enlmV14bLTVna/K3xRyJuSlXKaU8Zn0UqE8W6jjuwDAlBIuhEw7WvtDOgdNe49zBcRwO717N8OEN8mGQih1cqUwvMZ4p0NE0Tp3ZlysK3cJ9CXo55jtAqJ1TYmPmYA/DOrSLg3Qaxgwb9zeJnY1je3Cdr08Ko3QNVxOBSVXufMVJO+o4LQSLKmlvUPLLDs5N9m+fxh1c2u+zhlvtyWpDYjGy2ksTAO81dhnCNpxHLj7zdOtmwd3wJ7lgdXgjSZxUZ1T80l2jjnR/JC5HaxF7CZA4Xdi5A4bdxnoQKmgPwyC3nFMO4szCuhV2MFvC3fhORsNpwfX/HleYejSKTCcrqcfyjyv04HlFelNJ3OAKxVt5orvvZs8GSPsWzXLIJwJ9/s9ZEOVATTaqxOhe5hhuwZkXBgn8P44cY2Bn7795HKg6Ilm/Tn8NtivX756qIkZOK2N3LmNRUJ9BzdUFKPelSOCaw6oACf7B3W34uqYsEvYjOaP68T7+QhFxaVUEwikLMxd0KoveGnh5Wvcnjlwc9Av7QqHQ6/0VNgOWWuQNmPuayKL0E+wtKVvb2+LhztWTG+Y2kNPEkBWudbEgKfOkv3N5Qy1i8nnGWsy9IWkQ4nhStU5Mnmzbyx/TVoXeThQzuRspers3REHrKFZlG/ayn0FguU9jkmEM7sWGjkrtkk++C7gZwXrCLJvje/KE/h9yqpXnEpSeI3vx1g9jLRFXeJrKfVW/uCDPiaP/5JSsUzQBQX7OZ2npjyt88PMcRFFEPoN9DN9t/wqQL9h0RacwEnxP+KzvSxhANtIF4D/igo0LPh7RddlCzJDMF5VRTBhv9bfVanuBkdl/tUiXyd4AYmlTzvolVLvLphq/9oGLCioghEDzDjAKO/s4JZ14EXbu6Ch0hwzjaIqSEnbmuWiUUnt7WlNt2UTmENdhQGKx8XGVYVYecc96QQWVRif5xmGgnroQKttbHMefa27M5ohPOF9L0puFwRRRxI3+km6VCOo7jJAZD10F4KeYSRYvC8Wd5xb9KRFBSbVs7zsphTQT8GrZQ4jbjHWsT0z1c5dmFwjf5bUez5P9f4OKjzyIunNw6wLH6Iul3wXDopZP6CeWlBM6Zp1ZcAOEnOmAEQlzkrwoDbHjGKgRxjLAg7WnR7zcDuP0GjYeIhxmnNO9GleWgPYCqAvXlmhteLjDm8nCAjKrttUCwfxczCiCmH8eVWgiyPGmGY5k5PqCsFUnOy6HluDqKWKhIdjDAfHvJW4+zmG2IUbud4I+sec6DMv3wlaI73U1xg4HSxWw34qzPMPxG5Ac9BulHMeUAWmZX25xsQ1ZlyENCMdYx565QVKrXeIKo7DMsu01uM5GjzDd0KZSpfzzDBBerZzTsXODZ0nHucZ/aabqfv9FDxD0yOTUaZrNI9yw9Xt5uBW1qT03HFAE2Ak77Kv1aBiuzw/4/af2xFr6mBKptByRRftOq/u+oX8GLNk/nFP7mE8yvCiyqFCFnXQzEunFkdb6LjK1pkZjOuNr5zXmTemuxc/+hk7CwXgcjd/TjunUAC6gWwJXo6DzfTy+5idwlE3wuBwnhOxsxf+t1B2qPqdAengWDAG1hKXnfl3ASIrABY69PzzbhmXLEGAhnPE5pDtcOYLLlB57kDp2frVKkcW48H5qEEjlLL5DfGR4dD7tfMUQb8InRMA7zVYWqdeqHq89kiQ2LA8sNssK5x84YHfRCvbzF0/3y123cI7VubMW8ET+EvM5/9v8vRDbNtrKYXST2xRJ+QFUNoLGeEXmWJlQis4DvC/PFq23wuw5r91vgZzu0X6BPx34M6f7421CNMl80Vps/6Oy7pc6dYQD3UBMr2OWd/faPNqXNyq5Wfc2mRb8bx7ZCjAmFEk40uX6ciiGTblH0TPuKXdWsbla8xHgl+CIAJNhqW8vX3B/e2Ox/sD5/nAmBOPx8O8iq78W8/Um9V7FcpKFdAXc88xzTXmfjG6Kn03mosrbQKM3WALj/M2vwQRvKHW6kxle1TwULyH0ZcafgBEqj0ejD7CeyUhVONuArYXGTLS087QDALJvGAnwW/NMJHerS0rhSrEQw+WNeS8kWB3bjxTgIGap9PAnAJNMDg/5DCRSBV5uVdWm4eQ+PwAyFCr4j3cldD098NAKHQYG52nGz91PbfuhynH5fyUijbWoc/L+bAkAHaQcGCOifNhMb299KneSVHbijmUBP35GdaSAjENKL+BVRz8qiLikHmonGEjFwH7uPLQptPzui47J+AGiSJvEB3OB+/nifM88bguXHOizzx0SP4/LwPP97t530lHBXBNO1x7XWY8nNeFh9OP8mTC10nrEVpCT/WBdedzau4iRH75MfzQYe4uMCHAw3cRx48/Bt+OaSlj3z0Oe7qhfHt7c6+3zd9xv0coE3ynM84P3QbmcQFD7HZrpKEl4zJjDAheu+bIfPnVvUYvunFhrFNV9WxJxWEE38UqPBI6quir5jsh4od8raqxHOA/DjvgbWdNDswxM3QvlnQx7lUj3SMcvOKFPlbfuQ2ZJ6lXTuel6fQnzaRZOl+mtmxikixC70SAlrKXCQcoB+oarYYSDZnYLZ+3BdxxsU0AnUYACkilkUBM4Qs0ZKHkZWEL/hA7Y9B8RnvIUHunN4H2vEVcm2WocuzsuLQhu7jvOAgFaLYtUn0D3wGqUkwDn+9mq3+G841OJwlD22RnX7BU1WlTBHO0F+2ZAFtoGzTLvr5CYlXVv3o/VpE8PWV9mjPCLcfMnUhxGThH2a2D80Vv6NKCHxhq+b3y6wD9SCYEsJpWgDNHAgF6A+Jx/zcPjtkr34nRf9FObZ9KbfcSlM4u/a6LqnQ53v1onFXwLd3yd3i2vAqq6t2Ndirg38F+qTM+DUDki37Opz4sfdmBZRnWRwxWvTYJcPc2JAF8GSffyfd0oW2ADvXfW98/bm8dl5RVTEGkUL9SfRQPXIJFesapaFc61fqBuC0wR7s+QMH9Yn5fGnmb4ba3X8HYE7+QroVGNYPNsu1c6qbipVKq3uqlDSn5rmvoiZqQa0qPpDvEWjmnkouwKI6PShXCPsNVMHNsy04Fsxmt88hiOcazHnpOGSJGIZ9rVSLzVcT4ltndPUzWXkNvM4xEghD+m/WGFsV6d8U+L8Aac2zVpUJRwG92zLnTAqJCpkYfU47tNLJt8TysHQBFxLNniBlMmuEylEsWblQMMffGmVJLh0zMoG6XEZUxzjEx2oi1OmfKjkifu72nvLQMpR6txl/lHB8b6yMYc/7uMUe5/p7nmaYmZfeE2Rpp4PCAZT1Uydu5H4+HGyFjSRMLsTMzCo1QlS9fvuB2v4PU288RKQB5KHABcpl+VEmDJJ1D69mnRW2WeWOK6lbnGClblh1AN4LqmZrlB89l12ENlr3KwgUzK8zHOik9+ct3DrybCIYYaCVZL6gbJgSTOfzLL1asiRrYdzqq6FRAla3Oxzb/SADutBXJzxaYQz0eP3n+7oVywbZwwtZu3sAa3muvNHKm978BW5t41jsofa66VXiYtc6dP0NdwEF7BzZY9/Sv5ZWg7/PXK+02tF1U5yuc+OQoA2UwSVv4i0asvoQaT319Xb6HQzd8iKQn117svgC+lsyYbs1kUnfjXlFCo79TfhWgn9YtF2u1tvl9/JuAv67OfDCVouKXAf+9UGDsi2wr9UDPDvzlg/eqUFuAQW2+MGIArxqvV+ssCGm/or0MJ8AFyneMH2aarh1sV8OKW/A1Pv4j0L/HuvO3iIOpAEnWdSrAWHwz86un8GoFuNT2ilEGhnjsNBeXjfpS2VeA15pd8KRT8dNPP+Hbt2+4rguP84EmLdJ58ncNAdp3SnjD6dKW0yNSmlUJwne3v1F4gYq5hj1RsfLZWT6vHiRudxt4yPjW3rtl+KDHshyGUlXM08KyJre4/bnaxph2wRr3cSK1a6F1pDD0bCBzTAzPcHEct4VnCUABidtX92LeYUvpRonMddV9F6I1ZqwYOM/H4umv2Zy68984LwBastfYIUGjK9MVunHkSjeVaq5ppuysDgVmBvn6xcI03r+9+45Aq4OyddHEb031tSoC7XkAkM8q7NDkeV0ee345CPZ162vrvCwdJ5WX8ZClj+z1gjDQeMgbeUX88CFsx4whN3FD8bA1Oig/Gs/pNHS4Z9tp3aC2gzIGzusMZo8sP2KeyOH1X37DsHrYA73gTO/LC46mTpyD4OyyjERzmLf6OvHt20+xQ1B5jH1j28bLRsEaZ08ZRT7lfDNWn7wEtbAeq2d4OCOXneD98TAaO2PwrADnzjzKV3jbAeDt7Q23m2UUOm53tGYHPPvR8Rd/+W/g7e3NHRNXxL0H700AfzuAP0y0B/xiRAm+ZCz8eZ3m3W/lokDytMfMk7/pba96i4ZggCUAd1//nNv+Pf3kjGdrkRc5ekpXpZf/wHHcAADD6TWuC9oaRuxMOQ9Pevonpq8JO7QtuPqVHl/XLe/chSzcAZFI1lCNXKhnuNEbhOcQIuWpdVmm+nlXjRt3A7QVYGx/O81F0aXIJiEgt/o9l2uMT8dAHK5CtiUiOJp7v3ueQyKineq/JQ1Ta9Pb0wn1UEJ44o0G37VJ1klbFJRvHuKztce+GdfTeCkOjejDYjI5bkl5ZfTVrJcYseAGpdPEXo51Np3eDBcb0y6QHNeIXcTZAEyPOlAesB6Ys2N6ClBVhgp/B1PuECQtqfys9Dsf0eCLBgF6h0IjhO92YzY1PzfXG26eaex+s/XBdfhz5VcB+lk+IqaipD1DAf5bCYES1t72zCsrLRv56I+9kcUK24XYqyY++uwV4H/dnRUA/tL697r0xXe5iNexaG2vfJZ9XD2NdQyLwSa5mKX8bWOv6es20Ls9G/2ofanjKvLgqU/4/t/liwCYcbBuZgz8csCa/SjAOsf14VRFf00OlJ58NPf1OwKrWofTJMRp3c7G6/kIw3Pj4WX+Yz620KPy75o+Lz1fWDxjVOYW1zxNcCrDs2YoPXqjqBSts1gM+VTsaRQuxsJiECc1lQCghlVVGvhu13DCxiEwD69RKNq0SgPwiXO083HVhrE9j23Xit/NdSdrOmDQrf98Nz6NelwGohjowOLlTlquIQRRTzEsSNd0mGyGsbSlr2wLlMved6Z7tfMaVamx3w0MMKjrRcP9ua6p9LA5v3l8NLlg8h1Z+bIWZlWxNbsDz1ceP6bmTC9/7sRUebYQaPnTdi/WMZhskgKQEVmBLPxjhNFiwDvXAfvO25ePmxmjt/sNNz8cHIChhnaKACcgD3hmyQzf47P7/C7DKnPXxLzuHzmrBAhjrB6KbUXuV4+/E3trjx5+iecpd3/O05/zWSciPf+zGOh1Pg2pP4d5CBDnS17tJgTg9J/tui2IrjCWPxlL72NTCweqtGyFvgLEjl0dV9USUv6RMflrPdQRMdItA40ZDCSJruDVFaxS0WJtvzwUff4Qyfl87NyW4H+proy3YBIq2GVeNvxUv/O/7VZmgZbQ23Agg7ggwOPa9rNSfu5njnLVCS+eqMbPQgObLDBwPM/LFZ4QGgmSGeeIO153aSm/CtCv6vHSizWEVPiKVVgAaLCtylj0SIEWW7mV+4QT/nMkeVFqu1TeO+AoY6nKdT/4GtuoT4qiTFZh1io4VGTlvgrKqVledn8FZGkclfcLmObBs3o4sfaT/amAgqUKSQrYJ+VSgAq3vBfDieAoLhmzz+2a+vXeg1U2+HbcrsydD+KSr7mHANhnl164frQLZ87rtHhp+EU77uWSlgdVw4MKD32R5t60hqYTOnOsHNdCy7J78wT+N8WoqpYZBFj4CwS0G3gJ8O5er9ZaZA+poTwiYpfojBlMaGBnFYx8XtW8yzlXiDGLAxULjbrgatyyvGgEq8V47EbaDpH0oFo7lsVFhriXReLCJHi4BPnDvJp59wIKfawNP2fh7TIdG0ObyMfUZ6oWe91vt/CyqObZF85L64dvqfp7BPgA2u1A74eBOqbEVERGFG3mNZ+wrCjzYSEbh2acpojFt2u5jMjuInBZ6PHY/M4uKXuPuQseKDIwgZ56qIpnJULu/kS6PhuJ0d53Z87rsjCpuvPo4ozGQChvkThEL71BpodEzAbVgfPKeYU0y/d/HMvBe8cHESFswBh5Fujo6Pc7oAKIXYbEHSzz7Fks9h/dm8d1fL+/4bg1P6/z/sLAyAw/cUlXAOt1HataWJUI5+GxZFbRBYiqP5+XtnEnYTiPqppX8cuXN/R+4OvXL3h7e3O+sz50T09oO1LdQAzMgO4OvG/HDTIBbVavgXaThYca79RMX1WfCTJDSG8NB3dVZsZ+8zn+VggOadDWga7Q233RXzzrtIBCUzb20xIUR8pRlyA8b9Vb85CuFWASMnOOWhg3zeGTLhm1lrCXvhkTpc+RSz/WtodaEJS5nmxuHNph9TgSFOMMxwIk5FUkrJMVrErp3601dFfT5szx73XiKGOgniUNIg12/Ph6LDvhqi35kgZCyMY6r4rpGaz0GNB5gE4UM/T8wO+8AX55FMUO7/QiPavRUIHxcs0GuxRLjA6ikh59KhQzjDLDIQNpTaycOZ0TqW/r+bDgI+oE6oUgwofI/bmUuUxHtT7/OOMWKQIaANSxRF43z2h2693PXBgOmAKL4FCFzvHB+YTX5VcB+oGisBcLdgVL1eNPY4Bgvj73qjxZ+D9TXj5VAGsFc9a3tESDSakldo+GW2VQfXESfAP1FTDy+Y8MlxcgnmwneLaE2W8+t3h5RXI7DR/TdveC7GX1rGZb+/vVe17pSwFSPw+6hDUOgDfulUWn9fvSVvzsxoFaPuqqtCMzRu+xXcqQk3rgBoClv6yCOMb9bCCSxhF6VYA/eePpeTzPWx1XpdMylwB4qVMINfaL77tSnFudFfTTyJtlzGyvMewCaziaSPPL7p7Hw1s2DczIso5N+M3wMPIzHi6nQ2Af60eeuR340nMYiqT20JU0Y/qp3JXAlkq8xPvDjbJ4tzfoldkURMs5B74jEmkeu9NK/V3AYtZJaxqvy8WB7LdmiNmSr7vSCAQDgHisNID0qsYNlqnsxIFmnG/gOCstFHF53MqXvoa9Lv5bXWzzZlvVbEsK4K9zwr/t8P3IQ8EeRsSDqQCeQqNqYgACIgUdEjMPnGPl+RkpGNdwxSqjaCSIoLxXQ/2KMUHaQeMQ8/BLsQy8EMyaAcEt/dvtZoeNQd1ooKz1vK10+V087aK2G6KcDp/vWc6HFFWxyGU31yMm3w4ulx2Psp44W+JGgrZMHQyOmzumrF+xSgRNJxHrYT96L7s0BQPUXkv5lP/e9Qxg4FnL+Pcx1PED7hBXRKvEz1m/g23N3TopT4sAU/M8SO60uAqbiQHYi5o9h3cAsKnoA5ixxtbuAvpbrt1si4qU4dGrPgpMgnjMGqRumBNLspvJg9omk5kZrY5DQjjGLIAOEmxfrX1cn88/rd80pKscissBAxqU9eerh9m3nrPlSRogRV5WmrB5fPS3lA+E33+A05bX0hCG1Gnhmi6efhJN1Swqnf6j6UD8BeVXAvrTen/5rXo+cRW75c9eyXcKqFvAla6Er1O4t/dkULwqBSg9PVGYaJYFSMttB/MfjrYIgCdQgQpiPqZXFR5UtgnYijeU/Sxj43fVExyXVdGz6k3XcInvAX9+vi60+OaFCM/fie/XvkIZWkBmX1OpcS5rvwjQGfMbIHGmcKGHu4bydI/jZkq1GstPT3YAgiosHSz6JzGmiLsPb2AZaC2bMtgP6QRQn9lnxn7HleovynrINUEj26qe/gAwuj5LQwHk8ZYZLUINhxDNuZxTIRjQXahFaAA9kJYlCZIOgemxmHW3SpHZcuawXRo+RwGZRguCNypN60U3/GwoL3JiRqnLv7d2v4hY+I9khhTcbrFOIIKhitP7pGrzxdjtSQ+Ur0NPJhpeTogUWhsHzTFx4fL7AGwES+x5zZ7iTCfCexCcpcr6JV8SsNX52L3ZBK8z+oo0cCTDyyxvesmcRT6WEnIGDWOIRsr0sxdsNUIrpp0ZoYUhELSjo4ndQdAM/fj5DQHUDZjmLWneYcHx3TwTjI2pgNEn8KuxXpiZalEvSgN4DXUURzucA4YThNyINWV0P3q327EdUdpuhcXvxj0maTn4PEzfdRneB/JJAx4D828n5ATmjwwXyh1N3sgd67pYVjv8rWesRCTCdeqzDi/RYDtY3WlMkKq28DEIUAqIjb8r/ZYVun5vfUB4ZcXBFj3hQI6LRouRxc8WeArT5s6co3fceQM0Y/N3nKCkWerEdBhIvMPLEw9P9BAyU5w3kWeCbM1h8fQHjV1W9UYvPQKoNxE0bbgfHdNvSI7L8Vwu0mmQ4DsZVwDowsMVHwXDcoH73E8I1OmOAqTt+fW91LcE3jkx3o5//ITxsT5OS3XdtXA+Cx6QMBLzYivKsR7zyvpEZDmnMabHyB/lHgdpsctLr79hixXbBzjbf29DKENZfsoq42TYWp4lrLP3+Py67FK+89Ewj47ryrNwPK/wS8qvBPR/UBzY0wNQiVpByMev/3JC8Hl5ZsNcMAVAPwE0JKMv15MTnGxgPQyUF2CvKmAgBaeUNnYAvSqcYjQUMO8PrkIU2zor9VUlGZlMRFCNqZgbPM9F/c6bDsNF8EzCj/rAKurYdHMjVM/1boiksvW7AkoayLjYaeOVCHdw0F/rqakyAQ+RKNl8tLRdBXqwbp2/SrONFz4C7Xy2ehf50xz8x+HCpZ5VeFY6A4gDuYoCUGZRhEWpavGgThqngSyrRzSHZr+nb24IRFYFTO9U90O4bdrNvwb6FWM0nI8HhsiyTsMoGJfTpRx6D96BtRVKlcJyZmpI5PmDqWYcQhlzfS40PO43E55N7IKmMgajuxnZF3ltpAc5vL8O3hSKpqY+7eZkhIdvzkRkVLZ594FkCMowQzbmtLBUE02HBTXtxMJ7aaCVdR51pVwLlqVyFU/J6RiHh3hji1z15bqeOk15qxbgr7HzFZdrMfQMKae6Cw/qBsf9mGLtY07b2RKFIj3vIgij8ubhYtfYDtsntYMuvXNuy3MOfuKCONXlHYJBImozPq54J8YjJZ0r02FKHlIPY4M10eiaVuccl3v52NaEnsD82wF8U2BymjXkNkFxPf9TgXKYZpxs6iryTxFTCWA8fMsNLukrf43rwgQvN9v0sq5tGQ2L7lj6V4GxywFlfymbsv7IZ0/Qz7sonLbHYbwAwNf7xqykRrkzYHccCDLVJWS9VTWrYRKGmpqcPmiNOa47N6nPeBgVbtwCt6NDNQ10ky0uc9u6G1gBf/l00UeAGwPL3HA+1MKVRAt3sKacoxiTrp9p8OZuYHynBHim1913IkH9LovMfQL95SLBpu1pWuecFiY3e+zkdwf9dheEO6N4GLpugmoZyQb4V1hSlE/8vdOATG10okOAOw0xN3NiXCegE1e3XfBxXeit2d3138HBe/lVgv4deL8EleQrF2aQ3PoOsFIYsIIWALZr8MooEBd8L8BYglBdQQ7wXFMRYgEC/wETw3EsQJddLEZIFZLP25XLsBZAXD2b1ciYmh6D+nl3wWj90JdD2XcK6jj4m2kf2StuRVbhFUA2tuXXemI8AnDyw8u/hK5kfQu4mHnl+eJ1eiWJHJjh/2Hu3ZYkx3Us0QVK7h5Zubut5/8/b2zMZs709OnTXTsr3CUS8wAsAKQrMnefp1RZVES6SxQvILAA4qKYLARpPZ7nPNqjYrh+DmRV1UXIBTC7mFPAPTKqYmELGX0KX0444/e/08LXAc+gs7YdcwqSrYYbEwNuxU1Em7vZ1Kw6s8LH3k1SLyz0Co2gRPu3C2bfKwTonF/2gf6+k9LiIAiaufhbVcDoCxv/VnT0cBmYxs+YIHEfdbeKDtVwh5UkPEI873CLvPhQoMIwA/caDdBaLa15hhfP4pOS/5JuCDS57vYrfcd5k5R1h9MCT+m2zbKihAUzUXzstUqDQTsSFJcCDrC4nwpwou8JiarIJwCbKo36D4uMKUlHCNytH1RhGV+zbS1aIFhi5dO6t5mze983z1jFWhEDbbDvc/pc0guz/iQQq/zXe68alt0E/ObzPDQzeaVbnPFPAv3pdKURyKq7VOSpVfIWAHU9CB2fHeNzWODuS4HO8eR8jKGmHJf1ptIgQPqaq/MbyoM4QX2XJZStTDFJ+QgH56qZa7776Qj4zMgMKlVJijGNgQGE0k2wz3kREfRTgnEpEG5TdHlgX9jnpPGcZwXi5DVs+BP7+kJ2Fx5OFzgWispb5lOKRIbuqoIE97wfOmIvUWZNsqEqScG0PW4qfpOfCopulP2Kd5XTZn6GaMI8BrYWmZx0KLqPoboi1V2/KnBfwfzAy0rckB+S19Jlj/uFdNIHT+AY5F7SLDuvmwxsRVabXEm3vzxpnn9qwciYFHclpryKj7BgymCLdd9i/lum2wPTTSyVE1LHUvGl07C96dcY87cB/RWAXIF+DiasFBVE+bYZYoCyj9kS642+tftfukJrBXj08mVrZfO89YPduQDouvx7bQ98ZwU99fOl3ZWuKlia0iASMANpRUSChd3TtE0BfD8hrrVvNVMH029SSO+3WzANAGl1dQsshIJ3BZY5NSL0cd3ySI7brQB+WvhZoKgqPXxmzb8/dAAdkbt/svCXo791rHUNsq1UaKY1LYC/Xa2/v8tvnpSjvtAaGQdBBC0HrCqpqhHouAaZT/Pa0xVh6EBrqeTcbrewLl+tSWklhhkBV90+23fgdnt4HyTmR1whsMJBwB13f7+gnyc+n0+018vpxcAyAAAgAElEQVSYvY+b63K+DozRcb+TXkuqvc1TMroCJ2JgsBoGArQjU0ealdk4DMEhgPBjV65da9jvdwDAeZz2LBzMorj8+T67+Rqc/UQr7h4QK6yEi7UJ2inthU94UUK3sFxmEabN9zGLUQ3pqSjxWdCi5mMsKe4UeYIZwuniVEA8Ko8uDbb33P/dhWLbdtwfj3k8wwBpE1ewvC8qmUEHMH/2bd/x+HhAtgbmCreYlWbphd3XVUeHIIvo3e933O/3AP6ABcFWLklaOM/T2t1K4DsVKpfIEsB7BPClV4dnRgRdgLoXHOM4RBiM3qLKLPw5m3s7uennhrMVWSEMvk5gHNbXPzv6/zgsgFc9zSqBARXYMTyIGiAP19EDaLRmmawqYGdldhZX446tRgiA8UD0abd70uXFXADJN8BnNXk+txiDRG1vn9DR8Ho+0c8eCtvhQfICQFuPtVNVq6Lr2ZCq8lGt6MF1NIu29XH6XmBSAk9lWzAbqJioy6RhtCYK7FHosQBFNe7ht5e9YuiWe8Loyz6hmx7nY4ysBB9rTRliE2BGgHDdnRNwaL4u/+2IirEWgVVijLElpkrI274Hz/WXFXnDOVoxwjvW4bOxbgWuEihzz5nFXsIFx/o6sI893LW4x7NC9Ra1IsKl2V8fJ4hjQOQVln4aRczdh6f81VtiXjtaKIpYuIBF6dXAnxU4uq5vJ5Uikc0p7ve5Mr3OUhirZNpueGDzZPz5yfXbgP7VOhyfl0F8Bfjr3+s9td3pHYJra79evLNcYekPy8S8hiQQfjeKxsvv/Y+FCbzPR/293jUrSe/v96Es2na2Hd9NAnsWfFjGTsvA+nPVp5+DwexnZgzJz2PuCBTbQM08sJ7a8DMpcypfMRofyC/7h3KA6xKuaZvHXXjAmxJXxsH5oEJV+O80F5MFuzzHK9y9WipOVBimdi7curg3+FuW/tW+pIL7zkTqutU+VlrQMr8zTSQNcSLigLvQe1g9CULUq4fW73x1tDTOvloWk80Uoov5ZD9EUkHSmCNXPqqPJIU/EEGiCvf9HwNyWgan7TThdLplNwI0R/qwiwPisByPBhE/SdLMBAL3+5/AkGY7XKMAxEoI8T7e2Gct6zDIhgzQK+v65TVJZAmZl5+t9y+0Rboq9EOBPPMVQtmyVgE8WxhG1riDN3pX0vl8P2+ZeZfGIAr5T123tpOmVx7D72NMPIFRL4pW3tdcolcLPyEg1zKm2ZWXnH6BtgFsG8Z5ohNIj2F5248OcT0maGEB/Tq6ZY8aVskZDuYJ5AN0AFkcqriUTTKlThbv428p1tDS3iRfoh+5NqQtgnL1+AX7zpQHZpGqMi5oqI8ExXzv8uMbxufX2hgVSLsGp6PyUJ9/AExAgImOsl3fsDnOSmvTd+/PCJY2ScuqeS/bVIRLJq85fWjpfFmH6BdQqN+7EP+Q+mvaY5NxSuYTsPWa9+naL4Jn9odxmwWnySwj8wsE3eT37/fO/SpZdWJLJ66I5yn/34Y0S29h35HtRNd/AjGuWefXmEVNMJmSqOn6iDHyZBr6hjevrt8C9KtaSq8AzLK4h1RQcAFCsp104VhPB1YhcXUlk6wgabloBdG5j8YnZiEwVIHzRAX4FTRVS3A9tpkWbmGykWawBBRhbWf9+4KBDE//2BaAKEBYdqowBoDhFWpNsKUveVWmrjcapvXIsWy4326IkvSqk6V/FfCNjMVBn22ABDWbn0zUzBFaNvekrJS+TBlt2ryGtAJEW2oZfqKPIcjt+bufXKgz6FHmm2M7q6Aowt/akZkerOuTawsLNKUve7eS5O42wT6LiAWOOk2NQtNr+4CnCRseJLhkmxGxSsRts7ZPz1QDIDLQSGtAySBTgdJEC5xL/8m0iHYv3Ta21qLoCAB098W29H2p5FXhDrHiRY/HA+fRjK/kt+Ervrt7zebz2fvA5/NpoPosfrdiJwD3+90EfgEa59lxvM5wrbrdn6GsQIHn84XXkdmgbA7dysgjZFUM3TDGaSkxdWB/PdGk4ewd3a2IImYNp98+A8R7P3F6QSpVzUQHgKe2U4/LueFxe+Dj48OBkc358Xqh9459qXpahp8Cqu4PKiMuoLmfBvuLFn1slLEtfWtFPLWrFw0bvaOLZLCgF+ayonCHCTg/ARFB0AXjDLh/aIXkD61/mxe2EREPimOWKXM1qcO2vdEx9ETTHRZ7kjyDvsTm62+W3dtts6Jjx8st+gYge+8YpwXaMqvLvjGtpqWitP3oRc+OAwpW1xWM88AZQfWZlam1hg2K2/1uiqUO4C9Fe3ZgkB8BDbauPKXtfXiaZIv1EDErsSCLwA23XlvBJlNE0bulDHZgLK6Mxx5XBc4D43i5kmZES0VUxjCjhysnpIOhivP1iqxVjLuJ4PjRMQC8np8uA7iG7v4J82IigAcQ4F1g8dFACbx1vqzDY3iGpdCFqhUfVJ8T8eBw50WiKWfFiMDo3teNNKRq7oGi8apU/kD+nvuFSh78We4t9jXkN/kOlRCnL0PoDfV0ZQo4jQ2HVCZJ52IQ2Fzo6k5HAGogM7ptAHa4+2PZbxBkPYbSPk9x0520JnstSk9RYELj8/tFRhT24z429y3EG1ew3+LHm0wI5W/PeVUdYKUyb60AfxD6+3rI5TzGfF7Mc6gPnmQAeuGBUT+X4mYI8oVM1d2axyup8QqeAgKG2/riRXB1/RagH0CAt6p18vP17xp9Xic3wPqiJKwANEDZNSb5GvAjteIrS2Y9BWB/FRSQ1wrHNN5iGZhOKkr79V1fWYfru98IQHNsVDJKo8bYFuBJgLuWuF+vr7Trq9MS+Li5SXtZjMnCVxRAO2LOCZNoSyIv8vUsl3EXwF/7yo1+NbdUrMhJFVuMicGsfC6Vy7TOUIlrrRUwjDclsfapWuPV6cdAV8Y+xHNl3b6kCV1o+mJ9CMaD/9Y1Q77DwOFcSTnXbbWgvnVjXl8yXsxpPavSpaqRCjCDcIvrQZ0jwIHDRRB7jLGMSnLfVmVoDAYvpsIjIiYffH7W+JBcI3tnH8wKtFSCFsSa8Rlm8RgO7rQVpTLGUPa093eMZV3rmvl+YU73bd/ixITW/d5aALTs3MoaJdoSClD2/4t1rnt5vZoI1BX9uDtoYaYLE3q5b6v1HlBHJPM7ajsAQXrdF7PCnv2tSQlyOq74wVzYLnlIWOFKKj2CUQLPPHVpQd/1BIewkGhF/cSIAe3soBUdc5e5ru7HP2xOWrr6qSBOdaDDrYOmwKKlHBCon0Ig3F+kgDIDNbJY/X0dlO+mpV/jXrtlRDsA8gRgaPrUi0DETjEmutLipodMaIFCMwAcGKfxDMGzNOcTWgrh2Qmycp4jkxMzBTZ3NcqYIxCUjQyCjr7GK7warGY/6Wevy7jyWXOB49onaep8H+rf3iLnlPSapFveVT8r1wJSia2k7O/m85wgtXLrgkkmKPGOuYQdjH0sU9/imv49G4IruF/Haj9fWOj5UZlXISPXQufrY1pbh3uHlDEjZebbs1+gkfrpPE9Or5Wfkx8CuX+8yGUqnPYdM9H96votQL/C07IRYPngUQb7Zv3mswUcsy3/w++9/OcEsjKFoh+RUKtGAktugmqdr+9lvyrQCKtZAVU8uj9rCe3LOZmfA5k0BQf7Vk4wYg5coH111KMw6yW/q/krWmu4PR4QpAX38/NzElJxklEATfjSi2264zjwehN65i8n3sc+Bo7DinOdp2WhOM4zLVpAKHPR8YJGmmy43RhobOkSWTqdl1kTrQjO8bLCOeKW8J0l5mMz5YnQ7qkHTbi7v6J/97jfAbExMgWjBY5Zusjq+iLi1ku3UI8x8Am6LpXTJ0lrPlBzCQPQHm3pGPh8mTXN8rLrND0JHPMZ9qf3jn2/Yb/t9m5/6jzNB33fNty2HRDzgw6gNTQj/NyPe8OGx/2RMRLKkx8tzJ2gQMzHtvhnb+2Mk4rzfPm8PjzYcsO+M5jKfMNtHObXue8bzvPE5+dfAfxFBPf7PdbPfN2LRcfnaN9vNtfbzgoBPgstQQQtka1BvOz543EHIDiOV1gSKdCbg6rn519Gl5v5U7+en3gdR568FPBp4NBB6SbYtEWK0uM4bOrc17g1iaJLu7/3cLo7e7ciXgps2+4BqzcHuka///zP/4zvf/yR7j1jWPxD7zjxMnymBBQacTeD72f6VwIE4gExfitw322nNdksLejQnilRHYRRaG/7DYe6dVmBTRp2MYse1AoCvZ5PB6tGy7tn1RAFxnnmaeRQ9JOxOrZnRBq27YZ9v1kxrn3Htt18fzk8iL0hESB4HK+I42DA8MfHR4B9EYtp2cK32AFQP41u/Of0rDoa9N5wu9/Rtg0f94fHIJlymiemA/fN+VFV8HpnXa1J+RjHgVc/0f/PifHvB9oh2F5mc92dH6r2AENcv8338vDg2Exb7AXgoHHaJv2A9tPBJTCaoB8bBjLfP+mmnx3w+AAqFsdphfx0DLSh2DUBPtcA54nRxLKWbhvgKUgxrD+2x94tpOR355FZu/IEFYl3RTCo9G1McJCpJsUVR6vgoIF8tVumMQJJDWUTyEQDSEzgwNHwPbVjdsfmKGS91s/9Guz4fAlSYcz4uNx/8DkNrMNMQ+X5aKvCFQBEOhU3cV7fAPXZAyyE0ZT0eAn4iUswK2dIQ2IYr5wTB78OJcyDzFMHiX0rzjvY5+kqMj3G4P8bwz4XeAE2wAG0ZAFMNGCzXm3CEyjGcTCZS86dKt3PyuwGbaSxTEUhaPafWExZZExz/FHrNiisSGMoTWK8dhOB9hP9kKjKGxmkfnH9FqAfAMLaV3d1Af46baD12WvLs325PFNAOb8WtoFqDfZninLwZjV0wlEUQidzKooCiXgUQr8K5qzvqKC/Xix1H/NzMZ74KdYskYm9zD61tR+tgXYWfnecpzGd221KZcnNR/eGOMZD5sKta1MBKLx/tJSf54nR52JX7ycYhTjUwUOb+zPOc0qJF6C0/L65AsPUfSY4rKInGWwArbL+/DddaLhe53lakCxSyIdqKLm2DRZsvjVmomBaQwdPPh523j6bNXdVDZcd/jtoAUk3a0Bx7iEtWWbU5bPnMhfBaOkuBfWj7qYcSNB2DZoeDkyGAwfm269b2QBuKWQWQhroXcMdgW4Y1TqbTJ+BXUZzz+cz9khrDY/HI7LC9D5C+Gn8DxEMZnERiDGVCU6aVfd1lnSt6r3EdYQAdpcRd83YXAk5zxPncWC/mZVdCi2s+4InBKqKk8AJ5dCd9/g6anHb6uEa2aagtLvv1z++fcP37999THBgSjecHH/0h/S3+Eznlwk6Ko1JkwCzQxV6pvEheKUym07zVK+2vmE9hykgTFFnfTbf8yYErE7f3glVcw8dzLSkSaNGp7srRBbs/zbvImBcnGq6UJGv3JhswJ9hCmP67hvQSwMHfdC7u5/wHbsr/o/7fcqgNXr3AkcNeyMgytoRcWLhmle4uPQT4wT6fzwx/h9TLpUBidLcmm+ZfzJOJpMFhEvYqPzCA3VdR0DNHKQKlYYh/U2exCmMW9tjH+XWc/JRbIWIUk4B2DY0tOmUIFzE4CdNpbUGxt+MXAso8dbSPwf7zXmazz1pO0FcwRKOpDOw3P92nqTKmDRMb9Jl0BMEXsbAzysgrhsrFBMpmKD0h3P/hnPWf198F++OD9YVRfIIEQhPkcrDsrX6yDpa2P4s4BipVNj6f336/DNcRzAd711vI81e9gipTMS/XXliprKmMR5BBnYvvQjFImXMat+X6Gv+F9/k3C74rxpyLb1xCwXFqiDD+totPocpums66q+u3wL0C8x6UtOCARcL74SSz2EC5dMxd723Kg9jYBAsg5NqC/ezIIiV+C5oLIlnUQBqf6sAr9tbfNHqvRXQ8fu0KiTwUFqdkC4HqHNx0d+Yvzo+1beKrATBaJnJh1b/MUZkSdg28x2Ntn9BeJyZAOj0P2bO+5YuFczkEv6QVKJ8rK1lSkKe0oyodDkia83k3+snDhF0x/Vx2gjFrIynHkm21iz3dM1+UgRrP3uezIhp6VorJ0KSlF1C1TkLtxYv9ETQiWVek2EVWqlKEOeoMBU71k/LthT6alsmJJ5Ordhm8eWMOSnrXdcm8/YDkQ6ToL93HG4F508AnULDp7d5+qkKf+fchwzG8/OJ8zhjfSdac0HJqq5jaCgVqQBrKAoQz+nu1nKObXS687zHstBawzmgXzkEc6XUsp4xHyPjYyiM2A/lf8RC5R1r6l0qP7d9x/fv33G73exkygXU8MxV3fP6M+A4FAoRYNtt/LT2Nt+TI8EUgZ3Ni1s84fPI+ewjeWrVvBxImO+2BOkaLTWzWLWWGcMk9wSzhKSR6E3Exn/pe+/ZizzDR9zrigpcsHI9qdy3YTEl+5bxUwH6t4bzOHH6uh3HC6efTpz9DJcvJirYmp8eejxK5plHFrTTVIQHWgTbVut17MkB9H8/oZ8d+h+HKYHuMtXETkOamEVRIIAyVbIk2PIx16DXKilUkRZcriNTqHL+6uSTdgvqVWjkNRdIZAAylx/SjQ2Oip8vTmkTwUtBzIsEdJvT/XDwm1ZrDWNKc9bJwleT9AsazTZDNku9U4lYXSsSl1slkwqfL+PS0mZbXk1MUPSP6X7yglkVWK4rMFI/rO0uH08oQa6fs791wkzT50CkjqbryU/7SbmjGiBYZB7f7D73PvJVIa5YkacQEsk/+OKiJPjvqhhMAJw9W0HU1GQ13FgmseR1SaURU0d30KHxo4ryb4u5Ud+rIjXRTFGcKFudZsOo6HzmV9fvAfpFprzNwMUifgHG+bz/kUxiuada5f0DTytX3jMGri71+6d/l78nsF+VkqvPvI+rRvdG3AW0U4ubTg/8nkhHVUB/tfDX9q6uoGEf/7iY740pHt0dhhUXK+ifTil+slYxVt9Q/ewT45FmYr+m35poQxFCtQ8LBGytYbvtocCF28NxpBLk46hpuABM1TG19O+rUxB+11oL154pj3W4l1jaOAIxEbPyc9ZptRNkyjZZ6USAXXa0kUwg1v+r9SQDKKAyPiuAHYVuqgW9Kp7RD5RiZQWo1vdVABsKaW2/zbQ+xsDr9Yrg423b0N1SyiC9CnqOl4Gq4zgK8C9uT6L4/PwMXrIXoFfnNo/HrZgNs/JUZgz4aY9X221SXH9GzbeOSSFnISDuoU43D9PogqbrWlbQ32mpRFWkJOg6+HyxmA0HrAaiTWn7+PaBx/2Of/lv/4LH/YF+slov31Oq+I7utQKMF0SGKMmAcdnEFReBDKPYBPzmJNWHopEbMt0rq8RWuev0QSHbmll2q/7LQM5926Bi9ZsBZAEewPecP6HkwhLvIr1vW4v8/AH6Q1wYABxjoB891h3NFA9s8OdY/4IWe1tHCzQWHO4CeZ4nns/P8KsVQ5nY/NRw5wmj5Djgcz5i39ieGb53uAem/WiaH/q/vjD+/YygZ+0daFZDA67o781cvqAFmApP/gjUfNIW2Vl9nvO7WQ6G5XICsglUxB8lWBQPaE5gKgGstwr689sAk5BUEKX8wBXHhoYoWqbzXtoEng23Wsj9PeMdXxCITledH5ft3INv1nuRmJ8YC/kf1YEF6PJ9LBBf8QoVifzXFxfnh/O77LsVu7xLkRUniX/m+x6jTBz8FBhBR19Z53kShHWqAyBLKBU/G2Hlr1U+vxuInVZleXiajnxmtbjPOqHObfgPM+ZQGTfKr3FK9aeC/vrDU0LF6JlCGZCoKm5rzxOk93kO+b3sn6+u3wT0G6gIAbhoMFU4SnnobXjciATVJPLy+fsjCXLrBhN2bLk3/n4bQwJebngsfa/9lvIc31UtitOzFxpvbTOzFSGtpOWeOof8rBWQOoVNEfiLhK/01WbW0r4i3VlWYuSGqPMB5ElHVE9drlyXTN1Zd2LynRms1+erNYDWVcYltNYMZC6BuChrUOc1hIwIOhKkVf9ughFd5npViipdsvfT+khRjID0qS7jrJbZSeld7gk6IDCtykO5t21bAH/2b7VkMwj07ar9KfPPscLnBRfzC1UDKQDO48BR3M7Yz5plpuaVXwt1rUrHNFdF4CrnXRUDliFiTrPoReS2IlBG2NtDQECYa32LE6cq/OopRgRvblkBklmrYqwgT8/MVSLpwsaLMRvneXr2no5byVO9lWqUKZjovLCsmVvxgaxETAUjKjrH+ooXyqkNeXOcf7UZijkuwrTyEfsZIZxDMW+CUB9Esg7CBU3rUK/8egE6Cp2GNRGFR1zIxsn4w/eMUiTQxxJ53c/TTp9cGe3nGekimWWNCkz1Sc93OACkpT1+PB+LGIioirieCvw1oK8BOdwLoawHM8koOob7DKt7bpMH1/EGBy1g6X16ZtCTlnT7u9WNL9U6mc+ubEPiW0V928yX+LzdQx47d01z70jzAHgNi/Ybt1qwwCSr2H4K5+DB7PVq5bb18z5OoNz7HPwi3w3fX07ky3zY//N0xP6Xs7Ty+vKk5rNvg//i70mZUMrqtMBDcNlerJtmV1Y5rBEVjPeFUH377Odwlby33F9k08rnUXlFPlDeJcETr698VrU+mmtLg12uY45JFREw/v5Tt7tLFX90uJwRtSrtrMg9GeXIEwvt1LH+Cvb/JqDf/CZ78ZH0LLgTEwCSuQOc6/J9OaZ8o/GyySthrJt/6tfy76nNBciravh8rhO/WlwVGf1+RbBhbXcGQcBWr6E6ZQWqRLVGcFfwRHBCwLQ7ETX/nu42zNYTbVdAVP8dbCp/87/QgGVhnX7WKr4Brq6h5j/IKrABUCBTv66sLOz/cRyxPpv7ONM/V0RwnCcOb4sBMM3nPFwo/D2CBEHnIjhJp4p0V2JqSPZ9XQvAgqh00NLeIt1iBbTN16cqc7RGstWzFTcHLS5ZIgXEZZGiCQT7fU01TkJQx+5jpqV0LMAbmNMlVvcWAHl6VpQNaS1OWAb3znni6Z+vJw7VSnKep63XtuHj48Mn1X4dr8MtfHltrjBVS7+qusHKLI86kvZpoW9NSkB87gsKxrDYt4Zt3wIIhrLoc9ZHn1xLGGy87TuaiKXldFc0jvX0FI/N3dv2/RZFcazvA8/X04Ll/QRkd9e72+2GmxegGqo4+5mCiP+J7UGB9V2hEVgvOtC1o0nDvvkpibt8NWzYIehxKuGTP7Hggc5AQo/r2Nqe/AcM3mbAvt179hPSxWNtXIl2GpcuoYQw7mF0yzzTZMScaP3hvoT5wlN4Gs0j3hu++P7TPSaIQLL7iR4fETGQ3lrD63XgdRx4fn7ir7//cBqyoFIG2+2t4bZt4SZm8Qp2upKKnk6Ki9FrC0A2GVuOgf4/XsBzYHupK7Fi1mFVMHNMH+a7vsHdGMuesNSprnQZ0U17JizRmvMU70cqV5WuAPLoCvSKNkIDccHGqRwscK7i2cBSnC+JteAa05XPrKHkPSMVvey8u+/V2KsyXgZ2LGCSz9ow8tlAGgXcSoA//y35W4CIEQqQMCNKu7UCfr6bxCBcoRWdFABa+vv298U1KxxUbpf3L82tKCtcOcvicZgA5+UaUV19M9+2GAoKvdXYwuqCOp3oJOr3Xw0evR1gW10JgKdrNSqxzEV2+punwqmx8ZdMv3M/wy34wz0TzH3HiimOSMIR+rYqTj+pMldR60/zGDeedLYie/gz4cCfzSV+E9APYNHC3sF+vb4E8bU5FJIsE1Gt518izvp+AtbKoK/uX8ZQ2wnr/8pcF7B/dc9Vm2FVXj6rP1fX1acByi/6ctVupFdr7fJ9v+xDEWz1jslK75aGau0VYerMeW6+opL6/nh+ca3YWkOnRW5Rqt4s1f73tEYXGyzfq2+fkQ7CX294kI4LYcCFUhTfldzMZe5CgCzjk3Jf0IjOx6D1irVeBc/VPaQNkcv1vbK0TPNS+ht7lkxvjKjWyROY1XpfLfChQBeAYXt6edHy7gAqjj5odTFXnwxkhKbPJWsO0Dd/HW/EBUiepokrTtLSOrPureApbz/s29TzGH/NQZ9HwdYWTw+qAmp0kApPZGrJgRggRzk2VxoU2FfSl4YSXh7HGwgJGi0AImi0uFSSl1BIylJnhfSOZNWVLgwcEYAlGL3a+8nnss9X99W9Q+EuSUAGBqgMenXZ2F+qUaWWlrlW1jX2GflG/BtvPDH3t89rV7PyPxVyKnBqFIoTET8ZINR9h4XTqtW9ewH4493ipzpe9ZjARjHzwXVvTwMp9xRSxbWnupYHy0e8rwLy2ufgOfbLMn5ZSsOoGhyv8r21rD2mNce0NytAn+5RfetH7V2FwTJNEjANX1cbNmbfe6nPX71hOS+Z1neamvrR22c/Bd7ej59eq3wuNEgj4GW7mOXom0wNgJ3K5oT5JlnDDW4/9XzgGiV6PyelpGKfuU+xbGLKtnFF7yUBPyrw1ypyLt79RX+Wdea/tfzUR6hs/hry/yagX6FZYc8n7Q1EACH0qgX2v/yuAjgmReMnSkYFlyF0yndTf8s9v2rzjfGwjeFlyMlYdQ4qhX839YdCVNPSWLnsCt4mzVis9PNk5a/AC4jUe2fvaPS5VsXhfvOZnx4BHIJAvT8sm75q6HWtOc7aB4LAvbpQAAHWwy3KwVmAIW//5llM7vc7bvsewIjWa/bDrKxnsdb3aQ2lvGcF8gR6o3CJCiJqbAFPG3q3VJlMpShivulNG2SfQQgt/aoali3OWe8d3QN+h9NOpMM8DjvxYD/cja7OudqEx9gqjRK00G2E6RdJl6oavuw8fQgld6FB0hI/43zyVEncal0taZxnnlxw7ptb2Dm3UMtHbyCzuMJwXP7aXLdUiLoXW/NFs6wmR46vnz3WU1ywScuy8DX9beVZt/1GCTGBytgvmqcyzX3YO2Cpbj1QVSRPrXrveL1eOI4Df/31lxdZsnb3280CeO/34JN//vknFAiXNsZKmHizcbRm9Q+O88TB+AMPOr3d76ZY0ZKkANAnBJepC4WknSEAACAASURBVO2eIWVv+ueb+8TjVGh3d63zKFb5gbPbKS1P2oKfjYFz9OCP1RKnOqw7wfv40yFQ7O5HzxiPnRZAH7uOYVWQxcbL02UdwzPJWCrRrG1gMup1HuZidRg/HOdp4LIJ2naDwIqHMTvY3jwrjSrQhyWngcW5VOWIUBhAKl2k1//o0P91AF3RTkBjrxng78Lg3Jnn71taPSechPQ+rrItQAbxm9KynkaECmZiO3P/lH9z/86A510mqt8QtxRQXM+SgeK6K0Z7TcRPaQ0ZGz8Cti1jYSZQZvlpEYo6MCsGKPIbqUxxTj3YIgpbVSWgschBHelXaDpxbHyQPHO+dVIerpuJ04GLx5ce6YyRMU33e8MXqmMFnTKtDz987ymVf1u3CswLPRXaDWVeE9NIk0yqM73Lf4vU+lnWKy1xU/5F9x/LkMrg9pY/kKBJWuRbkQ/cq60JhorjjtNlypiQefUYYB+NZyqk+Ul/86KDzqvMcLTZESX7AzPMiNOwV6Sw19Tp/gcg8W8B+uuihxXerxU4r0pAtTjEBvwvKAPRWtHeyax+9u7li7e/J7D40w7I/Bsz0b6BJ35Wxi5lzEFvBZSJA9qatm21MLLdK2Ur2ib45AbTtLxWJaE+w/kM0OmApyoK689k3QVMCRKZshTVuZisxoV5VOVmSjXK37UNB+20NnM8Vzy7gtHk2UUJWJ4JpsM2+e9garPVMQBo+Xf94Ty3BfwHqCxzUJWNAFNsPYQbpjXyRmM/VYW29mfdZ5xvFhqSZa1Q1ilopdzTF5/6utZ1ver7pv7z82XubV6yCwQP/H4Un1wCm8nCD3c/ceWHWaquFP3aL9IbSv/Wtax9Jt2tY6wW/ghi9n8zfWy4DJUTq5NWaKd97l8BPDWs8MU5F5z71ojcyx6zntLyP80B+Qryc6aWZCKCISVGKLJX0EKWfCTWvlr86xyiQMT4Pr9dDUctjvvn7C2j0HQTKS4KiDWdeKG/ZkoB7D78pMRQklsGgTcCHgfyjvoXnFRAkL/MBLw/91Lg7yMQWoJzgTaFeuak6iJovzmOVXZeyyWfmkkxrKBzQrFEteov4t/1d124+pJfiehpsR3wo/Aun9PEC3UykXTogx0LDeVcfC2d6x26/B0g1hpjjxYZuDT/szFzLMu9se8qxFj7zCWogJjPT0/NDVVf/hxbhfOAKXsSY9Rlqt/l48/QzjI/suxltqYL/VxMXIDdi+tiGt+UqYllrLSw4LxKdXHb0qU3Ga0c3LwHkkYkaWjCPw1AjQGU6K8qwt3vzfAd/PnX2Pe3AP0KsxgHkRGEAWF5ZHBvpMHjwGVO8yUikY4wLplBFT/7ukOV9Hm7vP2uCkoV/D8F+fEKZ11s40LZqZbzeXHnAEuCs+iHtxFaZs/MFLXAFlAswqXIFIVavJtzUsGKAxQChQnk+TrRghtpLZsF6DEbTcyDpMV/Kz7lq8vNV0rXGAMv99+nRbRa8r99+5aZP6QI5n234lxlTbbegd6tUAzTidY5qGuYD05rt7BWGBBhkTIGSpUW1MWZ+jeaCsKU0WZYgOHmMRHNYxzo8xdWb6j5Fovljx9qRYvMWtICyG7N0gJ2twBXdyoGDzODi46BDgM8VpOgrEtZH9Lj5mvNU54IeEaCywYCb58LpRWXTFYDIKkX2qJ7St+a+/f7vGm6s9j0eN5/9wPfmmVtYT8Yc9E2y/CSJwY2d8OtyAMaGW5ak5Lv3Ti/nYDsGKOeChUwLxLrR39UO525ORBNQLpt5l9vcRUuplXxer4iE9Dr+bS5aw33+x1//PEH7vc7vn//jm8fH9Yfp+nb7fYmIAy3uxAXRdt2QIbthTEiNmC/3fD4+PDMWdY/iz84XXE2oWWxCS1473meOM7T5nyzuIVtv0Ga4CXN5nZ06NPmQ5BWvRqzAc00muPskOa0t28QTd6hw9K2YqidVnkmlpoB6OZ84L7f0Dbvu4j52fp+eD6ffgpi9MPnzFJvriLMqNOPE2e3mATz1/UYDBHs2x7vbdJCyYhiikCkjwxeDCnpjo12ho9l/NsB/Y8T+qmRTSfozGt8MHPUxHvEATsLADKmYQKGdf9RhrHpWZblSQRTEwIqw/FZUdC9j6u8XbEvFS8B3DorMUcB1IoSGPzD50WQlnqmOUhDREJJ0tbpp3my2drf73fc73e/owC0wrzHArzAVgs4iHMaQRRvylXE9XNXVxUaX9zHitjkDYuOmJjv8vlfg8G5nZmH2R/Zki5oP0Bp6dA7+F40kalLC/AXhCEBVWmVNGzR/bKhRewahqI1nVpl/BFPgNMLQcCIQIWUGgxIIF4MpblvhoumHrTZC1awIZZ2HOg3aS7iGlqrBs0NkIG2bbjdbmEMtPCTEWUrmtopaYMVzzvdQBk8/R9Cnr8L6FctgWHOfIYxUS3gvzIBf9AYQVkYPj+BMH232l90Iv+8+CwUConlvGzzvwL84106W+vDgl/6EkzUAeZXpxBSx1GVBb8m62MB8Svgn54N4ZAW/ckSW4AFxxQKx2K9ndZJ0vZAixz/JsCtFuWv1lCBAAu0gjJwct933L22QFvoZJ2LNQOLLHNUmeEbC61K2dQz/qUzQ5zusk1OhU41+xOA3xUDAYIRse8sZNV7uoGNYEzOlMaI/Ox1PBxjtTBP8+T0tgrgkHvBlFP5rPBllDWsLl8M+K1TNc/RPI3q47fKx1Rg+rTP6Oaj9KmPuWnYb3vcE/UThv201sI1zH5nILmtjfsHlxOz89wvDACVHOwY3dYFofwcOp/UWN54mzFTPtoU1A2Fp4J8Wh7419MUWndZ+/j4wLdv3/Dt2zfc7/estWAtxlytJwi+WFEFuG1b/NCViwHBHA8pv1rArfpvm8ZE+mTQ+LabO5v6iYopqJ50QTDtsz46cPquCL7RISqhBMR/BBoEg/lBKJ4E4LsXfWMaYBG39AvAcva02FuqSz5nStkY6ebCExem2xsspiYMRG4l3asE2I8fYXo9pu6soN8X3fc8/uzQfz1z2Yr84TraacJyFT438aQqVEin/gW5ce3r+hzBOgQQdWUZvrbL1i3YOP5KrOhByME3yEuyi1pooLtRinUmWuln48sc8MdwCd5VzZ1MNZS+rTWoK7RxucKooGxKWn+bWyQIF5+19/tmEJg76O02XH6xTua0Bv43h/3Lq4DWNzH6hs4n3lwrEdvz6jwZoWRoeV61rnK2x3mdaOuq8wu5UjHkwLX+p+7qEjIteUPQUe1c/Lum/1hSgVSsV35MN9TAOzyprDE92V5mQKpWfIG784zMZhffiVWKF1Wc/Qj3wyqK0RrOIYGx0n2NhNh+SRC/Bej/6jLNrUTLL0ChHt9WMLdeIZT9erP6lytALL4A9f9g33X5W8tnE98toKoqFN7xEDQVZNWfCAr1MVUXgXpSABjgoU9+HJmHsE0//QAzxdJOpeA8zwArV8dMFeDXY3b2jXnyN4IMCkZZN4jEkfu8oZDvWcam/K3up0tf3j0BGi1GAmB4f2p/KQTXk5Y6tugL1+VCEbT95z72mkWCJpeDIhAAZFrIoXiJ5bAP6wr79oWiaetegVL13XRQ0eZ8+9MYOR7vUw2mFbp0IU+E/MUBgqGaGYXYrqa/v5bPjFED4n2M054yr+w3x0AmWtcDA6UIjs+fA0AaAiJrzuMBEYnaDRLuMRtEbM+8Pj/RffFW2q1roJpuYEx5KyK4325Q5IkDkMC+9TmGxU4MnNk3r8rqIwwl3OMbzvP0okuCx/2B1lpY4c3C/w2Pjwc+Pj4KH1ScDrSDfgv4D7cBn8pI97lb9eCIV/D9YX0X6BBIoaH9tmOqcAqyNIlCb280q1/+IxS3QSBu/4A08RMEP0EiNWhZlzHM8s/iadVNiNY4RZyMUQlmRirGO4Tboa/l6/m0OITXC70PnMdh9UVUA1UQfLZGQJ9jqrwhKg9LcQ+p86AK7Qr9f0/o5wD+ontFaUtLo0h5UsF13ddv061m30yjTjZq2OYdrnNPLq/OfjkvWOVc3mcQKJVHWlERyFl87gb7oyl3Xj7nx8sK8EV1XvVU8cpT61S27R0J+gG14pKbyaDb7eanMX66TDc/X9ZJJpVxcLzT31dXlVm/wBxTGwtWWduf1iDufZeRsv71FXhxAnp/WufnirKh/HftNp8ofOC/fImvG/eIF+qUwMikbQ3a4edvYN1zJPI+nl7Z6bXxXmIIykxWeJZtsxO5GI4Z5gTw03PWkxlwtTcTNiFP86T0T5zGbeqqXHGer3l60fuI02WBxybuG1oT/22xZLaHWmh/X9WaqtfvCfrJGFTRkUIQQPjmcTOmtcwfBUItqmBYZQb+9V3xHBJMrkD7/98wlCsan02Af/mbCkC9l32fCn1JHjvVHxLvCmR5DQcQFGYiJf3lci8FVF2L0wv8EDheAfz6Gcc9AV33PWZAbQT0+phiYxZlpvqoXymA4V9bNG7bJHu4+AAJxirwYY717icF1U9+8u1fFINKH1VJbHWTl0Vmpo06Nlr56pxVSz2tpbWGxRUYtePChtbYv+JKRL7dBJtkcahV2SJ98FSBjFPL+N9oyu8Ly3l5LmgS8/5NxcJ96QPVLycqIP8XZ6RpPal0EPehnm5Y4BVB/+12w7dv3yAieLo7h/g+2PYN99vdaKMWVSr7YAX+1Q0l4mXcHQRwF7MxYt2GDux9j/UkE6c1cTh4bOKw39NIPr3gU90/tL5//9vfcLvd8Ld/+id8fHzgfr/j8XjEPJjyakonlU2jc7NKr0r5tm/Yhxew8h8qTKFItxbKFK1TDEpPBTyFNkpgI3kIQSetcjHPZkazPiqFao/vZAhe7gJq3c48+EDyL7rbxKkAM+yIoJ+Wx33TDdgsPew4uxUvozIIs/Kz3X52nK+XrbnfcxyvKLxHRZZ7PwuIOWB0XpG8ISsF8xQg9jX3+DEw/vcJ/c/uYKfMYSgHmC7Kw5V+3yVeAfxXIDHQXAGeXLt6bxWJq1Bb2zS0k/1UQ0Yty+SmQtzE0yTam8nbn09LUfvXjx94fT6tP935uJ8ydHez2lhBuWWChmOY++fj42E8Yd/x8fGBIQObpAsjlcgc5zvwr/sRTvuMCZv4WUzgxWKtCFyWfVKnllhm/aw+nwDmrc14Bl9fBKyzz74rYyJTd1UkTyKX10+E8auXltsSwJN/tIwPkwZpA5k0YLXAz4A/6c0Bs8NDynYvORgGBGYuE01vhI28rDQJNyz2bqmhx5SWG6GcRxdgnuZ0BVWvcRKURHYIZ41Do/bP6TzsJrsnCNhxe9wN9LsM37cbtq1ZcTpvcE1ZfXX9FqD/8mgMuQEq4CETqUx0tVbC70HdLEUJqMpAvuwCmMt1v+rGvupzgr0CYpbNyI0b7XzVJpkNre5rn0hhX4yrWqtpoazCoYIsflbnDAXw6TC/VgKIaLeMZQZj/p5wQymFiorVW8rYOe+xGco4tbxzdUGK9SpjqMpQPFcVBpGpuh8unuVz1YVhBYGzBAQIeli9lkzTqpnK1E5r6SpV263+9fUyMDJb/c3XfEPvWcTMhpwzuCpVU/9BqIb4u67HlQLJNbm6om98HngXCgrwqJSfh1V27YfErDq5X71XQzEAMoC5KlICtySW9W1i7hiAltOYpNdaLyFAOwU+56jQIWD0Hi5O6qkVYRaryH3vtHqOHjnma5XcmpbzVk6sHu63f7/dItd/7YejlpxLP/VIwOmW+7LuJJU4YfBTjLOfMQZrL4/N2f9QvLmPSjwQ08PQ8+M4Dpzn4f6v3k/M/CJTdi70JhZ70npH37KPNExEP+l+NsYUjM0+j+YVUrR53uzS3zIu7jEdPcAk55d7ZTVWROAuAeAsDaZ/p1zwdwGW3eivbkG7p8btqfD626d9OAOy+S1BhPPfZe3rJcuPzcF1y1r7HQ+7HCp3rns1eYwEX0zAhrdrkl+utJ6n1Z4QX7dq6a9xM0yQwNPTaxC68EP/r96nsHztdEVSmD5Lf3Iq7lLGzgc5Q0HLXD7KgLeZzefrPE7fL0pALFL8yhb4bOgE06jmfmr9WPJPxuzxaxqHIDK7E8+cfhqE7SuZvp7pg6dMCOCcrZLHWkYzY0K6vinePmEreO00+9D2UhU7PjI7Gc/6I0xapoOuiMzipLAYlgFP5eR660y/8z/X2U/Molr4K4oLrWMVU46zunzECzWBbGblT0OY//xC0/otQL8NbC7GQ0tEBZcAJn/mzTVtPhsFdKLd3FhBtAsIRBEa86Or5igBRq+hzvs1WTgvAONy8zuIKmD+yvr4Bv6rwuP31ZFZ+juPlfDTEY6xWjS2fbe59/ZOD9yMdJhAnK7UjCurYtO2zebLP98cvNzc+hrzy/4hA7brZ3Vs1SKuqvF+joWW7N1PEtT7LyJxby8uKupzT0YaJw/eDqtx0i9eVUOJeYsvAQoAoBUQsddnv11EkTKchebFx9jnrEh0JYH3xXAFgdyG283ce1rpm/32059tj5OPKkhXmop8887U2Q7BEX2+Y8xlDbnWisLIFtqoezHnzj4cdA8CgQ7pM/cNg1zZZ1rSVeHVYiUKTR3nidfr5S9TyAaINGxNMchDNrf0t24+8QsNsZgW561azYMGGcTFe5w3VaGsqpObUVimPz9x9MP99V84Xi+8npa69HhZldfH7Y4/vv2Bx/2Ov/3TP6FtpT/uHzo8daTNvbVNyzSLuW2+t8cYOBfeWk/LhgPdx/2OfSuB7u7zjNbCfWW4onmep4NoqxCca5+08zoOHOeZPvDlR8TWT7uij3OhfUuZyfTApKDbtmPfb0mLrnTQat91YGsbXs+nB34fkNZw22/Y9y1APxNDxCkd4EqD8YrjeAXtUXHUJhEjsLct+NnWMs1qKjUe8KqWmUOVAYVJ/6qA/tkx/vsLOBSbeqXkQGKFB1YeUr4uiOcC5CUt8veq5E+A//3B+K31d8HHQuBfwGBta+q3zJZ+hLJ1KY7DBev1euHz8wlRBkd7YgMFhgfr2gGRepA+K1P3NAApwV7yLb43WFXFCKhjJA5wPtkAHUDzNKCytMeZmj6T8ofMcw8qBL6GdW2qnFuNRFeXuqJSDY91FSvIry3JjLpd7vE5k9HdY9AEdCmeDTxcTVkbnyYzlb8mlh410bKDa5jinUa5aTbn8VDpLzOqiihOafIykzjYHDZAxVNuWipNk0Mb4D9bd2WOdp5xwtNqeVZNp8FpDu3H6AKoZsxQYPzHkgQYljl6xxiWCtiFGrbbDffHA398/x7xRg1wjIHApQNAv9o8y/V7gH4sYHjZaBM4wRegFwk04tOqTRMAL5slNXBJRliVhYv3XHKl8ly809un1bMyxAA0tS3fpHOT/6CKQXC19qcyCt5X+hVzsvSfG3o6GWF7/lNBzTonUtpY5wRXa8d2at+Bae4mBWYFlfFYUdbKvFzdW085rhQrgiU+U12aou3CoOu4f6YaJvO+KNo00ZBM7+PJQb14WmBYbI7vWMccYN+tv9WCU99/SfPLfdO/Y8wLvbw/GM+/rdtX+dfePn6/L45V/TeVjElBRM4hyokTM6jwNGeNd6BiMKV8LUK3gtOr05mJ3pA8JXhbtfDTRW3MvvdUIqZ+EHw40B0OvO091TKfwpDxA/QrR2sXa+2nOgxSlXG53iudxMkC3wudlKJUKmbLejYqX+8YIc1kTYeVflDWfD6Z8H6JYIgVazIQXvZy2S8zaMsMQslXln0CF/rb5sLdgEWyXlN8qvWNlmQ9NY9BAOhLoa8BOWF4gyyMPGaVF4WmFnhYwLi/WTAVfKo6QrolzLyI/Z8e4ielfeuj/U8IaAv/FVkA//J36ixc05lnvRmHHLgPCBqrVjn4meVpme/lmj4JGeM9uuBd2UcDcOoVs4LWuA84HwUka/08Jgu2IGti+TIx88fFtZF9uaCFt7+1pivVWNOx3JjUwxfnGkasmN8zoGGcMxeckTxnmvN/DLv4OWgB/HUgy55GngRXHjCGQpr1ScIwkKA/KF1mgw2mtgYsYF/Rh6ANC+A3vl73j62oFLKzqUoqEUiZ03Vl5vfWbzDNIWIOKYuaXMvmS3n7xfXbgP6vrnUwtHi2wghWi1UwY+AdiK+MQaQsVd43CbVfgKB68Vl4exQkUwo0YYhJGeMvQFYF6PWaAOgXADdASgk6DH9EWoSB8Mlu5XQi7q39Ifgt/WH/JmsHwV1x2VDk8SDvrf3gPPC4PD5TxYnZf7/6Vof7QgncZTaW8NOrLkVuIVX1oF+31LEdulPwNMGyxbRpvs/zjFzo3YMMgzZ9866ZU0ijCsXebuEOQP9vpm3sp7V7nAfO3u1Yzxnt6DcAAq/HheaFvXofxQd7YIxMcTu2jqF7BMWFlbgCdJmLpa3KVAXJZUBv9Fpp71pJaV6Mb5E4KPuuAvmp3Xk+Y11bru95nBEE+3q9gtFr07DI7pvNxX4z397eO47zQNsEf33u2E6z3t5uN3OreTym+KHPz8+wPD8/PyGt4TwONC8Ct3nsQD2R4rPNaXOMgb///e/48eNHWPrP88R5nNDR8XG7oz0E3x4feNxuuG07Np8R7pfX68ijdp4y7UYYzJPfT5vr/XbDY9/N6u9KXwM8OPXEeRzgKdNoGYxMtxVeDIKsytsZIC/pgrSe6YBPW/dcvKLQWsaiWuo+swDtAbiztkWejFV8oQ5yIj5lmKJBcVHVDfLlAaCfxxznwP95Z5s0PO4PCIBx9MhWo54+ct83V9IJOCiTABX3F/b5Jmjt//sF/feM2UAHGjbIZkB/BqYoQDvnb/pNwHZ5c+6XVQ7OSnORl0KdRCPotoLc2OMV8Aut/OX9yolIAhFJl4iqmA4HatEzKufbjm0fxutaMwA2zFK77VYQbRSermNkECjRgCs2fGcfPVLwBhQjLTGoNzWHuAj8Hf5Pw8uVnwH/3FpFGjlJpaerCuf/mFWPihiqUkHc0V3u+nlTuowoJhAPpPwUpMWdOOZ1WAA7X0gfeIhg86xmt/NE2zfIaNgG5WxRVRbM5cSSuGqBPwpELY/uAfe9MeU1vF8nXqfJsv14YRsdIlvBSvba7nImTn0KfjD6oGsYoKPjFEDHCe0bdGzY2rCTzY3rox6076mbhbPCxfJzahWIdFje/QFR+/EZxEopAoRraB/zhPAOhYSxjoHFsiV/rvF/X12/DejnEAMsXliDwgrh99RrtcBSoFxZqWLLhYb/fs9qyXp75wJqknjf7+G4prdU5aMoCXLRHwrAK4BV26/9Wa8YR1sybbAfhZFfzVsFerK8JwA/ct5Q2ohA5NrfOm8XwHBq64s5CCUPAOhrXZ5RNYuGuv9vuKV4f9gvAtHV0hXpO/3fzG5U309LYa90gqq1v5/AGMOtTNB+KrDSlkycloaqeNQ2wyWpFFJiwSneO8rvNa6j/p7WuczjtA4rfdZrURYCGJTvZbnvCuAnCKkPJ/AnU695161wljhozWJr1bJTM9IAcP9I+/fWGno5BQjrSsvibgHc/XuCWvpxt7EEzvaePrDqrmUO+nvvOI4Dr9crMmNRUYUaA6fyubWtpIDMAPzqcsd+7Wq588WBeXVBSz6wQXSgtw2qKfTD8j3m/V3XPGJykNmyJlqvwKKAf6YPfePddb1pkYMGreXpSgHSvodoVKltzUonpr4wsHYdV43/oCFAHCRSeVorYdf3RlsjXUiqUjLhX6aG/NHR/7N7XIC/p2XGLgBvBZT8ZW9/T/JHFYt3+WSM4r/j2QK+Zhia6xJPhnK37uu3PxAWcWisGfGezLd6kz4v8TTntfBmVlDNQcV3zWlm9O6nWLV1mUVz4Y2VJ3GxtIwnsLY/JwV4Ctta4LwKx+w8vILyOof+SoEFxwoEmZZk6n60IJAyT3VM6789rSToKIMLq//0Ci/9MMvkPobF9xScQtDPINKMxamySZY1eB+T/b7gB4V35Mkn531+p4hVUQfE48VlUmyS/dnTPE0FyA9TVhqgVvRmrjnbZtl60ASb0wF3gxQjxWyxVwCkPwVkxDvmn2XoQnonBywYk3wMpDdMdW60NLbG7a3XbwH6xTV65lpeKzHyCmJzoFcFc9xDqxfbvlAO+DlBQBUuQAqyahVZJzIyyhTiJChtRegHoPZ3X/HwdYwcjbiPMy1eddP6YLJ4RB2vv5N9r9Z3HSPBCwWEpjUbquEDT8EuhUlpaRPw9FcEEyFwMPVn83Zunlt8K9Z4znndkMw9Gz69JTvTCkQJxm4lF//U17LWbC/a8rEAMEu9mMWfaSYjoGYBBDn9eexP+qjFhZI2jGEJGbcLvShUpOqBZjWtmFkRbmMvAtJygj9fT/Nzhk4nBK01PB4Pz3YxpvGOPnAcR9y3KrV8RVUC1BZkmvMInOTeKH74waxRYwqK8l7oZAOA+93nyOMGRoeewwOXTLiz4E0Fl7G+atK5CVOa7eHzz36O3nG8Xvj7n3/iGT76G3gSchxbWOw/n58JvEMImMD7fH468Mu93ZoVm7If4Dwz/WYcew+nkWa5/p/PTwDA56fl3f/zzz/x48ePQp/A42FxBH/79h33+w0PLyTEEweujQLY99uk2ITyWPjAJkVhUBca3WBAM0Ya35NHxAlloI1EPr0PjM+n8Y1uVnyeUgzybySwIi+qaTRrzQZSD99t9Nci+8p0cufz9Hod0KHYIKEIqa937wak60lN8JmhOM9OEgYg0D5C8eJ1u92wuxXYrPhm8WSH2a+9ZNeKU02nG/rsCzImSDrQ/+0FPBX4uwttsfEqYL7SSAWe4IUW6oI+8wokXfm8gSCI180QqlNvWHsG9XUvc5/BgWB9X/xZlByBuemJ0U1dYfI52VL2jN5L31soPaZz+nM+lxZ/MdyVxHvodMT0wpvnOiffqkDZh2KBmmcGzKsIcB7+LlO2qXjzZJMKGaCWDQrD/23BnbT2epqLeOPLC9XZGptit+036/cYrghI0NO2bzZvRctYMGGszoQffO4T+AkgHqeDdMfZ9x0fjwdardZBXAAAIABJREFUs/oade0ylkv9ZND2xBRU6n3oapn8IEavrTU8zg/st4x5q4pk7X+VlwS2cXrroBdiCr5qxhdZ3I2U8UmkWFU1+QZ0i/OQFqcEhjF48snnXXWTBObi/ejHE310NOkQbbhtigZbFxoC1GOSXt1SBFsyiM1xkcf97CZnBB39fHlxTJPfOuwkV3yfA4wz7F5sMPfN2U/I4ck6/m488b6bcevmJ9zzhv319VuAfiBBhhZhoPx8AVoDHk2vaaVFebY0Or9kUSKCAIsVT0TmXOR+31vWkwIAo3+LFav2/c3iiXeFZO0bwcw0DgrzZQxk9jEPZZNO1m//m2ks43LmRC04LSs5drKiCRwC6Rvs91Aw82IlXKbPrMBzUtgA6HlGVgYeY20FiK7XCvqneS6KD+dlnWP4GtH6zXYoUCrgX910pvn3diIAp6TOkmXZ+Pfk6sBOT/NibgMgAPW1OY4DrXUHxnMf7vcbzlNwHA3M1S9iWVEOr1p8da2AP0C9pGsYkRIBYU0byzkJ4K860UEwfG+TriiqA5ZF0pg8cZcITx24fzJ7yqxQJQ+g3zt2daWqe8aYE3/99Re2bcN5nhPtn6fgPDcMHXg+X+jjDLBmlrIloJpW341Veee8/IApkJWuW3NXsSF4eZ9//PiB4zjw48cP/PjxI8a87zu+fXzgtt/w/fsf+Pb4mPbN/X53kGRtW9amFIyxBryF4F2aA3gN0GHrKB5HKeHqQiDwLrgJ4HJfHMfLfx9v8xDRvlwv9w2eMuaIhFWVygBpcFv4MtfB3n9aERuhS1MWXxu9o7mBYd8zDiKUBgbuNqYFHKHs8SIfsJSvFvz8+nyGS9pWEhIE7Wu6HgXoL37uQwdwKMa/voAfI/rF9STvBBRN9gAoNvO0mn4N+pMnK3QY8GttLtwVtlLyIqxX2hirLK5KH99ZQWNQiCAtoWYz9eW3tdv3LYLcT5eXjfEQ7kY2kG3m6aQnUpjzJkRucxFg2513QpOOK0BWo114lpY+BlQ6tBc4Xehzh8dxiUA25vL38YD4M7WpgZQ3CuDoJ54eBB7jdFe1c3QPurR3b2X/NQft77A/+zhNAv/kXnVgbA4kiu5zuG8bHt8s+9eHpzCmhwkVP9alOE9znWENPZtKhYrtMWb2Et9H5+jT3l3VyFRIqryybwjuxRgVgNzrlpTBXPSAlrWDtJ6W+94a9qwBc6eL1rAvcqpJw3ArfWvsqRloztEx+oEuHaIbzMf/DhbTEwG6GkA/PRvZ1jbcbkwCsfveoKGhQ/vh/eGJ4mmGLtk88bCCsU4h53wf8ST5KdbXfdvQ9Gbuvq1BYIHI1YjxKw3gtwH9IcSBtJj459e3J6iooOOnl6OtVZEA33fhOjE/noTMQLjwhS9X7VNYTK8A5z9wxbMiAUI5PwCwFUCmWE4CSh9WV5W3sZV+5VZCrAvKOOr8MKCHz4cV7wLw0dpFEMkCWijrUX3ww0rt7VAw83dVTL6azRRaKcTYn6ok8v1U+Nq2RRGzsfx+A7nTXLuAdilO0F3nnTn4O0+CvK03y4jkCVTQlOS7EgR19J4BShkEyrST5vtKi8QarFpjLuoe4b8rbZDOqBTRPSrmc6GxVpSFillyrA3m95g0wLFWy36CC8kTtWXvs7BKH5n28nTfflrzzX9XC3i39GcYMvVt/eE1dETQcU23WlZtUiL5mf0b6N0UHSojoUy0jCO53+6RaYkuS1C4Fc5OpCgc171nShSPk73PveP03ORhhR9lnYqckFgiDYs5C7NRCeDJoI7qr98zixFHrTIpTrK0Mc/ZeOMvmeLXgQBoCFCIAl3Eig2W9WGrGYD9nrGq8hUrhNNDyWlb0kVkKOtWBTZ4gzBDz1YMATPoJ3Cka4o+B8Zfp6Xj/OzQ00BL04YNe1hH4Rk5NBQBXxHue24JQewPKtPhGqoT1C0F7ApAl/LlNHME+rN87FUBKEpa0JKS60lWT51EUdlHimlvJxUkj2GP1EF9/OadYioF+X/wRJhnWrixaNK4GfhaKULnJ8+uuBlNm4LBOcjaH63MzSxXsq8DtEbzeYUrM1TaPx7Gi93tz5Re2/v3+x3Qgf56ejA8DJy+KXq+YV0pDMBPGc0pJJ/wFENtM7e8tu9efMpPFXyOmCgi3RsbrFDEsu4xMiRu0zInixyrhs/6s667/fjJCvtQ3DFlowHUfNurDLN9Rvm2GeAfNQ1z0vlQQSvuN6oK7SdUuwHy0R2bAPsm2DegNQX0cB78NJDeD4x+ALoB6LAij1ukgd5EIej2LKwNO/k1hytuTIE6ny39iR8JY8nwxApjGA8cw4pm2hY2N810Cvr6+m1A/zRQAtvyfQqj9/v5/dtgvwBSBLEVKIsqMAnq66uCGeblJZPikXV396MIHMV7ANnUzZ98F99rBsUFoNasDIoKvKyjuZl88zCYbB1jnUMAkzZNZUN4X2X+eHfjqOsyWOzIhe65WLbzSEymZ1Q1LN5sW4dVxDzPMwBT2zJVXvT3bfKSRtZsNSvgV9VI8RhFscqYYjyLSxXHAJA+FAzVrn72ASrd71dFv0yxVelsUggSR06Aoyom9rlbvzYv7y3GjCqQrGNYrUdRaAuI/NScMwJHnsiEsF76f6VcX45RGgbSpa8qV7rONdsGLP88lYry3Hme8fM6Xtj6FkAOAitCtbFom6X2syP1BMIJOJdUwiNpZQwLnuaw2E+CXwoj1T6NbYyBp1vTCPr3bcfjbmD/4/EI8L/vu1ll1VwLTk+VF37uRfhCLQj38GN5+vrT2n2/3XE+zhgfBFk3AAjQRoW1n2cR6qYoNWkBlFUVh/OjyGWP+UoDjgs+KacJhS7otlGtha1tCT4w8xabdMUBSRpAgnqe/u23PYL0pcnUxhgewHyeoDJJC//N94n6PUwXOcaIOJCz9RJndAH61QP4pEH/s0P/+ws4EVbQoXvwwKamfDZ3JUpwGxvMxiex1NOeTRXaabP8m+3V3z+/CLrtvwHFOTKHubrCUQs7QuGuVi0zQ3GkAcoKTThQBGAFi5T7hSDd5nQwmHOkuxR43yguGyJW0VoJ+m0E1D142syic/vthtv9boUiH3eowtLJdkv1q90t8cMyPknLhBcVjKj4Z2U+qKBSUWpbw+1xx77f8PH9u506jZTTEPH0wDf088Tf/78j88WDqgYVb74ikL1PXn6u3i+4MYPBzHLb0W5efM8raaunht4Kv27nZsUNt2YxKqGAIuYg3X1SvbkC/CSnyvuqEQAu62sdkQD9W8M2vI6KwPPS0yMEGCPTttvJK+Xbbt+ryRaeApIPA8wBRBrr6OfTUoP2A2OcaG3D/Sa47/YDDPTzZXU7Xn+h98MV+xMDgjOUjt1OdjfBLgOihxnduJhNAXT/IY0qts0qURtvo8UfkXmMxtAh5spkoH/DcKMMYwC/WoJ6/RagX6t2M1L4x1U0+YJ5EgwVBWEC0JLBvBW0xDMVLBaAMlkYy3PUgqeLm4Xt1HERuCwCbtoc5btQRvyKktBl/FM7VQiWNqq1tQoGjn1Vnqb58nulfE9hEaBf9RLkW59Haqb+bM1aYWM0wVfVuhoEpKp5erII6WpZbZIuAI2WC9WZBsoarWsDpEI1rT3nKRhMmWuYa9m6FvVK4O9QStLSBMV7NcOV3pG0Uy394cYm830WtDve5mgeS4LSN6Wzvp97AYjUsm/ztuyNt2tVgqb9WegttCACzrIe9X3lXq5ntsF2Cz8oI6zKFufHijVRKc488u9xGwRz7AcVi3xXKihV8ZGco0K7qlZcaHYn0XBL2m9ZQdr8yTlqUzZUxKqPVp4ToH+h07pv3H3hbCe2cy42JmpKbHUN+kpmqCq69gjInU4eSzGthD5lvZSVKRtkvL9B1WnjjW5lplu7cR6zW7zi5eU543dpDeQ+AeZMYKRBxpNEoDZKkO/Ur6oUatCsatK7qAAHgEOBJyLIl9TNoObWB9rGE5ie+yLkwaqgIwAB7wlFWKhQkG873WgB/OXv+hl/JYzL6eYpLZD8h6e86jdxr1farCsd/K/y+UIvUFQuwGlN9qpFGRRB22zcm4Na1kiAANINDFN0ti3dwHgCRIv/frsFSIR0A7tdgg9Ol+T8mR89R+p/af49dGBgWPySK51oDbJtEKEbR/L0nPuUEYqUJGsfUOSMomAE9pE0WUZhkgLu+pLgEjBMOpw+J5lQlRzMvyfZWT8nzriQIdM4YvZqDwsNkEkDsY+n56kMr3zPb7Cx0DCpgMcV2aAHlFl0ooq9G8z8x75zg0Y/YH73h+fqJ3iXbG/AVIpxYHQz+AhGyAeRbFvhc69cZfLLusQr7nP6ukhxLXjHd1fXbwH6oZmFIiyWlcEuv+dn53sxMccE3RWEVIL119s9BchWoS0itrRVWHoAoyCtsShuNuyXurVtAlXWkWkM9V3TaYJ4zEEtiMS2VSNF2QpSUd8JEwbVcpkgvQhqn+MaDBv3lDkZveOooGYB75MftLerrXlpa78kgdwbWDVkHGlN+R2t/ApYNL2XUr9KIViZ1hugjmmf15kWOtJfKDZlPTkvFVTU1md608gsE/eKJui5UMnXvtJCTRqrVjxetndKoJD6EbWmNc21jgU85PqGm0nZKxzrVf8mpYJvKLEdpCF+l4HvszuMiFnhYi2q+5oIuveHAbTB1DjPqxKu6uleN2ADdFeXjdbm+TrQ5UTfThytYT/38L9mMCeDU1datiBQ88fMNKkdqu5v6hyb7ib2rBVaOY8DvQ+8Xs+yTsDtZn7hj8cd3//4w3z6v32zAFGvHz9GnjJREPB3PVFJkJ958VmVV3qzrEZnn56jFZynZyAdiAVGbtJAO97ZbSwsfqaqkRpVC5LMU6lUdgXi1Ust4FGOAhBcMPNED2pAZm9zxqR1vyjsVHU4mCRdGnhvDvRaKpXN/V+H7eXj7Ph8Pt1V0kDZzV2rLCtUg56W4paxBACs0N3NgsLv94f3v8AhVfdDHhj/eWD8rwN6AkM26GanI1bgSCG9m3853BWhM8jVT9OmzDWJDI0nMRQ093amhvZYjq0WvMs5r4BfNf9NDGLQxyGRAmfveJ6H4ZsLGews2+Z7DA/UBHtXMsMBYOFBtWxkbVTQYykjaTAZLKQ0AFVB22643d0dZt/tfuFpphQl3tzpImTCLcj3+45tN5/2x8cH9vsdH9+/Q1XRPj/Ru8mYPrrHPagB8pjEmXerMvg65+/0gOOjdxy9o92cT22bneS0TKIRZRpUcRTlkiHBrbTLRQqsq1zpgmuCRDIAejSb/67DTh/GgJwnRBBFILdme72THtkPVcREOo82BcloPhImVHqYgLkE/yg2HrKGcqt6nxWtpuRVB8kBmt0LnrTm02A+/fAsPrkDquGTxdt0eKC2wE5wtMMSgncITjR0NJzmAqRA77BUnq8fZtk/n8AwMN98F6ltDIz+gvaG4xAIToxu/W8AVBpaG2gy0OAnSV6gSzAAMeWgARhN0BQRd2DFy2YFnVNKXm349FeQ/3cB/UWzXK2e1cozWQ+/uCbLARJI+4NxT/3+7e8FLH55T+mHWc00U2CSKfDeBTzFPV+862qMv17O975XbftqHFcg880KvrQNIGIKQqdeBTLX8qKLzf325IJAq+WE7VRLG92TeFzPvPGTRVAyEGgaYx0Xx7aA2DdrwQXIXefscn1xvV6rHv52EhRNLp8VDf6qXevC9T5SzYcmhWf9m/S7vv+if/W7lT5+tj/Z9jV9z0x66iMysO3qBI8K+GThlRIoXoC4xN5USJdwxRh9PiWZgHQF/5GNqa6dxmsql6ECMxeompMEWGXXLL615sUPyxvnrokBpalcgveTALysR+xjun6JzHNFS/90ynGtkH41P1frmnw3m5z4eIyO/Z9B6arUEAhCImrGRK5qBlGWtc65K3NY5jH8+dk3B83hX48MFCXgB+B+xlu4H/FN8UY11CwqkN6BQ6DagIYEUWXe6olJ0qmDqoYA/EG3gQJ93m1K/O8CtVNHmAAjnxSuGYJU8n7/B/8OI0iTyd0vV0vLDBSeU9rI+fG7C/3McttXV0tbrthQCbQTMa+tAu51f7YJdLTAqhBkWl8qdFv6i9Og0raGoZkCuI5pHm7SdSi7ZUaijsQYb3StkKjBQHCu6i5Jg9mJUp6ory+leQX71AHXuYt55ueKiRaU+0UR2bbM7U6R+2VeN9uD3rIU/BDvmI1/MUeqb8pK8shCE94v4Xypxud1aGHwmB6nMWx4rQc6RZF/2DvSqODrIvQooOWdoynW/9Exuln1xzg8c49Z+HMVjV4VnCOFjhOjb9DQ6kKNhRXv03KS7u2UPV3Q4/XF9/xMNn9x/RagX9X86Wahgyk7CIGdfZFgOf6NImQuQBkZ1SoYyPimqwqNAv7qfdUiGr/dbz6A00jPsbdrVUTKmMJKOjF66wf/TetovTf6TFDhz1wFFoeQYbtL964EfGUnBN+14FUNFkZ5L7V8phwk0w4gqmYZE0j6u6vidM2char6MHC2t91zmNvRLANTa9+vxjGB/GVNq7LFsUQKw3qPKkahJdJP+rcuK64aTLKebMyk8LUyG6Cq0Mtb+tjiw1+ehDG6snb+OwKlvb3Skff3jzmgvp5yTXPJezStPlUYDW+HoFmArBnhzLlWrKuZVIInSumi75d63M+1q1lfajpFaJ7kiAjklCk9J4N91QXveZ7xPBVPOwWw/M107aiZqJIHIea/gn1byhZ+4Y+PBx73B+73e6S0tSfpx+wpMkfOhwxxS2SKKp6CdbdIKxRt30zYFtrpTiuWIhaZeu/skXXI9vEC7mFANE+QCoCu9IGcB8s85UJXEshu0t5c8VJsGtVMwXyxJ+eqlHRljjSkBJNOZ+fZIXLi+XwaH/Jp6B5LcZ5uiRX68DcPkFaz1p6WGvQ4jlg3xgrcPI3q4/FYto4CXXH+2yfGfwzo8wb9tkUGmuGnChZsPkIRO07Lg57VRH0uYe/NU+wE3El3JRsai/T4nJeyU/NeXfaoLN8l8NPIAHOOAZEt/OhT4bEeNU0LvXpfAwRp0ok6QKT7KufE3EJTfGvpB1zRuj023BS43+/49vgAq0sLMnUmM4ExK5W11Wds3hq6qrve1AnxNop2ROBtoNXpszwT/FwyyL2PjqOfOM6OrZ/oY6D55yrAMbrHKqQb7NYsiPT0Pdq0di33R5U99XrHGZQrjPnjsUeeTmf9FibbkqJgSjwnTSF0jRsJ9lvhA8sUxj9MAU1LtI4Zi4hyzUz5IQaI0+HC26WFBjTJS7ps6nihNWZYmr1DGAfZ6PYFQDYD4hAqiAMqA+P8xOv5AnqDjGb3jBcEA5sMq/4LNVnWGuBpoI/DT0APQPsLYwhGBxQNqjfoUDTp2Jr6mAWAnxZ7IPEYuV/CuDosK5moYjA+s29QCEYbGG04T33TqN6u3wP0IwNTeRGUrJY7//K9kavPfnFVrfErZmgdfAeyY4wAP9P7CaYc/KdFfH7vFx2K9qYjXcygtH4/zUu5703xKd+vQHjq/0/ulfJ518ywU+McpFpplj5UK80tMiZ0VKWkjoHvrW5f/pIp0PJnxSgmgLIolRXM8+9IJ+pzfGnxXpj8rDj4nDoDpSVobWtdz5/1nUJhpQm/y/8pl8/Wvg0daK3Oo4QiwKuusbWOWeEtysKbz7//W+r9b/0xIc90ndVmaEBOQglIhQe020z9JLBY94E0b6fsnZoeNfxYjd9GcHxa4f2dhfbp3hMl6csYa7C21A7y3fFcjjP2wrZHLvlI4cj5H+lmVrNyCRCxPsMVFuYdJ+DneyAOE52hMRgyAvC510r2HVr1Vsv4Om6jj2LhK58ToLMPvHvd6294SxFAoVq41RdMHISYS0cgSac9DWBHBZNugdJy37AmCV12pKkbmGZ3Ac5p7yPWrAn9/jdP9cwYiSAuQAf0KcCfAKQBO4PxzW1iO48AvbT6Ti6UYnBfBMBQAyZKPoI0/lABbyyWVk64OO3aA3gTOBJo1WsF/OtF7+fG5/nu1MKtBlHsUgnATJZoSgD5EYJfQAmAKm250hC0IZHxTaThdrvj/ni8gX6jFYuVEaHrrYNtrXn+JU6OQy0qY8m5UOic89T3kwT/zBkkv0n6oqGKhoWUReouXszG4k0xT3vMDfvjix/rWHu64JivEHgoQNnjANe5i4tawQHL/JttlbmrHOGrK7HLLPemPjv9J+/Ry+c1pztpCAodLEwpsc4h08jbm2ALvyn7tlHGiBrw14HRBV0srbNAseEERNE23u+YtSnaZjz+FEsHPPrheEM8DbUZQCwPQ8aa0Mc/OKnLGfYdsV8W+mHsZKNBC7GG6zncev0WoB9AgkpuYt/kLOwU1kU+sADk2LCq79kh8iWxWSNQ9AJ0EfS1iSlVYFeaZLtXY3JLznQPgdaVAkPQVIieY16F7Qr++Y4rq3EK37KZeArhwr8y8BXsD08vFpsHmXay9mcFsFQAwuq6bxmo6Lmve7Fg1kklSKXwJUhpNYBOPEd6Ub6qwrCeVEzzUmgg5kFKzEa5r4IflL+bPzO9Q2O75lhS6sX7bK18lgRgYM4K4GvVQUs3iQQEqDQA0FRulmimExwLzeYz4XteaYkKTwWfZexSlKzh8zSlifVn1oraU1GmaE+iCmWZmRCQse/ELIcDpNMcSTBNMWFLqgP7W9qdxNO0QIWxYlaCprmT931H6xUtYwrF6ScGFh9g87B7lpa7+9Dfbze0bcOdRaDEKz576pFUIiR8czk3ACyLDzxwXjNjEecYQOQ/b9Ji2BF8SbHibiuRt7yM/fP5jCDydHMZWJYr54nz58As8us7+utqgXCW7q4UZAA8fWADDXnbVmp/UJEJevB1UFC3xqBp1vkcizbh7NiOI2WEFGNC2Vf7zXJfDwW0Dxyvw+f0yOJP244IvFTEO8IqeijG/3lCPwf6n6el52sco1vhG6IdkWZ9LPJr9pdPcEkyNOXBC9fFiZZVbCYgJagSANrVQfDU6gQSwzUI7zvFfgrok2bVnJsAUeDRb2wOPpT+5Qk4meXIOYe/Q2Id+WN81OZ3Br32fmZHscJrlhudUxwFpmC1TZrvzaED6IcF0B8vdD9ZkdcBtIb7cQJwpb8YmHQMizECMDxuoGIO4pW6Byg3aSQoIsFkTjOf/m03+SPqQbVQqy/QMzuNDX+WHXX1qqiIflXdQG2qTWEzHnGcB8T3NGCnXuQ5uingcT8R2D/x8Qvwz88UkdPfcg2UVKOhDKURi0o8dRkJ2l2NODI9R+WXilOdEX/Ju9qxQK2tCfbNgP++e2ac7ifQalb39s8btn9p2HZgvwuaWJHDJorbbs+OwQxdDW1vGM+B8392jJcbs7RDBzyRgsdGDQA86Y7xmk9/df1hdY0m9NlnZqwWNQPoBrqFEaTQ5U+u3wP0k8onQZrgbrUMVaszgUq9eE9tPnIY/1/q3m3XsWTHFhtkTGlV7b3d5wY0bPSB/eL//yQDhg9w7GN3N7r3rspc0oygH8hBMqa0svoxe2appCXNSwSDwRhk8NLBdlM08lqRTO+Fdp8rEO6M1UF9Xw/fWcZS8QAXLsu21CkF3nmf3pbsd+tPMn5XKBp98rvrxKvVJJUNPos+cAzaq/6+V3I2ArTnk1mPyJhA4M/iSTt9/K0HUhLMCCS3/ZmGjONxde+5jhcutCOv8diAb/vtOp68/7ZwXml57YzhhWK8lv+TtzOVFjAHs6wwyBKbVwWvXL14DQNk/fzCRa/XdZefa/+rrTttMp0ogOt8S4CGfTz8u7Ieu9XsMpsa4E/lNxZ363OYR7J2QRaJla+mlr2c39tbY4gElS9zN67dLKqqDfT7s57PAuB8Lq34rA57v90wdGSwqUjsHooH+Qoc4FCpokU/LZWrqtMS9M+2mwG4i4criitSbb7OefadKREzJSmAz4e7xXgF27KGl5LZxvbC4aRN0jFB+wIL0QBIC7yn4s9QtQzcDuYCXa6uz8jG8i1BvwdUGiYez7Pu1e6S8UFtXKisPc8TTwZ2r7UZAzKvx/Lg5qFeJMc+J+b/88D6/SwaL++WINxPlrt2pZyh4WDjRaSLXK1Xu3hJo9jhgF91r1rOgD5bDADfoNEG+HN+9zbki+6ZAVNiZ4FZaLKPaDwlTZmQhKftyZo7BjV5ketqvqzekYpkrCG3G47bnZDTQT+zXcU4ewAknHciItOADLLF4wEZmlXUOdYrMrxwrqxlaRRK3PsVzagcz9idix8oM4hpRrhoMMUouUoEOGN0iic6gwctOGpW7Wld57SBIdoDuDtb1PmY6nyxzjI0YAGYy4H/3GlQN+/A//Uwoxx+zXyUylwh9NbuXjG3iCtxYRkqJf7m/A0Itd2tEwuNwf38EbGAYwAj7CFL3H0JNiEI0P8/C8YhGHcH3rfDQfj98Ovm9JfXYVCs3wzjnxbwiDlnyjhd/wzDWgK03WwxLcCfoJ/dl+ThDOYVyerAKteYxpel7e3xc4B+aihsPDtCi247OiD2axt4o+JwAbB5LRr4v/zWwf/bXYIGiPisH0Dfl2tTKXg3Wdq9EmQS7LR2vd0d6Oc3yzbPJ793BUNU0xcv29UXtQDRKpL+Y5vCQYbtOeizIdieD0ECdR65dX55daC/BTXFwpG5xUNp0PFG2Ws0fQXhJF8pigSsdFXp9PNqnRerM7Bb4+y6nG4Pyja8gkd55amX88o6WPTsPGp5q8vNN2q49Tos4G+A/3VOXUHAdedDrvzcadTogsu92SJD8UY/3ikJzABFS79bhGsBfQfOWUOjtz8VG5XMnsTr5nluY5+88cXCdm0zFzozV1aZCUdikXSB/Vq9eAZwt3DeLaUtXFeixDtdTLjrwzHy+1TGKwsCB0ZKME/gT3pyLDhOvoCuPJep+6YtKCSey1zere9xp10c7374JYd3K2ju3AWAcDcZBlE2uW+IAD2rFzxoL4FXYSuQ93ubWNArtNHMqw4gd5PH4bviHgmtAAAgAElEQVQtmb2LLlVShbpGVvdtyA/A+lyQbxP4XMDpcy0ttCJvhAN3o7yvTrdLFjDbd00sFB/OovT7NffHzkwzOd8kZdt1Pr87vpCURdWUmWyn5e4Tpj9XA8S2DP1ZBMnXjELxCxbAfzdetYHcIVz2lemf976x/x30mwlseKwAfefTpccYexSVcgGs5Ur2MQ7McXgQ50U2dnC9r3uUf23deUPUUpA5PzwWAjDIqlTCHRi/jl5cn791LCI5bCKAmO8gnmv6F9/aOmAey4NluN/uuI8zU8mXsex1Gb1a40UVeBUMb5murxMd8JNfhAoFxztib841IWFVZ3tY58TMANHtcX2noAyCnt9eNZInqOEY/u2EYUm5+QwV3I6B2wEvziXmxbbE0nVOZcJkOlAHIIfh+E8D+qsAGDAo5K8L9lfPPuX1myi1HPwjZGNm2/JB20jIHV9Ok2tGQBpWyf9/tGz9HKAfSJAvFLL8TDcD7KDg7dGALRrwp+hKgPcHbSkrlKb2SfCdxU9aDMLb1rAdcW0CHbwRGP2yuLYvAh3459/t3HxvL9JD2vkEM4M06cpGa6eZRU7wBSXwIrgDIkfySGbLTCMJfrighmsPs1zEhOLCOs+J5+OZlVMJairPf6UjhQDHza089IEumu3+3m+PBrDJa32cJD5vsQOkRQCAzdJ/Gb9X4P/j9iQnyA6q7fIcHZoVYK9sz/zD3oXye+4tIRgtzF6L7BaTwvPjhrbW1i69CnaRBNZy5UHArwcyVV/NgWovn9gBd4L9sDqnGwjg/NjAPoHhuyxN7qJ32bXJtsQOUfDiDEvfO0XsK1nTx8lFQSmy379/iyDgI9wTB/TWgDAkA89mFGlhiklpc8u3ydeeKpOBxzkMfUywAf8ZCyyBS1eiON/pCjTXwoxYB4kqpGcUK2SsAFQgmTIoGSoAhi9WWfVzjMZfDfCHFXGep7d3OdA/hgcx6zGCDlVwi+6Fazronxbb6qFQJZYkX7YdgwXnJZdNa+M1bYCfKX+ZtpXgUEVw3O8ud+Kd40MAbL+dsP/2BE6Drt0NEjEnNwyXgF8yhqGvEyaoNKLSFVvS0vliBeCHWRReXDm+g256l/VuUyzecvYXv4pEnnmnKQywSf9ln6sE/Ue4AAERGC09xkDh7g3mluVQ4hOtXwB/gnv6yUefZxTs2oBe9rWtP/DYoTPiN6aFUduo4EtWbBYB1nSXO5sL83xmymAupDFyOX86TWs3y7bYmn64kl6yVEVhyrWVmOEyWmbgjouPaQB+KWTTpX62MT7P88Tn84HP8wn5/F7tM8M6vRr1r/cP/HL/wKEDH8fNezNLSdswRcwbI43JG8SynLcxJkmdd7KUdG3rEnu+lsu+z4cXMsxKz5zby3CersyM0XAaKuavY0iY86sXKxTchuJ+A6ZMzLD0u488cL8JfvkYuA3g4+a/udJh0MgPBJzwVJ8uq/QO3P/rLYbkADDw+G8PyPcn5sk57ePnrKLwuh4+H6hQQHLfJ3aR4buFCfB3XDUY61IS5JXO7fgpQH+CUmmTqS3WaL9vyOcHKk0H/HkE+vlqIedzO3hgCs4Oer9q//X5CkAi+8f1fGnMnW3rAPTN/Tp66/DuXRGlum1p1QWgG7jhPd48N4tCiQCqWzGYbBPX/j9UpZBKAdDSk6XitIO+q/XWt//KFcKrcBbgT8tBU8SuFvp3uz9BpNdnk3a8to3BVXl7vacl/+bCf5XK/Hjh4VfFVl7YvKxFRR2CgbruAvzpOx+E4tjv1thdoXm3Y9Rptj+l9ces8jpj73qd11rZ27zN773P/xYgznt2ZTGBBOULHcdjQcsUmi1u6EUZIi9Ys7CmYsQF6My0n2stDH1t5wprz1XmcRdi64dNGAi6I77Fdkt/8iUXTkO6cRWZfPHOeAqR8HouWnWlNpWHXIRpZaqFeWPloAGkuWWmPHmdy+y3UX2x/f75HOMuxJ5JDEBkwYi8+3VXpBXzDc+ukBfcEX15XusXQa6quyOygFoWA6SLIa3+E5CFer5tUuntHLh+0ZdrymPKOhe7hp2M1TuzdoMLE9MlYr+invnSwqaQ11vQJ0E4ZaQrZYidBwXgHgwKOmRZ8GQ+Ox5Va2ABuU7/LvhWC2qf02PBzjm3/miD34ADerXIqBNpeXM3vBHjxXIt+05Vxhh22hBLJH9jB8do2EMqC1zJaNv6V7KvgWuzIoh1brb6PXEJ1+Q2G0S3AHNPZ1myy/3NfezmOFy5Rq0FHaOYmSv9pAnjy1Q2z4xt3K5y+o8ggnTG7fJ2jwWjwt3r5vSHUCYXQI4HL8pJNrHmk4hAhmAcA1DDuGudsyYMC2Knq14CuLa+gt7+2SAR1yL1+4dg/FmBCaynACegvxnsCVwdoDb8Ypd4wXAxM3F5qCtceG0UnQCAVat/cPwUoB+4BFC+AfPJ7u8UgS/v+ipoO7i5wibeK/3EVT1ItCkgL1ZFb8R2Dg/mfK4BeQUBV5DZz3mhR7v/NRD5xaLZnkHf/LJQtQJcrd/SmczKGia8h+4pOftzJVwYuBjCAFlsvxOYudB7u7p1wOgLeaGxiLjRSCvjyTGOFLjgpGj0XC0WIUFdA7icYIYAFQxc6oKkAXcBctdnc19o49jfiz4UY8ybgYJ8F1DbP9duCbOK1OKSGVcYyCQGs+L2q1UQcJBk9PWPDl0Xu96H2WgvqBS1yafsH+nKzqKEbef7uncDbxRQfa0OOg+NQGStawmmr2lqX5SAtiAThPGaMUZYWmIRXJ6qE0Bap3UIgEr12V8zAr7WKqAicKvj4/Ph1qnnmb73nT9shYW7NbenF+V84c/n9AIu9Ol3BaWAOdvMhU3Cr5u8PUNJd7DLQOrYYo7t8JwjoVCI1cKdrjaHjw0t+JvSGfdx65nH7dy2dLw1bg7EAFFEgKXzsKrl80YEprqVz2nNKsYMnEssmkHgr4pxHeTtUh48WNMDYumfzpTOXMLdoq+4HTf88vEBVU/rqapeNEyY830AhwCHW+tawlWYMZbKeXF2uUOZZSuzUAHhyy+ondTjCNenBgIW55hCZeBl9wVtPbDIWEI+BLZ+FuCX9kudafA1t2cZoivmmTu2zmeHKAYENgYGFEOAKR7UQMOUNojvhd+ch7YBbMAb8LGbc+H5PGEmUA3Feu6KDN0srIH+MZz2LFp4Li+ud9hR6zYo37XWGR2ALkBdsT/azkmSZ9XuilHWdtkttcNB6/qcPt6ZTSo2pRyA1/oofAa1puQrzU9CZU6a5b+Jh9sxoKblLTFXuAn6GML8mTDDHCfOcWTQP633BjhgRcRVDd+xv8WjCPaP25Hub8LYiq3trpBf183Ol9vfxt2dmbuxM+QOFTPXiXbcxY8aiQRUI4YGhjW9PdQBzBbWaTCb7t8/Bsb/8ifInw33Xw0DBpsPfD6+AziB9ek89suADAf2Q9yg5saLGEMDHFoP6H8Y+PjzB+ZSjFMxvxvW//GA/m25y9nyFKKqgEzDipTQK2aKLYPqSIPrmjHHVHEeBxReOHaSF95gzOvxc4B+ApAfndLB2g+A/pddvoD8K3j50XE972oV3ZmufW7uQbSwsS1fti/A0h8ecV6Crt6OKy3j2e/62wF/f++WVWr2HYx3QOO46mI1Q07z1o4LuMUr/arJtrWhD14taHGXtBC8B99XviGvWafhmyN5jsD/omBJO+frQ2Kori5B7wHr3m582ba2DtRYNF3iHRttYL0plAn6+40JnDnWpOu1jfXYjRfzGWgwwgpy5Pf9eXHNlZ+v/PFH85ZtfMdXBEtea2Efg6sl/52FerPsoUDGmntFcRiSP3r/Mh1b/L2l6OwKGpjve2V1VLT3YMj6jtGi1dOiBb7qS/v8lqRFf87VlL2rMafsiRdYv+CqMPFeNBJ4isf9ty7brSkkWXTMUO+xFd+H+b2ck609uXMQbe8WTcooJgpg4gGVVpMklCGYeHyIhUeuo7tURHYKh/WR40zZZfnkdnbNKIFscSz8eZezlyN4o+YYv6/nlOwuhWNfPKWdaXm5ofziZ7hizuXBoB6EqFgRNM5gXcZUeCA+VQk+/lUmlqyu1YPgOuscRLB17782pGy2otiWxPUzeanmb5MVqDl/BRFdJUqAHedjlVGpZGMO8FsZ9ApS5M2nGP1NPsZYxNqXczLGKXf5YuEQhJU7Tsn29cVja5dt6yF32/gb5RnxAIBKGdsDSre+8C/b5trlkeD8TCPhW3pRVnTebLRK+FM7NGkQgQCruUghZD08laseAtwE488D+heDqkPptSbW+QTsBOwJEVe6M2OgVgNpYHR2CLfNodC7Qk2hZ+wifCjsk3UY4v30+ZO80+hOg1Gmul6rVbjez/v3A/r70TvJgLwGsK7nbovEBUC86z4X3LT0d0EYi85WAOZy/20bHNgmyJ6vfmP37bn9fmSUfG/9SGCpe2Eyfgcgg1So1ZrF1g9aMA6ftxZOTt5k2ksq1MvzwWctr0vAhZh++Te4Lyy3vr2/5efZ+2lEQnGMSL1GX98TZxOgr2DhPE8YrAGL1tZGDzO3uHXQDhHcYtE+ogiSy2dfCEZYZ8+nW4I0UqslHDBgqdN1dJAcY5LTta8mm1bUuGFj01qAOgjgd1l0pF10XZiK1wqkDXGLy9K2oC3HaiCIaHQU8QXmJc1pNIS+rXNVFdO+ayRAphB8mQtXIGYlIKvVdT/ycgbxdpDGWzS+IN/1IEwDMp3irqSFn2f48UIlfNmj9sSaMBtwf8s+Tlyg6EfdU/FGfEoUGASfo+7bXAWvAESKUeZ3v908fS2V5mVVJOwR2URYPdTZ+JLYgLyZPuCNxvz3RoHpWdE833Ps4rVFt9ckMfM2jxAWzEzihj+JWBvPJDPG8J2D5xOe77pl64kMLMdxD8t9S6dZTceMzDgsauW8WBZELv61k5iNLiBngEiMF8JFhO4hc+IW1n4YMrUq7zsixuJ2v+F+r9SQqWiZwf7lifmvD8jn8swwy+CVeBwMisHlq5Ya8NbSueMXn+NepagBdn+JFe+nkoraQUjAL4TMhkhiDcCqoJmPBjkojCB4XTR5H6txp7vZ8/l00M+Cd3pABjA1rMniBb005IbAcIinO5RQug1WPv180Y1Eixcd9Ew8T0Bl4Xk+8fn5PXlA0PP0e8oUUfFdOwEYtotYg273A2vd8Hw88Ntvv2XdEFsLj8d3PJ8P2HTQh8ZjxX/OZ+ecOM9nECpcmhaSV13E+I7MCP/roQo9Yn0ZLiNsKqZ4CbETUtmbNjaJkTa3LvdBejVp+rxeKF48VHGEpT5rUkznsY/jwP244dAB919HuMBbxvYpfO1jzCWxkqjiPg7cxsAR/YtJiCRYzlV/eW65Aq4MRqeqN9R3DeexIs0xEww5DVxUSSoSme0rjqHAETs9t8MVommALUB1QqMA1+f5O44/CX75hwP6oTj+siA3w3w88Pn5ic/v3/Dtt38BsHDIwhge2AtxDDFEMZfiPBXnWvj992fsUPqO7v3jF3x8DIiEa+Cvgl/+1xvm4wA+J/S5IP/fifl/T9iauI2FKeZxYhCIjJgSkgHydHMe0l0NtSkyPz5+GtC/AXor6+JVHnbt8y2oj2tygbsqBU1gdtDP+1EwX1OFvrMg92uyffFMvr9Oxf1eHfC/SwdKMHa1zL6tCNze2Vf68G0aIZALWFYQfqMhdjC2xTag3Jx4XC19P7JgZ7/Eg6jWcqtMujfE4kXAgpjgc03IkqTVRvcLyFzRRwIZwZ42cRxHLpLu4gCvDjldU3/JHGWWMuxHu1LWePP95ItF6A0Qe8tj5lYu9qvfv5jvsqMiwcOosbAEgdUuKpOqigXx7BExzpwb/XkCgCkNO63NbEu3pvTnvyrpcc/2VvfOfjQ+BhKMvrPuU6HrAb25iAAVaNzmMwEH/15mUNY0mAzY7mPRiIr3uwAWQYUEP54zvVwUCtRajRfd4ZqyHJq6b2WH+8Q0t5hqgIedpJI82dvc6ZPK9nZVzT/f9ejKUR8XLsirMVyjfaOLagFlWvFTrhlrB9SixT6LNGstlefoS7nnvbPASr5tcrp9YOpItHsS+LMoE+H4Nq+ADFY8WD28blLU+X3C/nm6L785opgzAv4sxtlqxsn1lcCoyd9UKqrhkq28kKC1pfcB7FeS6J3XvOR1mS3kupi9eSZ9i+mKQncpn3OCGXPKQJDmBYqEuQtVExCzAmyfYm5MEYpJJ0eXl2ulq1sp/hWw6aQMVzJBgn7OPQZEclduzonH4zOMZxbz74l5PuMZ4asN3QhhsI0WgESQc8MWhLBSRcV6qkVXStyl0GCQNYA5Awwj1sCUPFmBG1wHuoYf4/jCG2YbmOa6Nkbw9PC5nYBdanehG36CAokb0tWVhjQdONjP7Dr5WtwVr37Icc+Xdb70MWWQqhsRLAu2M8MoUOt+4rW4j8tLfx0RKA0BTA0iC4qJaU/M8xtUDxz/6cD4Vb3aLoBpE+f5wOPxid9+/wYxi0w+guf5gfvyIl3uBCQ4l+A8BZ9Pw3lWQhLIgeOYGEOgw2AqOP7zgC7D+R2wJzA/gfE/FsaIODCzmJNU3tMLrMYRJb/LOH3hgS+Onwb0/9FhF0bcFjjpW5kXCzFQ1sAG1piT92pNFtRitfnkN+Y3YN8JaNeh/ca/uZ0MYC920a7N9IOtj9f+uzWlYgSYs7zvAuAdXdg/Lf++y81fnmPt+yuw6oE7DnQAkQfGHAF+WqBc+r9rvko5KA2dTJu0Ishp57Bq6dCR8QNZxCcc9Zh5QwQR0Fg0HswoQhrQSiBe4p3+znPOTIuVNKkbgitS8gKLEJnBRlh0zX32UnK/PRqw7EC7XZPLh9REt+TDroh4u7rSxFf6sMeieUa+6tucXmCH9298JNxl6y0188Uqqin3OcaOuLUsE3M0QHYBnuJWDF88245UU5hlKNS8vPlk5ZcG5BKoxthLZJepgHMk79E1gxlyJuDZR2JRgQhsnjDzfNarVUXsaSghExBgzkoXx61XCVDu/KCxQHlmFS6Wx+G+xNwt6go6ATr9ZtXCb9lq58wXrR2gGwCLvNo7e2UPSNr4SmJBegXTtjyNXz4HkvyYCoQCt7tb325RqIn98MDAFXMJBXBQgcTTzHdFzDwOQQTTAMwFNYEoMGdHoBdwE585HyCyB2gCpUwR4JnFuE7fabh5gTQv9qSZMYzvVE5gyOxOzDgjf13AJ4C/rUjdRFzpE86C1pzLNF4tNAWmTi8AJ7Ggk28pZ8F4KecFVZeN98hi1mnA3Znb4YXO5iKA9AwknS9e1JDgjw7GSGtaeV0Jdz4/wfZW1n0z36H5/nxAAPy+XAG6jYGhgo/bDapH3NWyGaJwC/8gGOQ/J804Bg473CedBR1TaYjsTFTjtuVwbWwz4FZSWwvPxwOwhUj8kjB0TnfjAOF+1M5I4lCjjGMcBxDU9WxMnqGIajGLgZkIno9PrDEw13S+Yx/WxDpPf7UdS0+X7c1fMAxI1VYQeiVoymxFZVdiNqP7OGD3uz8n5rTG2HlMju+MDzOoMTgVnPk4qECZQcLgw0B/Yhes6Tn+dcFid7rP3dwtSrYj0TVfhshYFoj+GAdwE/zdX/7O3SdB0B/nRaC961vkvwnYciXkIM+5unAeEzaBOT+x5ifkL08cf28Yfzqht98jH37EnSgLti18/xZ58tVjeJbcsfSOKTdAbngswbfnwPMx8dffTjyfgrUesDUxMSHjxO0mOG5uVBvwOKbb7QQwgf+4gP9Ncfx14XkuzIfh+USsQZ76UwFEHrgsyEU8VTExtsG/r45/H6CfINdeszgAF8ACZIrFtGZpFV/heeeckFh40l2hXw8AY2A0jbmDnM3FhL/H1vLoINAuVnxuczMwqAF/jtg1N/xq/XEztKRwn7wHSustSrDpfh8Vwe122+jI33lcXYK6ewTPZcpOACGE4/46t3vugL8VJgnrmYTFQFZZqtN3LayGQwfu93sGCPfUhuMY+Pj4QA294XlGrm0V2CJgG5viUn3T1JYHsywZ0o3oukPCgFqQylJKJdq9zQyPx2cESxnezcTXXRlsY149osImjd+qbXw+/6WQNbifbe3sAxZp0Mj3t1sqPmkpQLXLM+69jssRyunG0wH4sQSLC+Z1XhI0ss0amTUiVWQqSMJUjAoMYC2BCHcX2oou4kAhXZQUElbrAlKSFrUMMgfCMisQ89/6MscCNg79RlhpOPb+rLkIImu+JD+NI3xpJUH/skgRGf7hWUgIoSg1X+MxxN2C1kyLuUX6TAvl4vA95qQtAxU7r5WrVY1vgjO6SwUgTCXTwp1mBahucsoQrnBRSVhFIkiujAspO9s4p0Fj+rK9AgT5ODM9qV8rsei7ayBpzsZFW5NHaydr9nmjLhtut7u7ST0eyfdrLfz66x33+x33+0e6ea3ZA8yRcoHyIIHkaRj/OCF/3XdQLCVY9V5yIV7pmkBZmWNFeQkHRhyrrFMT1lOoL/jI8xT3ewP9OXYTIsD9OCBikFPCx5jP6u3mfFck5JV9PeBc8aqgETeiA2IOQgQu58vAtfCcTLm78Pn5gJnhT7/8gvvtgByCI1wWqKIqY8eHQoaby5mtBwE4j5snbljrEyt2JH3e17orVgY3FWbWqWQBIgI9XAn1qssP2DwhNkNUuDwdErUGJLEU1oxq15O7CJFJTgeO4+ZDucwBa8gOcq4nC3CDwuPzgTEUep5Qrcxcthws27J0FaNc7S5ZVIIk+nuoKxyq8OBSePzxgs8jNecFur1m8odrxiyOM3eVEYoYPGhXDa7IzMavEoWizCDnBIYbUewMJYQ7k7kG1HuvyZTgH5IyEBZpfNXdjmDhnoPIq2+RtvLwPGRiIVumg+2hgiFeiOt+c212jom1gO/fTjzmdxz/0xPyDwt6LIzbd1cuhUbIEyILcxq+f3fQf7vfoTiw5ANLb4DcAdzwXAPfHgc+P0/8698eeDyAuR7hez8xjhO/QvAnHGHo9Lbe1wnBhP5nQP8iOP5R8PjHhRO+bk9ENXazcK/yf16Qa3gQv4ycu4j5i336vhw/B+i38h8FXkF8HtIsne395VxX8QuQ8TEdTDUwt92fv1kJZ4tFm8rHS7Ow07lvFf8bFK+vDyoDCQyr3/0gHdKy1+gIVOrNTcFAA5xxrbX7bffZmlRCop9PRaJfvz0D7+lqIpmH+3pdAn+myRua0fhjjKoPsFl3ikdqFJB0KIttXMBAr1ULBAGSSCmaXin1Opr13Nfjyx+230rI2dvfS9Drhc8F0i21kt9GHzxdGzOjrBwDZO57Wvx7hdB0B8I+f3og4ctOkD9w6+E7hTL/zrm3K/IayoReR46LQyi8/G3jOy7y7R9XyJrDywMvCTLZj7RaBTAOBYbb/4ZSqCkLjEpa0rvcb3rNEeEKne1d4UrVEEUfVbYjgiJVy82ljoW1XMHRBsoRczlpv8x9fyk3YsxEJAPRyHupeDbaO5CyQGXOU5yLPGdPQWoFluAWe7OLDEbHuvuuomQMxqpzst+ca7H3IDU/i3idz4o/eHDuH+PYjEBdYaECRKCV9zsN+G3CngZ9GK58TUMmgb7QIoAuc20DWoneropsGyuOiOWAIHcrWWOA40+XFZG4iqB5Z7Ckz6WH9f9gS8kzYn1YliBU4S4dJtry7HOcXHlZmXGnBdVLKZJ44Y1cUba1jLta13W+HllzUNo1/awEts0A5fEn2ubQqvvE+fQ75zrhhgpyIZKWK3k5JOdWu6bcIp+PB6YqZHgbXfYtnuTPuK4zuQi08SFHicDUs1ECLptOusUZUlZ1GkEqDWm6jTQFK5aMNJCMuI5uV5R6VK56il4BDUW1VvDBroQ12ZLvjf9zSIkzBGCK5aA1d5dSOQbCq2VBMeC2IneJHBIKgS1gPYF1QuyE4oToCR0Lql6eq0ymHN2+DklQwt15lolnY8LC5xP4/il4fC48nobHidwxfJ4rKiELzvMJM8EYQWddOIYTZB3A+lXw8V9uGN8N9qmYp+D8mwLfoiCYMNg3WrWJDXmRd18dPwXoN1Q587TGNnDZj26xTcC63cyS8Xre2GUt2Ako6yRKmFyFylfWcC6gG3nbtdeiIcAbAfUVLV4Wk+uC2UD6pU2ciOxTB+jaJgh/fwv4v2jXtQ9bKlKU0nZt0xakvCod52x9oD80AzD77swxDnxEyrxxODgdWsXbUtCEP+ecswTgWr6VK25lZXEd5t2es4L63CIVwZAhxAgANdJGipwp2B084YVPCTZ90eMC/krVBOtA3RPvFi0EIPZgsHxG1G8PCJmrAa89xoAh3FbCakaf8+fzhM6Vwdfy8ZHBoseLD70lmFyhPPZAXkEB4mwbEEFkV7Ca7JMgooP+VCxWm4tS/GBSvqSG2CFYgJCncrGrnUE19+/3io5F123HMO7plaqBczGg/Im5LAvRAJIpOwn4O4ijqxldRrJSo0iC3DnXzjexuJKH+b2aYYwqEoVGp1JKix45Dk0hWQEmpjMRqIAQ+HZDQZ+bzMGNpI1fMw7fdcvF0BZOAsFYuo/hvr2kB5XatQjkq7JwFqSUyk7jeKb5T3f2EYIz/yEXOvH51kGY03rfibmFG8b9fsfH/SMD8Wyt3LV5Gz9gBnxfmP/Xd+BzQcYoUAck7X0Ma9ct+xJSV5bC1KAaYYxKUC77vCcwBwOm224SJA0hxy2CjONa7lCWEtfAM2pO0fXOf5Y3pG5GFIK3aVjPM8dpiOKX29355Ri51qZyCeCcp4/BnG7B1whsHwcYdJjgEBVoTeN80lMFQwWLhaDaVX2dS6V74yW6L2JbO+63G273G4YKjkNjHPydYQDK3lsA3mhvKvsmMJNMqzsXa0EoUajTO2TuebbaAtICi6MfDNa8cW6mwuIuRpn9T9w9EIC7kw51GRcpsR/PZ7TD78H0wZDywWf8Q+4Xrgh+hj/LrfDOBzoFZoXLnC/rfp7GVjxwNvpg2TMkP3bAD7RIE05qATsu54UAACAASURBVPxqKhj+HWfaMO5GKSzSE8diUgXLBiAYEDsxMAGbwHoA64TN32HzCbFvGPjE0BPjdkJ0QXDWs6KA3H4oIDcAB6YpTgPmc2HaE7//rviXf114PBb+9rvhPJFGg+/3id+/PWA28cvHxO3wol9jAIcCxx0Y6i574z8o7H//BXMKju+C+RR8/z8XHv99QYSKiUCwQCpLox2C1n90/BSgH7iA3S78pKzK/X07OBkuSkAXdB2gAiXgpH1+06j6Le79bgfixfrO6y7A7d39s/0NaP0R8H9bjCvuIe38bl3Z/n7Tfj630+OqDHUlIq9p7UJr/ztFikAs3y1SHTb3J967F+LKZ2O3NrscTuQMbqn2g64wWa2SQOENHSjL+RzPBUyB5QFp9ez3tGxUzWe90D2uT2s03vN17ztjGPh8v++qar1lL+HFCcayt43PjKA7A4ewgY8M1G58f1VIUs7E51KIalw6pTtvpgLb3ncSVdYlNBr2Z1H56Pd5u7NweX9nFZE27mz/igwqIm61dH6rINA+Tv31QhhSIUAvQP9fD4BtE26TYds9v6IPXudYOBaXfOF4J8DsDXw9qIBl/9i2pOMFVJpb+LHJwS5h93uzr7zvS/uz3Xj/3u/H/8X4OStflMm4XwVzj9gej8BP9rmBZG95M6SYAae5xV/g84bn5bgRaPVed2Br7f8osMMrrnQA6oq2+HUeM34Z47tyTFbQoT0s7tF0vXYffpatB2KvRqRMkRxobGgH/a3tSzPdKAH0hatexzPHvmivbT1IdycpPi7ZtM8FufJwO4eKS3d9i1m5Yai8Q8QtiBD4S/i11xMsgi8RyjfB757OUmK4aqWV+hjFl3bqeKrT4CHioaCBqbQaCvDsP2EMsQDWOffDf9+bvbsNcR57W8LNCTX21dCiC8fmRf7FqSUlKTs4yG+HvuReG9d97Jy5JAxApBdM0g2VXKZc+cwz6ZidsPWErSfkmJCbQW5o4//miLnDMZM23jRkzAWc0+K1EsvQwcuYMWwBc0biBPOicWU0E6iYKwK/KOQUHHDX1vGrYfxJ4AYPr/sApvYUfxH8l+j6MfD/OUB/AwnUQr18PYoRYqHNnYDLQt9BtkilV8vlLZja+t9xjl4GvQPLzBIjsmXR6Yy4Lcxtselt3J6JWrTTbegNYOlteVkYX2jYtvBDIGRAcbsH14DrPUp2SbNa7dlHZC3PcNPceM41t/G7tj2tMN0avJYXlJgTn9+/u79tpCkUiYDdo3ywDS29o0lYt1FgVBG+rWjBjAXgnucTMj3A1n1h78FfPou5Je6V+xzob24MAfoZXIP5rGqAbSypYFgIz2swbB8rIKyfDfUnoG3jnZaUnkUEgC3DUySt9wQdHMhaYneLhZltvtU6fSEaLQtA50VauDItJxedGEeDuwvRUkzrMpWyPv5c9BTi/s1tzvf3d0daKVdzu4lxAsqFjX289nmGTzzv9bJL1oJ9mYrwXKdn04jdj03RDXCurW9jFL/MNdEt/QQSXtSLaV9D4DMQli54XRbGLoNd+iGXRYg0NnPLvlAJNmCdnmEl51NaITu6udDebJMVAvdt9zSJlKcogKAeXKYArO/EosnoeKkobgwGT/BfLkNprc6UvwiwWi5JCQCM4s5dkNaMugZzwnNwI54ZqXpVcf+44eN+R7dxr/CthnCXuACiqrtDrazAa7nA5rxHuWACFnUgAJjv+Lirhe92LHgqRbv4EJmLH78vKwhJ+y0iTj0rkbjsnRLzzcfn8fgMwOlt0bUi60rEBDT8ttwcvKnlTOXYVjiIGG7jhnVDKhzcoQUqkQGZnPNDxHBAoWI4IO42QnTKwSafCDx9JBVWuLvcbdwgJrjfTiiGFwJbqGJylF0bTG44QBWlbCdOwpCB23GDqGf44cz2+Zo26BhDIF3OULtpTjuBwQNyaQwfw/EH0z7r8F1rAjzyG916mE6UcvXpVetyTg5Iygu6tSFovmKXZS0HnacBv8eu1VzkU9KjlI+xQp7TtSiyKw3xXRUVwV2OwGOeCS7HPsYSIpB0DVUUc7WhMKD2sd8hF9su6LiK629NhdgxVQV0JA+K0NLfMpwtA+wJswfOx9+w1hPn829Y9oT+/cLxHwXHL4rbAZhJeRnY8Dlr5IHm9BOy2jvl6b2/P058fhd8/yZ4Pg3n84E5J4Y8ITJxnobnwz0Ovn9fmIfidtwh5sX+xlDQ7cnXJcVc3unzDuh/HTj+C7DWwJoH8CnA/zhhc0HkA8IYBGgopO+Sve7HTwH6CZYI4oDSJJNN+mLIv/N6JOit0+s+/rPt58c9tqXuojz07X9p7dss4/05l4Xz7TPf/P6iiLQ+dGXo3X2v99uA0zuF4Q/a9K6vFSj5RqNHCw5809a3z4+xtO7W0659ZzFNHlmIJRZkEg/G1PkWzKXvtk3MKVir5aaHQGT8UGHJ+6wCby751pbG9PUeP7AgXOiyK4ONjTpg7q5vgKdAmwI1TYEFmiOsqw+v45y0fAG+e5+585J8BGB1cMlxtLKssvJquTk1Jf063y50eNeOr+iVCrlIfr7Skn9fx+f9eOPludwNAaJyZc/ohNf50BUTM2vLxe5TzzEgQmJzrB78tu/vrPtXq1ie267J23ZO6ApDUxHr3P2g4nvdXSFuVUgWy9oUpFQOujwtvtgrrEvRogNCApeQz0kLY0sv/EL+aDczpktUpgFUMC97Pcdy7m3GnYVtLbV4bh8TyqR8z4ns7SPwyffC1DUYqckVf/X1CPwcsjGLjEV/55pZhdngAeRioANgo3WtpTQ4BxUbHbXgmDmAHbpCJtW4GFA7siGP2Xemp+QupEIyTSm/S/bMcWYLpd3Dx2yppguwRZpUCUUlyZgkCgODEFQ12c3xVY0gYv7WrODoh4FZbty/XGIdamOHy73hAf0SOe0HXXYUKQsZwF+85TRYjdk4boybsKzky3d1hdQWlohb+teKwn4BJtku9SDflA+Ap2luoH/R8KVRYC1lCVnU+7aCli9r9RsB70N+kT1vzpLLjxLzZ/s++az+hHUZVgqcK1UTaz39hSdMTuDDA2cZV8EbujxpyTE5Sa2azenh8mVhrTNxhc9FV+ZMKpSb68iaC0sRbq1FDE9cZZGAQIAlGIc/bP4JWDe//3kKMARyxIxWgwyDDPhrYZtDXx0/Bejn4UStLC8dmHTL6hUQvFrtLlx1BdN+YseUL/e53jvjAy7f21q1tRn3vV6/Mf0bUJLnrLaydCDxBcj/6njZWWgL8MpMK30SlpWKiyUXLgOyJsB1q9zM0p/6jyz9Cc7MAAaSnmcWIqJFuxdGIzB4PB7tprQ2u9WNAZPnKSEDPYVgAgVY+o5/np9uSXk+WyDX8Raw0Q2jCyF+zwqhVI7YV3+i3+s4jkojSNrWjfKepDVTodVzSgliAHOlGvUFTyMloWe78Kwu6Y8dvtbMVc4ninBbO2ImIg0qLYtUCAjeSUXyN/3OPa/9DMXtrJzdDMbUmsv9ncpAp1ladC7KJWmx8U/jN1q9J63YbxSFflzlxPXIdoyRu1oJqKbXiPB0mpIxQ2XpJ6UIxBZ6QS2mXkz//cR4cllM4BZPeIagUlr9/i+yD699qtoMsUNzIPyhK11uZn0JhVpXKb8EnCC/B1B4PBaAB3xXxO9zi4D6Yxy1Qyu+q8bdmDnPyPJFFz7B7Tg2vlztwwrFIC3RxjM5H9nOsFwL56tnMWKl2ORF8RgJVcl2q0hMkVhjou8j5IefJ8BvhvXPD9hjQc6yWNqFh2scC4AmoBCJ4Fe/bqgXO5JxQClD4lzOcWa00jHcmtqeZXBL9+P5xMnUsQR6p6eUPQjOgXS9ArPvhExbspooCllKX+l4EOlz3AUaYwb4WsWKuBCXe+mGRLkbqQUh5jJHCuhzXkgwv4NkZiPxezDblQGeIQeCI2pYqAFjGUTFC06hr9Uh54ZGbJMXzwMsM7/JcCs8FJXRq1n42VDynkUtgyxixzUmUiYKPB2oQaoUmngcw1LFSl/6eNaSyPH/xLTYuYhUl0dY7ynzR/Aj5YS4IPYPY/gzZGLixDnVd4DFa8L2koZCqzgAL48Ra3FzRzlUsW4HPCLscJ//uEUV9w3+F7iyQDfYNi86Gkh9gGz4DvWnIpKq5iaPfAxi7hvjgyyDn7OUCCYEE7YeWPM71vyGef4O0xP69xP4MOhfnA7Kvpn5eLC1NjLGwRZxD1tiiDRRpATGUPzyy4FjGOa5MCdw6ICK4OM+8HE/cL8JjhE7NrgsytFjVeA4PK5smWDOUHnEXYgME/iTQP7h5ll8/jwwbgPjdsNx3GJNHn8I/H8a0J8W9QauO9DMCY0dwHTFYMuY0e/tD9iAVApRkXQd4nk/PJrgJZDrwGRrNy5a7gWM52/WKv22NoIC5tqEL9rEe2+gvykNFovDyz27YtIAak2/C6gXt+68C96tJr1abDtoAxwUePDZ7sYydCSYWbGQUagASL9OVU/x5s+xEPR0+aDCRK3cMlXleZ5ggZLb4RlQ6G7QQaWPa6d4LABdaTLbgtj43Qi/Q9fyWw5xs9ohUG0ZS95bo5OOIXHzGaEMuM2sZXDRJlINYZQq2vGeVStBN8D8br6F3Mk+al8MI3iMAK+ua7sUVz4IGkrcuJ+z7WY0ZXPjK5QCcPXb3ize7f8cFwLar3i2K520NMGwAUhf5zWDya9tzhS2Yrk4VwGh6KfUtJVoW9Kf7wn69zZux6UbV4s/gAIQjcZZECyepWExfKGjFU+Q3n6vm/PccUPPsvU63y39XD1Qk/N0bDKSzxECi5SRbU6AxojeeUKFkBfmedyNaT+5pqDmkgYgfifblGmBab3+XLB/Oj1VoRXvVD+blAzepOWzzql5aTH/zdF4BikWIvJvVqT7FdVMj9zpYPBAWUy0JAmcV8A8hrtgoLUheZqgnx/ZZnebyPXXzHOvw/Pkj6TVa/X43H3Ng5b2CtJWpmUMsF47Z5xvEeybJClFRIdi2PB14jgcd8V4eCBuyW7vSoD+44g2+lxWjgtlpZIu2JTvBHcxDx30ey+z6Jujb1dymTc9+JNScMHnn7GvOZZBt+nnzGV4njOMUTfvJ18qoax0Vqn7kZ/Wcks9Af8JOg7R4o9yNw3jH85zA/0rXE4glfyE5q9cwxqJCgdZflnz6YpUOM5oypV0oifAr9tZ0ZprJ8zrArRzjcOFsLavE2s+MM8H5vwEdGL83YL8xaCyoBKVlptVTNK/jt8rPFi7WrZ3xy8UBW43r2Ts9TEsAsbduHE7DhyHZB2A6r3kbUmCMQRiAi/nIjin4QhyzLmAu0I+Qkb9WaG34a/jAJZhTH3f1nb8NKA/jwZ80zLcALHR1x994iHP59EX9g2ktYPbXBReL8/6CiCLZC0AtAW/W2L+sJv9fu15YJ/iuz+yXnYFqW55AW7x27qCfoIYXsN3gvmYkBTaTqOVCycakHhHX7Ylawo0YEjrKRBabgNaBOusBJrX5AxpC7g6k3s6zbD22YJK+eRT8G9Zn4Dtb+a3bsMSNOMiN7MwDIOPCRAhSAsSs/5QsM1zRnEgzxTkUjS4rikOuZiybSEUOpjB5HALauEt2tCSnHwRfR5jFK0vQP9Fsaayk/xV44iYI/R/7tlkeg0Bt6j2LBE7gGSFYQgzZEg7t4QWlSMqTzDDUgWGwcwtaCoOIgwrA+hyUf/ieJ3TfIu+N1CcinOT0+SdLPgVYNlBRxQCNM+l7+ll3X+zCs2hgX6rNhBcB9C388w0iSDwaLzrFvcjszB5zMc+v5iKNscpwBV3HmidU11YQfu0mlu40FjZC33aU2kcUSyvlHUnVVfKKotO8k3MBaveJ1C6yq5+dAvhPleLb+ecrT4GIKgqqH1Xpit1/nfFJmhY+VVld8Oxmo+loJQByUFq1C1IBFm8aEDkvA+QnNlIeF7QDgyiNOhxJOhPOR6yYoNWIhhaSi3T8JIupooV8yLXz+XGFfrxm4xcz1IRk16UqmCcLi8UVfCWLWprKFwupvLOs8VjJITGGcqIsFr7HHBpPs0iBkKw4jqkDHNrqudqR5NHyB0Ar0uzICd3suI1RtCESrfkUl48vMCoq6wynLKpMgO6Yu/KiStjK414ywBdC+f0eXMI+djl2lKFMS7JXBniWAn5T5tcp0k71wmn7eM88Xg+8Xk+8e35dEWbcqQVEkv3KlqyA/QrAb65/J5muM0jlZZUkogDeL+1Ag9FjFjS+CJ/Ra7fkAsvr64AFG/5OoDSB6SWzzRKBQ9gTd9BmZ+w+QDsCcBjrFQ8e5ZKy3rXJrnPP0Vl8OkCID5pVTW+3RZEbsC64TkWPr97YbdbKGu/fNzwp18/cBzALx8O6o9RAcQ0WHofXHNR8/MAQ2D5kG0x721BxNOQujuR7+kUDX98/Dygv4N9ICfN5iLB864LeoKKNwAdO+jv1vj91Ndndcs7Lt9l7uz2/WYt/Td1uRa4rShW9HELAu3t/aIP2ecvnk/Qv9EhBO6LhRuICYwoMhGpvwgexnCAFYWMSvzv/bvem3+/+PEnEG0gcRVI3C3f+zVOv2cCJlr8DxzpygAAt6b89Ow0nFDdMt3BkxkitecZAVKM0IcHVCHcAWQHggLg1GcEADN9Kere4OJtl+/o9iMJwDz4ucYuQZUhF6askkgBa8jtceb2vlr5E/SzToFR2WyADI3v58ScZ/oodtDPFG/l5lEW/m6Rz7E0ANr9dstS3MEVG+HgxbxIixpsWAGbFQxzmRt9hliM9/W+/DqXHQL53o72mZZqBnuTp6lYEXC5hccrQ95vt7zO78+2NaAUVYAnMz5AsM4z2lyyDAg3NpF00TqOo4Jjg8YsRrWn+nQFe2ilf6Wiw5SfzCZIhZf86TxTOwVDh+e8HwX+u7ykSw+BeJ8/MyseNx5DSy/4g2OzoMd8mhEYOZ/PFuzMdL2S1tKRgdNIPO67hP43rcO90rdFbvYEHdlHKoMBplshwARpKJ928hfduiHls3+1k0Ndlo3jKJcU3jHXtapvse1EiWTRscldAK2MJ/kkgh1aqFVD8UPIRcCmINMXWhlnYAY5Yg3IthXgtyigdYywtEsSG0si5WTOBXcJk+Nw0J/8D0+NaJ7iOUH/UIzbDff7B0Rc4YTQnYx0AI5j4Hb3YpR6PkPOn74GHkcFWyc5tOn3oWiYJx04QznOfWrSmgXFRAF1WXua8/lJN9DlgdW6BPfgX3qOL1UAw+Vg8MyKnYH8LiwEVNA3w4m5JejxfOLz+cTj8cDfno9Y3xysZ/bJEHJm5mDfDHZ6ESk158tzuXHiZgu388DNLFOySgS4Fr4IuSvyKt9l47TXQ776mcC/AGxCfwNy9yW+2zGQZwO0eYaF/zvMPgF7QLCg6hlyVKLqsCHcdwRiRzzX+0kr/yVFEwCk8eB2OwBx17OhH3g8Jr59+w7VFRWoFb/+8oG//PlPOAbwcQdUvYipilXGIRFoKuzezRFThgXJXMZZ7OjNOO+E2YDZkbLgHQ67Hj8N6P+hlVy6WtfO7wt8A/gCJGDuFux+JLDnOZdXf/YfWdsp1L6ydqclnMKS/RF5Gwz68jz+fQU0b/qf7XkH/C9968+5blsXkAs3BlXIKv9pVXULgcakade/23VgLIGIbxuuKHrEcc1Fy69Kwe/XVRu5mHc3jE1QWMCjDi7bYsjxZIASbP+dizYXfbOWW73RERtfsYGI9Fuvqcw2WvD6VRahF97rYx5GhwLL3fpU9N14KP1U0fqOlF/9GgKz6wxkl3OOrFY5Fg1EKtPZ7fPyOh8IhtQKWPxbj3dqrIGK0Q7g+/zi96TTi1LfrmPoFTuf/YlzX3YQ2lzpuybd179cRXQ7T9CHuBY0i3dVhcZ2v1v5ff6sa9tRc/U1pevOf9J5Ctj5BfuuT53Pv3fZ5G46vgBNIK1xfGccjbXPa5X1Pw0B1Ysao9aHd32lNZft8um0troPWSdBpBQV0ilSNcbmGXsPCYVVRSEPQOaCfS83NKiDnsVkAlJGAhEHZ+5uyFgDuga0HWWgFAjKIEj7HCeNcP2J/PZUDjrDCrWQFbuYgmirRPCnx3IY/c457vmcUgKN458/xtirwEyRTjecAxamBku79T6OgZeW5GNclsLAfFTMkMKrqO5NeIVl+qTPvF/Q1zxAFmH1x+Buu1W2WiDSWcbnAM1sz7SFs8ctFbZO4M9A6RXnGizy33Mo1LPGWFi6p/PfMyz9M9zZvLq48yTCuMRaAJnBh+BOALMJLHE8bwsDw2lDGQwawpB89lxeA+BcC+fyHb5FS7WFOASZz5UyLIPNBVtemErNyXlOp+cZisFNPXCXLlXkYVqWkgNesBP72GHzj2U+l6jMaJp/1PMS51E+U/mOhjGmasVuhsulVjtJGHnB+UCeluDE/V2Ec7oYhHPfDYoKL8ljPi9sBV3guqAqdPhGlu82fJVhp/Wj00Ospt0FhyTWIwNttH5//DSgP3uFC1ggKA7LabdY9kXLzLDOVv0vF/wd9CdTrYUsTd3A2HbeG/DWf++CnMzWQcEG3huYyzZaWGnISLwOO5DY+tOAFp9R/N4W2uhjP1joR9p98pl8frv/7X7396heOUMAsjtrLTznmWN0PbrFsYMdB9JVSl0AzPN0t5mL9bnWGknLKq2LvOeiX2VqPY2HBBkIyzSdJZwK/BA0ZZaFbOcJs2cTsL2DDCiiS4olqKDlf84JCb5kWsssItXeWSU32z10a9u0ifNsfoykL7iDU7soooKBI4PUdLyCwrUWnucTM3wjCZSYdpLnZmGosNb2Ik7Fn1e6vAI2DSB0qFuSeL+rgnid093i/7KoIALglgfADa/M4pkTEkhXfw09ne6rUuK5uAvAkPZBoNZXeV262mJwRHGuwdSzw/2y3wljd0OjO5jk6C7zFHyA4GwVq5P22GXAGGOLS1lr+aKNCuytpv6xIYNjaEDutKmOpBF54XvkyL5FwTuFhCU7rO/NvWdOByZzLZxzFtLKHslWWI3CtRtoJP4ncADiKVA97sfdhlyOUNZ48aXaCbkdB44RReik8sgz1uIWBQHxTyfwT0/ochnlmRpDds9wgxg+tqLqfuaiwHFza3QD/QRJVNjS8EqwkX/7Vr4Ig1q9bWVd7uO3fRVzoxShJ8duaOZx7yCnj75AMrYgR8PiPAbW0pUR0a+1ApixCFwtAQ6yA7xLFIfjjFnLjUUibrFUxbDlaXzNgyunOeh/2MIn3cFCeRG5ezXlMdzVVyXdY7AoOzx7yox55XTwDCgzFL05TzysgX4VHCt2HrJa7sQMl7TndBlOy6vYCiXQ+zPXwuenp3KeKHoLJHZAFSrALdzLDpWsXp35YjTmzTPi3GL3dAx3OQPloVkGejum9zTDj3h9O5+Yc3nwp1fRIl6OsTXIcrcte55Agn7DWuGbPgZGuKkcCoi462CVFZE2IXOvub0aDkLx5fWQy6twScw1AuHt8GcCikGYF4DYla+JeZ6Y5xMiJzTUx1LoPKhbJKz54uMDKNb0d75ERhRbHJCQbq4ADBy3gUMAfQjm0zBkwewBm8/MsjQUuN8HjiG43QQCGs5W68s7olhtMggYL+7zdDUaRLag1EbzBl8fPw/oB17AQgfYPH7UnQ7u+z1fH2Pb+e8AhWvd8oLzqiG01u1C+/q8bgF/Z/nsCsDVEnO1TvO5/XpOFGl9+sOj3S+fYbYpFlR4uisIBG7VMBYuet+upMcX/d4W8ct3tD5zse+T/gpUjJadN2MMkbcDd93dAMpdIRULkQaymjvR9flG/mmFv9YKd0CJFIZ7Wr13r43vaTlpSsYVGH81CcLu77RLCwxinLDRFUDm2XchRH/uf0McCXZ6JOi3y27TdsFFkY2dopc+XJSFt/d6d41ga3sC6Mv9drpvHcIbKL/112+ATZEQWmF7Gy/kSz4B5bkVPSLNJcFBv8Urr+597nzVDRZfWci35uXEq7e+m5KfGp1KAUMaOFaA90zfGkC2W/jrdSEq7y37WCXYL25KGsUTitfR7ttxhVVQcMmwa6B2tKFBYu4M2ATwJBgTcOBTscbOz0HkLaUiwS+7ua7NlN2th+dQsVSVSmnfxGw9jjxpacnmvSdBP/ZdhnfrmcLSDipxFoGoW6mRVnXLFkv2bWcly3+VxabGJbJdAuwrrFJEx/XMkLpIP5GM11ERYDkYdnO5trg6yj7vxZLydF4Alli+Ow+XEUUC/PkOkELUlbSsths8PIPGUigTMHejcncetHSWRXMV/36Cio1frnGCxDiQblSmZF2NKjWXrPE+656k0owIajeOKTILj6dytY33aWDp91nL04C+c83s+OjdcREveRT4t5fzOV9ztsn1tCYPcpTZMclftueSQb8S7b0DSVPK1E0yILgVJF3hAj4x4iSCJ1jFmOfQsLPJQco67lZEm/mMetEI0zBik3tlxPzjtfunAf1cuGTVNsy75vuECwLk4rLSZYQ+3VfL9buFcG43tk2IIq59B4C2+7d2dSscz+PE4CR5pxTw+9Gfi92SB9khyY/ANp+xKRUimXrTF7IKPHVrOYqT41plkF6kdSSwmMuLaXlhnfc0IpNedyyuSkDfqcBljFLbv4zhWhMngVNcy10NbrczsFAlfEStrOF8qXrw49CB43Y0Vwwvac9gXYl+aqSfm8r+LZyngZq7qoaVsfzTn48HHg8v2HE+z+TzmKlFq+Aigi8lUyV9IzYiBEfukoi7XM3g5mnLC6lY7ehkf1OZcSvRnBUbMHSvODyzbSsXBxFAxp75JUY7Fqm49zIsmzW+4kuaK1XuLkaQ2Hl52YrgxvcSelc0yl6ZO0IMxOvWISvLt++yzMy9L7HKKIOHM/tG0ag9PNroMor+8mMMjKa8iDgAWGLAdPqJAvPUbcyZQeY4jj3YlwCHfA2kK0iCaTOcMb7y/bvzaljT2e1lVulwW/wG+5JFmGRfJl92U0jK8JPINKn+E9Z5QuDzTcMVcDQFibsrJbuJhgAAIABJREFUq1lVrzT98jBgV4hXjE/IjLUrPv3+2VWNYo+xY3m7+e7LUPXsJmtGUGOAOYnc7lIuLwzOJ39xzmhYcCGR+UgVNjQDMZlVJQHVasGsQCkIWVUbNceThOH0EiCRFvgY5GxPH7tlXjTRXVkOQLTcUlDXp45Jy6EBEjLyiF2QO+NWRljX4VbmNYHHCSxZWNODQWnAkBiLEwunAFORcmge7gO/VLBiQ2QE8D+wMKC+O6DAHIJ1UyzTkL3eLp9jsfMoAhvMuBKGizXT7expbtFeAdefWP6vjTvM0x3f1i1cNrzPC7ETi4VTfBzOGEu/zFM6Lrp+3D0wWSMDUnfpY7pSBsUv8hEiGJcgNvEl1/tYL2gMIy1DBfb7xHo+FLIG9BiueMwVwf8xF9BUTKGcFKT5PpVul38zfMfPeeL5BMACYxJK1wXLcOJ5tqya2009z/uD69MbBQD5PS6/pToDhlTb5XdOVa453EfpDj3GicTzQy6bGc7TY4IezxPP5/TdElEYFOcSyAl8PifkYRiHYhy+e+QuixNzPjHnA2t4fIzZCdhEzwJEvECgzzEsLAs8n+4e9nh4gqU5BWtKYoIty1An/78n0A9UpzNbBw8u9H7SpsWlBtT8o/nbdVF5awFrzyBIsjhnZ939ICjvz8sS6A2Y9PZ/OUnefddB8pu2Xg+2uU/cPLf1rSskG4hCpebqfUxwqZqpGq3T9q3O8Urnd8e7/vzI0lyg3wDx7bp3omGPjN/dRRzsV2Acc5ePyDfuedT9nLTohdWG2Ist5+LPLrjQcFcmU19IznO668EleHlb/Pu74Qums3oT9rOCSAlgYeaVPnGxrCY9QhlDzbdd2F/GrH1HoF3jE8/Y5uQb4MgmoHhKRbZx7jsUfFZ/J72vv73lNdl/A1ogccvfbhapKqXtimS/aG3pckSyz1vgPWnb2mlm7raHyNIiFZANqwrHVF0EgA3LpwQp4w/JedyB/zLLWIwxBkbwHtvQU2wmaUj3EgQx/hdZiYiXiBb1KZkFrYAA//7jCHAC1Y2eduGhfO674zIp7OVHae8c9z+QM3JJUSuSOccJQMpAgT7RS8w1mtUcqL5YaEczvp5KoEHAI25h7q3leIYgM1gURwIkzLILlLccJolUnCXvLfpBK+UywzNdD931JsFhG1WOUq4bZh4fIB5IOuDuUVCBDYHpAMHWsoVJyzkcGBeYi0wwsGapr74ySDV3NeCwLPBs+t0vgbtKGaLyq2ZqZ5wnJmInuSm0AsAmabEq7in+LXG//jNALTgfZUGGekmy5UAcEmNi3LVgJiGnKxNdTrPI+NWUdhHP5HSRDQTXuWNrxROCwKJ5PuW45RSlQSMkCyVS8qzke/Grtf9T1qepTZAF9vphwY/cxZ5rYURAuMDSgNhm2T6nNyEWHwh62881i6x93lqyfea//k3KBGbBibnJd6OUvSyhG13IHxFzNJdnGFtBeIPHAC0D5gzXS5UwQBet6sXb7sYOzlF+7u2qtTMShyzDnFFKYYb78jtRFwaZGvMvZGscPwfoN6Q/NyfBSCHcGalyx6ags1f3iS3Xfz3CBREnnBW7pEWdFjber03WlZPF79VTEdJS21NQUqAzbmCr/NiO7F1bDHl9B/0buLneoz0j6XF9hqoL1b570A5ObD5jzZlZWIDIAtPoPWf4O84CtOvSR76Tvj2PNxdiFglKENTHvC1uBovsJgYTF7g1wWsuHMdrzvdt5+AKI6I/z+czQS2A1PirgNjMBZVPczqcWAs4T3/eefI+vqTOeeJknYFV9GAgsQH5GQESKBwBCd/smfR2K1xlJUpeTzq4ryKDCcX0BWBTMU16h1JHAMjdHC4rnCPSwAkFVIKRxmwM1k1wFI9mYTbOl71NfNuDycl//I71IejvupaXQ9+e3/qbvEO+DUt/Vwi5u6Odjh30o+bNCkDBuT6OA0eA+NtxhEIwk86qDdSnkmhbFhSzWyogour50KPvNwDjQMqX4xiYc+EZGTok+PCcE+P53NKN8n7S+vVubmy7AEDNEYIMkjbBhLSCPdwFazsvQXPySgf8KnDXiB/Esjm9EcmYAgGi2kKekqAxQItdU/ZBuhf9Vct3n+30HRL3AbbYqTMdZQlG0arzf1ccPTuOYE3g2/OBJYJTaekr0JaZiUhrjVgkJ7qD6ZDdnL+1ptXuDMdoRUpWfiMQ9wsH0g3F5VO4uwS4U7hfeRbLmquU/+U1Rj6OW8RoeIaSs9ERcOVmiVvrlzpkl8isQoy/YND7DTZrV/J2/8Dt/oE8KVoECHAM4BiQpWHZBjTn2Q3CndkxoOcJPD1GSxnIG0ypz2cUhDuxns8krlAhsQmxle6Na7qyPKbCbLhPfzIiIEOg4rscagtingMf1uLkzKW3QGFh2fV4KQfiHDkG8A6RVHJEGp8a/0ar3EqlLGiVCgDxTKxFsePn79z5lpf7GJDjLVGJlwoGXVT8VO4In5hiOMWVQFGuVhpB2aU5NFETfIwXoPojSNqBsDG1NZsu3bofIB/uSkPGV/UUqMMOmN2DbnfQ0cvMZTlT0Xqw7/QdmwV8PgXPJ/D9MfH94Rb/8/RxfzwnFgzfv3sJsPtUHHPApkDlCPkCHOpBux5r7gkP3Fjj6kPN1zIrMzPzGXro82k4T8PjCZxP7iT4msosh8AAVfeUjX8A+IGfBfSjgKT/hRAeF2s0wRGFLQXuZXv9nbV4UxQuVrq0AAfHsjAKwdEGuuNefSEF8LYdGkoMUdGL9VMKMXVFoYOxuLCuN7vOoQ1sFzCtdvD+fbHPdrdreh5/U8UzXFxoTbb2vMpsUNf1/l+tvVfLK79jcO7ma9sYN/mCi+Z2z4uScAE21346HRpwQAEx1h/gdycDi7l4pItC9c1YCIiWGABzjmq/cbKufHaOgexteUcfzotFq0NzN8rdCWU1RArpmDe0GPrq+8KvjYDF+wixHwGRAKKipmBE3QOCOJ97SND1aoWvwFVpfE5+ISBNer4xYfRdGaU7CvadjfM8C/Q3fkgASoupRSXl4G+tskgpNKXNjaRpnsMR8XiWa3rfMTx9pUjbVTDDMC2tyErGsUhQ9y+fK2yH4ovo0O6vLOFuxnoXnBeWSvp5nmkJpfzos13ezI/c0boA/E6boqvym5x7ugFtX8p8rd75IgEAXucmKYsA1QKu49IAjrwokX7/VUAhrlGTBBspS4OHsrYGOPdLoaZVs+TgipieoFtzf0seMbf+TnN3lm9Pd2k56cIGYumWZpHzbmnFhIBzo9albRyswBaf7S5m5aQqIhhM0xg0f64VYYu1dmkAhUz9PqcX4WqgHyo4MPAhDhynOMTg4b7xCDcmIJnCJDJFujup3gZMm9vl/Ybj4548kfwCyTz9kFByAOgxYBCMmxesut3vrtSew3cMgCgm1RqnApkKewoQAasSNBOop6QdE5iCNQ3nnFCRNHot05QPlCU6wkAQ4yQBSq+WW+4MWBcesFRtmOteY27n0gWuD0FnS+8tEKzCLHcCCjvuOGjOiXWeWGvfvbT8H695B/oReCUy5pG/18ScbuicqxsPPRaMeeY3rRANc7VW5M/v1qPqLexFftR3aXGgQsweCiqNtx7QccDWhK0DkKywkA01m1gWxrzlxrvH0/B8Gh7Phee58DynZ2GC4Txd1nw+IguUKZZNKI4A/Z5/Y2ollnJbWvV7W1Uk2hG/+S6Cg/7zaXiehme493jXS46BQchNcfi3AH7gpwH9YfVlBTou9uGLCZSgPeesTCdoABwlWK7byWVhwwZMed85p7uuqG5kI9jvjNsBWlmKdjCaOcp5fWvP5hJg9nK/re1vlJfMptKViUt/rhb2rjxdLX0smIXoR1cqeJ7Fc7Ov2ZY9f34C0EtfCdIIMLpFlRO3niuhC9lbmuQ4ZMf9Oma7yJzPont7zMJ9SUBL3dSFMemqUBq4GdJqQmu+W79n7gpQwPb+uyzm2BFg1W+clgbbfakkeBf0h+1KSewmWAHJTQDGOA840Oa1XrBGMpf+fJ54ygPWxp58+3x6DmttY1i85c+pvtquPANZQKosvPxc808u/N5TuHZgRoCZFVFzjF8VRs/t768c47mwZEZ1xkoT6b/HnIj30XYEzcytvTEnKhOXKywFriLPe8ipKtRSYPsYBwwOnlJpQSmYBXdalqRlOM/puxdBF+MOxBjuU02r55iOz5qSLlxArFLMupGkCqQxO9PV0s/5wgrRqaPEeOtFLuZBxch8wV3AG1cB43+pgNlqY9no7/dpQMXqfEHUFtgU/QDlkHAvgdezCBDHhnQZ67sj1X9V9WKEALCA+c9Pj5f4veIjNpkWPMD5uYLeTwCnCB5DcAJ4GjBZ9Cr6nqGHUrKBd0yZSpZvYLBoUsYGM7jPecgWjvdKHbGs+5Tfvl5KKlWhJ2HLIkRTs0b+eVoVpWIcaPOnywuECjPlV8Iw0KiQio5WhWG6NSFrNvQdOSroSGUu0yEHH7P+CvPbE3SrKtTqPJfVBYxXzhlXGORwZZ2+9ViexlJUILYbOmruCg7KLpVM0wtBZTnqRbFgULglWCGevUfc8u/xW5ZxWGQLyWfFZxNHhbLB5/Bcd4VkgIqdr2OG2HHhWh2yWoiDrJ4xABziRc2GDtwi9qXLtrYCJI9a3SbnRsdOr8q+j4VrnSPHjTihFAPn1zSicHyH72iRgUts+M4qjgFzlRVrAnN9whCFCqfhEMGIuB1IrI/m7jRe62Dh87Hw+TDMJZCI0XieE9MEx2MBCtxud4xxAEuwzplrLUnTQ+gNtdvCNZXyzj0FvFbQ56dhLuAZfvx8qdyg+gGBYq3hCsdS38VjqlErWv/o+ClAvwgyrVq6gAgLINwAK9AxPz/xeDw28HqLwjdHpJZkkB1QAvsVoIXQXh6U1xfuroV2qzlQE9rW8tRiYWGrvlRQ22wuM10B4N8UiN3CnH0FoJwEzSqaaR6bm0R/dv+cr7bo8/2I9H4JwALI9rbRAk9B/IziHxqCO3jYBVQDjO/cfPgcEYngpUaPtbL6L4EELeu+C7E2zWZTzKzAE8dwRGBkjvGc2S6nK3/zBSx/s5qgc66iMduxWE20aEUa6pCtTeDdRaK6HmrSc5s/6CZAblFTpaLFz103yM8lLFKIxMI1jpaWNIAiEFbhZTgfT3xysY2+TvKtGZ6hdB/HsQErBtcuOyELYSGUNi6WIM5edkJq0Mra2vgk+OIIAJ31IEQ2XvZpsSvtCVxtuOvZijztEdLMzEnkJWaSYYA1C0pRmXWlzneuGBjrhoeR8gOQSN+muN/vUe2zdi50aIBTH0sGBKpGisjGS7bmRh/OL6e9uy4d9w8POj1uuN3v7nI3BjyA+Lbx7XmeOM/TeSKVg5FgcK/a25TKBUCWG1uW+7N6itqax7d7A4XYjQzubmk4o1qkGCpLSFvkyduW17wzViSz5I+kvVtbtaz1WR8krg0wQ2WcYyAszKWeWWvNlfNS4NZLowJ0Ljz/3+9Y3xX32w1Hq/TKvrJ5IhoKpeEUTy/5FME3KE4VPNRdQKQBahbHqhWgy+8AMHlOGDOaIYuFtpwXrYCw1k4d13x6AjkoIDCzHMZ8rw7VmLHg1HD+F3U3grx5WkrdAjrCYOEPIq38/lm5ncCYiQDimWZw96IYf47fGa5LtI3Qbc2vV4i01MrJiz6ndCgGBnynZmBO4HzSEn6mwUEllPd7jIiF5XtNT68D33UA52sbsSHeh6EarqaaihQxRK0xDgAJrEUcXIt4mkwGPlu4DhH0j5wTsciulXyRiyDXdDMcQXfuFOQawSJh1t24VvZXYRji1YKPwbS1Ax+3WwTAjxhHeXm+N2/HSDy4syUsesZrLEA/mA2q1hOxxssiqXAt1oWAARipiBYTxxiOgaGAyAdUJqYo1vkJM69hgGkQXVANztIFw8RpT5xz4vfP3/H9+xPfvgs+PwFbH1C9YwH4fJwQNeinh4X/8usdx3HDfHpK1znDJG+ARFFAEb9/KkbZh3C3M+Bc5jsM58Jvv09XAuYBM8F5DsxToMcHbsefYeauP4BgTXchXKOAf2eNr46fAvRTC7wu9kAB4dQcr1aX0Nz71vy7+7y7/7booAn3tj1/BdJ5ryaM6UN7Pf/dPfr3PDafUaBqEvyAYtdp1tt27W+Vn3+lc/59uU9r7LbgbwpK+47xD+zvV7RD9Gu7j5RvrGeYkZexZgNVyl0igYIUTQnAru2LD7vyxXXK3IoP43NanAiFSSykap7v2YeslMh38QOv222Wz0u6WdvtqW52kr/wS44LO/CFdk8esvY5T6UJ5jKfXImSOgfwQFfbLmk9yp6BuyjJW/y9XfDVPK4xedfPnSCdfjmmrS9UKCg3eC5BHq2NOoYvpO38TaEELvOiCj11P/hyT+PuBNunuaNQMoJKu6AKSlHuxFjK9MVvuQuCTrcibbsWsI2Om7KNV95C68fV0MC5wHHsls0+d0gMzt/iKV88YY3HkmaNTzofXOQK58Wr/KkPBaG+ODqyeLMGbLe1vZ+0gq65oBOwwTS2Ox+QArJNpFrKDeH6QtlSZEtAn93Kv2X7LudD3p07BEGz7rpH8Nzva1YeEDUaOYQSt6pO9TknW2cyp3iLJ+hjICYJaEumOvhPZXvRzONK1zzPDfSvUMhVkak5mYrZYsdtTVfmNeYXlfXeerpa0iVzntMtsFGIivObbjaQEaD3AC38lBHcHRNwB8ufkjBVOVZtLrXR7PzSZe8I2jOQnH79NTfa2JmVMkUAj11GVbsQhpMwnsDdRCCGBU1jkvlimc/UZdkezTldwdiJp4X8gJw33kbnjQTmuS4h5a8Es9HokWtX47sXXPfme59yhQ34dz9cTOv/T93b68q2LWlCX4wxZ+ba59zbraqGKrWBgCfAQVgYICRcvHYxkPoVaBurX4HycJDAaYGFQEj4vAAWan5aVV1U3ab63rP3WjnnGIER8UXEmJlrn0tfkE7Pozy511qZc46fGBFf/KNpB/oOxUTrd2g7oe8nIBP6g1eUQlbpMqMH3MhiigHgRj4aHf0AmfEEYUjRAe/yW3Ze8wzb2CWGOn0fVQF4ou4YinFaHP+cjLYTzGl4Q5UvX3OwMph9TktI46Wgz9P1ywD9gkw484vVeOhUDyuH/56HZEpW4YiwGjHLVrUm3m4WR8jnHN6uPRitKh7HsQxrEexVmDRL2utu7abADW+CrvHxVBKgGg3ETn+ndyKscCJRujNyDwpTuQKqz0A+fA1EJMIM+LmqAExnEM0JGHgWviTl1hr61heAUT9Tx1PXjof21Rho6WeJyHCqF8KNeG6Ph6RVl/fWaVbrKSVxWg10AZmELP69c5wmfMaMUI7TY9i3ree4YK5js+JLxHmaUkHndgFWmlZvWhM5loWpvVJIyh4idtv/fsHB/CtDUIwXWWzsAupEojqFnTExIS0NkBlM8/pMhXrd6hWsk5fH54uUE4/lrYEg1zkTkCwNmHwe9PTULp2ke4JMfPL7KpwVHht/Abyb0zYbztGrVz0pXNPWWlh1h8e7s1Pztu9xDmrp0rYAe1uovnXnExtu7kHxD+D0RFw2pas5TUMd6EDQtuzuSUBTLfzDLaLneZinoNAKiwfst1t4UYPf8PzFfV2xGHMphenDXa7o0o2SihYSCMXSz+naOM6J8A4xIV7mJXwieE8K+pfY9PKLynfYa2P5JEE+CDywhHscxwGcin0AMhrOU5LWecbcYml0bAAgrJj05sGE+nR6RLDvAvCrIoX6t/xdjrcqMR3SFOJ5IkIUH9Z1jT1HeOUSvNqrNOKKQ+3r7mdPVA11AJjHiXMqblvzM5Bg1do4SQBPTIV6vomO08sUm1e0u7X/Md9xPs6iANHYIdjvdytOMD12fqon4gLvwwxCH9uWjaomFSN/9+Tr0xu0jTlwng9Xss07sosArVsirXjegRq/YPw/PXS899DhZYg1co8bJPIxpgPC8FbX9ZUE5gIDXAIvVAKGFBHQ+jISNyxnUJezEHTJZ0iDdLvvvN0ypKnKHgfiUNsn6GSWKBommqolGrvFnbH9k6WUGgk8ZY/DeYw50LxUakQjxNjtPDMHjlZ7KbQXoaJIBTbxM5OSvXiDZnSGeS5dgQgcCaC/oWNDP29uSDxx/PVXTBw4//TA+UcD0oaHBTfs9w1tV3x5NLT9wON4x/v7B6YOjyxp2O83bFvDl7eOtx8avrx9wf12R9MTswOjpRI6UXice+Rko0fxhE4D+nMOCyf6mHgcivf36aW0jTrm3Mxb1XbMubsSbV7nMcUaBVKP8jX7Gcz/CwH95QqgBKT1AKvWVK/FqjdnuGoB0rgGsAnwXZ6z3KeEDvB38Vmsi7lYd+u4OQ6C9XqPF8+LKhDlufy5WoZeLNQTOFr+zFcFgZdnPN9yBfrP0n79cVmfMp6XFrvr2K/g9HopAlC/uAGuCCAApDc0WdZ2oSENUMMkvunMCDB3+DXZuQLLgMU+vmVpxKsDkeZeHL8rHdTfl6kv9BS/zMkGcBIHzCx5x8RD8ednPPvCTpd7pbUTtGPFY8LEnwO9fD//wVCGVzsWlpk6ByDGhrpPKPTnZyFDlVe657rjcrauVyjEtMpXRXgKak1t0icFJv+2ln0sZQIvZ0xdyQqYVfkOaP2yBLj63ScegeRvM7wCq9enCvVKK5UPtbGGHwaA4PMuy3XlU/7NdT1R6QxuVvS18K9ErLUyCVIdRJRxStIB953bKcCT1UpVGXHx8goF8XKertfVS3L9oJb3UDFDieGPpBf+u/Bd8PwLFnN/KNR5n7qm9XleeTc+I+X/WKYoT+tCFSTHA7fK8+fLZP37Fh+OLIxChXzO8OaA1lr/nrrCoF5sQD3vbozTLe0T0hXi8cds7Kjg2vlZcvSS6wf3xAGqJwZ54mT5wgT9UFr6pyvRw8AR70madAWO/SQM9CObVYli8zNu5863QK1MJWUyLeMU80G4sTHkhT5Hp+cOzyXwrzTuupjyFJilrutKJgn8C02oWEUgFQslpDJW+Tp8nikPLZkV4PjmhT54LnJc8UpJ6GOdl7+TsMo5jGdf+VjygJCx8Y+V3/lw4gVQLrsi72fRkT+kbWh9B4ZAzg2iadBobj2HmJepwYywYwJ9OyxccySP7z2Ns/uWxoWaP7ScKVQwXmUK8wotfj9eI0t0chemmmRXuKUfK7/Sy3MuovDl9YsB/RSMVfCxKUUluAq2UX5fLWUURqdbGlpraPd7JKSJsBTiajXjO8tILmD5Ol66+N3qVcNK2KJeCvCMxNkC5qLcV/nsZ6Apnlve9cXvfQHy9cla13+Hp6F6R2jFKN6KOZ7LcsZeKKsWFHecrAe+PrN7eMXu3o1gLIzNLSBnUtNnhzvk5MWZOOModU6cam76cVgpNrMM5VxqM6NITPY5dimhG2JJTbT+21wZAz4T4HPNg4bgjHAFZdd1yPE/79PKHCWVFUxzW4uFe1hsc653i0RNs8rRxX48jnC1qzexq8m0EybEoloJsUVdbMAUjIiwunK2mFR4XJJpl0o9WkLAOFf34FHhTWnq4JSxq4Wu2Dti6/25c2Q5dxEPXDx0/D3zNoYM4PCxUvIFeG14e3tD7w23+5tZ9K8AUUu4AfnXzIoaZ/ARE5gjSkKaAtC7eeRC4IlYbfLWFw8ZlQWuP3M/TBnpIdyhVup1zgl9KJqcOLcNu1v6p3ssktaxKDVTJ1hWUyAhYBQeE9/NerX1Ht4dgpiG5Ckiad0/hlUD+/bxjsf5lcRShNjKI/IHrjPpKRb9GbwvfDthUb0RzzzzsarcuCZlM3/JQpjs+2MWD19rHqphde3vraE3W4OhJVRHEXwMvkfh3XoCjCaYFWKNEJaynE/TSeHvgAIooRoKsHpI1r/yrxO4T0NL3L+ugpta6Ec/TsiYDtYzHnyOE/P9w4wlrCZ1HPYaJ87HB8YYeP/2npZ+aWibJaWnct2wb1aZR7bdk+BdIZhAO90bwzVsWakn6CbWwfmgTnRMdFVsnosg7mgjf+wOkmVOyBiwh9l6dGFXdnvuMdTLLls1IWmCTTp628IL16SjbzewQzDpL40UVKpso7IhF/fBlKs5Jz4wAhvA+RFxC405cE8b8/0mYE3NxMJULPeMvNfPJ5mLzvCKjEczq/88oWNYTL/nTfQmEcaapWHtFqeXjzZe7hWQxokxu50n8Zh1IZhPHjInrf4sKXspOAKaRhB4CrA5Zb6E8TtGdIzDKlm1aTzWQpoFOgWqN0A6ejfFBvINA4eFzuiB1iPaC28/CPab4jwagB0fH82VwI4vP3zBtjf86seOty+C+96dJXhI2Rzpxeax8l22edt6nQ7uz8MA/uMQHEezUqEfA3PAS2h3NNkhuAG4AbI7TjLhNCbfTTldTZWfX78s0J8/hCp3TaQlI16sUSUWH/BKLsikIOAZbFXLfv2Z7ySm740XktY/iHjiDYHq9zch2DiJhGCo/I3P+d44/CafA/zynO9Z3yv4pMs+NXaObz6NJe75CXh9+hyf1TLxFEjgNDGhE0/l8YCsAmTzkuW+YWWNWv4en9sa2lyToJnoXUMY6n3CJS6s8tJD0/epYvqBe7UeRkO0vGkIzFdelifQr/mPYJbVhKfrOpgcts+2ZpYJA/+unJUwEH4/LElVgXMvWVrbNY5hnkukYE3KwPUKULHMc/3Mk+Ufq3I0C70ua3R5D0FRwwN1ze1gqE9N9o57Fqse5x2ziLrjgm3r6H3D7mCZXZ7D2ukKZ6Un8pLmwjzXi2U/tSivDUI8w1htF+hwY4UK74tQ9mKO0SWTS2DhXtEbQbhvWEq9LnvEQGMHsVffatKZxmeYWEt4bRVKOnqTSBpW72yKU9DmXMMo9ZmOPjMWXK9XfyI4enURBNNaRh5QPbxRyegFP7BERiBKGkqCdD538wTD4fLMQm4Y6uNg3y2goZdwzKIXBSDB/LI+QMrIpyV0Hq6Fp2nGfMcneN+yiKH+wf6sAAAgAElEQVSwQdAdoMr0BNA2Uhmf08JUz9ONCNaRdzwM9J/ngePDQP/x/mFymArm2dH6WM5eh3k1ZExzJviaDCANYsMt/jKARSZe+bcBu8qDKmBmmJGnJvtSR7owIBa2FP+pAyoPJdrU1nOHYGvNAb/1+thad7BmNMBOzgH6gewVAHo1yAfdswDBwXPms4vxI0vkUt42p9fZbM+bAnPrmLNhgJW4qvHSc4k8p+icm/V2Ok1udlZIctBsss5lqrr+qeYhASyMRcDytiVHqXSZ5lXQhO8fy1Cnh9rCqhLwa/HCy3DeV/i3SAPzR2qxC7Tuc6W6K5aEi2kGHgCKB1QbdXCIANu2ozXF7X7H/c1WbDzMiHa/7dj2jtvecNsFW+ifxEYzjtSVNRH4+/ExhWdaXX4r09ms6ddphrem7h1uHb11qLXKA11w6nwlorAog34GKgK/INBfASZXp4jfeK+WZX5vBgDyjfdW8ed54vBqM9WKI61FTD/vtRyuyhyv45xmrxnnmcC49wRDYtnvCi/9x8oxFwG7xNs7A2cVoADfpZnVp+tWxg99BvYTGV9fX0tFCs1qQHFPpEWM1xkNotJCGGUPXdFZBegK3Lm+vVnFpdo0KvIQNAVyH90tFgP1YnhFrS4Usc5F8YK+ANVlPNcckPq7aj2ixXq4tSNKOrrVNoVwVd54D3f7+3MUyJKzF6WK+5EKVgI0+AouZ8A3i8BAi7qvYzpo4FpUwJHPe/JCxKGrbuVPaLDeA6nkvuI7BlKx0ASBdu0RgGX/AhFbvgYt4Sjgjme6AODxYm5PSgMS99T75VkpeylA71ZdbN83tNYtBnwQN2kok3yWiKSFajE+sOLRDPDeRNCFOTiWL2DA3yqCqMKbthUlU3K8fGY0KQJcoTMLJcpa0nsqXqY4rP0gKDIhM+cMy/TVINLEcwFacM0E/Y2Jyw3btvux8HAAEYg3GOvdk9LiqNnete5GFG6OAH02F8qXUCgqT8r3GSEZrZIyMswCrpxZLscIA8Aif1AFd1EoQ6nKajNhplEYQMZEmyznmNVHjE4yfh1Swn+CRyUwY2wy51dJN/hT0EJ6qHgXgl3mHjWpvS5I/MkXBHYONzHeurt3g2UpdxHzPjjtiiqUFWtah6JB2sDZJkRGBIpsDsENW1s99ONh/ST2ffc4dEEHX7n2XZHflxY0lMOnrMnx25noFq7RWJY3nDSugMIr9JjFex4HoOYBFQDYaDCwv2MMdDdb35p5qG99w943nJg4ne7Gt3fbXz/HyjK4QPATJsmCeQReJ99oeAQfFfGSqFJAuKQHNz0JpmQo3NAoDVM6tClOJQgsYUYBhG392rZFrwUdXsWntziHIpLlov1QEuCTTxJPqGbFPcq+uARVRzajmMDKFAujCRp6T+81zzRLSvc+zbq/qVXNwcQppng+PszrJG6s6s0jFzw53zjMDmmKvgGy79bxdh4lbh+h4L+9vUGw4+0muHfbx9vtht4F9/3E1mwfdarREiZEFLeb7dPt1rHv1qVZYaU1D88LeTwM6BvAb+5xEExlSJlAZINgQ2s7Wr+h9x2t77buzWhmGkMvXqE1p+6z6xcF+j9TUxJ8lGTQ8r1qVYuOu2DjnmMB/QzdqWU9eb90Lz3DnAUYuRDnczmGK4BsYhYfxjnGc5Cu9GTO+lT6c6/WS3v4siYEHPVvdTy8z9VquloeU6hf51n7IdBabJp5dvGkYhLxwx7q9OriszvDeurv6THhmKZiNPYOyPJfQFrfGV/H+Pw5PZ6TIGWu9LS47FuW98yEoAxF4GYpvJQYBOIdApfwnsXSRFAQM3P3aCpxVFIJeukyVyDHXdbe4gYvSpvfvcbrx9650WpKWpYr+K2KSX1VWuY05DMGUs/pRXExCOTfDtr1+be8nwIZR1vuRVvN033phbjwCNIgimV/FiVxmTtHIhk7vfytxNmXQQHwSg3bhq1vaN1c2CydCKzAnud/ME8EFtYHjq08k+VljR690/JtD5e9gkUMxmWsEt8nz+ma/UEsfHFAhE3mDFDwbEaZ0mo1w3oOg68y1I5Jv3MGsA5Awb2QPFub1z+3VfT9FEH3EKMAw4B7OWhdTKW7zWbFBjS7GK+eAFeKZgJx7toC5CXvy3PG8J56Nq6NBiycLcs4u25f+G/SKxQe952lGQGmIcZAjM5i3VbwzxVl4vj0ijeL1yvYJM+DeTa5h2X53CmRoF9yGBE2xOXcerdQBmnYm3nL3UaKDvaaoCJiX1S6p5paec8+gdFw+pw61119Lc6BYwxToJvdtcFKWPIZNE4MLVZ3oYKV9FT7mInfw5LsW8Rf706DVBXYaX1M5+Onde1VVcBzX0QnpPdQ0GVakquIYBeTPfdu4+9qVtnzHPj6/uGKq4N+VxASW7iRSA0oClhCMxsHQgTNQ16rQayH3CrzCUUxVAnTS6WbBd4Vh8UrTjAupoRK35zPTC+/Cg/raXkW3SM5od7My9cI7qER9x7ES+MxebDqVSIiZvLb1niqWG7VFCGCfgtntRk1sRDLAcvfOB4WVkbForeJGd5uG8zuYWUWSjagY2DoO1StCILIxG03o/D9vmHfgPPWcN/sFGybyYd9n+jthGc0W08HWF7Attn5vt3cQNQ3RNWdaZV5joMVeyxOn+9Umqzs6gbIBmkG9lvfIc1V4HZavg1o5PDmotpcYcB3r18M6P8M8CcAy5lUBogS6lDDFir4D8FZwHkA4/LcbVuXQ8s9i5klBU99bgy3CKdmTZMgWZFnEMjPcjjKd+v8ECCqCrXnkJLrz/wOk7CugH9cQA/Xp4J8AJeOqakchKfA15GmDAL+xRp3UTgCdDszVF/bRQkSCe08LKZFsE+3qOX8Gb88Yt/DslHnXmKWK+hfvTsMXFnQAwp8iDFQ9CczLd6pwLslVACU0R7jN/gkWvbTwm+MMb5gQMBpLqxWjN8F3azinSzznSMSFQwdC6hbEtcFy76l8ku6L3PnOdP0Bmj5TKq2eeXxSbqY/oeqxDQg4iKv15X+meTGM0zh+tlFT0sqJ0XZZ4UFJjvybPuNq6D9zHNUVmL9m8izgvNyfvmi0sM4X1bpYW+Frl7rnMBbgO6AwHKMFLebVbgY5/CGXgmKo/rPab9nzPWYrKLBc+/nreUahuJJmvebTt/TKWwqc4IWeQAY5wjDQV1fUostVbH0A1BxzwKolIk3aWrANKFPmlzooyx1KsoOsHWtrqaHAl8VGAI9EsjHPgSISW+VvVp4nzZVywfaNkwI3PYHejnqkIQ17wst6cVgIBMQYb+Q0jFZAJk8jKVEolBZyIRx3x1A1T1KSaVce0BdGTCrfoJ+V0x4VuaEniYjRoT1DH+0KzwwZWeo605T48U1YGxDAyJf6rabF21rllw7HSCJmuW5ylF6SdgxOeeelv6tmSK99Y69s2Ghg0x1/jIGxnGAxRzUwVusCtfV33rraJ7DQuVoaz34uIp5SSbXU7J/AuWuyQoNohf1ij/TVB9t0xFrD56hCgf8AnE7blTHqrgkySB6ZUgJw8kPvfi8eCGOCO8rWuOLK3ARcjALLnFSTm9E0p0E4VV5WmRR83WJYhuJe3jeSK9QYJ5e0dGrjlm/GsG2W/4SnJYgDb3tEGnA44T+rkP7HWN7s9Ca89304J68oneBdjEgD6B3278uE028PpcO9AbcdlMovny5Y4yJ2233XjA7zIvpGGsKVLvzg+7WfavEY1Wg3MDAlPpvah6pfUJvp+GDj+E5VycEivFFML94rsO1O/WL65cB+vUCXF8I7qu4DMZ7ATC0REVIiAMM0+QkYn2jXbMrCa1lk6/oPOvKA/zQSmthTagxxCw3RSautL6JWPMPdxu2mQ2fZGRpKwL0V6ExPqkUaCgC+RMlYMIYAuNK65qxutEkoPexs2wg10z8ufQUcI25vmwAZNYQL5MlNYHveQ+bW9W7JxRW5rFFR12Pse4TbbRIHrbER7c0etgULZxzTjy8BGJVHKplX0TCy1ObwEUFJiqI4wLw4aFZqh5qkZZ+X6qXBJo1cCpISGGiqtEVMaypqgFEkp7d8xDNPgpQ0LSU0OJS52/Pdqsz0vrdhru8p8d1R2t480yIZMjN9VI8J6ySmUcM68vvroqfEAhfrqo0LnTN/Sn0vnowaOl8DfyrIk1AXfeH3X2rknq5wZNSFLdD3X7J99CI9JNKXPm7eqbnnBA0ENuNae3g5zCLFoCg5ZqUzHKcW9+CNs5SEpSFDaZSebDBM9G5uweD7uLJ+U0r4RfJmMH7CFSTN41QCEtXYFcePo7DEmdPCxEEFIzgpTV38fhNQJtA2ozwrfoKMK1Z0plW6FB2X+wf1zjCQd8V8ufDinf/oMCGmM/kGXOFEIBZtOEWw96xwQCftIZ+fwOkednOYtHUTIYMkl1eGnLQWISdf3agr3QtDiBDljhIs/PbYz8AwHpIeZWaWBNZZG53OLlJx9a2Et6TBP7x8cDhybnHcS7dY5uHInVvEDRUIEPtNRUyKnibAebf9h37vuMHL9W5b1ZK02K9B5pObEZE4R1i52hWEFJoyDA2udq2bl1lt46bN6EEQ3BgOQZ6njg/LMn4OE/7u5fsnH1E2C3Dg3YvPHHfdxtr3yyGf8K8HAqM3i15NeTOmhAOAC2K8AsPlxsvNI4Tzz2Tl5vQ21HkeYrqtDUo0KZYPgdzrit/skUKAqTMEAGkNLsj8Fd+qbJhpwmG54hMiLQlgVU5rnh/lgnGFlPWmsN7GsECy/mkl59dmJt0iFpe1TFOTPVywzrRm1nY9/sNt/vNFU1S/c2e/HUA3ybk14r5xxMnvuE8vgJ6ojcBNi/g0RrabkWrRIAuCpGJJgOWcTKgmNg3gfxgYL83y/PYup2jbb9B1RK+LZwHGKO7YsvOurDk3ikAdhfAG4AG/A2AvxnQ7cC8eWji42EGzvMB1Yn9i72aCPAvDejHhaFRgy1Cn5aW731/sUKV3wFVM5UA8UzgY/gLD2eNIa9WHgAB/qPhTgUh9oVg9CmcvC5vAanXZzzDnwICrgD/BViq61Rgx9MaZfa7W7xay/Uuc8B13S73C8GpVsoMms94OuAFwC0W1Mv9gGrNT7DPUJ0l6a7ey/eoNiGrITFX8H8FxqlQufv1Ajgl/k9GV34rBI11/ercV7INsBQfKkDgxbZyLZgsefnj+n79fT1LuJyRF3t0vZ71GV0eZYADoSTS+slHX4d2fUR9ZqWPyguuCm397BX8v1IGvmf556Aa4ElQz0p0tehKWxX+iPvVYsnVskbCNaq8TECrLJChauHpIuh1YUy9Ic+NqZPP3j3yvly/UMC5lnDjiDc6giKrh/l3qmXteanWsyMk7hebrQVULgnPBAcFJIAzq4cnSFtTs/KjkzQiC5FW0MG9XWbBz5RxEEA3bV6bnM9k3LFG3weeQKViwXUq9N8dlI450VQwGP881RKqkdNBHWtZOJuanyOr5VeAW35juvEh4q+1oUc2uMTyBI+yO4bHgIpoF0/AFg8jkQzrsdXRKFEZBSr8swJgI030CdGO0wEz49GjcaPfs0nSZn2lMpkrw58ZAmdhT55u7Ofr2jk9PBqKMCzYs5lM+7zylW4ULCRg7408IOi/FZOOfUFg3gDbuhbvVQ6tT8MyP9sTjTMfv0uVeAXfTkQMi+MEBF5AAvTUXq4rgPcncSxMorbb+aEj+6rnu3gsQoZdn/Xi0U/GXa2rvvLyKx8yg0ZH8/+metdmWvqX72iyBynPVq5lgx4C/eo5DrNHsQMAkGWYji+a8QNhPVtfJRHxXj6maMrUpFPr4gbL5ylyWAF9mGdxHor5UHv/arxl7hbGpI9pJWqnWufqOc2VNtUMlDrtfSgsJ1n/JQH9colxr0IfiAMErODg6TaSoSOb36f37g07TIuvMdz7tkU5vRrvT2vXFbHwM9u24X6/Y9v3RSOl652egu3tDdu+Y1OF7ns23xnp5q5x3BUVKRDl5Aj869/K0i3rUa0KV+C+7Tvu9/vyvfM8F0v+VYlJYQHQDGxaq4UO9ON0l9sKNvjcV2COaxWgQRUHnx2JeQn4z8PibllTn1IzQX1a8WkRIpiqz76+0mrv71D7joMyDdbpgtPnZbremsiUNckJ1C8K04Vcr+D5aV/L3o0xTHhsxsbjVlMtTKwSg6bXCRU8wCrQUBmFIsOxfo5LlNHpVE/mTuDFRk95hmMwJQyKc7Xyf1dBmCD6Gbiv61bCSYqCWBXFV9/jM1ZraSrxCrOqHscRCZ60nu+7Ve3Z9y2ae40AcEfZc08Y01XfyqOddNJ9nfZ9jwZed4/l77vVFzxnWog3NUbPvXoC/QXw8xWlh/cdAuDw/KbzPOPcnx4vSy+c7XEq1uR7xkttLcxtvSG6E4uAFW3qnhI0R7GAOOMzPYy09MWemjUtlIT5nG+U8kICqAxfp0W58hfxChUci+dmOIFZ7LeboJ0sqTe8druFDhzuVWwsNeloYiogw2TKthvQu/sZeJDHPw6MxwPnMG+kTks0V9Uo7ZjGGIAhTNy7+Tgwjod5r88zChtUsHt3q2a/7bhzz+kVdEu/ha+tibwqtD47vTRJubmAUUB7R+ubVfUZ07wB+wZxr0BrgvM4cA6L5n+8v+MUYIwtGyaOga03aBPcbzve3u7Ybzd8ebuje9nODBG1M9O7Aez7vhflwMJ39r5heqLn1Inj4SVESVkKzEHlx2ij6UQXjZAZhVhjNc0yBJMKBJpH2vRoxke6o8eTEQFNBG9vd6O3UNCLUgouumIxDKAoZY0FPe27zT9Xm58xxy0SGjSrfqmDS4b1KKycbHicQCAfKlXRdMq59VMzXYHw01eUTrNYG8exZzwbSiT2UEoIUDTmaq7SXBpxhJyfpdkp7Lzf73d8efsCPQU6Go6hOD4OzHEaRsDAuTe0BszZAQzEIDTzmLorj/NvGo6/nBg3gf7RDdjYbs7Xa1gommCiCbB1n4ueAE4vdDDRZUffOuYGS8idANBtb6RjanckYWPpfbM8kL9+4PyrE8dD8fF+4jwnzvfD9qm7YrzZGVAMTDSoTKBN52oTqsN+J7aFP9eNF/iFgH4uxucfIANahQqVguVnXa32ImKlwegCLH8jyHjSxGmZWDTRfIY4UAhw7VKdtvvrAYBINMW4PvMK2vl9NpHgHF9a3pDAfBkb73VZ01fJw0yCvFq+r+vPtRckE1o08vKZl/e4fH5enrkAuJmgfwF1jGF1ZTasqFiTc6v1tK7tKwt3jGtOPzAWO2jegzBlXJaDz/Q5t+f7svX4dQ9e4dFXlE9aXiwXyDPwEtgWxdHG74qLM+C6FriQiLy4XR2fMfwiNGLt874EgbyvDcfWgdZwH+g6lsu8P/vbOtXvW4Y4vt/H4h80Syu3vzfkmQmA25KvVMvk50pKyJxca4jHpfOenszLZi+09KsZKpLnOMjFM0/6bF71vLfeVx4gkl7EmVXkK5HGuffnh6WzKhn8pCvLT+NJrL786hP/ZrzX/4IAUZ7xdLbyjFxvScOJLLTCubFqBx/jyfuzgXEStu7kr74/yHDM+mxxkClc12FJg5PGC8oi0lH34owiHtIrnriMiIHXMTDOA6oO/meC/r036NYhcwuLPJVvxmlf5Q1cTwNK1Rvy8LKGclnzWkmmxrm3xhuqW+WfPaq+WFFbfvVuMWepnBMp69lS5rYuWcTBk0fHtHw5xTQr6CJnfL6lGAT3jfgg6x/6WYYm+IvBrDJaUYwMIu5lqdlm5fMXWlcqANQL6qIHGC98ux6BYkfJrwl3yfm+D9dzlELTw4uyjtQf+C4K5p2xQ1ycyviyj13jhL4WbqhiacVFKR/KWvmHr3IPSF48fUNVGdM/IuR2jIFxitf/95LB2oApMLvvhMCrih2AfrXiO/qjAGgZD0XOo4psWiaIOkk6/fyr10o1VtG6B9ENgU4fJ2AxW6OZIjC69Q/4aOZpeADzXTFPhX64pb8PG84PE9ovvBAKSPk3SK++Uz8D/H8RoJ8Xy8nREm6AysJPQhDO+fxFRxgkj95YqitnTzBS3YlMECK0W4CDuIW7WjFljQel5vgk8KlVu1aPcu86nsaEnVcWy/JdSAq5AEXl94pk3Aw9inXheFQXNyo/0y9VjOYYOLECBoaWMBwKXDMRa1YikvWDkYzhCsYoHM/zxMfHR+55zN0Z85V3uNDa+24Hr6WrlV3x9n13UOTCrrSfx3fGBZ9HVlxqICfmeKyGsB36ep+qE5DSXgOZ5aPxTApR0MIzJ2gYH6wc0ZrPuaM2jVNVaF87DlM5w+U5zyPhO5PbLyCSVonyeVcT7QyEspNubIKhqPjgn+f4WNItRqF4UvzC+k76xZps/Eppq+fm1f5+BvyfALpmRReOVWSL/I8Euy3oxcqnteX+C+h9qdRYtZLeu5Wu3Syueds23JyGyRfGnBhYS8tW6xeAReG8ejmy3b3tYBO3IMM8DNMTGAf5TakwBtIm4JaxFh6dp2lJKsDNwY+tkVuSm4Ywar1j6EA/vNJSJYjYZ/9RgSvfjDkHSLQXFbVKtaSN06uyHMcDY7So4GIAdbPmPN2ENj04Fo9dyuGJRH35vpmFm3HMrESmc+K83dDRrUHVOK0k4LS4YwsAVxirEfTN4sS33rGVva8Kf+uAnAroiTlt3O/vH56/4KD/1nCHzeN+t5KyW6f80wT9V+5Q65oCUVVGUaq7qX1mnmZRncObIHV4A6eGbfe+DyiGLUk4MsuLJRUVbrvUiaEDogwoamGxtJeNn/XgJxok7mcVZ/gZhmeM6aWlB3D4rJuXBTqGJe+qKGSzkK6uzO2zvLFxPKyip060qZhT0GGKYDtPy81Tt8h6RRZpzRuBpSFyzeMhiJyuVJ7G38GQIxsHIOGBIR8VUP6oJ6UmoN+2Hb1vAdJFJ04G9KPKnaI9uMKhsapinjJXiq30p6JNyhqSQlWW3R/QxTttV0BfZq3PvDb5/UVPoHJXZZxaBZ/WGs7jxNlPjA/F+THx/v6On/75bzHmiWO8QzHwOL6ib4LbTxvuP222ftKhKjgfVknnh7df4X57w+NxYhwN5yH4+O0J7AP7vw7or4EpJ1o70WCN3pqYJ6zJxBgHVA80Ic4TzHkYkIfX/f/rAf3tcCjRTac8BDqt8+4cgP628yC6Yjqg6pEXXtBjzBNDD8gcaGxcitP37vQTEDXvfq/rFwH6q/UwqipMqzzTUk0Mq5N9h19OwMN3gqmwLsoKKBYLBIF/BYIUHgVoEHRXC8KT27n8W3xsFYjUS1qzUmA+Ft6rusAzoz3r/QL10OR7gMgyv1gnfzaFN8EyLyb5MUehORhbLED0UHB+BGY8pDD2VIHWK+srrfgslceqSuG2LMKfLm/GRdJ6z+7B1bLPn69XXYeXCprvVbi+r/RV927Gxi73f61YJzgKpfLF2Oj5aSLRb8KelRZOgqmFblXNsqWfJJ5enqPLsCtNOsOW5xEKTUT1jGk5amX+lQYT9MtFoajP0HJbfpZDKetS9vR7wP/nLP/Xz/OdzyFgqWXnIM/8QiTHt8Yg4+W/r2NNQG0W/naJazbLbw+lmvdovaFrD2VjeY6DKFNCJJL8Yp5lQ3tr0HL+xXzhwfcIWq78b51rmWfsC4oVOC29vtMIi2lraAd7YXg+RQHrIfCvricnVSnPBJUsznWh09XaO2SUsJhs+NNat6Y9hrxAjwBceTPe6KUUtTy3M4zTnrl7CNCcAyKwRDvvepqNe6aDAFsvJpv26P/goV1AlJRuBGkw8DPGifN8gGWKTVZYImoTS2LtzYolkJN9yiMimTR5gXoI2WJac+BFJZHfCU+VW/r7aF7E4rljR1gpJR/NSjosO+g1bOxbTod6+b7CPt8c9lR7Jz83tTYjNNpiC4tIDBWXq+S9qmgDmE2hQ7ybLSJnjYD4nMPDvhi6aKC4YTODZB03z1KRGWvBBlqQ1WdeeaHjlQD8YkqjtODBlIlb3zyvWaDtLCYbYpE6DrsPw03Ux28A0xqNiSdumH6RPCTmpdWgYuFMxRdQySZlYJHrfF94MxVTMQOCsTjjx1G22ytZnefAcQwcHw98vH8YMJ4PKAbOoUCbOEbDMTymvplSdD526Gxo2AC1qmZzNswDOH87gH3g/JMGeQPQp52rppbAC/I3xVQD5wJiQpZUbqGt6k8K/b9txUTU8n4Ps/7P08vePqySj1OmU68bcNTKo9r8T8zWMZXyc5DSl1Pgvqmfxf+/CNAPRZQBk9YwPJZdxC1TzZlJfvz6dTugDii3bs1tdKpZeZTLmQfyag0EsDRqAQrQQoL4w8c2VcObcCVgWsjOMQCPmWVZsMOrZ3BuvMbIerSVaayqcF4p9PKZ1WVKgWjDzqo7Hx8fNu7bLbT4BbBRwSiCnl4RrlffNtxuN0BoXURa2kRi7z7d7jnBqLRgyr6/vXcrfefChMwtQbSEJ6e5cMt9ykohdiABa/jBHAOjA1pz2XVZXLFw9OD7cXqd9eoRWOkvrBIF4ISp3uvtBu2U9+aVEkxrT1oUsGKDWSejv4Ig8huiXCFene2iaBRATSt9VQAXupL8bJNMWPUlLBv34omvQDgQSjdpNCy4l/uk5SjvB/aiFC1Jd69ANL/4SqW6CCp/lgGGcv7tppjTY7N1tzKJ6oIWrP51mnDvG1obUUaWc6mKAUvK0RpdFeju+9d7R+sJpKOKiAjEwenH4wPHOexc9+b8TV1I87kayrTdSGC1rHPiV0EQZ1oEx3FE1Z7FM4kqtMlHslzucKPMmCZ8EPRiIGBeoIcVdrHisq1v2Pd7iC0DV8ZH0qsyMXiX5qUhe4N4GFT3qmhpUc6kS56r6TzvHAZyjnOgNcU5LBxETKuDdKBt9j2Wmuz7jq07kGsnIGsfhd47HoflRlie147eG85zRPU40n9z/iltVeZ6seqf4wSGQEb2agEy1yHgW9B70jAB6DkUxzEwuqJFbX+GKeY+xh47eF8anM0rn7D/nQolkDQAACAASURBVF49ykp2Duz7xO3tDSqCbqZugyCq+b6QncveaTb+4zjx8fjAVMX+sJyFHVaVakSTNQfZELTztHmqGa/OMayzsxIYaqz96WM0MOZ5NlTqHGyf7g1AdJRWKHrkSCmyEpWMgdPD3+ZpYM+qKjH0rkHPga8fDx4w26vWQkZ0D+FS0NLvoXsO81Z5ayGmW98sbARWytSUCPfQ+/na95v3qjHrccoMhQ7PT7AHQMlG/XBT+Zj09vl5siMk6G1G7H2lN2ea9ruZ/EXj95VGyavSC7pa8Q3sNubSybNB5TxPQAXfvn0zTPc+cH4MvH984Dge7kWzszbGAObA42NgTJiRoZ1QbTiPAWjH/X5g3z2cUaxs5uOYmMcJ/B8H+m8mbn+k2P+WYt8A2W39hpcSPX8zML6eEDfaDACHy/sxzarfHjtk62hyQ5M7RhNLyIXxujHh59aVq0j4riI6PUP577J3KMYtUDH++esXAfoVVi96NmNUTGCN8BJV6La9LHun5R6RyMfmGDCtEHDQ0fILJLhKhNlpddVIK9Ef3kL+OM8E2qX8o4h4Rz5nDH7fsGx7su++7wtx16Td5SoorgqMsMLxYwXw54HhwbOuetOVjkxIYl7Ca08B59U9rITK0v1+x69+9SsAwOPxCMv9UpWIAKLMh2HuOjW6ffLaNhvTbb95YmN/6ptAhayG91i4gjx9BjYrcz/3LeUdDKDV6kmtWVKafd/24Dwb2jjD0pD7klbJCpAzlt2ZmaRXBLET9g/as0gnQNKjQkNwmaWvBTOzOGNa+pGgtZIK6baMkdtRiP/yPVncqk0MZL5S216qciGQKjxPhcPo1oAc8adipY24O5UIzXX+TPEFxJrFfDayotiH1XtOTMlY9pqfYt0T7WxbDWyWA7Zzb6UbuxcHKHtbzk4oJ8g48aBXF/4iFhbHcJnweB2Feavi/ePDPHDbhk03jDHLsdIYmyArfOV4EOdiOTduEKhNvSj8B1DOznXpPYaW/HEMaGNd/xbPm0XJmWVPEicYeN5vd6N5F1XDq28wr0FkQjFsj4d7IL1sIl9PfUSQwJ8K3lC1cqcKtG6gfwwDicz9kS5oe3eABwgm+nazkJs5gdHdSGN1vm/3m3tKHlAFtm23z4oYeD+ZvJwKFmA17EnjuS723+HygTIpEnkJwmHg0lGgz9X2n4rNGMMUm+IJavBqQEXuxZpp8p3pzaq4D7HP1CVLvsscE0MVX1xJ3eYGeMI2aTc6CV+AoAFMxeM48PF4OOi/WRno1gHvFTGhGJ5IDQDiCttUjeIci/VY1eO4J85juBV3YA4rTWtLblQigCsW0/be47Ab1JVI5w8ecWD7OtEU5vVRVzDGDBo658T7hxntaDTr2xZ5NNtGA5avkYNdhjvxzFiYlFmUO0vDRilWWHlQAB0Z1rp1A/2jmbIk1qELteEXFi949YJl9ZvBfhAO+ke3UMTSU7HsqS+nlwAl4FetZi7/2IwPo0m7dPp2fBZhrG3xZqoqjoedjW/fvlmvj4+B8bAuvI/HBwBFvxm3s+acww2uju+6lb88jw1Ax5cvJ+6MLPD1fjwMwxz/+1dIP/Dl39zwduuYu/V9MMObQIfg+L8Gxm9O9F2ArWNM4OHGz+lyY9ssOb23O5q8oQkwTvU9OTDGxBimsNtXstIPWMggzimVszSjBOBHBfxrI9bPrl8E6LdLAa2JhymwAC9Pxo/SmkNLB6vt+N9UkXGqYWFrAdDZypogFr6ocBAPdRZFAIysujEYfoN0/emcSyUGAiAQyBWhVEGeMUGvcFFd9iBYSmBxddGG1f0SYkBhZwk2VFwSmAQQi8+lDCIAMYFIMEgLf4KR4fW+ycRppaYSUv9drUbS3NLpLbJBpUUkYsG33t1FnaA/+iD4OrYLfVSYO93lvgBY7k2jtWkuoTT1iLAra2vWFhvTGHX15iwAuuwFtJY8tA/SY8GwAq5zuG9bVlM5xwi6rbHE9L5UcA2QUXIQCDBQJhMg3IBlWh9poQIudFfopEw254qieNbfFzCBsC3ScpgWdTKqeGIopwRDpJqCVJbx2P/oEeEacS1rrLWU76aVXxa6i/NYViGAu69RfeeHqXhZrsXOYXIVbTyxlj73sh98ptv+rK/GZZ1DAsMbFgXwq8DNATPSa0mhbYpcUTKRlqRFye8NczavVJF7WelEhGBTyiupZ0Ki5CWUFscZs0kF1efptEv7pwrLLWaScOOcG5vbKDAmWp8eV026Kvwt1jXXTzxoX6W5F6J51SB3x0+xsIAJKFp4Kqwyno1SfQ8EWJQvS/q33xnqcDf9IrSdZn3+6YUk3edZpt7YnT+2tgEyoPDa/+pjhFqlEDU+ZX+3Rj/sm0IZZ3vJPWD+g1v44dbGqTjGxPE4FiWZ500DxDudjYGP4zBruI/3PA6M88DjQVDjFuQwpDUiQDesDBgYOwEI9gDyIZCCbrJ/hNMBNOQ0ecUY6tXF0vuxNFEMSoXlA6iiNaUWHeFL9so560yllHtG7EvlYEyqr1We+HMraxMPaWslVh6amMIt7hDFiQPzHBa+4/lb3YGhJWhHDZdQkKaOgIHSLDxohsLDYVGNdH2A/LB+zBVCnRLWf9sSn4hW3mCYqknLnLh4Qv3OGZ6F6dXyQg6KrOOwWcY45rAY/vOwbrQyLQRw2y0rs23OZ/UG1WH5Kt35YesAGpoY6G+9dHcnjgTckzOBMbH9TrH9BtjeOjBu0AZ8fJ2QAYxjtzXBDsEOSEdvNygautwh0rH1L+htA7BBtbv3y3yXIccFCdk9/4p0XYVEVZ5JjzzLlLVUuqzCGL57/YJAP8DZilgWNDTLX0IEza1ezZtgTD+Mj8cRYESkYag6I9EA7rSs3263dGfPgaFpfW+Mc/eEid56xJHv3uSD4zlOD/9wwmHuAcv/AReFgldrQWjC8pNgLD9C2wWMAFXVjDt56oxAHUCyAYjdQ42528MxvOPrvm/Ytg64Ji7NEncsdr+5oM8xmxW8h5WCVpOMr9NI3JViBmC981kOb0AotaoOu4cG3e9vZsFwayoBKZMae7fERnpHpoMiWl64T+dpykeEVLnHgSCtiSVLts7kblglDDaYKtQnksrdnGbZSe9SWkeimYqKA4UE++xwyhv3reO23XCcB47T3L+0ClYr77f398itmCFkJqRbg4+2bYEIwrbtFk9KIBM+tJx0F262/ud0b9PUsEDP3qAz9zC8VTU5lPcuiltVHlHmHoBf0xJBQFovhs5EFZSwkFMhrsAToXyKSDI8WnPiMy060ratY2PZN28ENfwc9g0Rcw7BopAnyLWxxHNbj9AO8bhN0v5tvxnw81KmVAgIsENZjLVh9KavBQBWPVGuC71GraN5fedzAFAHgeAZrY3iNPYQ8DJ+EVrgYN9LgAo1fTFrJByATAoUGkCEhpIt8gyc0UY9Cy8ZHdVFLFeVcd/O24ogE1cc0G8QQRQUaDM7BquPsbcNMoYlvs1pJfrGgQnjMWct6dcFkGbdUVUd4Degdci2Q3qHSjcwL8BwJUW0oU3gfEzICYiYhf3UhjEAAZO3rTw2VDE/ztjbJh1zAu8e2sGu5uQ/iaE0jRdOG1l+socXoW9eA97P33GoJfLKxJiCoQ0qO1S6hxEBYzYM7Thnwzmshvm2s7yo7wHjg3XiHAaeT+dVpP9vHyd++ulrnCkg9xWuKLBh1akn8Luv2HrH++OBrTUH/Sfe398tSXKceBxZKMKsvAKojfv924Ftm9j6jv2cuN3eoN4/iTlvLG86IobaFATmxOQYE7SPc6YCcPJszKKqOsGKgUfxkJ/xeJh8Pw7ombQ1MPE4DljITXd+YnQ8pmKOo/AQvoT6HFjbPeULtTGz/NIwMoaXT/bQs0MfgAJb37BvO7at4+3+ZvK+u4FDAIYrnePAOYcld4p1pwXMO0EvcsgwH3HzsQ7yc6dxVUAHMLlOYmGp5hm0Iy5o2PruRrwdW7+hSQfmykNp/HioenM+a9InMPloni2G9VX+YYs6TpNd71+/Yc6Jt/sdb7c7pAneftzjPNma351+Uq4olX+4p26/+5nwPBk1I+AA8PExMMYB/EWH/A7YfrVD/vhXGDrw/vETdCr29qMl8coNih3oO/b2BdI2bNsPrgRtEHQc58B5WLL6qaaczTKm4A06TFkhL1cqPcZgtWk2XDu5j14tyo0WrTfs93vio0+uXwToT3FPnd2FlE/e6LBYH/wKF5UzLlaNyM+l4K1lwqQ1S86BWSyuY+FmVGtYTXw10Fw1//zOavFcx1kFIRRxCKEZmvSqEomrlWYJCoubCzsfW12atJ4+hwst4SQARKdZApWE5CEDLQ9d/s3HNEtolEO/xTJcn1l+5udszJmcm+NJQP9EtgG2sYxjeMxnhmIYE0WzbCT77EV7DqbL/bb7B/C7Pjs+ua5l3FYSrDxbyfjt7xzE8r24D/X+oBPezumBYy3zWsLfVP3nvA8FDWdSvUm0Pl7HevU40Rtgj5cn+nLdN+eDaoEuJ51n0veO5862Is9vPJffb7A27To9CbcsNJm7zEjSq+dycU0TkAOhlGt5lbsuc7+Oh4qltpwvFdmw8nO9KZgA4PAd3id0a7G3CpgBoQyANJBrjhd7wF31eU6EB7LOI/ZeZFHgYj1qg5oCXpwhlwOTFv94ssKqonCZtdAeMqdq2dugWXowZv4NWv6+8nsmZMaZDdoiZXP9Vw9ZYonVg5Ev5yOGs8GYa5fCABTsbMFwKYZ6mdWcVbcKT4y/VcoSsMmPKXf+qdhK9XH4nKc5Eewcc0QSc3HpUP5NUOF7OxHVcJhHNMt68FmTtBZDVf4xlCnAvDhUuqRZuczhoJ+GlxkKusY4wPFzDilmfH8SEC/HgGxPyxqqxlJRbgUeiHeS25Xy8jTTeuqWxMJOpLznmqOMi8/Jm0ucmVD8Uf4dNCExrLD0F7lWjnPQT90r4+9FFnI/Y/AKYgww4TN+LvtSSZIkvqxUkXth7PFTKlzHK4Jb1w/IZOGQC25YqOOnMhJeJY6L861jJh5iLh/H4ryKeM94HUOYs4BAnFjyKB/nhEC1Wfz96BbaNy3xF8OrJIl6IvoGaEfTDSI3NxjcPJKku1wTKE4kX1tXuNbVD55V5JYk9YDe5UrB12NKPvC96w8C/SLyjwH8FpZOfKrqvy0ifwzgvwLwbwD4xwD+nqr+s5+9F5kkGdRy4AuzVxcqAZDopoRZtFoHG8XYGC1JxOKrGjZv8jFaw5wdIqVkZcUODqZpeX57ewOQTLg/PswCHpU+MjmFIUAkMPgclstR2PQua0tcvMd3slKCuWPNUr3fbtEhUESw79sK+v0w2Jw+PH51wp0ZcRCH5zqYJTRzCvgOAI/HEfHvCdwsfOI4DwPtBfxAJJLYhid9VcYS4QQeZ2/hPgn62zSi1jExMAIARmnUyXhTjfyB47BxbH3zeTvzaM3jd00I9a4APHFuVlsrYl+N4Uju8yyVXHChSRgDFWdoIFMjw3KmH+5iNTCo5UZkOACTe4Gs9GHPGW6ht2QtKlq+0SB5tbDW6/TxlDA0+33S+JNiGkAj1yOVWYJjjd+nJbsK8hS+Nn/7gQKRYRut26CbW89JN9xrnqXQHioT93KXImah3iNP5bwoHwHTDGwBUSVqRJUQMlENmhrDkwA9NGG6tXBVFLCugzR33iXAoNcpQ20AWq8BAEMx/umB+XWi/ckN+ndYT9oE4fCa4efwxFn3SgB8Zoab2T44D9FsNAenHQGirG1NNu69Q1Qw+upmj+ULBarCI5JLpB9CkaEwPAdU+hLkcs3yXvz/LCSosHAaLXsyp0bjrZMx1qd5cTO0L+9v3YgU0lt4haVtgAjOSf5sIrj3Dfv9hjaA9qbAI8MxWeFHvQoPARQfYQYLSSNS95KVLotaYzGDqhRNpxHbzzE9JnzY3EQa+unWSaen948HHo/TLIZOD0wABBWX1iF98zCmzRUXUwBoQZ1jAON0XHtGAuHqdRLzkEzFUJszEy0JCEXM+n56SEsTwfZu/EDH6Ym+hzcis3MUIX5iIUkEWAzh7H1zXpA5GqEwhLJZgbc74wvx2J5phOJMf+5U7plXgmvcv7zlZJneMdwTCmR52uZYIBuzkb0yhGgMMzLQap2N0VoWxmjV6m3KzaK/TKO5PHrea6azQeDuya7m6T3G8Op/drZHkRnqoVznLCV5GSbtTJpyaEajUA1cKuL8QqwqE+vRdx8TlDqUJN9nGUoFvID3sp8GsEtJ8jC0aIT1GDZwej1HyOkGyaIdc2LbO/a9+xq14EPkTTaJBhqTFFTs+0JHluzvxgP3CrZ+h0pD276gbXe0/Uf0/deAKKTfzDNwPnDM0+ruD8G+3fC2/QDIBsgXAN3PoEDFckBNl/WGjtJCcSBDYRnikCvMC+lWnWlrHU02s/izI7Bw1usa/Nz1/4Wl/99X1b8qP/8DAP+jqv5DEfkH/vN/+nM3qdYmqdYiv4hLeMAXrRFIZmp3eyGcC3BoWVt7suHNVVsv313K9rl2uI3NiV8i2QhAgtMY7+dbYeMvHX0v4PZJUZAsW9nCdb8tXojQWUMxSIBXQ0pCs/a5Vg/D08H0n/ul2kisqbLL6+qh0BwOd2XZj1b2giUruVaMu1dgGVesmeaaiWSfAAoLRqvTKsh9tCE973WI9IvlIXDxAvzz+5VulnVFAmV+5koHl921T7xQDhfvwYuL4LJaO/M7PgdNC/913N+7rq7CqgzY2/rzMvRX44QpY1HSsd6/ruXTLf1Meuwzw1iAgdZW2n11BYBAmXt5tiItg6mMXe4Z4D+/Jy/+nV4NhBIuvvhhhf82ob+bkL81rYU6cr8omJijbPpP9agJgOzR0Ka74a+0OjT0JibyMVZcBGhaSpHGPhIRlQ2g4ufrQxzmWDB4NZVdruG87EXTVFTjLzHm3P7rudNy/7DyTynhMsBCLVRYai4MSiMy/3yAuQ60PoHO/V/ByTjHwtu650pob+hawv2Q1Xag8PACXRQ/gi0bkysBYnHEtbwtY9EH83yojJRzzXmnAs5EQHpgqJR6ad9pf5taaT0VrlDkRD3CIvcwVpe/E8FwhZp8W8dpTciiU2211hdLteb6E1RfQ/ySNFaFtyqJ8Q/FQnM60/ijJNCFNgroB6sWpcwVSBrWOMaQnXU+K5+ljFmxzIUxvuKTSeDIndWQkct963f8PTw25fuKlJNZhnj93sLf/LtSDn31zpL3NGGZaE4mFTElQ3hxBa2VvQKKnC+yXXXFYzQWWI8YYjHHQI3j4xlPgwQ3Wsq/y8ZzlewZzc5P86Ifre/2ajuk7RBRy6toE+fp+UTuleq9mUIBf4nlENhl+Tb8+dqB+OVVMSvnVrBb7I8roBC4bFvPz2fX/x/hPf8RgH/P//1fAPif8HuAfqACdKv00dTjQUHgmd0MI+u8arE13vtyz1rxpQJA/qyo8Zir5ZHgmPegRUfEAL9EPGoBEzMbbNXDz9Hxb8PLi9UKP+SOwuc5oW7bhvv9voB+cyWlksNrzmnJqHMFJVeQz7W9HjIg21bT2qPhkrVYSREBuls2i/VReRORrL64KF09hLHWsYVihRBOIXhCWBfgykM7Fad7BmL+aiBjqSjkz6mVV3jFunMOVIJWFcFp5RU4z/twDcTXmS7/XuuvS5a1ZEwvcDpmJ1gjzbWoxxyPyv8hRHyMO71FvKzSlNm417noAu6SP5KZB0Ra1wpYcgH4c/1epbdQnAvoqsLmWbFTV8M878GrefFeca4BiNWqgy6VICyXq7XKP6afi1wDBRZQlTkDCbD4XZ73Fsdc3CJ8qXjC8sIFRwNi3Rb/6oB+TODrhEzF+ZsH5NsJimvbVgG6oP+rb2g/bgvwYM4JkU5vXqVjCNq0sKfIV/FQheGhMJts6O7i7q2bouPrwXmw2lhVyitPnXNCHOiKWBysigHw2dYkY1r6uRYzql1J9AQpROXAmvG8MzydBNz0mll5Z5bTvVbXIr2bN3Hrm1fCgZXkA6Jz6v1+x69/9WuoDpzbh3kYfe3O88RxHDjPA+fxKOdNsG/dPXMd6N3zubjdgsqIpP5DeTLgc3JwfyJkDPNChoPmx/HAedID6yWlfT9Jg7FXAgDTQC/59dbD+KRqlt3jeAQgToAIiHphiMmk4xx2KpzcLssZE6Q1nbHYCss1U2H4jXpOQD4zvWS95M650gEmrucKsjIWE78FxhdVks7JrYfX0Td6GWZ+oe6nlthKa38oZUsoEuKstXL2bN4GnofTChWoXRp+/OFHV7Cy8ASch02vjBM9NLx0J73i3Bt77vSZchwJdBH81WkmZFYawaz5XEYOzDhXyc9BJSmUyfg1deRQIKJTs3ssIA7AgQCkMSbxG1zywure+8RsbpvjsijVS4W9gHP+7qJMiTTLIRABlFKQit4LEFwAhJYfe9/www8/Ys4BwQ8QUfzw5Ya3tx1v9xv6djN+pNPzVAYeHwfoZTMHzAZpWzEywOeeuafnOaPUrFXaOqMKlHmZk6aSHzhPEoGIe3IZgZDoCYuH6QoGL9cfCvoVwH8vZqL4z1X1zwD8qar+uf/9LwD86e9zowB7SI1ySFrQg2HOudQ2r6XqruC1FVByXZTUnj2ZUJMZE/wt5R/5Pa/5PnuG9UCwKB/J31elYWGaBShUSz+/T+tNay0slL23UuoztXAb3/Oast51WeVFW6xAhXOsC57zXwUqBXDMya388vRJOLGu86l7EPvleRYcRwDBF/u6DgahsFVLKwFEJB8j95BWmleWkxWETnx6vfhuHW+loUhkC08DVmDQ1jJl8WfhWci1y+ckB00qSLBEcBBzZHlQj4kPBhrI9LNpytOmxvPLZ56t27KscSgEQoXaxquKBVzHWnI6SktpAu9lD5z5o02P9bd1r829qsXyqjgCCMGNy2f4/AT+DmSbgZjW2suxx9j4xsmcivnPTuA96QW/O4HfURinZRRbQ//bd/Rfd2Sn6QT9dluPHfeO0RgwC3goTX7fAJgzxmR1wwVz85KE24ltbEso33Pp38LPkLRJS13tlk7DyEojlowmW/e6/teY3lnO7YWnl2dbOEJ5UiRCr7yflYnYp8PZgiseFrr59vaG+XEC/cRoSbdjGmg6jwOPx8O/6HwMW4RMTZ4jt6IbfecexfzhgGjRczhmSWOA8xwrnjBLVa+RskJXJYdGH+HBEq/AVsbBsUwHLvb95EcRhsceIpexBz2X30+d3sWXSbL5d2ndmwslLVJhzHG7EUhWOssFojFLLn83jyGLUMxiuFjOa9TpN15pSqpVprM0OVbWuXq/85lpcc37R+Ww4h0XkSgSMstemTdKl3XwFXeekoY1dVSsXtZTBE+YpVBT0A0KDjKaGcu7Xs5GnQv57/qXy+Vr5Ic+x6HViv5EMKkMzKpcuilnwWBWNrWWPI73eC7ybEWFIOf95VnXi1PjnnLNKmC2Ai93AIp9b+hN8HbfcLtv2LeG1jbjMdPCCs9T8TiGhYo1wbyhGGYacl/g6wuvKDXDc3eOEa9qwGYYKmD35O8wpyecpxEWOaVYH4hEIYjPrj8U9P+7qvpPRORPAPwPIvK/rAuuKmtLzrhE5O8D+PsA8OOPux+cYlUqGp0W4UvQwIWq9XorMCCTqIdFi6a73DNgdtEANePGafVpraFN1mxlkuyqFPDfzTesHrZQEvicC1jg96ONvcdjUkDuno+wMqkK2nN967OvCkLZg7hXrtcKyrn+QB1rEhw18ut3QmFR9bKg7k3x0mLV+g6OjGtI0A4kgL3sMRnW8lnViKfmTlJwhnVXzIo3pikJLNG6Lo0G4+adCHI+vRbg7+s0EXRApfN6ETj11jA8KYkKkskyic9UZi11j33d2DxHS0KalHO0jEXoHlzBVQLcDB+p62Pl1ti0xRjyVTF2aon7X+ekHJjf97q2K3guf18UC9KZ79DlHIXi5zW956Alf6bXoLWnOY85n2gu9yrPUjaRatC2us6rdVwE0G8D+K1C34ENG3SjFCwqSJFbqgLpgv47ADp8E+0zKgLZBPjbHbIZ+Kk8vjH0RBXTrY4LLUeZxtWb1L3RjAIB3vPMzQCC1zPA8sD1fHFK9apCloUAlvsUb2kFUxHyeHkt6lvZe5BeX0kdX/PomeAWVDjgsHhZGilS+XC8X+RqGpGqEcNRt32+KDRcS1bCCkOVn+kxLZ4/HqDet0Y1+nWcRybIjsWzbONl8jicxk3ZM56g3ToFZ3Ot08tVdt9DxNmoGAJAsejGRJa/VWNEQDbVGAcbXNmiNEgzecAGdi9IJZ5GFsGjUkmP+wDKLgVC3ocGwLwXUwxEKRMAEfNSsIY+v2vdeW1UKct8TJQ5/iL/a4A3jOyRo0ZFgXHjAegvyn3eLydHID2nexS65080oHt8Oi3cVJgC3KMmulMWvVxeO/s96S7lhIRibDbRBJlplCHQpyFNQMOIeQrTMDU8t4Aeq3PYS8RCyejxlsh5Mxn9+LAqP+8fH3ZPX6utNZytw4buSprYmBiWBslkXfD+RgVWEU27YUhXQrqXurzfd2xbw/22Yd87Gu8LREncxzHx8TGw7x23W4dqs4gKMXAv3FcgrPg0GEWFNA3kGAQtnregquGtxsW7Q9pS0pjLoqgudw2ZfXH9QaBfVf+Jv/+liPwjAP8OgH8qIn9XVf9cRP4ugL/85Lt/BuDPAOBf+TtfiuHQD1lzB5drNXQVKwZEM9GnakbVoloBeIIXWryK8HglIDQtE8NLSz0ej0gmEZGF8RKwVuviq1Ajn3e8B3DlzJ1RtC0bb7AbLpqVG2Xt+qyQ8LpCDw8g14OVTkKIxdjynQd+EWT4BJCR6brwuwJ9hqVotcI4QxrTXFsAwhq9eWfd+twINyggYFk7Z8xUDgAHReUzBP0iFgYBYc1nj/NHzYfwUapGXKovABTfyYkPBl6YLus6t9I0bev84PJ1NhmrnYwpZ4SgF6sAppDW6S2M/vb50AAAIABJREFURAwosAwf997DOSI21JOI0lpTpqElROXF36kwUYni/YIWlo+KV3K5nAEBzEKUco6C+npmfTeW8b20YgQ92HCDjuxmpmCOtflRhvNkzOuYCZBfKeSkb5ZZtCpUdY0S8S6A712hf3FApwvrvUOj7rd9JnIc4AIVAP5GoP/caUJI34C+CfoPDbL7GfPzbA43VvPSsOgeB6vKJI+sFsqG7HIbBgAqMeqKguQ6LEs/1yocIODlua/04/+eZvpyPquF7p4Vz/qikSOMHRWBXWil7siVCwsydKlvHdKtnDB6KgQBVAnSkKC2eYhSdlsu4R8v9j/W2+cw/Gxecx74fdUs/Uvedx4HjsfDfzecZloobqHEc/3msPLJc2DO5u+nVdc5DPT3noBIFQvoD0hS+GnlW4KUsxt5AeG2MpE2yzyLl0OKZPzOpEoqRAXUwJSCEUFGBMorME5DFQCZzh9zBmEPAI1jVHYVTGG2JFmTqQ3eSVqen2G3kjgPabBw4OXhlzTKTS1J5hORaIvFS3MF5P6sglloeDTl18rvAqUhaKkUZmtpdDVUnzxCsSaxZi4fWkPTidmrwQ/oWz05M+6dq4OwcHOX6GGQNtE0K+rNOXGcBx7HYaA/ZLLzIC8oYjxYHfQ/cJ4nvn2zctY0iZlytWF2RVTk8dDCGTqmOs+U0BgVNJYprJlc6IpofUNvDW9fvmDfN9z2jq17qJaePveGczY8HhPf3k+ImIIw1Uu4TlPzBC3WiYVUaFAy4E/WUgG/QNQKzSwyp6XnILGXr4MbK5jXacD/imeer39h0C8iPwJoqvpb//d/COA/A/DfAviPAfxDf/9vfp/7xURTDQ1LCMCDC9PeZ7GsFSIks10tzuky4sJRaKzWPFq5dbkvLTRLt1wpzBUpbF5ZpKR89tV8q1QMza1l5nbv5grPw5UKzpwsi8aqEMaJLJa/jgNP41gskQvwQxkP4kDzZ36XWmWPsRXl6rq3Pi4yDXWGBAoaHn5f67bM79nSH9bA5W+Zv69OR9NdYmOcbkWw/TinKUzW/TBHWS/GeRM4isDL1dXPF1qtPwZgpqLp4MZLsXHMVJpe0Uc8xZk+qyxw72ktVVoWAKs+4c8UrEC1ghKSd8Al0jGFv2ac7pL/IBmfaONwQe6Vhyx2VuM5uRdcw1yvPL9JI+u5LQJHETHMBkCR1ujpu12VVM+FyfmmVdmEPi0vc7GYhLW2jHNZt1ijall+sWfLeSK9qplU3QyUXhqSTSbdU+OL9XEBTQElJ6C/G9BzQt4Esgssp6Zdxmedg6dX97LzaWOi0A1FtSg6ofi5+36quvElgQXpRso8af0OC+6yEM7bhdWNEvCvYH4F/c88FcsYee5FkseRnrju3OdVeTBv3uE12aPiGEMzLs8XfxIbKRKgiBsQCHAoxVqbSUcXuhlFfi2nJdbVK8pohm3U2O+g5wLQEvSVOHrQMDBjfVFfF7mFuDcNWSmPq5SlAYKgY6fXCw6cx8DAiSmADE+87whQTlDPYbBS2rPyjIi1n2LnlsB/yARzq9RlYC3RaV7GcpZDYbgAbdKSrr+X8l/dR1t2CWWZw1XAu3ZP6zir3Iv0xDjFgyWeAXVLMtBkekJ0rjfpr7WOc0xs8C7tLc8W+WLQSuGjT8K9rq3PKfikNvRoZmXKpCkYCgs58269kTjLjt4GNPtGS/PzenEExFGLLNMZcxZkT4HzPHE8MjdBVa26jmMF6x7Mgiz1DkX1D94py1gUBYdEyMzA2QTbe/Mxduy1i7ICQId5CxpUBZGgq+I/+3KzeIqvc/R62ayy1r6rdQfvGc5DOt8d9HMOVCRZ5lyByF1r3Yw++37zqpRblsH+zvWHWPr/FMA/cmazAfgvVfW/E5H/GcB/LSL/CYD/DcDf+7kbcRM6sGjPFMgU3Ko+YSlZ9JSE8W/7AxeJmndYj72Bx3RGaBZfu1dUwWGSFFzAjIHH42FE7pb+AM+FyK8WqmWOZPpPrnPEeAnQNj9A++1mnWuLEsD7pKX/ubY/58rDYt6BNcmvtV6+c7Wo1JjeTObjc3rvuN2swRQtDpxIdLdTTaDm/2fFnXMMK7tXQH80JIJiigkOax4zswtyWd/BRiw+n+2aQMM1gYJJxtFkZw53b5vFJExCZe24rhUQdjLU8jn/UgC1J0soyMBdcUQqkJxzDWFIurPvU5D0Jrjd9nLToojy5zkxHcxRcdw9bGNiBfT1RWA/pnqnU0HnmZozxkKaOo4TY3gSUwgJO5NMcq36UABpBwbC9T0zcZ4g98m7pM7GY+wzBZvfOxldJkZbl9kZfThoBWVzPfIHuFBVdWXhsuccewWRQNJGnWzqeqkUqSr0NEGHqD+d55egrfWOXdziWJVL0zYh3oUVCugHMP7P00KA/rU72h9vJZGz8qEWa9rbiHNjx+lc6NSa5uRLtShDi/UoY95jb7DyL3osKhCtADM8TtzPAmSvnohVieE9yF8NNZI3ZkCFhlI8xmkx+QBOL+0qckCh+Pj4wNeffoJ+HRiPD8zH8MRZayA05wh6EdsYj7ZizPbAWcKaksfkmeC1AoyLMsP5xrzxxE8fjwOPx3uciTzjCcTh8sX4zYCIvc8h0DE95M9BvZeFdU0+wLOh8BLmE2F8CSUazNtx8/yyL/e7l4C1sZ3ngff39+yOPq1DagUztR+CFYUYaUUWf4pKKG0BHWnE0wmBV1XyuY+zhH1CAE+0tPkSwPJ8igN+L3GrqXgWUl8vV1in0ztBJfHAT1+/Bi1a0RCBNDvPrXsKstIibWs9ZViZZbFKZMKZquKcJ4dsdLPv1ijPmFXwXKh6fPg0u4KXEW4yMVIrT1pEysLmCdS1QqFhJqCFY/oENDETwHKeDbfbG1rruO33SyVBWfcbJufsfB14HB9ByyET3UuQZcZZgtjO+P3WIF2sIetxQiHYNuuq3DNTG4n2694VbKBG/1YOe2CME9/ev0FV8f7tG3pvuL/dcN937LcNX95uzlt2N3DtmLph6gbFjomOqQKZYtUgy7OlbyZLpUNh9Lzf7iEbgiZjm1xO+zmulYpY1jsjWow/3257lHTdvGzs965/YdCvqv8rgH/rxe//GsB/8P/uZs+/qkv3/Sm8+G6A/BTeVAjo3quWpfo9u0oVCmD53CLs44T6NJ6E1Ou/8ef63LCUFcFJQAUXJsankliu9/u5kKLr+hiQ/9xCz/WrlmJ7RmlyFkLvlVWhPPslIeqyuVqoP5SGV/e87M31zrSopKKlFmpiLXbDkgcRi/N0xlOHmMKDysCL4QOh8GhRVmM5sNLuE32U0IgK+KvXpCqRAT4uS7Ja8OwDgudzEwrCZ9eFlu39k/FzfSXd/zEPPxcVNBPo1UH1YoEGgDYbZCIEpgogXSK0pD57UbyqgqC6AE/+HGNB7i3nyIRcKWOtAI6CPZW711f1NAAAzol5KqxDZXML0Ig1jbWqQoLPgzxtVQICWHOvCeChkIdafP+eClPlC7Wk76vQJUXGAC/5Mrnzfi//NAEi0tLIdXzN+1ZDBxSYMuO5uSfP/CzXxVZgSREre/jyuuxzBdlci/M8gTO9aXHWXszjuh5UAG2A9ta7hwLOuTbLK/yIXs7wdhbAH461sjfBh/xzizf8Mq6UDalEpWGoWPv9lpXKgoUXI5nlEq2gX4AMj2oZGkbQP6flzLDCnckLTfYE51A8j8UgYVNNwbrQkwKWCe4W3mqrqvy+TFEKI05jiinSFoeOrNQW9EE+Ue6/yHqJ+9WL4Zmms5hy0oUNoiovtdMdeymrwYOP5JowFrwaE/ks9ihi4nc9M3p5R/mLrWlOouIO9hvooV8p1JOqDYC36Ijcei9lxEv8+bKOVg2qhrmYtzhpm3kmp1cztEqNg2Sfl6yYTDk/yb2OrSoGJH4m558LM1XTmwArJx3zhmLftgDYMwqKOf3ArfyKUOSWppChrLo8aWZkspwH8MDFoPm7DLN1nMX5oRRkaO41ax01H/a7PBG/kI68QAVZ9TLQS2uwWW0rnFm/cAXNdIvY/T0mzYFTMBNNBslEy1YsjySsANSuyQmZ4Sdzqe/MDQgrD8wNWrkoKxEE4HdmaiEoCWqyjGYClquwvIJ4E24HVDN22EpEGpGPIuyuYIgNynrv8bn/h7p37ZIkOa7ErrlHZFZ1zwxmMCBe5JK70h7p//8gSYcrYUkCIECAQHdVZribPphdM/PI7IE+jqJPdVVlZUb4w9zs2nvbNlxfriuQIij1+ZkA02Rm+qjU+IATTGkmSEfXX3h5v4p47gLVY+1cF5ZZLpWam3XaPQOFo3oBEMyiMuVUEldapLitSlOEP1WhwfCdNtG3DX3zGGsXvGQwVJxq+FJ4ptSrUkx3Pd4P3N9vi0WGowq6GmzjLTFaq3alIWS1/IuZBViVZY8CnOn6XgL4ymRIc9U7AiCqMuz77g3ZqgU09w5Tob89gP/08QsgHzvar3agr5W0FvuRJvOkqzQZtJ271hpu+26hGBE2MT2uuWPfdrQ2sG9mEWaJNDbF2bc9vG9mxcszmkSEWJPr9YImDfc/v+H4ww247cDrBpSk2vf394zJFvMg0ntGmmJjo+p1CM6nrhT9YQB/UfSfXbD9cl+001ohTFVxv9/x9v5mxQnGEWdsKi1sluRZvYErEPFzWe45C6DXqdaZuGuhq0dDR6WPOdeE/tzWM83RskmLaYa3cWyr0i3BdzIsbhRBC4zjwNvnz9DPA/PTO+abeXRZaCDPZAHARfyYxyF5Xa3trgsoTKMTwDwkD3QRACpePU4gRLItk2OhCp0No7MDtYM0Yf7BxBx3DJ24BZMzGr41gY4Nc1jxgnHcQbTMYJveDARHuB55GxCe3MJtXI7YWWDyam8b0VCAEOsVtkEmvfgSwF+VDckysZtALIw6arlRcwxYRKGCiY3ROA+pBEXpzplhjr5YwRGtqUQC4zEH3t7v3FB/BOUaEXGDREaXxLpxR00uTxzHu+2ge0B69wTP5eIZ4GRzDvEMng1fiTEncAyLBZf3ehuzigeOwXLeQ6YXcG1GMoG0mfKyNfR9Q9ssL+Fy2WFldY0/zbk5j7hDjsNGKh6NsF/cW7BZYQQA90DGToowK/7b+zs+v725pf9mZ8FpKponHhm2nM39yj5Yd8cSykVvJHMIJyLUhu3qHRyHEl7FjxhYf79ZadzpeVCXi/H8jx8/YE5Ek7Q5Ju5DMLRhzoYxG44BvL17oRcZqYAUDDmnglke0vtD191MYqYBwNYwqwJlTl802ox5MOQpcyV/6PrRgP6qrZ+t1avA44E07fOHgP8qXNIKwoNWLQhBD5LA7hxLHsCz6Bwrc6/zyc+lhUeX0oFk+vWZyxfnznmX+9WLicP56PXvZzBmLjxjMEzKnLNO7HEtqVwABHJ9qUZjltK23OGsiPCe9XtZeNB6zDyFsNDU+u+qS/nHuEfZaylkwXvmop+s7afxPb/Kfc97VMfgYSMTMCYEH3trAMPJTnXg22k/Q0mVGWVkqUikW8/DNmKaVDRy3kHTOov7GOfjksCDPy97U6avT/bu9DNhy7LfCoha/GsvJfrgjFq4dgPQQ6FvZWSXZmCiSwDJCgjiO5XLE+in237OaQq0rvG7tHa13qPTL3t5NE0PQU1arhVLQmjqqixt22Z18Mcd+OyhLpsxctMnvJKSzoipZe16CgsABobIH4pBgrxIAMi7ArcJ+Uatz7BU5W6lqakT7d6WtVtyZ0qN6OQ3K73wPD07Q/VvQWz6uGfL/U7gPn9elXD70/nsrQogf65/z7El2ASY0OcK+DEw7wfm4TH9g2EwZC3Oi1tAx3yilvPpoOeHOMmzuaZQKZ+W4oGVTBqWvMGi2LCUtQyXjV6daRzDc6QyXyEW9rS+VZZ1p6NzcQXK3Gpk4c96GhtcCUIjPyBQ9nyIQmfcoMrD6tlmp2NlQvtUzFEBMz9fwD7I0+r6Iseq1FMyn0AA04k8bp6d2lfG6c8TBEiDwmvxS7HS+nsXgnAZ2soGaL5vHal9n87bIBLhiiwEwBh4WajSx8O1Q8EdTGR2Dz+bywUdFD7EMB9rluphbjLA0pTZbZgWfklDQPBXVi/KSohWxcf6JwQ+K2F+1dhaV1wqqSx/X2mRPgaNDUXix1gm31Nh2KeN7367RRhk38yDdbsf6NMabhmvtHMwPZZ/TibsAuwLk3wYJ3lTxuNrFkYNn5eTFcIwGBUVbfgPvhwpPY0KDvzS9aMB/St44P9JFAF0HDAoNUEBADa16BHHbwkmsoBVAEXoV5KxoxavFYXhQYkoANSGqevPmtV8rILLXBJXQkurpb34DMiSFEsqD4aZHD/iu/i7PT7jW/k5LcTAqiO2Rrb125ZjG0PAeOczsKtMXl0zN42/lPwylGtrKeIt1GvYBOPTejyfFxuzgOABaQ1bSrkCEBlxaJhAtiqGafVbLONcRjHGtPmhFrHSZQtvdua9zt1DrPxGldGmoCr7AYChUEOB6VUAfBBgy3FevW/YN7fOuEBjZ07AYhmhgNJKA6OZ6CgZZQFcLKlbi6GQvlnFDCBHL1Ij2cDSjQS4ACwxl8BNE7C27u8til+TpN3WGuQO4N8nMBXy4bAQFLYRFwEr0sAt5vLeokSSqgLvgP7LAVwb+s92yLUkshPoc++RXjAK294nhle/unj1LZbkHHOaVUQa9iJoGEPN9di2DdtuTfF662HZMmDv8+V+skJSb1aWsHpkBIA2yMyEXVUvJUhpf7osN8Fp6JRETgteAMG/KPCbO/ChY/u7iylK5HMnEG7n3ZSim5fDW3qE+JliohgFToOgdWsFb+E5KcjSyFJ4ueRjq4BawA4t2uR3jvqmCkScxwSocFr0PUz5kICTfCAa3hH8K4ASLmiCdWIMhR4jKs2QHGtpZCjPBOJ+BJMU6lENLMIxVzkhAg+lhPWTILxb+EaRS7LyFwMma2UuscUwy+nbW5Edufx63PDeWyTzHsOSlwFAWa3Iz4h6DgPBE5TKY+lmTDAigkmD0TGDDwNGX1YhiFZoxJoQ5DQRdJCfdLPgUrEoexnryKPvY4BiWZ/lIh0VRcM4pXuiVIHJG7ocXcUrAE8ydQ+DlfiUvOeCKu1vm3dzTa8UjY0zaCuUKo/3D6OLauT50zKd8kzW/QeiuhMt4qRJLbQ0izyIlIai4EAEchcrFe10S6BpEQauOI47pg6rIHUfEJlowpw0yjCCfuSeO82MaV6mT58/m6V/HLjfPUfSvZ2x98J1gaNbk20DirvnGmk3ecb8rkQMpNcZatoSJCms7uT7CzcuCkJ5UTFf2/04cD8G9v2Gt/e7yZJh8zkmMLV71R7B/Zj4/H6Pc2c7VmkkFZX6O/c2FWL+PXM+aFyNc61UeHQ550avLLLxRJiU60cD+gv/S+tR+fMSOw4yzRT8fI8BKcaYrRbis8W0PNqE2qnU9Bn4h4CvFzW4uuEhLNxCsVTS0eV9q8W4gH1Zf15HVgRr/G6DCcFTxmFJg9aUpJYctDVjQq/dP+ISi/CoC1U1c5lizcqqSh3jLcA30fZSwvL5XCTWNY7FgwBdlbF47bQeFfiH4AAALyVZQ8Baz/HQulbH9rj/yUDKyE7z4D6WkAS/twDLOpggE2jfMGXiaEz0zOWI0LRJb0cM2DLiXKGVXHGz7qmalb31MuICNuU5rQMUJMlQA/RLWxTg5TNkUkMhfxyQu0A+TMju82lJFY4mQetbxMOrAndg/vtAe1X076/W1MkXoxWgRVrutcwq0lICCLbdAeC7ucfNygu0PgqgyfPJefbuLu/94gns1wT9HupzpsXhvRKWNalHWNZ4/bNVK9azKBW1itYC4vnezwq9HWjfCvrfdUs6rSAyPiPep2JGOM85F+jszUg2lJXQmIjLyT3MMwcbQKi+RsHFCigMdbK/ARIlD3N/ec3ZMWdHeCQoXH1tQyn1z1Hg8iuGqAwRGuaJmykwGxuiAQAS9IfxoNwjZRGQZ/7MP1lSNTGpvxxrSrDGP9Q92ebE5oUcphQAqYp5ZKEJ2wOOFZijrmsmN8fY3Xtlg5pRGYSGr+mZoCw3WNdwuoFgjAT9Iu4hZ18MkkjMycBlixKwsIIAlQ+eLvJ2Gh7i68mVWJyLvCppdvKmzY/7vz4MsQuqUB3wYFxb1xMt2m2NJrKEq3Nfnz+TvutH0Bua5tniVTijrZVji+lzZx+WaLxV11iSjh6syshqYBo0i5RDvYUBxwym6a2wXhFuoXeDQRPy1htEeuxHlqP08aqV6pxz4O3tDbfbHce4437cISJeISerAcZ4HfjrZO6LhrHCjCBUpJIYEvDn3I0EVk8ITp8AXJ6yI7Rm9b7b7cD9zuIHVL4BhdXsHxOAKPR2X+6Mso/Lc090K+fNV132h3iNe2H3KGenfJzeir91/ThAP0EHkT9PbuGMAerIjGCbHmABJc6w92i9TiZkQmfGvchgeZgXUOkKg3U1XAUwnIGEGwtlvEjhYmf0b4P9AE8uvB5BF4pQDZQXv2euAstYPVqZnlWiWcEaE60EtZEXARQrQdAi2GbzGNYG3QvgFixUrScCrm67lNGP4DrGreZnHd7CnELnfr+btcqVuFCyhLaOVSbY/klapX3vIgGtJbCo+5WKibgM0dhrelUkaBUwyyHj9s2dvm1bMIvAFL7fpFcoMJFVjOQJzUSlIlWM1jx+2vZqzKxwBHUZxD1WhNL5sCdOowT09Yq/V0FRv87MTQH96wDeFNoatDXgLpZ3d0aCPCvCz5f7cJ39as3ugT9PUx4+duDqdbCHhILDfa7KJL1WzT1/mVBqVhv+nZV0qiDkD2eQVz1n5ENULhdFie/TtMKdL4LW8/Lw9yaVH/j2UtDPgbAW83NNgnYSONRKY835otPMceC+bXaWjyPBagFw/HzlHxXsL+P2vU3aWHnBM+WdnCD5DmmsLZ95/Nxpv51n1dr52a9gjXEeY2DbvGnOmNDD+jhgpoXtURGzZERZ4jnzTBH0a1n3875m0nJ+llDUUWbwGOunIYsHJOFoBW/AOO44esPrS8c3X+/mqSjWwTCRKWDhCK4ke5WZ/bJh2zpud8X7+8D7beLPf7mB+jMTXmOuTnZUbFU1yuSeK09RNhDsc5/4mggC8EmZK6/mMdwNE6LAwPR+AsUbmUTm66SGFqWDHekNzzlz9GZzqoI2BQy758jXSme2fhYWWvYW7s0mLyxgP+bidNE8xIn7bXTrNO/rRIMkiE0oZ9YJxv92j6yUw2861YF50kcr54X7wogDlku10BtT6pvcDf+wsqGOQj8VfAIsgVwNh3QrcA3D0EreMrOsJEtDQy2EKelHSComtwurY/WuUXDNnCPy46YWS78IRN1rYe3oifrM8OO5LrHI/kz2B5oATAOxLwGsglKfEK/Io7CuvSa7SvGBGPPK/RPVlr2Lz4QJAVBk+WkpMHOy1DSPUzXzFTD6hetHAfor+ANQALP/3ZkgyOQD8CYjBRBJp/u+h3Czz0+0diAr1Qii9qrUxfLnNZaiVHM3+eqeAekDmC/KAN2wzwCSIEHoEnrCdUgUE8ykLaCUglczkWxmp9Ea0mKWmMNjicual+clAxGMYUlYAEJYMvH0KGEAuNvYLw6OWbP5mcBnLd4zcPyyEmIVW1QVQwf0sANg7s2J+9069VVg0gmMHojLwy2ENYQB6ISodTxm12M2PRuMa8YDrzVwTqFnM0sZ5YCMAJKlNrdtYt+LxweKLqy7u0UFm+Y5Fa3nsyttMf54SrMwMBFs3cqtURlLcbqCfiiSATs9LspYAf6xf0XIWzt7t6Oc6qnHmVBA/2MAv7MxwseGvq1lbWNGGqi/dhvmni30MQX43QA2hfxDR/vQ7bXgDyeh5hcb2yngDXi4X5m8rlBs+wZ65sgJCB4D+COFHKMqq4Jf13zrGwQZEsF5L0qcFqIi9FvOgSfdl9cUigEFu+xWK198flpIRe1Awae01rD1jumNkayE3h0KKw0rIhYC5oKUgLMK91bCuRYgHs95NHSIYJnXutXkPzWEryR2AosiVz8jUrwAfM29UGb46dHy3vb8CEv3GBuGdwjFfQLHHTjqeua6UY4ma155nJYjczbuxH1UT6Cfci9vpzyogJ0bESgBMWilRih2VFDud7vJT7664te/uGDfvFQ1AFWWteTIBVCvLON88fqyYdt3vL8p3t4O/PFPA3/4wxtut+mWW4067LkgAG2KBLm9b1HJJSvA5P6UWcNAnUYuC2OX8z0ZqmryoAW90yDDxooV9PMcs9pMC8WCd2apV5MlOgd0uLfY78Q4+TFnACx7Zg03zXCYOVdZloqoj6k3j6GnIl9C/4qCSWWQQF9zWg+XNMtDau5tJD1YI8Kx8B6j3eRnqhryleGj97sn9vtZadLQDyv9ufWG1mtFMJpPFRgT1rtCXSGwcp6UIwTPFnZi+1k9i9F3JWrbpzGtQaCNCeZUtkzODj0wRreCBFC02a0M5yDo1zB+NffUaYRTGc8d08KMjmP4+1P21qagrLMvbQMU6NuOTW0PVAWQhsbzqsXTQBkWhp0T86uXrvyf8pmf52sCNz4AoQxEzpla8ZC/df0oQD8vWpiXa9GW0kJP7XHpEFc+f2a4Z23r/B7+XheZWlS9z1OAEUqKLmCfyXEomyc9rbymwMTok7BPMez5/GQM6+v2+zkWn3+Lsx/CeIb1nHM5u8r4fuN7xZrOd2jO0SeQcz65gs31a6AyqwQp86Xinqnr1HhkYGg28qhWywWgcS2DMbk1Hwn4m3ccNDm4Hg4yFq5xZZhxhqvcQrFi8Zgz/CH2MMdC0AUghRwPq2SYT9Oea+bxAAsAbunZmjqhQ5Kpw2IkUzgXeo2ZVnpOAVrproJcn6lbv1bl1RYM0PcJHABuGklwcCGgDafk9XJ2SrhIICt/cFpKxayrE9Ch0Ldpjam6AtvzMxzzA8t/Wv7BLKF/0eGbzcYqgHZhLGXPGAagdywglec9AacAOzzQbqlJAAAgAElEQVTXwoUGzTRxvquiqwvNcg7Vorpe5ezz3twPATAU+GSKcnvtEdvPFV6ef/69nnHSHQDpVD4aIvfmCZ/FCfAnX5L4/oyvLUApXjPAkQCpKNyFb3FFaCEj4K88hJUweO4sNKs8bxvAZpW+HvFVIvQqnVY/wAr+Y7HrOxRRe5sfOS3d8gN5Jr3Oe9/x4dX4NMsbRklBrzD11ccd18uGrbeoOKSedIhQ6Am4zWggrWHfbT3m1nBsDS/Xjp98veN+KMih74fgCEX7dObIu9gdFQxFTN7UYk/yvFevsr0ky7497APpkTI6N2NdeGGI43qATPn0kC2fhwr3coYXjTeknAaSN0ZFK35BsCRvQhZAb3uv5Qwg+Iq4zIRmEQI+twxyAYzJQ1soVZHvqPS8IOkemWsVBKdqRpNyMReSSsSSu3jCPAvPYDXDJla0gUm+PloRCQPstm04jh5W+dyT5C2Uh3amUz4p6S6GTRxjoF/ubuAkvkDmSzX28HCNywx93r+hsDM5rXkU4aDXDJLlo/1NWV2HWI740TFnodVEoE+0uLKu4HYXuX5+Hwd5ZqfP+Ov5+vGAfk0t+eHQqwQRTi1tmm/3EKq0FDAWE0gQykM34V0AZ9lseyeAAprPwLn8L76RtGBQ6NOCFBZZnTjuVv6OHojWrM0yNW4AwbghiCTKSC5lnCNqQicKY6LVz8IULpfLg8ADECDcgP4dtWlPJh2l9ZPPIdhn/KAtQK7NVMX9frOD5ALkfrd4PVYCIeOTlu60Nhrux2GhWFs2x6JM5xxrKVEoIjxHmnWB5FCaiFeGMTcfFUJWJmIW/rZtgAj0/d3vKcgGMEfup6/3mDag4AvB7CgA0poeNDAnMAV9g7kVRXAfAwLB5Xp15tfBrocCATZjHqqKNg6Mo+NyvUFaw3Aaat3KRwbzAXDcaZUx67JZcrdgOdxjMnPpzapADFdVHOhaR8XunodtOTdcZFVbD/H1j8SvA5j/eof+ZaDNZFp021pDsgTNtOzBBQVBgK7/+SVxHtX3YvzbO8bvBfJ9h/xiDyEXtFnGzJKGAuB6vaK1hpfri5+Lm1dc0GjeVJN44cKCzfhutxsUivttxLkQEQ8RGdZcy0vbfnh9xdY26P1ulsLGsrvusRMr0WnrPCLhsQJuAJhiVtol3pVnvwBq2+OGrTXIGzD/+QZ5aej/9Ir20YSRhY9RQNnaTMmyj/xirL8vv3V83JrTVw9gdzZ+JNCovFuX91SwYCBIy2ezpLKqgZBtX/kgvWgM2Vp4nNP6vu+WdO0lhplUCgAfXl8jL2Pbd+MTQy0X5uMd2DUVe1S4eBLSJREby3skwF21iqYEIYOjooZF1y1iIRQcyoqf/qTjV7/YAZ14f39LowrMi7VvG/Z9w+t1d9mWPBxhbBlgEQXKi4ylV1PUp2L/9oqvv/oABM9q+M2/3PD7P9wNaCyKOnlNxhQfY+D9/bbs+cvra3hT1Xl5KAJJKYCXXRwzexYo4DzdXugOxMkvkt5SBT7LdosDB/rGbt1e3lgnRM36/P7+FgUR5pyQ1q25YWvofV8UFM6Zm0YaFrGmmgwtQzkLdk7PwC/5ZHdlLooUNJt3GLWKfOxeFtVKCa95eR8/5pnk3j9437hMFbzH2XSDGpVu6jhNs4Sr8wGTN5nIS+MHrduqwOWyO/+fppA1MUOeJujvvRZPydK0tucjDDiF7DDmgU/vn+JZsS+Ah7xapSHm63HmX339NV5eXqBqnsvuoVZzMg/KeMzeGjaPBJAuEWbEUtByvdpeNw//cToDEiYl4C9XyJmq1CWOtbecDARI/NNax+pRRdLZ/69AP4DT0qx/KZuKs4AJoVLvUbhpAewA4jNx/PSJBd9rvVaNmxfDIQLwFTB+tvZX6x2tNhVILcMsz180tvIMLJud7s54hqSWSSBdP0Pwzvj/3lfrylNhRcIqoMqekIxZJpNMi8XkZK05WwGrtb0CnnMISbWALNV4fD0IyGOPKyihleYcN8rdL/epO11xZAjpGoMqHIvTgKxJ1AoD/bQsCxWT4vqOETptpCUw3aBzWO+D1Tosy9oysbaX5EWWw1MaIEq418PljLaGklTLb1hbsCo/EWt4B3BDhKvVzyf3W+8LVOU8/suzucw3P6+HAocC96wWYsDBJWJ9Tswt6cZ6X/Tl/jq10EGo0+XeWIwN1T1tyuVAL96wcbMcGBkeznHiHxyb8L8TpiQ/si1MwRB8/WH7ii1oqnleALP6+wcWy+jps3W9ISW0yv91Vv1q27J28Xkkj8jzqg/PqrSRYUL2vjHyuQa4UqmmsJ9tjfMPmjjNZ/HCEECJeLWuzSoy9e65JwrsE7oZ6CWWXJfqOei3eed7cl6r0WVVgpL3lJpD8T+BfzEcQgB8/LDh6692qM6s8OWf3rfNGwhZSFPsB9TpJp9fixew90QaxqzZVu+Cyw5Is86kIh0fPwKf33zsTpssCR7l1GEv1FLXy7KJLK9XHl7j5ZfVF65n+TU2qXjnlvdTbOuTvXR6ZzkgEYhaHtUZjqdhZ5U5Cgla4f04h8prsMzV3top/0P25XOtU6xaeA4c5J7knSrHxapz1ieBZ0+kJLBTIZ4jlGkWh+DSV0OnCOWl83XxfCShjG1gRS3yh5S1AqB6jP39qqCCQMNsltxe5UmNcCD/Sx5JxMErw5kIeSqUJuiHNLRZZLJYuPOXvUm+J/SkbA3Xiyeae+Ju5W7BhyoP5uunn2vm3CMPrzza5WMMutBQfN7yyXLYKa/+1vUjA/1fuHwhRMTLnQFUQ+01xQOzyA+CAIM1fgE/EJFwYtvIbr1POEV+zgmDHgYmjtSwlXRrr+EckeiDWtbq8f4BzoWbmIDi/DW81XkC9BnzqIAfMEvZ/W7Mfd+HC8INIi1jnJfDUJ8pzkR9rVu6EUnwnNeigfpam7Jhn2ntQGt3qGbJTCoj99s9GgSxkhAtUrTg8RpjmKehKG3mtutWvWPruFyv1iypWJUqkExLR+NNoaroPcF0cw9S75vnV/hrXraSypXOievLi1mlfO4sH+uPM8WFVo045BrWrOF1jAHgdrvh01//ivdpTIh7EkrE5WKJeNvmlti00gRtiZH5ULOXHGPgKBJUi7AjEKiginHd7FYaydzNLFpyB+aLQG8jGnFV4EUBeLlcAmSkAtIsOY/gOARXMv7eWoyDdEKlcI4BQTbMCibIq+wz53a5XBKUOO22RmBfTqHT7DgOoxsHnDwnUsZTFWoZwPj3d8i9od0t/8IeVXkPf2YiP8JNz/OiU5cqR1FQoHeYVXxbFCTFGoYnw860jkfhk0KEhojypRpncr+Y5+L19RWXywWXyxWX/QLy4nqzqsiTHz1USRNa/5I4eRt+hnzD8E6CelWFvL9baMsYOAiGCrh6JvDI41preHl5wb7veLm+YL9cjJ8poDIwv7oB90egCprZnrz+BNeegGy5x+mWuXL8wfkXgH0X/OoXV7y+5lneNsVlt/W97FvxVksoMWmIUs9jmFGpqTWj4dbS67xv1iyPcdym+Ew/Ez14busd//UfXvD3v0AAnL9+GvjNv7zhdk8gs+/Gu/rWY89IoywLKtCokmSW2KRv0nKW2i717h3YkW/YGbHFCfOJyEIDOpljBwufMVEKRQN0QDBhaZgOBZq4oabSk+Tz62CYXMqXW/McK2tYRa8GQODs8+z++VrCU+ysbF6G837cU4lGFiiJswFYjLkI9m2PvDCOmZ7UlTedjZA5x+XcSJ0qzR/uERlnLw+Vp+fYq+YEEYP5kpRxMJfMt1jjp8WIYEqs8bcxJ4ZaiNLUTFom+FV4szSnr8b8Ft+/l/sd9/stvPnDe1gYvfm+uLL33bdX/O///WvcD8H//Ncb3t4s/n+qKRXHGNj5jAr04/969rUk92rZf2ID0pxiqhtIyr4G3+ZrmjRIQ/SXcGu9frSgX5OKsc7EFoULtFh+6rvK354/YLXAVQs3iYMnLBSNAqD5GWM+88GyX4F/tSpWQEZrTA5Jy6HK+9tcnoP+5xbzFXDz8NRGPJW5MhEnG5hRjub6xetJZXag/c2qWup1YaH1xYo/2W1vYs6shU8GxQYede6syHS5XLDve/zNEnrv3HBjqicgv21bJKFxrMGjXGgS+ACZGN5gXTUZI9xEIryGcfMcFy+zUGa8OCAF9KditnQ6Lcr9nBOjdfQ+8P5+AQC8v70FeCUYohVi23b03nDZdhPgvqfQZAz0zd7HALx8J0M74irrdU4E75snpXriKCsnMSkUE5C+AZtEmUSCfdL/slYFLC4gVAvRqFtakEJpjfm2z7G52dnqfL74+anqlsy+7l3gtBWcBZAvZ6DmlfC15ftQyzl4U2gH0FMpXD4TCn1alWL8D2CSAtKA8FRW26o8ch1LU1ekp1cuOy3NwpOefNU92/cdl8sF1+sV18s13hPx2ZrNf+wcZ7Wcx71A/J3jOI+9gn7jkakQK8N7ivVT/MZUKvI+JmE5l20zK/9+2XG9XELxm5eOeamH5skV61f3/stvz+s54F+EPn8SA7/Xa8P3P33FN19v8RDyxSjbW+Te5mFo1E+y6ppgyMj1gfEu8q/w7Lm1vzaII+jfunUUf7l6wzkAaA1/+vMdv/+DJ8NKrgUB+T26kGu8HrL7tOcAslsq8ryOwf0sWhLBT2nMKc5A6/4D4n1iHAgWeTg1Gx82aAnpkjiXxn8qwOW3xCNScH81cDBMkoDflkziux37WrKaCrt7Xaj8+kN5DlPRQXitDfRv5V5Z1Sfp4InXvND6c76pAfqtk3XFH+s6LMyFitmyTjVsZfV7BubRupbp+SEOWUbmmEcgYamJ5m0+v2MM6yXkSgU3oho4mXz8aOy0t/cueH3p+Ol3V7y9A7/9/QGR9JTEZ3FWnlarfzWi1j9Ieck+H+DTaeQk2wpWgCZGediNL2Fev34UoJ+LR+s2W70ngVQwyvbvVQPEacPSYqDTKspo+xKHTsbBz+QGCp9e8IgmYA8tenh1lrQghrUTnmG/hKQ8XvWZKRcoSKtlfyJBxKOLisA5PQN1bTSYu9UNbvFei28eYclNJk5mlZV5GOO4rJ9r9iretAn5/GXaZTyq8NAKpNIUSdDJXBhesG07tm0PqzM9LQJPzpESg+enY993vL5+AIT1hmdWmPAW8q037NsOCCLWmlveRKIJVQhEZ2pW27gFbZgRuy9Mq3lIhO1VWnhzXfJQE9AD7oqNLzULHKw+PeP3L9cL9m3H9WKJfAjqEccvgrbZGN9u79DbzTL/jwPtAbGIhx5tAZLE19OUsh5hMApAboD8SSF3oM0O7AkSW4T55HmKSjq+/0nl1UJhJdVahGPJU8AKAPqXifmbCfnQgV/skI0W35Ni7l+tWa2P/XKBupBl3gnrQOf7JX7m3jDXqPceoVwBDiSBaGPyF88zgcoyIjsv9vluc+7Fau0MvyqKiUvMttb9PKYAXvngvE/M392h/znQvt0hX/UAFlXANWHOh4+/uP+jCs6+ebLo5hbMavHzWan6eFqCaf+eIs/PelHo04Ol5Zv6+tlLFNI3b7AGIHitQEqCfeHZRWFj2Nvmce/7ZtXd5n8emH880N69UtCX+POX2PbD67lXuS8ho/0zKdgLhUEAvL50/N33F1wvDR9erfkb19KYS7cynv4pVt9hw0WrvjIxhUq6uLdqhByNUB6ng+opgVruWxg6GO4jli/Su+emiOCrDxf8138QvN8mfvfHOz6/sUGm3X9nHflxrLJzAT6FC2jSehiyvLEl8xF0WgUdFD4CTWC49oLgfmgAJRpGqQQRcjKfJM55F0CSPrP6mITyxO0j/hAY2O6ugPXwmPIsJei3oZWyi3ADRh8BIqcyB8c8zJtb8wnk+bd9v6D3bVF8MhRlLMo0kGsVS8CdeErj7pEZVmdfAu16NS+I934pAL+1JTeR+0CQXgt9GMtP3hVBw0U2tgbMmWG1TcT2RzOvDoooWT19ft0nZZZ+D/fz9aHyzzxHDcOcGdJaa/jZ9x/w3bcv+PWvvsbr6xWXi+C//WPH+/uBf//DHZ8+bXi7bXh/N6VijFnk2Ar7Nfh48n5IqVonuf7B052fnk1dq1n4yfU3AD/wIwH9QGrgmCeLNgDgsarEqnUCtHJQawL8YDRq9mdLwPmqVq6iXcXtNUDqCvgzhn3RpJGVQzL55VH4LyPg+CTfkc9gsvBjx7VlnJqhNHW97Gf+PbVbjouH0ZKxHi10q1dCsJ1IjwpLWmRltUZyQpR1/vUA+h8UFQRA37qFsZjtih2O7fNUDC4ekkBFa9t3XF9ebES3G8Ycvh9p0e6tR4L1hnW9GOJTlbjcqwLsAGDanN1DHlYXgv6pssxrFUAEuPalzvymWpUjVQtn2QDvWthw2Wl9NQ8IAS8Bv0Cw7VYycwpwqGKohXfNaaCc4MSUmZbrtu3BIKlAUiCNOYG3ifaHCbnDGP/uFkeGslVLrMhS0owMLTVLrqnHgJbwH4K/csyNuf91Yv7nhHwLyM8lqkckfkkgAyASaPeLKXdHCSG7H/f1RBGol+dyr3tXy5Pg3BrQ5prjQa8Jmc1TliM+5hBuLRQL5zY5lIehCbQTEPq5xnpm9JgYv79ZEtve0D52P+9r85oAdq78RlUPH18NizKBSCH/KF8eAUY5S+sOBu9hScXH5ZFQEI7jwBwTvXcrsclnxHztvVHB6zQeguJto7W/Y+sd421AfzeAaZ4R/SFLf4ye66MrmEcR9JprE2u1zB4+dnHYiQD9v/7lC66X0gBKzZgkrUE6oNqi8hC7QpN25pye+A8ch5151mAnRYnLEhpxahgekDJrq6C/fJFX9VfBh9cLbnfF5/e/WslXNDQxoLndjwjDSBrwrVJZ1k1Vo4pOAKQiX+cYUFfQxT+fb1vuhPNpk/Nf5PzXItWE3kktm3gC/AsmsP2lwiito7mVn/yTgJ94OcCd028kZ6opzOy50lTDI7x5+GYa/ZIfWfEOlidPPg5k+ekvoY7V2n9eMYCg/363OHi+SRkGDdJ3VmHrpUKaeXbtqex8yzw1WuZbaGSKZ4yg0mYk+3o+xuLZG7amzWmilf1qPenW+BnDilPVoIKy7Rt0Nvz8Zx/xj//wFX7yk6/w8mLezY8frziOga8+vuPTJ8G//U7x23835juOohSJwFWME98re0cV50RPUfyE4gs1L+ckC88M6P/j9aMC/TzoYfFFTjrfhwAMCzNBETK6roSgupukfCYPRFr5WQXIYgpXJp2MKVxC9FDU54VWv9bLj1tRgTjvWOEK9C5wLUbEVJc4R6xEA2T1i/VlW0nTllc3fl3/AByn9aPlJde5eGWcGAvGWcbHzz/eb92nBSA2VuKZi1uQseRWZ3vtvhoHvLEZU34RTGk8Gw6oM3nKpxFgc3HJAdC7Yvz1HqUoAaB/7FYWsczp7hV1yAA2EYhmwqriRJ6qaL4v0z1cUxluNeNnazGQjKu5Vb5vmwH13i1W1pmrkw8mnAE+W/+y9jWkgyVEq0IT5/JtYP7HgfYOL9FW6OlE75JEmkxd6W0yCw7OdFzGks9dliuYZWsNMgD90wAuCvkokO2URBk7iGWO9N5g8oxlCeCkz6QthoeZYbQw4KmYsobxodAyPRU2v/TQVU/iuR7/A694cibXs2MTleUFH1OpJhP3JUipe84v9/zxGWcjS7nBA585j//8mdgR8j6uC8msAmWndzY/4/3IE/NsOD9kCc4CBOmZIXht0sLiqg5EzIK8LNt69Rdg/wiCg0V6HJ8g4/OyJzmPFezzmcRZWub64aXj648bPn7YrKkW10rhBqVTzpjLLR3DQPW0ClFWqegeuU7HGBGOp2q9SgWCw/d+P3ZIy5yHAPaVtnxeZRIIb4Wo8RtUWnRpSx4A8jwtoWYrf7CQiSdGOSklc3VCpvq5tTPFsKIqBx7Oid9HJMcW57PsByBencUMD61xlZH0F1ubyKuq5+c8plXWcn38g5GIzeeawZMNztissfKVdWoF5LcWP3PtARg/Vi2UWCCopmFwuevpEGjl8b4IsZ9IIyXBeFaHWi395iRupzllH4UoshHj55yzSaYpE0FROV5VXzMFRE0phDVgY9+OAOPiY2wdEcOvsZq+SpL04vOmwSrzHBQfXht+9tOGJj2rO3nlob/85cD7rRi4FtDv5VrdY8XiLgrNYh7O60RSzp4v7gP3JbHjD18/EtBPrV7RREtTK/618J1g/AgCzPechZNfseEV/D8DPX1xdZ8ZCoDoYEcLf61UQOJAOXRJzBw+x5ixYDHG8p76/RgHjvsRwHcdc7UQxijLe0qcequVVfKQhXKpGUpU18fyCbLdz3QlBJKW6xrb/nB9QTk7A0/ep1qWObc5NRpesRrBGFmyMtajZ3nOzRPWWAmHQyGQjOo4HkspaA+WbTL8+TZx/I/P0He3VADY/v6K/ovLMicKWHoTFAK0nmtAwFMWhFYuSywyS88xB45CX5PIiHPcd2yXC/brxcJ9+gaViYFjWVfrJUWlxu6h5R+A6GHQ3RJK935sH9TLSk6MPx+Y//wOSINsF7RC4/yZ1sKyubFGmTsyoWBb9edfz2klmX1rDXITzN/cIJeG/k9XYM8SgKFYcjyC2F+WcR0OHmsTp3MPB9KVLd5cxsLGMuvYV2WIlj7bwAmEUEklnKCr5hDk8eF6reAreZnThX9flCKGGjnxUWSJISoLQ2gN+77j8JLDfD+VIXoZ63pWdaqO96lwKvyEexnJ0OFVXT8fhpNZ+CfPrJ+Rqvh3VtFa1sx+Y15PXxLvPRHvOCCQLAMJ1FUGLl8BX/+j0fvyN4X85TfQTwn6Vw/IE9B/BtN+ffftBf/0Dx/QG2C6i0bH1MESxKOUUuV9nPe5z9PA/u2GMQY+v73jGANvb2+40+o+RygSIp6j1ATXy9W9OZbrEECMLKc+MxbZ91FTXlP+0UOkqqHQxdwlaTMqjUkC3Fgcf1/fvBGfwHl9lVtWeStzwPB4BWjLsQWQ44Oow4iFFwo0Y8Wdby6A/3FnXUHJsscsixox/PHOwlvmLONpmA0WkdAamlZwnPkQgTWcxkSyGllSoF3dMcwD/kA29Yzx49m88iy24uWBKqNNIW7Mbw6mzZNGLzENYhNzujdR+rL3zasH9sU4mt/t+ZnbF8YTk4ixR6KIkFUF94yhapvTFMOldvS+Y+oB48cs3w1A00pfMVYcBp8PdOK7by/4+d9dfQ88p046xlD8n//8CZ8+H8j8JYV60jErfFlDU4HMDP+SwieBBPyiWs6ULO/xY2ZnsMrdL1w/EtBfricntx5auGZX/1aTgOIvi3Xiue7DBZRK8EVYswTX2V2dwPGJcgE/ekkjD8+s9wm+49YaV/0A1EScx8pAdWqPwMgFZq2wAzz5rDPrk9BOq0JlBssnEwBw3icAL7QCqO9Pec4CiFqW14vvyN/DanIidIDxyNtiKV2sTMtcbLGWNXBmPw/vZiyKuSGUAI5BAMzPE3pX6KFRNULfJ/STgzE1ZqB3s3zt14ZtU+wK7MaFglbPStWAhd4UW2gZYlkzgmqG0PQEdfxcgaOAr+NArapUaDe2TyKM6WypD8WgAC8M57LbSjPBtE/nUciontBu3PZEh/keXX6u4DCU+KHAUGd+hU7KfpOcBYVGKPBLaFmUiwUeSscSLC6eBP98jH2uSfexBsusHgVb8I6i8ORyrF44m4sdrocyd+d7+I34N3vNQ1m0rGPLs1b3kMrTGbgThNSz+8VrRcsxVpS9jLH+0D2evKmu8Rnw82/JQ36gbG0ZpgDQdgHaZpb+tiHqcOeDof0Fsn1Y7hD0SQEw7sC8P5FBgpdrw743vL507JsrgijgtdBwKH4KWH15+/sUD5mDYhwDNwf9ZulPxSjCKlyRC17ZPGcJwGgNs09MKZVl8Az4I+ijCfDy0vDV0fH2PnC7FVAqZesLLfPvqxEK67lEVq0heOb5pmwGZJGN9HIjuNYPXfrw0/IZkS+LP8iJ3uy1UCziPDnPXu7upULPWAOAwCp5MVQredzzMSwGBqx8198BnlEbp8ZEz2eEwLrKYdJVvDcKcKTSrmpKdJ1LyvW2PLeC+rr44cksfKKKjIpTKugHEuymF8xepfFyQq03jQjgJUjncMNTOKnkLHQf6Oc0atvJBmzbimNYje31dcNXH2eeWyiopN5uushjP/W+RuWBWl74If4ag/z/8B78iED/F4nbEf8KKhAasiKb8KiihEgAhEwBULUwgwJ6ICvwyWoaSXSVsUQc/5OwHoEfdrIubq4kEFD1Fs9Fo5xt7TYLZNz9cbdSaPWQMr7NgF0yPx7SSohnclX1hKjz2IUWmJIohVLLF3kADy9lGHHusX8JQJp4HeziaRCx2O+NiXVhWbd7R9v2GBciRjG1Ye9EuKdlfvMEUlZdyHmbUIzE4GDQZoUfY0I/T9x+f0AO4F48DRrzEKtSc+dnnS7+ODD+8u6L6nRy3NEE+P6XDd9803CZgovS+s015D7Yfv0ein9Tz7UgqcKrT0gDpEOaJVRulwsu1xcrp8jKDSIB7EcABRsUOxbex2EVDcawZL/ioWpiVTq2bcNlvyzAKBSRwnjVNybd2E9C2CpYRwH1fp4DVBY6S0vICmTP9wv6olXD14ySOIVUVqqqDLECC+vqmAnszFtQuOX0frcQMH/WuI8FaNhNbF5NGtoQbMcVGN2BCtEPrZjOzZ8wO6EFaNuAOT1SlmuT1a1CEAJeRtYFbPDHVQHrrVmpT+4jFI0NHDow28S+7Ri7rUGUGxRSwAxPj0bbWpvAnM+UlUIHSM9JKpoagPBhGTQ/tyid/oHgU/4MFiIIdqaP9LrvuzVO26wSTZeGBnhYnZWNbWXMkAb58HfQl+8N8CMVpkJEkNfvgZdvllkwT5Pj1b/+Fvj0r0hMY/yjN8Gvf/mKn31/xb4Jto0J1rkuVGcYhsTqRSkLLHzA6HbgONzSPyfeb16S0HnJGJQX6QUAACAASURBVOYd0cku8cC9HWgCzDFw3zYrgauAXtSqGzntbMxJy+2Ja+uC//KrFxxT8f/8z8/419++Q+ChpOLr6pOq4F9as3wjEbAePL1p1dhDa3GQR+yzyYxxDLyJlXG83+4n4K9866IQQpwfucV2YR5PrlRxvTz/ilkTzjcaYzKnrLcMYaxA2mK3s9AB/FyKWDJpgH488tUFXEt7kJmxRk0WurbE6hHyu+YjLh14fWZW7MMs4aoT97s1RKWnX+D5Qq0DHYjQmZLXZeMpPNjnxD1i6fIBlC7Bq5ycC36wsOt5qliY/NieYZGuxEHT98w+//5yw7ZdHPQ3C7WagA5TCNSb1J1JglKjFik1cZZKTusbGgT/5R86fv0rhiEOV5gOvL0N/PP//Vd8+jwApJyekGjCZvhjLs+kcsfXSHuLYiqy0OaXrh8J6H8caexf/PWZlFwVhRPff34Vy9B5DM8067Ol8fxlw6gC4zRWV1kfvQVUBiwGLdQEQZQTC+tjyRuotbjr+Pi+Cvo5tjPwP2v09fX8/kUzhxPbCYSd7v3wt5Pi9mAdPj1vGf/y8HW8snQIXS1tm9+xqa1p93O8QTDEwiEaAJmK9q6Qg8pkPo4xloJUxqidiwJyT+VRp2Ielgh2ncCrAhf/aiJozMWnEPD/rzrRQSu2gf0uDRu8zntl8rT2R2xrKZta98ev6cIkLaLr77mOa/zoA4CfMM78mOO97BcXSL/0t/j9UUHwo7LkcvzNZ/Fzyws5hh9kBf7fch6Rio4x7AmZGUbCkDJ+9xHZ/ZpCR8O5RF4oSv7WpOjT+RIxN65YTXXRCTmtU3ok7Lsp1gILS/gCx/e9ZVlNHrUAEHhi6U/0nUoGed4PLeqX1to/R9BV2aTU98TKJOBXKgknnhafq885PTOEssjSFIjPOCseMfO2A27Ff6Qk/0TfAezx+0KW/KVfobIBzWK2DfArtg68vnZ89aEvd60eFc4hrIW02HvID0G8KaxHWPrnnDhcWVXpULCTfVa+A2A9SUQwjgNQxVG6GM850VlhJQeTtKxwcC94eTEj0fXSsHXBGI90va6P3TcAL1aemx87ywjSoi+Ro3kLh8EjzypblU+O05qrvDDOlYuSJy2fc0Xqgb/IkzG3dlIZS+Kv/841Ja1Wg8Z6/h9W6AmvzjlX48ayBqqlSh6rYGVIl73H6Uwt+R+hfM4ExbJ6PasishoBYrRx/pInljMOoGannvmO3W8GX67zCdAvLXgWk5gtZ89XQljIRJOGuCcKdBFop7Ia27rgG+7dyodIx2ZQfHlpIcvmbH5OxXMdGliI5GFHA7gvd43ncR2DpB6O2t9G/T8S0G8X6fUMGh/fhXL6QTVocQc+AxrijN+A9Rr72lp+V6Aw2Jm142eW+XsAvdx8ZxwJ2pFEXohzeM3084GpVskA+iMb3qgmYdBCLiLB+IEU5qltywMY5xpxveo8yISpbZp3rLQHd8IGwckTJWRZk1K9qD6zfi6bjK3jr1a9ZwnT6SJOF7Cq4pup+LkKZMKrugje0TCk463vuO8Sikj7IOj/pXmFp2qRzWoWlYHOOR/2H85kjsOE+IeP3ZtQVSvsqfykZ6J92xqubvWYMjCk48+XF7xB8H98+oy/AmH1txyBBPsWaURBpAYAVSJ5V62ER86rDqBiT0k6XYARMw7/OIH/uAN/Xj1OyxIUQPrwiJNwMnlo1k1aLilkIvnSvUGP5/mR1lDiisuA4j1VWa6gWct9REwRnP46y0SynBsAHLfjZOkXVM9gHw3H2NBGMuD1jHNdVkEdPNzPRyhaOkuyYeEfVDpU0PpE1w29O09j00EXzAF8AWtqI+ZmrpfUfxR4pCkHl8fB8otFIPKcFIXh0fOT+0Xv5gOBnK5nRo36nJqwD0iU4Q3LZtn7qHATi53IqLX2kEMW1l+l1wdlg/hLRYIFIJZ9BADdvwa++segu2s/8Pc/+TM+XO745qts4ETP1DioVB4er26JueM4cLglm7lNtNaO4x7VqAj2D887UpnuZU4QRdUmyhxG2eaBcQy8XK/Ytw1jH7hcLsHH2WwJrQIdzhf42fcXvL52/P4Pn/Hpf7xFrkGFzF/ea7OEjsEynSN4QMgbZBM3iBlR1L2oxkqfK6Ypeyoo8jMCl3NUrAiInVJtgDzjJgd9xwz4L7RD72ww00o0/kgfB1WBAJFeyamZ986UvPW8pJGrnrfihffbJVh91HgYnmMNqXKutd/JCnMLX/dcLCbQ14IXucZukBLzfNJ7ISKeN3KFNY27w+vSASAe4ZjJN+35LF4SBT7odSTWUlgIjyuAQC0N7Z4IIOT7vl2wb9fIk7FwTMtr+/X3r3h9Ab79Zo95RR5JM1rpbe13AYhFfbRcO9sfFuhgQrLgGO55vIi30LENI212Gha9FF219JNOCvmuWudC31++flSgHzgJ8i/wimeAY9G8TgADwHoYgXLfJPQA0qhEvmrETOSFPhkarQJFUIWlT9bXmIxW31MBf30vyMPivjVUhMB8FCDybHUe15AC+sEyL+dKAZn4Q0udm1YW4XpWLExhXffkMWbc5sU4QTgDjW5++BvKoGk9C0NXBV4U+I575ALvBsFEw3vrOGhgE4F0wf5hD4WHexBKyilMim5RriP4jKk4hgPxM3iGxDjXlQVeRfAqvg4QjC649B3vfeI3p5j9upVhbVKUUDNjTp7WaaLEE+GqdbReq8K5PgMCc7t+msB/TOgbwzueX4ti5ntZwfazc1OV6wr86zlOxdSo4VHxWM/Xs2sFBSdQCSdnTppn1EMhxjBBQqCVOR/s4OmzmsjYaWWJPYlwusq0kxaK4AS8n4GHAvitAz6f+JHI8LHPrNShuUb0zIQ1sZ7R0zI9tcKVNZtj4ChEWMEI31PjtCnIY9zVYFMF2PPd8sc/elTDoCGlckl75J/c46oMBD8oaw7y7EX2UOt5PkY9l+GBn7X4uPP9/gK0lwC2bb/h229v+ObFjRmCiOmriu/SAfswK76F5tnvtOabQepuYN8VAVWG9QDaABYFzXKj4gDQaIwhgTz6IrASnK4IbB5uNkWiL4kt5+pt+erDhg+vHe+3u1cby68zH199gQbc0lP9KBerAkk6oxGvyvqkl4r6ia1PFCcFtLtcr3I/5UCL+6X36VEeLfiryIsqEUO2FlrmAXdOhyZWc23KymtjDlINDQW/cI0F62CWtUHM8YwXVqPMYz7g+uUzK+95wF+FbwGZoxF9JWjVl+xfQLn1IIRQZACPJocQiixAzz/UQ7HQ7DXeQxp6s0ZzUAR/htoYfvLNjm++arhcezw55gRWV8qwLOOVErLt2TqYkWVC0NE7vIgEQ+DydKQSUFFp2ZvKM5XDfr5/P3T96EB/XpxMdQMlGI1DJ0nsrWhf1comz+4bPH0lZFVEUwuznhzBaMmMbVT2fz14ZhXLTViYggPk/BuCYKNiRtlwXe7hc4yPr51CATbXSsBV578e7PgJgMRnQuF5wgQe7lWYzjmuu4lgApHQAsmKPKwK0bfNM/mltJkGujR8I8AHiHte0mLA9V2ZYHpnLl5Jhgm9X4e2D1izLDhAs2oeiHvSml+7xZ7mLmJyuXSlrYnVtJAqEBUyLPRGIRYzBEh6LJb1pCh2NKJuhbFuwwe+ax3/dHmx+NbecWkbfiIWl3xXXbxFCVklQpFC1FOBknV+SQ2r4FyuVX7yTQuA1jkjDOlB8Su0Q3onsM3uzJl0aNU8nlmRJABBGQYqOCVoIVF9kRGKLPRrd7FEep5xdWAUgF28CZz2AAis2ME59uEJ1sdyinNvJEHxetJPY+MnxcQg17X3HpavEMr6XNk3IAMcf7xDDwAfGvB1Ntnj45cVKkDbPODp6WTcbigVTlvrvqcwY25TyKkKxjRpNadtPPLJiqx8LA+2Nwf6cnlkIL11UHqhLGwqgX6G1nHNeShDaYlBlm+F/9YFXeCKC3WCqObNnha54eBjzuy6e2eYzkH5MwqwX7+Po+TpzCytLPCERikUqBpeMeNhjOuenrNk/Ozt82fMYVZ/ndPo3r0p4o0QWxdUUuL14bXj73/9gvt94P3WcBwT//4fd3x+m+YlYH7MNC/UmIfvA8Gg0bS9x0vIer7POMxY1ttE79sSjjSjwtWZYWkAzNXPZO+l12yOYwH9EpZ0RWtW8NQUHgfEBdTraRE0/qXcp9eM8puyPQ1vZ2Cdik8AX5dHBJ/xvOX8/wD4I70jAS0g3genJ54KvjIx5xEyvXmFI21eRKB4HM5PpkwkrY9pNHy/33G/3W09lJWbHpUZrnMYA30tRglVI24brjibjcxlv0co2HHm3pln+TjYk0gjsVckq8vFhtaObpo810Ls7GvqxBjWE6p501JW6ImV8Pnse8Mvf/6Cb38y8ac/3fHp01H4SMU4yt987FWWJH6otK7k5X8D/P+oQH9O58nfykLY75pMTKgJesvqYtkxFr8+g2CLC3w+ZJUBsyZ8lgWz59e62nWQZBq8wsJ2lmQFAAVY/8Jm0Upcz7V9RsrvGXdcs+YfQX8KaJEK+gWtcYUQ96EykMPmeq+An2uuzRNjGgDXundvfEVt/lkIlgFV4KfS8AuUUqfO3M4rQ+JuYuUUrw76ubYCycZfoVgIgIa+7ZBGD4l7PJYSlSvo5/E7PAn2/f09kz59HZv0+CwAj7m3tTqHwZMJ1bhEEBy4ELrdb7jf7/iubfj6+grikL1t+EY6FA2/VeAThUdRnsRQl6siM+jnvIh1jlURebgWebIqr8tnVEt1otwnEYmQOFbEwVRXuBPwJ+j3GPT5SLfmul1PdLXSPXs2f17mXu7JJjJNOwBTOlaLegJ169gcE/dumQn65Y7oSLmMT2v1iSrUVoUtxiqey6H0Ntn9CPjvd6OXqeqNfYpCzrs5XRz/fsf844D8fEf7eMHS5rE+MzfU9gWATMExDvSjQ9wKWZ4QZyU8qcq1TR75aImdQQ9nHvpAfQTm9auMuYYULTyl0HaEEvrzpzLEyQCY1Bvys0/Oy7pQ8gT0P/utvC5mmW4eishrIr1KDNN5f79hDivgYEm8JZF3WCnAqhBYI6asYELAZUnYbo0kM3RQOxzsz3FECJcOsy5//vwZYwy8vFwx5/Bu6NYTpAPQ5l4d8gNJmvjqQ8c//v2rlQx973i/DXx6G/j0eSRta3ZRHcfdaVdhvVTpsTI57D/CDHGu4PiZo3ew8uPn++Do4nTemJSqOsODQiAZ3WUbwJKtrP9+Uu2WH8MbcJK/pH3SoO0F75mgn9iAcIfLKyierThX1fJuV8U+T68iD8XvxcIaqxwguJ7WNFEYKpP8LIqfoHruqtqZz5hjBuC/3W4LaGUn97XXi4d0FUOrYZYRURI0eg2v3tYa0KRnfjYke9wQ9N9ngH6C/OGgX4euud25qa6kaCjXRncHpgqOwxKG53bx+ZQ1cIbY0HC9WAL/mIr/a37C58+jkE/u/3n3jHrLOVM8ofWzUvv8+vGAfhJxmRSZb/DgovFW3s6/nadLrQxxkGa686YJnhbCICt9JBOpVoRyGOsAyrUCm1JtRhyIOyiy1+RxzBTaklu4aEKCYFpkBAVvBbMXSQsV3xQWg7OQLX/jIVldUw5gpa67ANKwNcFPth17a9YZcNtsraKetAH9y+VSXP3Vil/rYxsb/U46PhZaWIBbWRspf6uVIFAYdtZ9Ph3amDcSjDVj6oyR5zN4rGxefL1BZEYLe3YLDnqFQNj1192ZqikMcjvLwQ7FRiFtYNuvYOWe5t0YodM725pl5avWcWlpdb5D8dmVzinG4KIaUCiY1ULPcXwZ/NNSG+ApCXqho6cEidV7ZYKc99aHLsyxFOVzz67zGOltWe4gVLbXM/UMFNILBfY4KOfcIXo0BWqSQhdAgn5lXwdk/eXl/Jc1kDrHdA2nVa8uKytr0OLYFgXibCk/swrjIRNzAo0KPmClVZRlfYulrshtVQUaPPZ1Yus+viSd8hwUBST5St0TBdc2eVUIxXXSzg1yf89rkv6AM+0U3ioSVv6zkcFAJlaazScuvy9PD35cZNQCs9ex8Nr7gY/7O172O7Y2/JEOPAfDeAaO+2Hx1lFlK634q3UzFSAqM2HA8jNbKZjvWT1Dj+MNpczHcBx3ZK15xQag9ZbPhEYos5RwjTr/1gRff7VBAbzfG27uUTCvxKkHhGZ8c9C3FDgTw/Z9L7wj+BhOV6yLRjI1kOtAQ92Y7Elhr3U046Oq2VTtfO/ghQ5Snyi5+X31VlFBsyg+Xd+jWWY5wsCc3sKIg+TtCUuSv9V1UKT8X+Qo5X3N/wMwo59IwWXJvJ5grtVwusy5Kgnsg+R5S6rGM9d8oPzZgLyGccFe77D8NkB0ulPIMVczLxQbt1m4VPcjm0ae6EOjwGXvePn2im1TXK8t8AmbODK8l52spew5DxrJcoXhsrwSbMY//vG14btvd7y9H/j02ZOmg8geKA1hrOWaKxX8wo9Xdvb0+tGAfmmra1bdLWNEWhsAEV/QMk1XF+IrI8GzJNV0K8b0uMhgoiKeaApLnvIkE1oe6W5l+3eO72wsq1onm/z0bmEYsUlVKLfm2vMzcJOARCVRf2xuAbDBQxLBPcS3mkB2y1sRTapYrIQEIQHIvb335bKD3fDI2FoTfGgd//1yxcfWrSRe7yEsxJlgaw0v12tpyZ0zrIlavVuH1E0aNjmJT59kxHnTkyNpc6T1l6FZUcbQ1/3ZdzJMIOMFFwFU9nV4ObvjaDg2b8AFQGEJSi/Xq5XV3Havp++Kko9jammuE3sZnLowa5hCKg3HceByDAy39N3vd2y9AW3D1jp+2S7Yesf0f3/Qgf8xDqMZsTJlFl8+cYxq3ZgRhkamX+v0c94VhDbLSlrOaXi7FsCfLIg1KUJYk1IJLKLUrEaeTHBEAndd9ynWz2lQFRhDzXrp/wjmGmBxyCdBXMEgk4WPMaA3eGWKICrAhe6+GX1v+x6NaOLznng3xoDeFP0yrKoTklcRX0b5WS/naUlesTSJIwvdA07zoAVJ0Nrh9y5VPoJf5rknTVuyQUcHP899NiWCDQnZCEj5ORUcx4DIHfvmlWokx5bPMJ47mfA/AdbFJsiqgCCASwUTsM8weVk1X188L35y1IGj0YlZYFFoU8v+btsWSXIBGB24oNHjqSlvCaKLehHXskn2giyu3Edr28f9Hf/LT3+HvR3YOxUjL8l83HG/mWfv8+fPbmDw2PwjDU/RPC6snDbMqWnIYKlqDXpwkBIKfzXKzJBBaSiy+4/7HQcUt7c3qMvMbdugOqxASp/Y5uZW8B70LYn542oN+NWvXvCLCfzLbw/82+8OB/ssQWr8dN87gDQGmbLmHlQpoAgOlIsRA3z+YjBQB0Ya/C57+li5zjmGhXgwTGpOz18DFDPLu7biLQlTgO81ZVFzgHkyDBAOVlAce+gywhQAD2PhWYowI43zkka9CvxXxRftkecpFNoVbVp4X3NjEY1d1pR0S9Cp9LYaDVlIXBa0kGa/8wxbmXQ2zfMz6U8OJap3XC4XjHFg3y8ua40WIwS4hgo3UwyGpKED8By7ZvOwpGJ4ArxZ+ZtI7KGgJDs7v7xeX3C9XnHcD9z0jg+vG379SwP9c9yhOrHvOy77Jcr9QmBeAKjL9rbwgIQMSYv1Uucl5Y342fcX/PS7Df/yb5/x5/98DwVPxAncL+55vOT8N5QrnK8fRv0/DtAvp59dUKZWigdOshbMqt/ti3HccdjcTRXvCUtH3tgs/ThZIJPt0/JOmadxQk6WFCQon6pmbYyBr+AjBE/MIoGpLvNay/7V64lYWv++0lrcpIngpXVsrUUHwRAAzWq3t9YC0Fu5yPz7h9bw9X7Fx9ai+23URi9g8nq9psBNbLsoFuw7UF3xqdGoKxrre+BMntYiqFlF0xLa1geWtYVrzVnL17TJISXW1/fPwpVYbku8ugJiT7ZtQ/NOtlIUEwkvhgDakO3r67HUBD8+RBVA2o7WBYoGzA7IgDrD69uO1hu21rCJWaNUgF0VL24Baf6QGwTHiWAqTa9encVuHEo3HjrOrhZlvhbWpgD+qyW6HM/YX65jJMs52OKPee88Cysd17OZH0zVI+d8vupcksVIve3De2n5YcflNSkNQPcSd0UXEsnPn9fs2bPKU5FK0Pq7lSn0NT4pjT5gkIME2dXbPFmLtIanccDA9xNL4ukmaQ08jRW59nUL9OG9/AN/1/Kn+t7y1nI/S9Bbn7daKPNRVTgbw0/hqUWBjf4C68cfxiLAKXxTff2BrQ1scuBlu+PSDmx9lkaDCB40ijWfFmd1EFWTLsM67OOo66gBtKphhwoBz9zj4tU5mfJiYGxO8bDR5vHLgjlaVPsJRcv5LuV2DKnI8K0JtAMv14bXl4YxFfeBRcY/WJ/L+aBSS48XQVzSwpkvrFfsOUU+99zrudfGUzzLFeD7AnNiscblRCPplGOXQl7FgwEzRhifkmUvKo6o+/0wH2jIvuRtsvyda3n6U16SCnLQ0PLWdT/gCgpDRitvy5h83qV8j+U5yZAF2K1jiLXAmWRTRthapazJd0r+WumKzxSb07YZ/355Uew7sPWJ22QeQq7Rgh1ibEnbiDlrvnZ6d11zKnXNq/tcdmvUN0aGKfGwJhd/FBMLRsIy5R+8fhygHwIpzabES4JJk5L0xInP+GJClq33gKolVohs1s5c1TwGGBjjZhYOZQk7BJPaulmOzcIvXs5qplWJIEn5fADzgLnFBRED7NZGlvwb0yojWOW9kq1NUAiLI17BSX7XOa2jXGGitToGgLSQCiL+F5JVXeJe8PCjaYS29Q3X3vHfXj7gJ9uO6+UaDWwsHMe08t4b9v1iibfdk7d8HA3Aa2/osHJXLayO8Lmal6NW8cgd931v7XSuqpBOlpqbhgcMYGt/qnsrJ68G1yEWm2DPAa0/a85h4H8e5nZ3K3QHcNk2aO/Yt82sbGKWH1tzNj9yi5B0QJtb4myMY8ry5JicVublR31/Rd8U3Rk/ldwmgo3KWbd8AW1Wl/Tr1vHfJqsOWCfe/ymKPwMQd1cSQGfYCMOt6DFrwRRjbUXdQmb9A7owb8a+uis8Ea+vTIziWfaELI+XBASYnvQMwdZ3oCvGeMOYijYmpB3hXrWkXyaV2dk0Kzvbkqvdcg7oKCAuxlKq6ZQEut46hhwB0FiJpw1n/G4ghz+iS8P1Yt6V1nueZaef62WHdsW9D0wMUOfbWjY4ojjuTvdmeY2tj/MqAFrbAk2OiFG1vd/3C7Sn8hbx1UA0+Wo9+0qo6hJyxHwJCm2ziFvctrm+FTgSTPHZ7BMhdJnHcbO1SNe5ny6tIJyHl4QP0E2foE1D2Wu9ASpo24QeRYOCWxv9vPbe8XK9YNs2jxu+BX2IeGhem2DksRljzMrdAC/Vzft5Qug4oO7d5eB7y/CNMErxtJ0sK3zP9y//iV989SfsbWBvigb3pAK4T+PH45i4vd9xP+54f7876B9eDWyEt24upj4H/N2aizmDDz5CoH877jg8LCH4c4Bp4xtdKmy1LkXH8W5y87igi+IQdZl3QDGxjQ29m7Go793pkmzawaFk3D/p9Puf7vjmmx1/+evEv/7uwBiKy26VVLbNZExv3WuZg6XQ0GWDCND3jtk1aEYU0FG8+HN6snTxxauUBGeGuBmkH0Nxv5s35Xaz2P7ed9+jDpEdlke0+d5bsqtSoIgA3vGFngDpNAqYvKdyJAAsZUEx5I45slqd9eaxghF3L18dihPH7nJXnB/Rq0a5wMT5wCqkxSYWeiX5M/1ll22zBN7WAkSSnIg1WjcjRu8TvQ+MIVC92770jr51XK4Xz92rhkM7zzLL0QXA8FSR7CNjOE4wXJbbfGws9BSMwVr8bgyTlC2ca28NWhJym4d/pCHOcumOceDbnzT8/GcvAAbG8dnWXbMHxlDmyQCIe87CzyxcacTZVLQukM0iNCboPXT10UMzWQGSRuhvvt7wv/2vX+EvfznwP37zGXdvAAmdeW7VvKj1SmOy88yWnuQfun4koL8SBF8AqKWtbrJCzPGaf/kBCHsHFT5f5HN9dXNtkkkVDftk6Uc8nQjO3jslLdoU5sp/1NBVY7PBkS0miQIAfcwh/Hx6cQixvNXfTwbOv9U3aFp4YAyoO7Dbe8elb/h6v+C7/YLr9SXcWdeXF7TWcb06+HcrvoH+LJUGIL7XpD1asjL84zRmDlho4Y2VOVXIk1gT+1uhg3ifT9APRrVE0mOQZ4OLIXx8AIG0Mk1nIsJGq7GsvSVTVwVUWlDb9Cx/5p7ymdYhGgH+y9T9x5xw2qdNiaDVhA2bWNKrxxQJ+ozRbQD2xodbd95dxJQyn4kUOj+7iVMPKWfOgQkVyrSOJ0xgHeMGulxnuWXSQNisSNOVURdNjkKrDoohQcb42bm3an6ADgWOSVxoAsy/zvHQOfoEblX5q0pPpd/eshfIub9F7x3aprmjZQRvWSxbJIyTYsXv8VoZA3JL49UmDdqB6NzIfSQdk6+RsmKvEc/K9dWYf/2OEy2D4FgeY+Q5hvUej1d9vf5cAX++IelHTnM7X+aB6ZjDhPYCzn0NyCJVFVHT0qfPrQngc+L99ZHyhdfIr3PsVpf/68sbcumpYPruKtzSP9zIkOCVdDtY8UXXZ1IKxtkRTUDqMyZQEZEwVJ+LShg4RWGrCqgrHsoKPwMq1oF5jgNTHEi3anQ67Q33THOhL5eGlxfBGEDvBvT4kUgKpVwo6998jk0E0n1eVIL09OVnv14VGObmJW+oORPhYaWn2Pm8BI/iKiUlVD6exg6U81AfK5heSU5nAf6E7Byr04jJF03aFQRQPm1l/G2dfAz5AUtJM+/0l67kXbkvHCOXgl5C5gSsD67fH8daBua063sCxB7Ga9G7gLI58YPWR/kaMNytVOeG66OQprhcBF997BhD8Ze/Ftx3GrvG7q48AXHuSPy5HudZa6EQGpHVmfq+sjY+cwAAIABJREFUN7xcO8bwVCvuPyGtlC3Ues9K6opIZPgC7+X1IwH9XoXi1A01mKIq6KOORV8kkb8RyawD6LsQiINNJlZCfYQEZJw6QXs06/Dvt4nx2xvwPjOunALuRSA/262tPTfMASS8qY0IIMPLlQ1vzVyES8UEz66p06wDSHda89KXRLeMP1fAD6hg23f01vH95Ypfv7xi7x3Xlxdc+oZffvwaH/cLXl5ecLlc0bcNu4P83q2+ba1Jm2hJYoO4frYb/J67ckYPGgBQyz5UarD/z0tBhUBP7wwhhZLkEgylMuT8HtPwVwjfzNKfnS+hFm8ItYSiqcDtOLwR14HDQf2YxggP/z6nOUFZdSIwGwCWC63ErhQMBDZutaEFXkQjX6X7OaES4FQIWtjgikKH4hcq+BYT/9Le8YlVUzhxTRBEurkfB8LKegD6uzvwpsCn6QmqBL1pOSGjW8IqUAWG5L77GZ7T1g81X4fhMrTuQ3G73wAo3t/fSh1/i7m8Xi8B7jCA41/fgT8A7bsN8nWPJjIU7AbmUojmnkj8o/eCtJT/sHwPcOJkRWVXm2DbO9peAIt7T4LRa+aeMHeIoA8evxvrqSudEggwiVyY0HZeazigCCHkoAlm5RseM26N0SZuXiL2dmM5WmCpT+4KSeYy+Nk6A8gq9GV9je7/RWw+BfLkKWRrFJL09mR5RjbJCXDqAzrXBDdPhvEz/cPA/PNAu9k+atOlihm/L0K78GkqjXU/4rMO9pI/M/8o78X8h/v98DW/2df9jre3N6dVWweeF2fviwLLAhPm/RoRohL41896GjRyfa2D80pfIsYHuzA/Ttx+PRER7cbcnN96iUwxDwYjGMkTuFaz8HsA4cG386IQ9xJ0Fj8QrwQHVliS4BHqCK7JxICYB6cmt9tDFxmRNCoxBibPjmPifmeFPs8H6xMSpbxh6TAUfTPltGG2opA+y3mCnaNIWIUBRG3eIbs1GwvDkZu4J9n3lnSn3mBRAKui5TNZ5LEkPzwrOQ9XEQD17NUDSlnSenqoxEpT5h6Tt6fXsT5DeU/JgGy+Jmjom1nszSvXwpMbgDfu6jH+ojBvC3MEW3kvcv09PE7Ccsccroaff3/Bz//uFZdLrh8rF805gWklarfdqlVB4PLRy3y6Is49AqygQysh0D8IvIkboxCIydvepyUQM0oFMw1q1YARFiCe67WW1N+6fiSgHwhyOC1Wgvx4IXb4wQNAIFkEBN2iYenzcktpDiG15BLywKhz2lAijon5xzv0k1f5QYattJ9saN91oHSF5djHnFAcTowsFckuu3WuOafFJe7PmCjNj9y93j3TnOuiY7hlyC2hYhbIfb/gu5dX/NNXX+OybXh9/YBt2/DVx69xuRTQ37eldNcyOK6xj4k5DfFOXd+bryXYWTwnRYAtjyqqgi57u8D85RPA6sVJOnJWWxW0ophQLaDjXEdatxhGkiEvJtTg5fHGnDiOgTEVx2RHXvWOmCYbuRwx7jA1nBURggbmLdhYt0iw9JmIuW9FBL25Y7kAFfh8IFZJ5SciACb+BAkhYu9JZlhDX8YY7pIHcCj0TwP460SXBDFp+aHSsT5/GUusd+6jwujYEr4Uum3x3l7yRlQtuX7Oibe3z142NwEPu2hv+w4MxfyTJQjqBZAPqcwk6C/7cbbYnCD+M0u1uJBLoZ55KuTzMYfeC28pcKuMpxoiEsjR6no+Q3wuAuRT6FZKqisd36pC4Pfm+t9ut6VUpBUuqIaI4i4u96lAMu0vXxA9glxTDvtktPl/mXvX7UiO41z0i8ys6gYww8uQlGTJ2vZ5/0c666y1bZ/ti0RbIjUzQFdlZuwfcc0GSPvntNQEplFdlZfIiC/u0Uvj/lbKBYy/+Vvd6cVKAdtn9v21pLAnCDKhfGbM/5qSf1NW2g2wT2ktY+/s5yKADWxx0IAl5AUtxX7YfeaQAhF9dOnLcZ44jtOVirdo0I06rKE/M5Sd5e0rZ2dUHk6u6cc6E1mRB1XsKIpjRPqq3I1Cc/d30F8YLuwRobQkOev8La+V7VdNd0vSxXiO7YUqWENBv1XOMnCZz4952Q0oeSgW4DwvNwZkNQ/7ZZkQeLm1fQSXLQ68i67rSi8S8ZLj6EkqZDHDIjxrrSAm8BgK/sw7KSC2UKzl8s4vAsJt/tYf73l0mox/Lf1d52Rrnb/HHHw9VmOV1W+9DYiblzTGQakEs/7bZQ1AJD0jzF9ripmNSUD3Wg7baa0UvH/f8Jsfdt93M3IxLCcQUlSk1cWbHEZjma0o3LJgpZKGdCU+e/da2GTmyyrHrJhCKYw5A7dQAv5yg1yuXZ4vfDgjpl9+fTGg3zZXXpQ+S9wpgX17r1q8HXi9Z/waf/Pr2A/1mBOFga5EtVhSJmM8D/S/HuDbxDymVozQhCLIko+XgfmnA6gU8bLvC+jBYlbt8MtoEgaJGSeij01mZZSQ8lQLM4O4pCgJRAjxNSL8sF/xUAXg75cLfrg+4P3TO7f019pwuV60MklTgteujoDHQXo8pDEgIDpSOlwOK4svvn3HiHFBv0nCpwlliB/79+uAn50TZ/dcEhiwUpMmNMwakkLBbG6pQgbAaLVhs1b0RcJ6zj5x9oHb0XGcXSz9LJEwfYiVdLJWQfEpZ878xs/EWEHJsoUUfw2J42ST2yo4q1nNvBEJPN6PdG0eUfA7qviJKp5BGMbd9blGo9NKoBGAwZIrMadYewy0Lbk25ILcp8KqmCA+DwWIJW4SHLqPjruI0cYTpomi/0TvfQH9rVnJNxOIcRb834lKyHfadqLou0pd55KE2D3IzN4CBD0DiYQPxvzbCZwM6hqyZGNLvIruxnTHpJw+HRwr9WZjgAmvcPUDq1CIeQj7WM8ZA1q1ZOA8D13b4WvsTZ5MQRkDnaB1zAekl4HG7dtxN8arDfVEcCaQBoYn1itoz7BOZWBaWxXUnECpgUWld5QCtOZhBavOT255E7rWPBMWr5woNgOl5Dh5+HNLKZi1qoNZvS/FPDuZliKhk3V/Cia+fnjB43bi3eU58ezgjQIapitfY44ll8xoLwobhNXfvDRzaCyx8TxHqalXjBuWCrwsleW16bvom4jciOCBGkr/Vi9/MlB0HPU40Caj7aeEOlq4o3ogjIacN6e9uV4rfvfbK86D8dPPA72nEDSlpalzFZoh6RGh11i1HTMKZO9+lvlB+kn5Ilq8IhZXHt9RqZ68kH4u33h5aCvC+7pQlMsaNZBYYYRCLj4trANUUCC5LFDQb15n8xote61KChflBVkh9Rf7aIwU/YzeX+tLlIwMLNalReE3hYUQv6dbhEwQbxEKsO8XPDw8hhGLCG3bPceQCknZ2qH5dKO7QgFY7xtCrRtqtUpipCTNy/xutxtuLzc3CpVSsLcNW6t4fHzA5XJR/ndq5aJQZkbveHh4wOPjI67XB2zbprlDBWMUNwRW9RxIg68JQOhRPJBV+RKv62L04LyR3Sv5+AD8/e+f8HIb+POPn/H80oO2zLgLdi9VYBnhQzP1tfi11xcD+pP6t37sIHLVYLK1ST9ZbqVfuQOPycWkfzO3zSSGprIIKGF2y+j4PHD+ywtwZguYltJSocTPE/x/hjNmEND+1xXlQSzyM80j/fCRMxlD0K2kENYGjmiSWi7ju5NZXVkBlEspuNSGf3x6h2+3He/evcfD9QHXywWPj49aOusi1+0XCafQbnyTpVnKVCu2hSCEBUmBgFW2UI2a3KrAMbm8EfegX/cwJ5fKV2J97kH+vbU//hoWbNfE2eRdtkTfJ7KFQILFzeqcbR6Xy0U6BNeK1oRCzj5wnB0vx4nbcWrYu4CwPqbuQQNRdbqznaZF3GYKIPBSmlbXZYZgt/kOJRMH+0XcoxNqJTZlNAmGdyBstWErFf8BwkiCLVZSrP2kTbMwAMwBTAFsDkItDC8Dfv3pVMC06nQK9KRZ0FxAP2k8JBUBuLWGJVBAkVpC++m7P0bzWGXjDau10y511ujfFREo7mSzLoY1MOgi+nZMbQi01jfPBh1+Ycx/PYCTJWn3DvTbSBKrDsXojiLIKMUtW8mar2fFz4xiJHf/pkXPFlYypqfzG9pY5nbc1Mqcw4y0EaEKECmpODH6KY2UqhWrjRFnYGtDKAqwYtwaomDZ0TCODNCdspbnW4gwFeM73VtukSnjMB4bFslq+6BTn1OYgnevNV5eCE3LkbpnKlmdlz2kdZd8rfXnnAwqAx8efsYP7z6ugByh1BhflZj9gT7k7f1hPNREY6UNw+t5yL1jMl3YvVlDPI3WJEHXKJAd7BNRCuex8J4ITXEvYB+YhQEaIC0jWtqGuQ20y1UPbwVKlcTjofHXM0IgMst7emz45usNz88Tzy+f0YeGzBYD5BK2JIo+gSun81oEHHZrXjZDYWJOtBhnggql1WCnwGl8yeXq6s0KnHGvOgd9kq+frLT/vugcWrhD6cYt/Y4L9VxDikCQei5M6R5jSEM0KgFyyX4K8J+YwR8UkDsmf3Ps8V42Rw+hGRZKmZiToiKdFQRw92Z8fZF0Sd4SE67XKwB4NcBaqysBElJMbnjoveN2u8mZUT6ybbtHLbSmhjiL6Z+2VkIDnz99xsePH4UPqGHgsl+wtYqnp3d4fHzEeZ5e7e9KV+cJ53ni8fEJ799/hev1im3bAuwX8eS2VMPfm3UB6Ocp/VAaw7IJ7pVAD0fT2dlavHvX8NX7K15eOp5fBo5TQnrtO1LYgLWDQqAg5/0zSg//2uvLAf32SuM14A2szNas7PI7uzEjC3xe5p0tklbyK6rsOGAeVmpPmefLxHju4E9Do0cS4JYTab+4YBEAKR/z8wT/PMOK0Ah0LfCdTFMOBpvmakyDlV+nuXtZMRZBcCHChbSxRG14qBVPlwuu247LvmPftKNiifr1LgghlSygBGwHx9uTT7fvx/Zk4WdjS+u9zE4tLF5lIl/mVrO7pCRlPCvgv09cis9sD82DwobjXQkhgEZ8TRfALVEKrKfO2YrillLR+0BhgIo0mBnawW9aTobVK8YqXMzzwo59WIFeUTCg3FK9JmReG3X3hp2Agt4orve56zNApjwi7qu5MEUtSDsI74lwY8IzjNYDdppb2ulaF9PWeCrNSDjiBHPEv8eYVCDZuQRHjKparbzEpV3Bdj8RMGYlCfdvUe+JjMesRQaeAPXQQUIQ3OPDaUwLOIUeqizcM5+xR4WSy4le3hSmqqlaS/ccDlKorM/Gq1OygF35zr1hY1Vsls/pl0FJ/l0AtOYuLKEvdt8ADsv8p1VOklJD4lkib8hkXgVWRTWUMVNQjA1YEXSjEfZ9DK+KlsiFAUANuUshmnY+swK/sJaUcL2EIxGWf9tOWPKvKVKhALy9lrY2Zmm0TTQgUrQcH2vhB9yt6VzWVRXht0J1plRwMzYWXkiod9JoRmjSm0jqd1xxBKMk7O3r8ObvNl9d1zmlut5Cg+E9WSz6vg+BOL3VjPL03ATTvB3uXSLraSLv3o1nB+inIt1d++iiKHnIxWu4k8+UW/rT3hKCHqziz8oP0lqktY7nZH6Sf+pz0h+XE0rprxS0RM5bQq4h/VzH95pG8+s1ysjvuGpVZG3oK0/Pd1uNk3cK0t1n63jWe5jRz3pp5MIIzECt3feVCAK0mzRDlBDkUIi9wg8N0JhJDsurFsJX7zdcLw2XfeXFuTeAvWstWskskpNXo1LmwaHYm1HU55nvmeSq/CY/LedI+DPQtob37zcwM15eOm634ZjGzp2cBx1Xklsign6ZJoAvCPRnMsyLOqa4gYu6jYOY2AWVJXFOVjDGljwE52JFEwOtm6AoE2KN6Opjm74JcuD7X06c//oisfydEwilAPZ2OPh+HoT5Ywf/Jcp+lncV9Y8X0OX1puQ4Wi+VVcStpkMFIG4wB7nKQMcc+KHt+HttKPH49IR9a/j2/Ve4aJLutu9aykws+tJ2euJ2ni7kHdhpZQsrB+aH3M56Ka63aD9G/XOsQ2YTd7S+7DlPK4mVPuX43b+2XLPehVlTymzfFfAPFZJzGqiU+UytywwTtNAvsFo3FfxIyTwGVVGYmBqYJLzn6BPnnOhaArXUpgQhzx/dam2Hf8JwrjfyUXe4LSCRrCZZYxFSi2aRigmGoh1UK5O10qFQIAbKMbqSullqA5WKp9LwD7ThEw380+h4lsw7Cd/RBi22pgxdpzSPOSfOMVCYQLVKOIADpdhmRvo+M061TvYhVpxSCmqRMnzuVh0nxrBYbcDKQxYQtl36FsgCcMo7EcuMK/uEXN/S9wRMcQ3DIx2IpXSndVt074HOYaacoBz28jYdApgTPeUMsSouco6Drzld3wNJGBCmOET6OA/9QKyZXVcAsOYRWDhIeohfW4skptn6XbZdAp2oY4yC84x7i5WV1bJccJ4njtvNS3oawFVs6DtPMIGkFajIFDQpLODrx3r+CR5PPdS1L14gSYAco6sXokvlGG0AmLlMyAkR4K027NuO3coNG0CYGjPdmoNuBtBVcbTwEgMvSD+XfXoLjNnzK2m+gJarNN4CO0NCV30OnKP7meg6T1MC5EwIIxNeaYvmUmhRPjMfs5/e0NBXKrxLVb9r4T2FsFj9CXALpiTYa0ovQ/alD4AKxpioYyB7A+HKj5oulE7nZMzjxKiyh8cL4zhPHOfUXKKC0SWcb5wdLy8vYEaAMgt3UuPU0NA/MUzFs5F4ElOu9HUHRIk0WdMMA9DwxVCEEovGK0GUlJ28N/I1u3bRBnwUi0ICSbAHibfAvLROo3eK/v8E9N+/MttaaTt7ZWNEBXY27dp4bkk/azIeZOBvXW/z2Fn19Tml43FrG7ataT5hRe+byodjiTAgIlx2sbq3tkmvGlXsOYH+4zgwyvBSqXMCZU60VvEPf/+Ib76+oLXia1pILOj7tmHqddI8bMP1ekHTfDMpPBG5T35OXR7IbprBh+gup4hIC3BETyL7noUKGY1cy8Q//vE9jqPjf//z3/Dv//HsxlkzcplRCERoVGHdExz3/srriwH9QAi89Q2EiTgApmmofpwYbj0JS0oQutVitre7cV3A230Y3PULBwMnS8nC9CxXPbFq6wA0W1yvnYCjUDBY78fEoEZ3Fv8gbj8gMBSzHvYCoEJKJUwI0LuUgmupuNSKJ+0itzc5INZIaOl67JqhPSsUCV8vAwz+HXh1insAnoXkmy/7fv6IWUJaEBYr6arJeMUvXZ/I/4VfxA7qLI7elBjbAo4+CiNXZQohuYJ/Af6WqU/uOkaqqqD8PlYgMVMdgYKIfBBZFalV2UHaj4hP5riFP8XFt5IHvyKToO0ABrL/lQgbCDsIGySCZwfhQlLaM6ABx7iTXJtAWmdO87+bC6+/LrLx7u+vd5b9X8I8lVFqP1kwLwlWC69Ybk1+PsPinB+swEQ9ZMvZ8NuH8H1tqU9jyD/z+X011/R9Nx++tjzaIXPrJP8352sdWIBrZ0+6FhTglBUU5rmZ0mPCO4aue5KWR9hBovf7sq4OEjI8x7IPQttpjdWyT0ygYqDnztKf98JAuivXvwyI5pROv/Pemp5BCVvuwS/by94C/LYGUo9/gqzGt5d/jvEP/X3MUCZzaMp6XzNsxfPW7BQ4r1ysl0o/Bjgy34iQqqQ4ICzMea98bvY3YwhQHpvA6R1DfJPuDehI13EJJ20V2DZSrB50MBKoMp5pHYQN9Pu6JX7hHhjAyy6/GoeNJQFZVxaWq9b1DW+BXWr/Xr+XAT/ZxXf06OeRkYyHr+ku79496I7P1r26gyW/+sq8Rz8I3sH5Glq+8+Y7/c1HHzd+9WyLPMgAOTx05uueC4hecAyQ6CYXeQD2XdapaUnMi75NqIUafj9m+PPyZ2FA5KBjzt/H+tky0xD2r5/1ej+2TXqhXPaKfRMwb30KzFAR41ql5i+IG399UaDfwg6j1B605rc1nkA0c2JIrLG0rwIAjUEnlHoCRG5R4cRQLYGCUFEXBQBCNINBfx7ApwF6lqQRLhM0NIZd355clw4cKRNwnmfWewvfOAD+Px3YC8rf7aCnGuAT6jxQxkkE8FAmBgGnQoQVOxX8oW64EgFV7v1uv+BJ20u/f/8VWtvw8PjoCTKAAL9SW5ozuTWqIICGg/37l8sYOWD2+8IoE6N4TXy0/k4SBgpo/D0D5rUJIcepBCoHUWfZwmHcteJyEj0u3psxLVxJD402P4Guvd2E0ukxq249JWG3T4BqBxOJlX9oxR6BPlrJhWBhK9Ioo/pz5BEmZORab+VNBsgCLNmSyjlIDAJw+ucCL4c3WVyYUIFQqlYcUq9M3XZsfRerOBEaCH+HigngG6p4pIZPVPEzkZ47oeOhHhHSUJ7BUv9fBDGpMl286pDIRFtXBmN4/CwvE9BJEFIFU44/kVjnWqsAqlpuVlBEesbZ900+F8t1cUCfGTTp4tYqVTAkGYtw9oLb8aJAuGDOot8xml7B/1sKQBYgmd5z0nPu0M0sz59Z2JFVo9EqQEYMCfQF+IBLDBeIfo6T0mGjKQrStfGeAfwxh+ZMSBztGGIp62L2D+v5tklzMm/gl3JPdIxUrNY6lgZJpGNduIrzIcboHTwGerfcjVj3MYdWuonSplH5bAhIgfK3dHvW83Ocp96KwYMxnw/wsySFz7SPFnIAKihnB52n72HcEb4HKwgCWj3ww/VHXNsBGh0fPw+tFpdoB+y85fnlBcdx4HYcHsc81OhgNJCTeqFx3LGKEsvoTfGQEnK1+MC+SYNFq1on8mYoTalXDdBeIEVj+gtakcolcpYM0CUjgp23GSFK5PlAoQB4wqzRpCpDRISq9Pf7v9swBuG//gJ8+ixlg3s/cWo508mRU+Q74DIBGJx6BRg4NfnAArungW79XNuPiCqhzdLIQkNhyqblOMl9iCg8/DrFqaVPbU1NefIxGu/Qf/u9OMNA21O9PlWikZytgoqKWpvHw1sTPccgCB7jjfo4DCGZblePQX4+0ufkGlNW4EupqJWl8AdZUq2MzbyIwuINtJNjBfMMymcAmFBLQ6tinGxVPHKjyPlu9ab4zUI8G1rbEHH81tdi4uVFSjofWn718Trwmw9XtFZxvT5g3ze8fyd9iEbXMEXDXklpMTlSEug3oG3hjeF5ibVr2pBQZxfnfQztYA3n81Z1zr2bdqZs75hdVn74sOFyfcBf/nLgX//9BZb4z2CvKohNaGBMNQL/N7D/iwH9LjSNX0z4v+OiO2FKAbIAi6WNeECx+Cerjn2VKCpLEAUwmLJh/DKAjwyalnRBPg4rbLKC/lVTtmM/MTWwXA/0BPCZgXMCgyB57XNR9TLGcOHtoT+yHpWAd1TwZDGIAC5aX3/TEJ9mbrBa45DrvOXXqBUfmrqJTIox3TMNxDgiTOEO6d/JyTvxeLeX8amLLU65FWRW77Aqy7lkf5zIHrXC22cIi7+Af/J4dIvFd1+YgUi9Oem1dsnQEJehcb9h5RcWH6yeYv8N+GCaeXyh37Aol4WG7tfF5i5/StWpTDEgU5jErVhYeLXXinAALWXOij6vEOFRn/UehEcU9HvWr0x/Aezg9Tz5/FVQ+BQpmBfSvtn1+UFp6vaOfyttajhGuLsBq32dAXHcMtc2JpAlnMO8SqSl3RigimndD72+eoQxOGnzah1awLfN400hmsHhfV7K+tXFSk35r7zSSdwwvgN6NZ57z4ZxWhNorTWUGbHMvXdRRBa+EGtiDfpaqy6I3avwavxpLPdrpcMxnQZpby1HwxY+3OhreBUrTyC/NPhcpjsryzfHENDfpduuyYe8bl6udg4vr5w5u0yF7z5XWq0d1/oJD/UFYMJ5wpNZ43sRriHhAkMKSdwpB0AYk5z33zNTRjoTA9aJlkhASCkF+ybgcCr48MIAPhsCeTUfRoGVmjSLclBNbFuSAQaQWUoE+/g5jz1+5kRbUzqfHjcwF/zto7WmtnKIM3XQjvuI3Mky09bL5HDmLyEn4GOx79je3Z0blzO8rj3gaN35MluPiHTNr4Gu9KdglZbUHx5eIM4zUcrBUd6dmwPeW6jdiJmk6j1/zKN4dS5tnAqCFz688AML6Sk+pnV2gdPuxxmQxLxRZvEXuZrD8aZWbYoGoIaR1CM0wmjRlc63Bnz1rmDbGh4eJTx326p/P8bx2rOmA3MFxanhF4w9dl6WydlZQBibSP/GvMoyxx+ueAR1Xq9SUODzZwtXUj4IwZeOmx1O0K+SH/DFgH4lEDtsBsp+6VpnKAZGhA1Z3eKi8ZT3zXlEiZDVsbqqHhd2MOZfTuCmJQv3hslJq9OqLM7uaT2UoMQY9bBYZ0WjMiMQVAJ9bKCTgK824H1okyYA/T4AvuKJ9+Z2LwUbEa5aEmpTjf9yvUppzn3HfpEmW61pcwl9bmsb9v0ia5dWVBLyZIQmCDJbzJZSrxBbyK8LLcXvGHtF+Z8r6GUO67uBSBN+kp+huRoj4pgZ8Gtd6ACLILMlNNAebxFrILW2Bsp3oec/iZyWtIUfWJlAKQ21kiTdThYwXS32T+VCWo+p9ZW1pC9yd8NUwmZZo9VVCmVCvqrp0hBqNk9MYKruZNtEpWG/PKD3oT87BJUAjII5GY8T+N1QS/+UB8zvduArqUhTasWPPx74+W+iOEmlIrHYiTIkCVRW4k8YcnhZPPGPZS/7lOsbVZgNMXs/jB5AFhcdVk1LOM+0kwGGWeqs0Ykz4UU4m9CpKGUkgZbIWPdyzIEypWrIKAOjjqXGO28T+E2Vkp1/Begwph9nyOmbI2F8CfHQhSey6g4r1MpjznwI+RkLIOZlTdBPsV4XeC+PoLXgZeFhE4BoNtZ7pSQrSXOmc2lgyUPAXgvLeLasye32gtEHbrcXbciGZS8MWIJIy/YJzXY1iNQih4sZHjNsOQm2WH104eMvJ/ilO83IvKLnCqiA9hdQefG1dHpIWxE0K2Ot88R5djQMlwk5ydWAp+ULRcWZCGExXmR15+fIVkmhielpTQW3AAAgAElEQVTXyIE3b2tphMu+odWGx6cHrTAigGr0jj5O8JgYXeXNUCvsAJilF0e16iStpsonAi3mGB6xSiD3Hsw5pVpQaR4LXzVOfts2bVxo82uglFEsiqdYb3/32wu++1Dwpz9/xL/9+y1yaRw0ka9ZxgFGSLWY5Vu9kMoDQEhl2yn9NKRk/CbkXqj2SiMEBeb3L/Z7Bht/rdyamKT0ex6Pgze/Lfv6mNfHLMRrcjot9/GvUr7/yheNHb4B9V+9yOVVeBOZq4fgWBJqWMVf32MNiUHCOrF2zHf8i4E5sreFNHdEZHJR+XyeJ87zxM8//4zeT3zzdcXje8JlZxynTPJqwDopnvZ8w1QLrvsV5Sa/reEfg9A0rHhovevJA31I5bN+dr93KQVjDNRWIi9Aeyu11vD0+OgGaSs3zMx4eqz44x+uwQd1awmEy+WCy2VPSsSv7+kXAvrtFQml95/boQeSDMeKNeccmCDUMVA80SIxHORNjaYQbWtAnxgfJ/gZAAp4YzBXZ9CzJsFlAP+eQIxj23jGVCtTygy3Pz4DeCHQuw10acjC0TZaXoxvJuN3iWhBhKYMbtt3TTp58Jqy2y6lrWqrsC560Gv3fZexIQRpFoyueKWqHPfeEiKSWsLG4IzLOCfJDNkQtTE3+12ut86kHs9qWfjJyrNUEXoDSOVHyRTcFoXJ1k9SP1eQC/OwUAL7FC27QQDG0MRnc9qpwlgqCovHRcr6VLkO8Hr/prGb9YPZqmdQikmUsBjb00ATCfg7+E9051eGELKzMCcDhSwSAKZzllJB+wXtPLFtFxBVB2rCpIDrBN6rkXVahb+vxZJryUefP2sfCpKk+fxT5G0AbndFslU7SlU2piRfFzY3KhzQGeCX/WMHPPmM2NmyI2HnBgimXkpO3r2z2qlinhl7TuDLL1cyptZTH8OVAH81AB8qcDDo8wRO/zLA7N0s1h4gAWpszCgFRYHowgvv+Me9dc/GKbSQPSLBIEcfoNEtKmR5mTWRDPjcgfWVPMP1HdbG/HwE0E3n9/WLfU0ODXG5HTccx7EK3RrVxgCkBL7h1mIHOkYPc8ZzWdak947ZJ/h2AsdYQJa7ymU2wO0A1Zs3ILznZ5RlgMqnDWJtHCVCjgzkI9Ep2M6ElppM+6xkCXYleXgisM3DhjOXhHWxNm5tw75vePf0hK1K2AqY0WtB76Q9F8T7MDBDWZvRlMtKEhqoIzLPZzJ8cZSkzSFMYFFMSq1gItS5VsorlTycj8FaLlUqtzw9idx6ebnhX/+N3SshayaFOKw3gR/lIGCYxVkH6BgBxhsSgcS/fTODdmOzHBiaJf6edt96+VGhuw8zCRHdp+upkp9owZUJWoD+CvgzH4gH5eMWPDLA9a/PYP3rPfhllWv5bRhnfV6sdYYvJqdMmbJrzSBkj7frpIkjOb/MMrX3jvM48enjJ4x+4IcPV3z1runfpF5+yAaTJSGHcggi6yLKZ6bQv173vBaSrCzXT2bwWJWa8zik9GjiXaUQaq9eetdC+/Z9x+VygdyRlvW8Xgt+q8A+7w6Rgf7L6w3/hdcXA/qTOAMy2VOaPACrzzkdRMR3FjBo4ILNxaJ3lKBHjT0l0Ang4wRuLMljVbQrYnarKYrU8M/LbQy/6L0I6SC6cJzpsL52xYEI5Wgof4sERW4EvBPCeAJjZ+Bd72hdtEWzehij3PcL9n3zjW9N4t6EIDdt79wkibNYlQKdRhqKn4m8jrYfViI1EdP0Ax2fveX6sjmzzz3WiWkuAN2BnttUVMBqx2HbA9vP2PWkbCVamSypnxaOU8vUc2/Ckr2cnB39qrfiOTB5YGuytqVWbG3T+xfUKbF4Yr0vnpwwNWTIbLFseSU2OaOFzFwys3blyBSSZHk2uvJl1jkgrLC5u2V4CQAiqbTT2o7L9RG1dylByoxNOzFTaTCJTIWW5Mipz314aPjNbx6E2ew7SqnY9w2lVHz8NPD8slY1sEpJZu1zZq/TmQDGUEuafkfVpzjbjARgzVMw3NLvNDkF+dUuSr/RHjh4grtHdT+UO4gVOHV0hdLWffWeOdTSP5JnAAHwMBizD9CpFl1Fo2ZBt3mMIZ6Q3qUHgdQe75ilwKrcGGohU4bSmXJelOOkkgDNb6efMUFjABTnN9YulY7MvFPHTCTVfI7jkD1ST6Pxo2F12TOo0vuYV8N53P0qT8ZxnOhDmt0dZ08JfVH/vDbLT5IzCOroU6qPbZvxvKZxx+LlrGqtVmIAFwbvBGwj8J4qPAYKGQR6eAA9PCw831d/WXLCdev4+vqCS+t4etyxN7tXrCvSfkzt+u1JiX6zRCcWypQacIFNybf/ChFbeMS+NVwvUp75uu9otUpfhcko2oeGCEAt4vDmCi6S/8QkFXqavj2/hKI5mPC1+F/QhyrZWmGuFEIrhMoA1SbnFcb+GFpqHqwJmlvdNH9H9u79+x2/++0DzqPh82eg94mPHxlnZxSLqdZnOq1Rkq1O8Lzqa5xzYXxAsZPKLB3EWgjNIrfsEeYRWzHKL74CpcF4mA88X/IGuMxW8RVAx/PzPYznLI9/BcT51ffW16qRiAeFlvFlpcn/zfluaR+QlYeUc1XCa1CoSEg0olpTKQVlWjMvLbpAxcOWW63AXvH9dzt4Ag/XsoyZvPNzDElkmxpp1WnkvA+GL4y+xJN/z1OzQUU8j02UdMh5kEZ+Fs1gFQGhHsroIm2VgFwGjCFKc2uOLaHzkBzP4ltzP551X3759cWA/vyi5SDpT+3yyRYesCRzybfy6y3AL5el0l+lgD4y8O8DGIzCBajkVsXCUhkHLHFlQByaXFbTiZnUTmyVRVybJeQawPlnuRWUH4sTKB4K6PsL2oXwRwa+YsZ5u+G83YSAtDOfNap4eHjE9XrB9XrF9fqgnotdrtn3uDbFRPtyMQGJ0H3dkI67oEmYwCNIiEVXQs7r/fY+2i2UOYC0Yo9YOqZpyJo3YclV0mZdbkyF/aczr/VBvr6JTSXlRYGSYTpLLIJDbd8yK2Mn10xJNNqaMJptAxGhbqacJMitjMFoUkrg0bLmzLYOKY6faJ3TnRDKHp9YbPvCXP5G+U3hISAIEypUse2Mx6evMMbArqUuq7f/DoZB5NBb5yBM8d37Df94eYdSxKpYSOImQQX/9C+f8defBdDkMBYgwus4g37Td4aGMth3GJiTQCTWGrmPgHI3ACShby9LGKRzA3qL5D1kABu1wW0sk7X5zd16ZoZqya1n7wARymn5NKLEmaBAZ+CmYYKczr/upYXVmBX6PA9pEgNga82BhnmKDPSXQv4s4G2lO8iDfT0Aa6ZG4N6Bs2uxhFTyE1i6wWbAn4XfcZx4fnmRs68xt200Bf3DQb9b1xUAeFw2m/U1eRBUML68SALx7Ti8S2ZjaDOeqmFg1rthoLaBcp4YWlltv14F9GveStuky7g18yEC6mxikb424GFol0tZGwsNMSMCvXsHenpvR/E1g0ufff/4N/w/331GKxOgh8A+us8G8m3Pez8xx/AkaColnXulZQ3r4RGA33i1whXv/rppYuf1csHjwwP2bcPTw1Ws5p+lNGi1MRdCRRVvIMk+D5LnRYJoEy9BSdZbpbmSuAwDGkolHr3qsrGibdLs7KK8jsnNIGDkijyIGuX6vO8+POCyTfR+4vl5x8tt4H//8w2fPovSbT1krIHZ8HOSvabKWywG33Yk42HnDYk3o0T+U23StFIND28B+/WjALmU/pVfbsh4U2LKN4ki2ZMc8IYMiXCZt/HdNP6aDAS2f64UAH4Pu+bNmSTFyIxKXIriqMghCQXAv/TqbgbyixoMaqmLkZIgtMmwMpZSaccUz5oAf9PyxKNV7FvD9988oJamxhsNjdTzbZthqZlSBloNEhpqNjxBVwyD0jCvo6KgzPAymOHH8mPEAELY99355ZiBFZmnNjc0WVPlXHOA/uM48PIioYTnKS5iKVFdtWQ3ga07IQDSvBubq1cYJG12+iZlxesLAv1GGG5rgQP+NAtmwBr9BIDNGjgWIs1MK4NPHKzxnQzu7B4EIIRdvPNBkasmW+JNEDgrRyE9jQt45lwykGJELG+ChMxUqnioFVstuIyJBkaHKTBycCKerPmhqW1zS4l1oowSVyr0030C1OsaJSudcBOdKyOMiWkNFpdZWpdlR0ks6VSgpdaKMwUi9db4eLLSYeujFWjExJSpZCEbAlzRWiFyzlEAuEDXOp5C6UoXpACAIhUtanFA4IqLKiNSG1f2hJ3W5N7FKdjWL4P5CI2yknKZKkw5kv+blS0JCv+CrQbBzP/l1Qrl/SYQVa1xLGFf5qqVIZGfH5+Lbqx1Cm0tFPJNK0O1JqD/8XHH11/BFQQwYBUK1qZDEiduOZOWA/Hp84HjGLrv5G+CzbX4moj3zYS2gv1LBTVCuQSI8FrRZEw3EquH5nQYAFlpF+uLw1Jty5IVsgC78c5CNa8rO0BJ5THNGIHgWf7TOmAiEcuvvIzCo+RdOjxEDoRkOvfzpru3zXB9AtJ83JNJajbT+9tjivHJBDpM8YPyxKr9R2ptkotRq/K1irYLKLDFrFW61xIV6eRKhIt2GPewTY1Jz3WyrxA+9ELk0Vdpe4MGVpEjK5rOsJ2ovZ7Ya8e13UCwECZCtkXxHR3cr2He66CD8M6Y7pfPon+dwhpq8fsSk2+bxlG1Zw6YkUBy/axSiISUEbPG/6/lIGMicNq1c8BjAhCFGdRRegfVIbxP+0AEKCwKuuai+Mn47byqAlYLWpPC1PtewSj45uuC69XCdbVYRx9qgDLPre2P/BwW4gW4McY9c2rU6Z1x7A08Cb3LGl8uG1rbUWoTL1Eq5GHPeH4ZOM/7fY1/LOeeYVrFcqVdLSU7Qykyi7eVsgzM8LbSsURCAKA3rsvgPgqKvpaZlK6L+aZ5rX98U+5nWQdwomEoGb/mtw6HljW8v7nunRp8agXev2sgMKru65wkSmAcAef72QB3z+cCf5LvEzux/7In536tHc0k/nr/zvPLhpVX/RhM/pncsFG6aLawUAH+RUNDf7nYsLy+INCPJJu0TrID+AhJGWoxMS2JiKQRCkVr66rAVyx9ci9jxKZR8l9OjB87ChdUthJQd5vDEQqwbAZblQeSmGRtxsCaTGYuaNMEV8KidFAtJpZAqvU+bhX/uF9x3Qv4OCRBajLOHi7v1prH7z8+PuFyfcDlsuN6uWgnSmG4pVXXrqkUYAyJv0YQt60ZF9V858Ts0RTDGOZqHbAEXIM7uizpFzLKpDhgRWsRE0nW+WBJ5syHy+F4Any+VneHIJGHH9SZxu2VnVywhp1qeZruNSAt6EkVDb/OJbDSEKmXgsgtXx6WYz/ZfABRYQmuwAp4ZYunpdfhFlZnm51Fp3XOtwLUih+WZzitBtCaUjAKVBoeHp6yjNRrXJrDLAaC34SB9X5iDCtzmMroUoQA/OEPF/zud7H+Po6F6UVJwk1dtKMfOM+B//f/+wl//vEFVJpY2Yi0aQmDIVUyDJjYvvIUSwoaQH/YgHcF+8OOtkslq8vlArOaMzPqUaRE5XEC/cQY8PKiBnJXYRBrHkzWEhjNYxHWcUwGD5YGCLrxBmwAhKs4lxoF3MJqIM5BHfB6LAyQhzbyAihIlSmjHRu7KNrWMCpyBuyGhBTPrV5B6UYZ5x4kTeisiVutBbVtCu7uPa9KpAynxfS4hIrk71SKdL5uG9p5allQMWQ8PD14QipRgLnjOLF/fhbQr7xvDllXs5RKbtOGC4A/UMUFjH/CwI8MUDL0DPXzG0AtY6JMBaUL4Ic39vv24Sf85ukvIJKxAABTJAXaITfr4ertcOJwr3NhBmpFIWCokiP8ITwkTo1MaBpzf71oeOe+Y28NTXn9nAP9uOF8eYF1u7YzRcVosqATRTlBUx6UUS5Nr9IZYJOpfWDQZ5Ta0BnYJ9D2HZfa1BuoHgOt9jStf4HDXqk0lM+edFytTvPXK+H77x7Ek66oVLr1dowhJVnnXHO/Jouh4uynnNkxneSELmU9Rj9w3AjWBA5gXC+PWvlukwINbHsuIx6T8U//8hk//ucNZHvDdz91m/I5kzMkf5ycQ6Z8SwGI3C5g1BGdWCUEcq3uI28rjZnY+VuAGgaAQ+G4f6dL0zP41d/cCHV33/sbZEVZlpxTyV0Le5PvTONjltO3NL+KezNYY+BPfPv1hv/194+Y88SPf/4Jx9E1jyt5lebEeXYwtAQxAotV7V8UA7dwo7nw2xxxko2neX3NuDVzojkA8/AJ/4v+MqSbbnM172bv3ZvFea8CsZrCEIt5JOecavzoAKls+W8AP/AFgf5wrca/33rdW9wzdgmmbb9rK3Ro11AANEnO3QnQAVnMavdagW2cEH71XHOh8YSC/ShBxl7jOyxaEXwiRGmbbmVGWytojbBVwgWEHZILaNjB1iS3ra72thjM5CaFW41Cc80r5UzpzqREJogQQIeX+UfCTXgN1rUxoGmvYvvmgFrZSXJTxrgSmnU9OlnZ87xsSpToRu/hIDv9LH54bQwivAXcRkKiKwYc3gA2ME1BFj5mijlnIBUzMi3dqNUUyVVYyL0IYNKSiSpskNcoi0ud2jSlI50hTvW9DWJQjEcuN6q06r7KzBX4xPVw5mPgMJig/g2EbSNsWxqng7u8zwb6i4L+iX4AZxu4XjdcLt1p20AoQ6rwWBx0Sdoez4lCE7wB81qBawFabkKXCGP5aZRrSopGHS+gP84H52sN+OieW8MiKwMrXYynSXyEhw96tsLD4/R8l6i3jkM/s0Nr+5FBvSnB6fy6IsBCv+4xSPNaX/qsEpVCcg34uEwNG0sVKnhVFjuDerDiwGQzomWa+xoVlGJeJwWfSgdWk7yYEjSnVmcDWusCFDVEYFAYWnK1kwrClRgPALYl3yXAy/3LvREG0IwWdD0qndjKiwpfVfxy2WO52M+gAUBLfM2Ptf0yg1EpUlsfxr8pnXmkj3WeZuUvxjdM0TBwpefOv288ANa7ITwibriwddD/OEA0XqcJ/HNMgATc9NFBo2pnba3+JG1dwUSatD79LJEpHAiaDMVbfi9EuFyKKgdywRwTfUiIxHlKcYGuxqquoLIPoHWzhA47KDIndQ6MKsCKJ8BTgMD12rBp5TtR0qFeDbnFGMC+EVoj1Co/t61g36ypktLOHWllnCLEYPSU/ujrn+Vcuu7+TplH6UaZvHn1ujccENxS7JjJ77+gsaCBJPzuAaYppravv/Do10pEPP6XjqJez4pZGKUwap3YN8YcOUS1+j2n7YGdOVsf5VkBwlnXI4/5NX+8t9SvE7/7W8JARcuQyjoYspJnGF4zvodX60bu7fGy03ZO1FAQXuC3ePrr1xcB+s2lPTRO3xI9AkTxohXCBFhqxSLXijmT9RoLfwHUkjoY8z86+NNEOzbQdXMwKVp/D21Uk9dIXZ/FmN7ILhgWcGZEqxttzaSywLayW848NXa23G4opeC7D1f88F3FZQfO/oLJFic7UWrDw+OTxm1eUVvFu6cnaZZzuWq1niaCs2riWgL/gJWLJI/tX0uZItYBMmfTugErjbhWQjKhxQmQZtDvIkrvCYLX29UdF9esex5yMnQwsHxvIlbgIJq0WY6NYRAhYpJNtKV1YGuS5m92kO9pGGL69aoZ8ndHaAAIXSvPWAlPAdyS1GhlAitpjes7sA4fW6yXY+O3lDOlJU5fcBnh86F03lemZGw86hGkv/mXOO6JJHTTtWst6qxErMpU/pLvS7qYUFXXIAwuABOo7mjE+If/9QG//W1flLqioHDO4QJFpU8opHPHSYx/vzI+FwHffQxMMPrssTYsHrM5Bs7zQD9PjDnRz1NBfAB/WH6DflcqSAycZ5dLFHTGrdX7dZsYnw7wxxEJaiXV2a5JYdWVtNLBUPBf3coZIMgW0kQGaSlSq26UGb75n2xwBqBKU8tliXh/G4U1n2nMuAzxKu7ngdorjvPQhjD27IK6XXTM1c8F2CxcAY5F2E3ni4uXA9YPgXFqlY4+GYOBBkKpGra4P0gVGQNJc4DnQJuEbZcz2jbLL1lpsZSKVhsuRHgqFQ8TeHwiPD42mCon97TFk3FNErA3mDGn5HHUGrKEeeLldsNHfMLZTzy/3GRt1FsDU4QciAU5mazo5+ke01Ik/KVAkmuxbZilYPRT8lkGqzU0yLNVaSy31Sp9WmpFK8J3uHeZ3ehSh58it6NaWJ0BvVrBllCs5z5KTcvnE9CwCqVzKtB6uC5HzuPEmISzT21mWNGOA0QFQ0Ny5cESjtC7nM1d89Pev3+Hy+UC05nHmLjdDjBLErmdn7V8ImHfL2AGtk2aLr7cbjiOJN8Y6iUI/XNiuKW0n8JbCNYQsGHbL/598xTI8sjiffeh4fGB0TbxSD1cL/j++/cgavj5Y8FxTKBqszhF/+KFkxwBA8jWo4FUcTPQz9DeKpXBpzQqc0WkSrU4KhbGq9XW0okGw+nFm0/NOIcWd3673dDHwLZtGqapz1ehlO8p32OvNlaU79j1zEYjYpzhzIcYDspridr+9hwPu1Lgn7FT1epd0nzrwHffVHz4poDowH/950cQgOvlguvlgrN3jc8PfuOVAPW+m/Yw6qNrDL10qu+pmo7nj1HgDEu6LaQhrSwecAajzOrKS4b1+yaVtKTE9fBc0DGGF2DZ9x3X6xXbtuHh4apGDlEet60BuKCPgXomLyKLd5jB2DS0G0Zr/83riwD98jLCUUEReOQOZCpB8F2clSugobUVKr4YphT0lwH+CAHHm1XN0dKORS0iME3dDqAKEdtVNmVEhXYSvkZk7ERu9WtXYZjrxApoUibSJubssFJqBjC2op0wLxe0VrHt8tOtYJkRmiUraY6uWyZQbVZ7AEj60x3hyO+51m6Ez9hP+LzipyxUHAC1Pxh4B0kSmH7XuiMbUM+AP9YtP4dhCaM+ZAplSiRuACyiqG+tVKKAMhgMlEa8SsvoYfny8QFdQzugsfyi2Ig2fmp1E7YurGmBwjMSa2LzW/9tY8RKa29ZGfDK3hJzTkoUge6uS/+m+F6AgfVlnzk1pX/7inseXaw56Q3d/qkbxflMEFAK46uvrnjvc82rwWCO3ACrhiJ5AxPgghsz/pNPX0kpn2bdP+F70PvpoYHG5K1srIu4BSyHO9fLkKplFzRseGBVNLhPjPMAn1PjTjXETit5NTRXqmJtyYVnvPOBhIOx2Fd5pnkwjVZ8t/MemAW4WngPpM+EH9OYd9GETmZ23kl9VVIA621QAKggUoC4UAmHOmnGgejToOGbChbmtLKu6kUhcmBTSnNhCZZwtwKAyhQlKo3HqoD4fFQGbFSw1YadCft+YNvM5a7KzLSxCvxj5ftGF3mZFN14iNFxHnj+/CygvW7endr3jLXDp7KQop9bj4Y4ewRoeEKtRWh5EsCEyYQyQ/HTInTiDSPyWH7rXM+SYeuDFkUheTnT+V29wXB6z2ch8zAJRVTPgdIhsQCZgVO6lNcGGgNTPYfnkG7DpElT0gVaSrP2vaPVhoeHqydEAlis93MO8WjUBqvSZDlsJmPHIPEWHZGx4Xu2YAX2MzvZEoG1pwfk7JVSpOIYZppzGIceHgr2vWHbGva94eFhx4dvdzBXfH6ZuB26kmS5KEoPqlxNKmC13EqCNJwHGG92/sNw5ePe++fTUgLNIsIUHFPmlj1WOd41hMhyn+xFRK9CTvP3QobhFe3YdeluLgcWTz0RlgGbPE5zd+MTAeIhJ+xbwfsn4DgGPn36jFIKnt6902iHoiCfHWiP2+EN8ox3taZeZuOThaSQC8z4E0PKiq0pw0XDTuecEkfPr70ABKnWs++70H5fMWDRkO6iIZW13XVahuDUhqYKa4SaA1FExozbC577ldeXAfpVCEoCqhCC1S8OUKcTVE13jI6zd9yRlmzIilCc+UrZygIu7MzCD7RrqeYajgx6xZgiuAov4RwLYEzhKhKSIG5qe7ZcJD+MaD58u+Pr9xuensTy5B6NRPRb27BpZ8XrVaoy7FqLv6mGbm5w8uRF8s5MHkuKAJ6eILTEJAaDi/i011VSHFqoFkyUKwPYOVZhw+xosNjhh4U0iKsdsHh9pFrhK+hlhieHmuCCVZghuzqsEKYEerhD5vmI9bBvesUD3fs5oMAywKABwMk2Xyk5CpKKRDY2QMZKGgdq3NfAsTFj+z2Rha/vPdNclSCkeecdeX0nh/tsV/ni6TrKvX1f9LLF1Q4DBmlTAODOc+L9xIFX9/EGM4mRq20n0ctrpnmHOZy+nM5UcahE+G3Z8S2xWzQ/YeKvCD7CPMXSPwf6OFONdPbliXsHICgapoBJOHrHYMaYQKmnfknGNucEDkY/OvgYaG2iTu34qtb+mZJ3Y6JyRlrvmn9joQ0JuOu+udKkACC7rZfVY6VXAso3DfSuAo+0bF88n/wZXjUk8R/bhT4mbkdHqR29D9QqykOIxgT2OQE2bRtvNdZdkVVeLfsi1Vj6YLHSTTtnmRqCsOzceTJrKueXa28/loIfasOFCi6loDDhh++ueLg2Nx48vwz8+T8PjG55ZAXzcgFfr36NLFNBoYGv2kfs5TNq/4zZ1QMKGXefQhOW42NhK4XgCbbmvWIebqKV0JWKChnXyYxRCLA6/cSYGAIkVJHbvMRm0Th80oIJcVAqEbhQUjqSfNTlvK8Xb/SDOBnAQn/2TaVP5ysBaEbvQCkYasA71Xtu3rrJYlgRC3cFmLxDsby7e9wN7IwR3ZVLCdDvuX2ar1dqxb5fJC9IyxL3ESWEQezlXxmMdh5gNQ6YkW8ufMbmpso4EagMXes4y2MyagW+/27Ht9+KF6aanGVZp1YqxmT86U8v+PxZwOnQMyJFIXxXvFhILRWtbu7NB7RXitQT15wweL7e/WYafZ6nnFuJYrCQPGtkKufbFYT44XH2zIF3Sqp8BcBDByO02BLGtWTvZG0Q1z03LIB4GD8nmf5PVEsAACAASURBVDdQ6KM18apsmzQiLaXg3aMqtcj9ArRUrOd3aqEGBk5XdhUjzIHeBdfdKztZ8UoAMv2ef4tzZjJ0CdchArDpEk6MLiGfVl5YKjCqx5EDdxoWzhUiW2tei9/NP7r2Yvyti0Lwa68vA/QDIgDUhWtuFHO1iDazLVrNSfBScKaRroIq3VrvDxVoqFjKkVnSJms8rrmUFm1aD79bBCmSKhz0U9KEmd1tn62tmX5KkfJkf/i7q3/HEqdcCSLS5lsXTW6zMpybNxazGP+iVpBSqhPEvebtLNzGbcB2yCHMTbFyNvm9Jqt2ewf+9ox70G//NbkSTI1cCXMdzYQ4VrBhDZ6giVpmtRZ3r3MmANrh1EB2DCZGkMfmgJvdGGNC2u86JyYvmRXSlRJRyUIASHhViEgSsM2VYYoLOL7DvD4/bc56bsPzsb7iWbB1TfuwbDYsuSmYhYG819Z9Y+IBVuwM+F4nIBRY7BeYjcpLSs8sfh7yGO0M2xDjGqPkTH8B+AFA4vy/1/JmVZts/YkHfh5akpMtzleEzlAvgIBPuz8Uw4fyyMzahZQBFn4kFshoErOIgYMxzlMs/cyoKXG+aE30Uoqvic2ZqKOPKU3fprjspTRb5mXhAQiFu6gAFBp5S+XDVxX4zZYXzq+PC8m9pyHUc24EYUxJmmzbjt5FwyOdS/bpMQSAGOiPpLw3rGEUCoIBEubwCMhZyVRgzwoQZoDP696nNXsoFX9XGnbLUSHguw8XfPh21+Vg/PRzx09/YxyQhm6gAlwu8kbwdABoBHz/+Anvt7/i48dnfDqToYcZZx925IUyKQB3q7TOgsVrUUksgrUUbFUr6gwJfZm9Y2qZWNazWhXktKKgXxNviwEbtn2WeGKP9cfK24JGXnMXOQ8q74gyK3FlMrYhAD8gAIfHcM2NoaA/9bswZaqUgt6ElhzsK+DPoP/+/NfaMYbmcWglp23bPPRl2yuKhsaOMcHHoUqHVO8iN/pN1Nbc42JowBROf6R5j1SxIIupIQucFB5RCfjwQQxxrUbRAVbPVqGK82T8119uOC2hlQHwDIUtnQ15pFay0tCgAP3y5kLhIUs7aefAGwuOEbJUPQ6SRK6hbGMuD2/eFI8doGdPpCkgGScJpqAgCYY2yku818tjZmXCl1GfqeGGteCH7xoeHyRMrxSS8D6eIGIH+3bOYM3kCkBeMt1WTc6brYWsbcwxzkY2Emawb8jDRMYbuEjXwiz4km9ZlKdpsRA1bhvo95LKygcBeH4mEQkdJ95Wbcx+FqoaX946x69fXwzoD2uq/Au81vD1+Fht+9w1/v61mEuixzSfzsBnBk6AOhYgEhbueBtBuiabDn+Ej+jLqCMxfn+rVSEAt1lS477yT90w0+w1ucis+bt23bV4vqq1bimF9AQ4VNbF4YIz16AIUb57JvzZuRZtEHNiLv5ZAMi8FuY98Ko5sHUWJaSWCEMKi4AdJBVSNh+itD8xPjvEEiOtsXWwZwozK7r2xdbAJ0k+D6jAtZhbmwwVUygs3hhhbnTwbSNOIFTvFd1DSWvrLksogpzNSnsH9q3UIWXgn+YWqyrURPIc/6v9JykZYAtPsQRyEVgGGO2cOZNTPEjKuNnrw2dlmv3nWuItnUe7zx2ILyQdkkER8mPDJgMtJkB8pbOyyGCWcpd2X6KAnMwirYmBjRlfM+FAwU9UwEVjv2tF1Xr9pqXOyTjPE3OIFcys7bHeJjZsvOxx7q4tAEBnKSXYNX52RlWgCMFLuQO60SJwizZvGbBKKp4LoEy/lgAZgOawzPVsmnHBvGY8Buowj+WMKSHoPQRYni8c8EPnImFR0pEYQw01VFzRN8A+5lDhHo3IXoUoAOlsJ0VLq6/M5fNMA05Uup4xTmu6+ADCAxHel+qlXaHrkl9EhG0v+PDtht6N5xd8LBXP8PR256NkCaskVtM+hleGYYYm18EVFkuyLQQNRWItnylgnAjYW8Vlk1jnfWvAnChg9LOhsDSrG72j6znYNIRp3zcB/TnE086UKqnivSmJgv8HL9Mb/H/wtSUGPDzT9y9+sfMHGgKeFWQeqtC94gmUeMu97LQjgmCIuXLWGOwx8qVWNLWqVgNIQysylamhVCyGIxIvLcCoU0sYTy1rSgQJWUuyB1GCwVdRtR5WOj37wOfPz2jbKXu0NezqhXf+ygSmiQnG07sCxialR62zOE/0wfj0acjcVGlw44PJQN0P89rb5wbo+1TgqIqKnTurEmM4wM7TUJ5XTLnT8zQ0FNDCxPo4Je+RJ3ofLsfPs6BrQ70wGhRXGsYdpgg8pB4ffVcUPD0WXPeKx4cde7tg3wmXXao5bUrnUCVw9Oae401zeqRePQNjumcdCQvZ2TBadFpXY6curcuzyRNjkIb7au8Mz228u5/RJ1uemyUKF+f/ANwrko0rpRbFi3YO7L7D721g//6cysX3Nf5++fVFgH4D3q8s9Gr5uLf011ZBJwUTydZ0lSQO5ieDnxn4/w/gACoFYQLCukyrDIuUuaUTkE6gX56joHROB1FmGvA2zzQ1djmTnNxPSiKuJSSLgqtN3ZaPj4/Ytg3bvglYKZbkV6RjWykOki1WEhTQy0Dl0IYmWTEI7q/z5+kauGnBNm+PJfODQZ6MafeK9V+1f5BYKohINfUSIUi8HkRRtGxOInx5Mghd90WYrFWZsLJ+8n1V1HI9eMsDMSZj1kO1HpEgegcfYihQsD8LwGJ1GyOYh8w9gLaBHbmBChxl1G43SQILUIUsKSRW1cIUCRsL+NcPcQb8lASjK0iAxiob6Lcys0YL9k0Z+yuLBSJuMCp72F4bW4z/hDcjj5n9fvITTh+FVgBrqiQRLA9yAQgyXo11htQzl/MvFw2WJOyuQkHKNBI+oeBzkXrfrbWFqdvejTHw6eNnSRhsB8p4bWV34G/gVAHudAsZSXjP7QTfBsZoyaova9m7VvhC5CXwnGit4ThOlFqwb9JJe9MGU24x0hhQo0EkUGXAWdYs3MI0CeUoKLfYo3xeaw1PUoRa6Vxofc85cRwnWjtwnB3NQK5VOQAtAOM4NWfC47LNmCIW6ong/V2tkOYNEDA0UarE+tPkBGrtv1EuVpIetfkPEb4tBb+nKvHuSkyRKmbGF5np40PDP/z9g6xZlQTEf/7rhuePTr5gsCpmHbfzwDYPHNpYrY+hHtpI1DRPRa0FW6sR3sOWkMvYqih5j9cLnh4fsNWC62UH5sSnveE8bniuFS9NOuueTZS4VgsqFe+6u6n3uxC5EcPq8/saCWNYzuTdEX31ETOkQyoTqAVPpsJgP61qxDCgDvYkWWbg7EIPt+PAmBPbtmHf96gQlcKymCEJy+p1dqVFIToYGH1oeMgJhhgDGZLUeNkvkuOgZVprZVSXWdoJVWkyeokwLhctb6pd76FjmUxKo4oBbM7knErDYhhjHjh7R60F53lg3zc8Pjzicr1I6FW1UFQ5K99/v+HDh03LT2po23ng+Xni558PvNzYvfhdQ3/A07tVm/JcFX8IoBcPycshjTwL1TCcAY5xjAyICLVpuKEqxI5SSEPOjG5YlFUDobZW5ykdsU3uVa261WrF9Srlkt2YmJU6xUnidS1afYfw4dsdv/thx8sL4eefBYdsmyi0131XOpezJDzmovJS9qMb1qGuhoLsnTb+bXiGFbKx8yxTqAxDWhOus3ffK6PtMLZEbmHXhpcERpnq6dGeFZaQbNjIyk9bxAYzo+k5uh0H5pju9WrNSiibwplwDUc+7Ft5GPevLwL0A3CAY5tndYSt2+fiakaARIBQ3rhZJi5iltrZnYFWHOCEJZlV9idrGbloAOBKYQIv4fa2fwdAUyFKZi1MliaI9efxQeLU9r1qpSLG1GQ/a7AVYTs13DsLKE5u7WQxcWvP/2C973sTLIDNNR0kRSoAtMzRszcXQCc/Q8PN44vkWPi65zVd1uzONLWAxwRe3Bgvo4q/A6p4AShiARahW0A81WCcVH6k/S3FtfIFECvjVxbiWvYyVhubInijN1vOhSxcfNr1WG90tx+MV4/Kk4/14UwDmV5X2l2+6I+Kcdu/2SdmZyN/J/bTpv16pMF7fZ+wvjhdyEQoyy1EQbEwBxuPrUpUh4mQAKVyNJIKHZboeBJwuv1nTYAiW0CyEDYs62Z5PjZH0+mz9WdZM/3QE/ZgYXwayzslJrl36RsiLl21oIO0m6qOZSjtsVaOSiGOciYJ0gfDSInAfWB2W7EgkHxeTfF71SDG1kRpwYDDUKFvXgiAvBmXjcX46uuXKYfAUhVshqHGuyD3eJYr1KlPSx8DjQjbnGgQlbBQQdMYbSbCcMUx9iXmZf9ek/ca3XApn3UPZUxn6Sg4gHmisykp09c5DnV4iTzPwI8a+zYYLVUD7vqTeWLfNhAYfbth9E3oRmPXm655a9W9p7nUpiP2NEc/iulvdxT/+pV4yOrRCwnjFvHJoGp8PPhyvkdY+nXePvbicmulu5AlBeTVhG0PrQupr3qSMfahKD1Rk30ygwaJ8XqyG6CIAjhJsrt45Cx8zIJKo5FYdeBtZ7OPKBlaxsRQcDk5Utxd1hWJOy9TjUwVoA6UClwu8uxtl33eWsF5Gq3I3PqUHBIiUYjNY3D2juN2CK/RUCTjXRHFAMcqMofia5VB/5zCR0gZnDV5s4pnQJQpt/UvlmeybR4irRNXD02E9hAxLhfgeiHsu5Y+bUApE6UwajO8pDH7WrkpN6CrsypfSnSt9OheIWaQP3uAuCQFRLkR5/zRhDFlks5zFo8Fgk8af7zHp6wKfsaJgXH0rKTjBsBzRpENmCZkAon6ujreTeP5tdcXA/ozABWLtpQyevfuHYgIt9vhC27xfkNLy1GtIEi8bNYiPdt6SGYYcSJSoiDCMbVUo2xQM8+BMnFXCtJ4M6FTUdeMxkCWwrAKDJJ8AwfHzIxtK/iHPz7h6682XC4NtRUH4aVEWM/1KtUMSq0gq0Pbqpam2zzBww/Dq6QUAJxi1ZJQsLrFo3dPqnIC9j2R79vhsaY48CbWhFLZDzthjavNHSP9553yZgSclSmnCIYDOCnNmUJRDDjqmCNO1KZZUJqB7MR4WDw4wsDI5wiN23emVyqkeAl763djCtIauwizdeUJcZiXtwklcoHrFVcoDrWFYwU6yHuw7kdmbli+oyE5TC4QjLFJGEb1fTFQ62vICkQ5JYYyS1AwWIp1kDDe6opeWejFHYw2aD8zMea4uIDccmFXrWAk2Bv5cprVkj2kJ6pvnKcw9fM80MfpyWATjHfaQMtKof2JGD9ZiFAeI1FUZDLFyLxptaJteh6pgFAceE5tFgSaqdynlXSFz8hYt9Ur70MsSGNOSRoupAm9BYMZm1bTqVozfLQAIsabGPAiBEAANJMo9DxAn403sGNTIrhgFjczPExgaKwx67UMYIyOeXZQKfj8+TNqrThuNxBF12ozWsxp1WPgYQNUipOB8RuL9R9q7TRXfzkIz88V/ewi5DW0sVBx4T36wHHc8FgKPkzGkzUOI0ID8Al2BFezkJ85B+lBdXY2HvGM319rEroTZ+3gOdBvP+N53HAch1tOLYlUYZJ4sQjaKLLpzivPUT5QS8XeNlwvFzw9PqLVgsvWAJ6oPDH6jgrGVqWx0LlVFIgFtpB0xF665zJL4q+BBLbAlDhTxqvyWbxjOaoJrYfQ8r5ywQapsjQxR5ey1hrGJErMJhVUILkgpAV1aq24XC7iyVKPtpXsjBwZBUsETVA0eWOyf2LOE8ftBFgSm3OHehA5uLU9vVyuABitb+Kxut3Ax4HSCK1ZvX+x0pqFfBb2pljFQlSr5ZwV1NF9ucbsuN0OUCFcjhMgwmWw9NkhKfQg8syApJ4ppZkxgXNOlAr84fc7wIRtE9nez4LzUC9tLThO4N/+o+PlpoaEwrgdJ15eXnC7Hfjpp5+8Q6vlOsi6mAia6Gd33gqCy+agARNhkXtiybfivetJeQjvjPGqy+WC/vVXSx7icRy43W44zwPHceCr9xt+/9uCd08V16uEqtU6pYxoP8E81aNflE6kWlKhopZ+obcxJ15ebsoTupeDPU+prHUcN1ApuN1uYcyCrUUQukULmKdecpJE0bkdct4PzQ2xG5iR2LBX7mvCLOXOx+goqC57vKmlL7fwSuHjhgmGv8EDYM0hKQlrGGYwhcCTo38d+H8xoJ9MgOmmGIjdd0m4OrX++b2W9ZZi88py7e+0ybb5FpLj2lRYIu5vbSAEwGJZERDyGrgaCLTYN8MQl73g8bHh6TFCdFi71UY2ugH5sPB7LFiKCaOUcPfLi5t0eFKPxEzrNM1aGaA/iAm+PhmcudBku/8ap0aIEIS3vCL3q5rXctlH5IPpWFXBdYDfTDtwxZrcgrEsRxIuXrrClWdR2EhOpwOsFRrYWAxk23jW2M88Tx8aCS4E4BbrdSXWV7hd2UqIh9DG3Zd9phHvb91XSRk7DPQDHhZjRk7rLplfjADXzimBpMzAlYd1Fq6Vpc84AHAax+sjnICKAROZlStGFB/6KMXqmGLBh4SNgBkVYmWsbpmamN7sRB9rORzLui4E57xJgIFW0mBd+THBBUAt4Mbpe6G8uP5pSq3S7ZgTZQ4wCkqKDx1z+n0YAA0JazK6NHfunGbpjwVlBlD0O8PW0XicXcOILpYWnrOCuxi0Kc0i9I2vUrGKaOG+NmPDih7VU5P4iQHqzGugPGn2gUHkvS+sQy6pQsGjg7VKTOsDGxMqm/eR0fXQ3Z//AP1BXHFmVbEHYyeVM/o/KmIg6XxGKKjSN9n+cOIBDsh902NfOOSMhW3VosmTTBitgsAes0/MYulHgH7rUmzgntmPQ3qIcQVOlZDSdWnu/iMdWQbc8mg0u95jlavhvWigwugMQOuT+7sWV4YiZ+W114+MltKwbJwCoMNQ5d/RM2FLwCqfjDarFiiIkODICbGY+AhRFUBtvMos/ID8DKMLA6aYcFSdytDDwwG9epWur8peKRYQ+EDy1UT+n7Vo/ofJfkarWp60iF2GvNngwJhSoQwQ5WXMAlioMmkpVDfyyXqa4VAXUacl97QEWAu5mtOUhrBADw2bysbHQ5WoMEaKBb+QlEdtFbjshOsFuF6A1sg9n55Y7ZgCqUJQRAx4FUKEASHnJtqbADcWmBzJ2GKJ+lDidqPEyF69OANvRUd4VIAT84qd7JpXxk2dwy9d62LozTOCwCEw09kvv74I0E9EKK1gnqFptVa1Bu4mC/G8Jn0Q4E1sXrk11DLNY2CWDgwG9wF0XtxRcgCmW5iMFIwRO5Mjdg09C00HHvq5WVZd1rF5LqSU1MNDxe9+s+NyKXh8KAvBFbK4NnXbVmtiBMUawqg8uS8lNlMJUAAYWI5wh1hnOHV4XKMdsDuAbx4V9mujuYZYPsW7QrWJsqLjMOtCBttrKIlZkykm98bLkrXMumDrKmtleJI1tjB6I9gc/TDkng8K2gy/aatgeHgOtFY4ZqpaQ16pwasaURGGaJU+IOAaMKaelI07ZYYA0dYZ3m3WGMyyEgYWzXKQGI3XqU/ejfw9AlSxEasVc1SSWkC/PmNSClEwGpiumSjsn5qEK2tKAKyBnpVbJaQwhnU344edlyJVI+TjDAD1kzQvBqQJHiQDoyAUJjIADpbyr8yo+wVDk86O44Y5hv6cOA5JRNsJ+EG3pxTCAcaPGLhp3KxXuRCNS8rhUYCJ0prkqFSp/rEPxre0oTTG+OOOcUz8+J8n/vpzz5uDABkVpUw5RzQlFj0luhNJnXCol2lMASO9WtigJunqArEqOkg/mUXJai8T5dwyInTe5Q2bKkklLAP2dxU28gwwB8Z5YI6CoRb+rUn+QSVIc8AqPM/3MNHveXYcxyFglSXkqZWCAumlMVnO+BwDnRm38gw3nAD4hhlfszRsOo4btlJwGwCbR8R4oYH+O6JcDDx6ZuzezkMd0Ov5hHrCplQwGlrFyc6ReDEIvQsNi+XfPFma+6FJkEN5lvcQ2Ddc9l1Bv1gcS5EeIK1WbLWiQvrBFCL3RFtGjHX4Nd4qYzKekedudtl0KhVwxhIZc7Wby30GhCaYJPRF/haKMEiqkVweHrBdrnh8eocJ4HaK5fXytytux4F937Fvu1j6q5SYbrXBm20yJA/J8q8SoFu8/BpfbeVjSxnaaAneQMrOWykVG9WQTxxFJUJO6ryYkWP4jV8WbbpmVVXcC8oMxkQjwuX6CCKgbtIEbzDjdnbglEpM7BWtAPe2ihSVngDKTztLyA6NkeZsCbxS6eh3v90xWZQDEOHlhfH5eeLlZeDpoWIM8RQQFfz0N+DT5yFFLjTEaZhibdbtkcL91GhXDWwqf56ja5iL5j9wUJKVWDVFbYyhlnnBb9vW8PV74Lff7zgPwu0GvHvaAD5xHqLgABZxIL2KTNkQIwecvnsfwIyyr9Iv40hFBnitzqavPgaod1fAjNadzhLm6f3EeR4K+rsbHpRdSJlUDXMyvGVKGfTcRmUgwTtzigxlNQAbH5pajch4EwBsrWmon2HI4vw0piTjt27cXCq4ljjgv/D6IkC/CJ//y9y7LEmS5EiCDBFRNXP3yFdVdU03zTT1YWhn9///Zw97GRqi6a6qzKwId1MVEewBYEDUImr6GprkaR5uZvqQB8B4MUoCAv83Q0VMqyAAymiAbZoVPAPpgQiANDXow+YycfaxxdPkwOuSH7m6QzR/v/olrsB6NQb4t1oL7reKP/3xhtteYnHxuOQ4Lnn6i0xdQOiVJ5dh89yCT5GO5TlSsdHLP5ORKKxMDYNgbRdvitdTG6T5tVt4d7jgr5bsMgi8E79GfuYKjPMZCPiX4mm++nxMZyqgAr54z3U96TKHtsCMR78YbRvTb2j8relJvC6NKHFvTdG6oHmJ+wjLu5TlmZb1JOJelATZ0dUZuIxd0Ob5PK6vEd7jv5d7oeEZRlDJCFG870eBFR5KQebu8taQzDhWsCcgRaQuc7iO03rur6M6/kJjCrleOQ6X6Nwyldxcc5ljGlYicEo7hdSCNhtOMaFt6uP0kK2t6yrAG8yDVKvgHYqpHaeyA7WDtzC+0ihRpHySUjCn4kUm/qQFrSrGL0YT+PkL8Ovvi0Et6fU14MB9Ist6yzXHCIAq2QHJYmP5wOvgUHGpRzhC9gmgvaL2cv0wYhvAvKOCMpeIFmUtrof4WIwxrCnhMCdKZdqVZjrjc6E2x3EOytt819Jhpu1LvyhTLs/jzCgCgKrAmyKaY0kp6FIC9K9z9i1Z9C3vXL0YKOktfD4ChC1efpu/hd7QDWhxdMC5MUNyhOcRft2o3RJbjzqd5cp1XK3VUiycCWZjgSXB2GJT8ze5/HudPXt/keqXsbp81IERgfGklUAFt8pW2H1u+47b7YbX11cogBasJ8aNX0saZpyrjFQLbdIF8C9r2/VVEm7kD40B82wz378AqKjVmLyw7jePnptzg/7RxYheZNV1X5YA/26OhJxtsvl7beG+vxaxn6elxTBiwFoDM9CLz6etj+EbP+g4fT+WWvDDDzVShwHg495wu1W8v1eMXjCnFcCKFLw/FL9/NkNCK40pgJ15nw1gmU5/6ela4fZZxpmFvFwC3QusY0WI4PBGldu2QUTxcgd+/rGid8V5TOx7AXR4MS8No3kBwbm6EJiO9OKsUWA9A9Mk6e2/eu6zTugK+qm3Z8hbaHaMprx6lgUhn4fVipGKue3bNeKJRd6oul71tbZgtCe0FMQthsWumDScff5vUpb6RfGfHd8F6A8B6QcH8zgOfPnyxar/Hw+c54my5I621nyCbWIv+Y2Xw4F9eOszCKLLZuI3jY5qJhgBMnTuJ2fxESQXwOqRFRHzatxu+PmnG/78pzennwJKMXpACqnq4JB5q2y3zTzHWisKG28x965kXvbFK6pkmUiQsho4wFVYrpuCn2ETHSrnUi2fke2rCfrt4ZcFTsS3zuUyZlelcoFtAU4v1osrmOJdPmJdp8qz50Smrlx+UC6nWi5u91TInpQGQQA+XoNjLAtri3NQl+r5ystDqo9hwLv83+XeIb4G1wkSbt4E5TollAA0BXYgwRX4r8PqdyDlOp4Rerzccxa9Xn/8WwQ3Im5keRF8FLmZ94wFhYqnBkDrGHDPeNQKQDYtuxSVMwyu17l7AiYTuTdTMJpXrzZgV6DUgTnFlZK4l3Y4Y5XRSyqAPxTBj1LMYyKCgYKBiXdV/FUnxrA0Qyjw1iZ+ZmMqEWxF0UpHEWfRKQU//7yhNkshNA+x4tffB3pP7441zOnOOJFphaVYp0db15nHX2RegBL/4zBdx5DrcVkgfCGDhU9thRkhNo6IFJ9LDxSCRc2CPi7fIgKdlrfa61I7AoQFSVnTz8Nzghn1455ZYKma4TF1gi0YOfXHBB6+V89+IjqoLmkkzw6V9bh4+hejdb3HSAu4rGPqh34xDEQAxQDU1r1KepIrUx2XtSwQZyBhYWLxPGVLP1GQ0UYi9UfFPISWPWYMVnTYYE6MRMqLDKVRkrJyBfwpFnw/r2O/vqbUMv27eWGxRwGlbpBSsN9vuL+84OXlBa+fXqAQbH2iT/N0btsR65OGVqYvpCMLkobXGB06pzMkWb635XybZ7mfJ758+WJYQL2LtHvRLXK2+X483MngwGmwt4UX9TKiKct+uch0+21McxANxxJkf8kopQN9eGO/foI89XPOaBLGRlu1NtRiMCxcIOSgd+OEzFB2vQkdGTGYvn+O43RmmZTVZP765ZeC+4s7CT0tqQ/zwDNvnWv5y/vEr791DDXKTWsCZ2vxUI192/uIdcP9wjFSVey74M//tOF224xjvxXc9h6d7hmh//zlM1pr6OO0+g2P7hNXtdoSm1MnIp2S7O1wHA/0s0cTuO5j3ceIfaAr3vHz0BgwY8xwJ1Tx8fFhFJnKrId+/a4q+nna+NtWQG0Vnz59Qts27N5HiRTzdIpyX6/OiEjfWeQMZYPVwJKViwAAIABJREFUXlr0mfUEx2H1Duqbdd/3aFxW6lNd5zeO7wL0A8nwAnjYxC3JL1++YM6Jj48PCxmRtqkUtLa51e80SXJthgUghKDOCYxF9C0TyIPfsgn2zYxn0GGTQqYd3rs6Tlo9JrfbDS+vr/gvf/6E//Hff4LqwJcvX7zBjz1jLRXqrAfxXCzSrdZpl8YAgdIl7WQ5VkX0/HxpmCC9+yweWYHjcg6mkfAe9m2zrnBSYEtHLqBC3ZJ9xte8/nIzX93b6vU3D/KChT33fPWbh3J21FJaCWGvceElzL/ckG0wu0B4mIq4V6Vj7TNgH/bQI+DdEy26UCFGt7B4vWgbRlMWzbDpNw++JxyHEkIAcKNjBhSKuVq9EgT+xPJpWPi4h0HHlB0aGhJrloH/1WHwLOQAscJlPw/3WgVDmRrNaxT5HJf59dSAUq0onUNAAZwhT7+3mQBttW5iijgOsGhaAfPtK6RVlNJQe4dOcVkhgJzQ84D2E2SjKQL8cXeBXKzwchj5IP4yBv56Huhixjqm4od94p8VDtYqpijO6QwlZUJ04pefd/z8U/Nironf/97x199PHOewdTYnej/RxxX0WwBKUNUcBJwQA4vjApiytsBGcvUeXT2lueQo2wBd1oal9whsuZGx5hti0ubHvXqksxUASvnljhnQINa8N8Bo/hgW5xEKMP7vHj+4x38xRB9T8fCx7mNGFGuNkD6fe1Wwq9fu4rBZjjUSm6A0ec+vn1HIhO/dLdYEC1v5TPT2FTeKqwP+WqoreYJ+eLMh0wFoA6jV2XsA9iOc52m54Bd9x2HSy5++msNv/K7LWlhPRTAssH1bW0OaaAJpG6RU3G93vLy84OXtFW+fXgEIjsEobMG+HziPE8dxgCmtBPsr+A8Hh+eOGyg7MIYVbD4eH24QmNT6/Plz9O6prRlzTNtgXXvNgFYgUq5EBEMVnii42EkSAC4XvgDqkVARsKCKcnhlgYEb34MFz93y3s04GSGzFUCt1PE7WvOC1cpomXde9rLwuewfu4+ZGMKNiZPUn2O6rDCs0FrDH+8tcINR0maNgfU7spS13k/8+3+c+OvfDjNOdzIobmi1YI6O8xAHvF5nU6jnVs+6Yt+Af/6nDS8vG+53cwYcD5tP68x7YurA589wmtOH0a/6ZNRWse/GYCXEA1yVml7+3k8D/Q+jzz169x4h3usjvOLZ5yBOprY26WBm/r668cgVXop8jalUo1B4zIlz9KSjFXGnUzpuV9kkQgZDhEFzjZRbwXiQFujEcTzw+++/o/cemJj3dL/fcb/dItL2VZbF0/HdgP4ZFHuuVHQuzSRs0suS1sIOgyzmEFhDjBIpMuKe8QqtAqkVqHORh99QaBI3s4TTFsDByQEuLDQmDBCfY9rDH355w5/+9CP+9Ic7Xl7uGP001gBdOsk5VzPz+PPH/848foL9YAahxZuekfTu5Tjmg1nof8zVg/KtvHB14FNM0QDGM11r3CNQ0jPi4xI48mksBQnQvpXyQ4UYGG4F5EUsJ98FQXyKF6OBRa+ie9mYOsEbS1MPebVAyCYgobqwtWAxXhyI04MIA6ITKfRpRJi48zkYIwbk2ZsYz/B0T1MEtXiUgL0AYmAJ6xHPzm+uESlAoij8emici+dNsltvVOLFYJZrpHn9uOVkNhB4BEIzFYX3Yd46Gr/MYWdkzDxll711sbEEmDSkufcWEKdcI/G4kFJDWKYUBeBe1tIE266onpZRvIAQUhy8Kor4Oi8AdDjotSjEJoKfpGBKwU0sP/heFk9sbQ7ai3OjF8zq0bI5McuASMf9LvjjLxPHaXmipmwLzk4Z0DCn4ONhDWHgtRb+cGb0+roQT19QsfqTnFdfTVUgnwpkE8gtWXNyNYDoBoCnbjiwKfHXZV5gin04U8vwdKExWA9i3jAuH6zff6rfIbOGLgYk64DgMswijeRNt3t6E8Eugt2juwzjs4s7o5w0WGmoEph8FW53B8BqBK2OpwuNq5BnW+Kz6enP+pnqYGHVZQAy737ZJ713nMeJx8cD7+/vxkhSDViykFEkHQjiKbAOVWM8E7WuRjOlke0H1nDlezk/IU7EAb7m+2viwcV5QTkNFucuXk1ZRkBTbqzRKepJG48C4+ZNGSYBufw5ngyZkLjqThi1CL2B+4oS9KE+nzo9HV4XWc3nMXlhhBpANv1kYossym19fqCgYIoaZvA5m6oLhlii6jaJKavEmL1W6k8bONfXfq5FUsahPu1MWVn7Bxl4zsyBoPymrsyn8DSyxEv3e8UffrlBUPD6YkDy5WbMOu8vHe/3juMQ/H23+hTioWh06Hf34w+bRZnhKbiaKTjc/yKCOTpKEZznERF9QLHtO1TvgFp+vYigl46qNcB578O8+6cZkud54nEeTvpi9V+q6nVomoQA1SLBc6E6pRFFh955nniwdkYylWdNHYp0pyWVaNWDtjWv+1ICt2msocQ/uad1TkxRPB4feHx84PPnz/jbr7+i946P9/cL6H98fODdneH7vj8Bsa+P7wL0R1gFsFoaTPQ+MWSgj+SDTuq6YkVwxXNJxUJlLy8v3nyHQt5TYc6BsXt6zzIZ3wrxKrKZ1eoB55HeS8/zW74fihdAawX/13//E/6f//HPIAvP4bRPItaAS+fEvtlE7fsN9/sdpbCdeMmoRrP0nvBCLIJ46oTMb3j4viEk+zAlk5Rbadys3rDqXeQ2L5Qmbei+37DtN8wJkOGULAXzYkQ5cCXu/sYi5PIu4aW8qDEH2f5BKqlLOhKCHQhSzONOwC8C5tJ6RuoCPDTz/gWgCkVJbx0LNifs3qUaVV7ddoAc5dMpDV3pl+q36mssciWp5L7C4BqvFJzFPTHpCXDvJdeWINabCn0gOQ+iGuk8XKdMz1BS9CjMkIKrNFnWiaixvajvQ/W6gdDeOd8AUCJtw7zPZXqx3KLgmY7H3NUwaBSADiwTEREdGm2qcFrTHFeuByptC5G7Z5k35uutFIFYmj+2doOqYtvv6H3g4+Md7fFA7w8cHwW1AveXhlqBfj4wpxdqjolXKfi3YjLm3na02vBD3VBbw9Y2bG0HIBHq77sZ1H04FWfv1rDnpvj044utj270jx+PDzzOwwwIEXx5n/h//793HOdEg/r4cf4LqrqB6IwdtcB/l9hLIgWyF7T/dkf5VK1QO/Zlgp1UTp7v6+sGVUL2rRJkjoHzcWDWAvFwPsPiRzF5+GjveN/2cNwoDBgZ+C7hNWOhNBviMP9floJ4AvgiBZsI/rBt+MXpQPuw/TemNSc6wtj378/h3796+W29Pkv1/BvX7XxS5Gt0Zf3O9JxwgaCUhrtsRkXr283AEIGZUwDCzv3x/gHMAYwOjI5WBLtHmzZJyFk8nYfGSyGwd/BMIUB6Qd6XzSFlxOLI0utqEO4ZN8qR0sGB6rIOfL8KSuxtdrkmNWSpNeRtFIpKFsFy7AhUVRVlMewpC2nErg6tjLikPDgOS91RwNNmzMOPkvpl9AErR7ZQihFPVDcSzOkT6YbCwmhPX4rx4BiQPQu+uqsXkTrYdG9798JX7gWREvikVE9DQsHk85bqdVo0PBWChQIyZsubv7nHn8yG8GfZ9xsAYN9vZoRGGqadRZG4UHxtSTFigZ9+vOGHH+6opeL1fketBW/3HVureP9c8eVLw+PxwO+/yQL0Nc5bXN/te0MtrLuxK59H0nW+v38Bm3OtEQPqrZeXF/z004+43+94fXkJo7WUAh0KHUax+v7+juM48Pnz3/F4HHh/fBhrkM9dKTUyJ8QJUCwSVNH7wHka4P/4+LjgC1XFeRwRceO92ZuWenr2bjSgBjdQleQvGimdxBEF6qybLgMBlOlGWAGCEIQOgWFj+tuvf8Ovf/sVv/32G/73v/9vpym2qAQxBpvztdZwu92uzsVvHN8F6AeANY8rhfJV4H5V4AqzlvjetjW0tsU5mS6hFZBaoU0j/1ddSNLbY68UcuKdXT3feNERaZAn6OffeY59t6Zbt70E1/vKQkNwwvujUVArG3MtuZ58Xl23LEBPNgX2alHO5RpQTQ7pkV6BtFbNMo1UpQtgKzH2a5t3hmS539UBp6q6h3wF/bIUhcZkJyBenFWywv7wJMFoEDWNAopjXQ2L+OsyV7hM3eVfq4ER4Jb/dnB9Ce97Pp4WegMXABGsLumVIRjPGVtvQy+/m4mF8EjwHkCFJxJj83yuuK4rixLn9s+v18oH9gWr8XdZ/kyMz724egJxuXW9Ai2dKGpKDHMFXOLCTheQMjHD+EgvV6jYcHpdL7rKhq/uZXnyfGSXFcUYl0ptaDCmkTnNww+19J62FcvJHz1kg60NoMHmfy/Fmyg5zWJzhgqfNFVjZdE5UYa1he/Fn0HcsFFF78WKYIt1neV+GXPi9aVZTn9dUr3E8sBZusKA3/XfaUBiA7QqZtFlfHTpGXAduxivxXa6LhyJ9cz9a2ImPeIiijFc5qrVSgCeBw4BjIMm0wcJhtUZsSTvYXqtRRXBXoFdCjbYPAwIhu8JuQiQdH6sxXcxJpIr5PkZV2X/j0A/z0XnDtnFTAAJgLmMy+qAWcfLrj/VjMLzBI5a8fHxgVYLVK2LsGz2ygJaEo1xfcc1cAXF6em/pm7m5792ZqXve53vfInvu9VvMmaaYF7GJeeCYF+ChW0dZ6aNKlMtoLZ35nVS1kh6UG5W23+D6WcuuOTyvZTZMV98ZoL5MJRyrNZ7XIG2bdxV2CD2JIcpo4wO2hddvHp57b7IcCeLwM2bX9drQuplQpax0eXfqqm/AVk8/An6I7rCvexyJ/V+wSaGPfbdXlvzxllbwb4V6Cy43SrmzKhX3KHLKXafBTIdbq6pUW4Ide/WTWOf8m7bNkuTYs8QRjQUtk4mC3izkHdMY+/p3kuI48v1ztQei3iVyHhYG29xk81hdMETax3VgrmeMNZ0eTf6QK8dZz9RjpWCXdBm8wgDqdpzbbPxoDjGsiWkOB4HPj4+vAfDI5irzGEyA7usxAP/Ceb/PkC/IllYSi25SZB8/W9vrx7+9mYubiGyiVVrDW9vn7xNfQIYkwkD41W8cj2VVSq7RSksFvGa4kOvgjrYyPlewYfgthf827++4tOnhvut429//WtsuvPseF9y+gXm8b/f75b///KC1XO5bTtaq9bA5zy88JAFxgTKDj5jMLP4Lu7KrW+Gk6e6pxEp3CKtaNuw7xtKqf6ahSgUOq0WlM36J8yJRZE4MvRFxwY1FKnktSZVGAdRsVCHgeHHhTbVLuLevYVpSQpKsQhIn5aBLU4puiBcfEVsbwPnc0fuYQcfPr8TvIYZjEUsRaSMgT4VaqVzrqgmJkwghWD6CjjltVeAAbjBJFazIGoKCg6CdA5MNyaLK0iOYzBXRFhSMCcVpQaSVyQ1Y4AXrIaqz1fBsq6cEarwWa5pYGn2LEpSkxKXAo3pD7UiipmkCmQKBJYCJWFkMjWAP4tCCfDkIMKVtkiChQAIfs6CBaS5y3/ztKG277i/vkFnx5wngAHRA9YQRd1r33F2f2YxSs3bzRrmvb19wsvLC/b9htt+s3H0EUkvdneF1HEcZ4B+VSsCG2Pg/f0d7x/voHfodp/4v++vGNPyOFnsTxq9NLzpGZdlLu15axGcovif+MD7ByJnPB0WgGIFtbk8I3fZgZh7QS7PhzDSwgXh8jvzjm19egfZtqGIG0m1xtodc+A4j0yn0Lw/wKJUn2rFf6sbXqXix2ppBkUVVb2WY2R9CRU8z81OvrzntA+eQX+mvFD2Tk3KYEYMqhMaRN1ARI5tnGpT3G4TIhNThhuCnn+8gD+rxZn4/OUDHwJ8+fKO3//esNWK+75hawU/fnrDvjXb/3OgQj2XXz0TRq1osXf0OSK3uzuYHp5ONKjvgNBfF08/gShoOSZvPQCPKMLB1ESZZnShWPPDouodozOFbMyJx8MjQKcXzJ/Dc/QPHL7ex3Dq7WqgaGsFrQpEp9e0CDZvztW4b6ug7zuO87SGnaqY3kBraw3FKVD3fUPbduy33e9JQz5Pl/+ARZo+Ph6muYTGLUF66pGM5hO4V0u3E49Iw6hqzYBwh6EX3K5GZiktogyMaPrq9CJPoMgWDbF8J9i8CQJLlGIAstRh9J5+FkuLdOfjtqNG886axrbn8JuDwtbGtm3GsoMnOSqeNjUYObPi432/uc53ID+TDEKAIP+YUOhSLLzux6mIwlt+n86PWjec50CtA8c5ABnoEygyPNxsxcvvj8PWwjlx9InTf0pBAOjcr1aXN4fRJPfzxOPjHWNMnMcRRpMI0M9kD+P8k2GreYG06RUrtj1Py6D4/e+/Y3tsbsRn/WWpxahq3TktC+hnbU9rDS+vrxARjHFijoG//vU/8O///h/4/Pkz/v77b44LN9PnIFYeOI+O0U/08xFr9h8d3wXop0czrBy4DRreLInwhRX4XguxDLA2NPe+cZPFuSqAVqE9GSt0oR6kVzOsBN/g7JoJ0Ei4elUMhKRrTBUoVfD6UvHDW0OR6ek8NqkE+wFuRYKl51rwIZDF86WavNlWzU2DBLgqY992T56LaOTzRHWWQB1BWRfj6YtwLULh2BndGkNe8PFevEcEIh6y8xGEpVSqlcROCeAdlNIAIqQtS668LOthXR9ID3nOwSos7ZM0iy5/VUBcIQcQp2QW8RSSJbi7eJtKyfQG+x49O1g8AAurz/qASLAfyoAYi+/JNzz0yyn4ufWHVKGXQ/ncCueCgD4Bq2fgf7kmfH0vHiFcV9ZVvHAcxeoT0shg4ZUrlOkgdi7ewTC4F67/J2C2Ks+Ip6jnbK57IADpEjvyfR1GZSmoVaFaAa1QHZgD1l20sDi2xByKf59GcHMP/7Zt2PYNZib5emeK1ygO+m1P2xo2bvAi1gyInimCoArF1my83j8GzpM1Ng76A7lfDbh8RGvYY7zuw5o5ApeuwG5m+5Tpda0h1963DNeLk4EycPkDPXgE9owEqaSsAT+zyKJvXUwhkKJ4lYK3UrH52IvO8NzK/Mb3ln2x7ulYOzQgl+9ktAIO+q+5u6unPzz/3P80iiI9gO4Pzf80VizoKOp9YAiN94FeKzAnequ4324uhwwsq6g51h2408CORnSaRaVkXaIhOZ/mc5kJk+fF46ax1/EVbiC3O9zxRAdEGJ5yNapy7EYYT+oGSTgr+vDvFNDzGuDP5yF6Ljg6Nb1Ts+Ms5b3rpIiQ10Vv+VwYEk9ngsJrR6Y5agK9E49QcAgyJVKsZsq6BIdJkLLlaZ1dga4GUGSUP/QG0rAIdhfqJu5J1qnxehdKaTpZEuTS01/LUhO4rGNLtSswB1E6PgP4E49p0sKGZ5pFt5a44ux2M6QDe7dwHDQfcvU8ZI48cZHPedbsWFdkc6S4M0tt3/c+cQ5L9RuXOh8A4hEpBw4RFYl7oYwe0U1YFVD35k8r6ApZEU43Clcl8pLYizIkalB1TpxRw2JG0NyNXWz0LdJgA/R7ehwBvbE7dmer+jB2Iu/Uvm+b8/3b2uud+tX259fK/Hp8H6BfvqZVg2rkgqsq+jgRwtTD5d25XU2wWDGIPnt1AaBPjH5CB2kAAXq6OHGKzN3Kjn7pgUpF6J6lxfJfF+/oE4/HOz7eT2vqsG3Y9xva/Y592/CHX37GVAvbjDHw8vKK+35DrQ06LETUrXk3Pn/5DJ0DlkNo90IjJPzhtcISl11oqDrVJr4yDCz/38JBcGHUqoX07rcbbrcbtm3D/X5z8O/UZ76Ba83GQcUXHBeeDQ5cRi7o3GdN1Rrv2H4rqQj9p3vjGiqLAkWB5/Q2JzPzKFAaLF6sAzh/vLPrYARINgOCSyqVZYQllUXidt8VzYt+TpBOXNzDcruZd2OopUMdhzXpMcVjT0rFHz9YVIzma4yaZHh1BKBIwU0qLvMQjuBhZ2rEM1uTcEH6HNAb2ad5S4oYq0CRgrqRG9zmlODDKM96gAZFepJMKbiyDxDx1daNX4ZO36O+Cs39jlIFpSWjhIh4Aa9GKhVAGju4h9z46S/hdwp2Bwo24RNw3vc03bhjXIlXAZqgqHlMoBP9BKR01HagdqBtiu3mIeZ+elTLfrat4eXFIoz7Zl4tUwR59A7ntbbmM7oAM8yJIhP32x1FaqSzqFp6EeeCnqc475MhRKVi+8kUF5vk/FmAnwX4y+j4HSQPKLn4ljXlSzH2PX+HwGuhsqhRpzr7Tu737BJe0jjxY1IJeqMmFvJd127Keip/ejRf3z7hh22Pmq33xwc+Hh/ASApBeqQjh9qLB2PMdJmciCzodd8IgsqR8wxcUxUUma4gAb6MRanUaoBQpi2/KtBhcmkive6QCrbXVijOqTiPgSITH0dHLQUfx7AUsmqRm1YEe6sQcc861Jp9TaNwzNoqcck5rUgU16gGh4LzAgCdOsVoo1yPuBHugJDBNUiB1Iq27Xj99IM52253lNqwbzfPWa82xlMxOzu4nlHXUEQxZsfxeI/xraWg3zeMJtDRITogOjwSZ86zOQZOsrOMAWBa/5v7DaVW3O+vRpd4u2HbdiPvWDqS57qHnYPpZQBUuGb4McH0miMdJnMVaQjMuUXkynoJjUhD6d3W9uk0mtQfUyxKU1TcBSMYOg2XlGKF9EVQq3nc+3m6oy6dOqXUcKapem+SJiDbVqkFm/cL2FpDZRpiLWkYqEUhp2OFVVdxiNYxq2KF9P1sOKvVLzRvHEWJOL0Z1hjGzmNY2Maexe19kKa8WFPPSLUSdNe1rTVIbdCyo8+Kowt+//xAe4yICI+zY/SBs594vD/QR8f7x4k+Bk7rwYo6ndRDM62nSdJKiz/XXiu6Ks5wPFhTPGNWsjRNiySRUct0kzlJvSO6i5Y5J96/vKejVEiTauv70Qzst2ZOJUInRjfudytcrqXg7Ab6v/z9M94/f8bo3dNKG354e8t0axG8v79bTcJXRua3j+8C9NOyBBJc+z/sBQ6oZWSOOxLs01png4evDnrIx0q3xXNL/OfYAYqJNUUmMcyqCvKeIeJ5VQNziBermOLVOZ1X+Y5aK273OwDgoz2+oiCN3Dd/3vf3L+j9RGvWMdMuZ9dnERVAzO+C2gGFgYfFM6p5v8EZDUvBKaVgb9YVctvsNbFjAoLqbENkfZHr/3I88k8Xr4cqK3MJkTVAaXHO9Anxhj9WxFRQogOla7sACsPD1/RCTDUBnd1k8xntes65o8azzzUQaROS3tphbt84jUWbNgCK7TwBNdoyuPcrPEHuhQS9F/CC4NXb4ZZEeF4kPeNTMk+eIcXwlgbzUhbrXdiXuIAhYHQhui760yq9X0VdKGVDo9yD/r8nD434OifAdSdHgM44uL7o/REBpnv1fGrqXAxVf/XEAUDF04UzilXK1dsVBpUu8y3rz4StoIT7NITMi4UwaAuq7dNpJVelbJDSUWpHazs6rFiuaM4jc/ktunh1WATbipgXrVbBGAVki5hTg2FjaxtEKljcOufEKFSsWwDXSDpc5xsLmFm8V1S2P3p07vfZcYx+URQ8hhsYnLdSihXqsinU+mDuQCBY4NaXiExy97h3a4kOhpPGqVOZZhF9AJbHmJrGunhK1d3pj1trGGrpCUCPPbDusVVOX/bcYoxyvEJAGYPEIveFVhAi7cPPl70LPM9c4Mw6JAHQ6zrzS4/YSuTfEUT6z5gAJg5Yh+LjNPB/2xu2VrC3ir41y5emHpjTfxhl9OJbMb22AvxYMRd5jHim2NM6wW7eNgn+zGH621yXWnG7vzjRhFF2svkWDcMoZvT0Qxavm8/OUn1UFdoqZilmWI8Go6w0ucqeEP08jPlldAfqvsZEcLttqHXD6+sdbduNDrMyzdMdhQH603lG5hXqutWYC3yghjP6JVUsz0cnzfR0KnMQsGvwiOZ1IhNacq0Xv//JSZq57khlquiWluSgnxkABMqAFfrbnpRwdkkl3as3fgs2QLLvLTp0sL6GkTHehcazVcmxNlE+nOwj95jJkYHejc+fGEuBSHOZ3pgO7hyAFLDg1pcxKgpQGiAVw42B90dH7Rr77XSmHlJ1WrpS90wItVoxV7x0tEjs2XSykTZ3uiPL6i7hOMCee4pc2eKwRLZwFSGq1kiQc8xoSqFRW08wk+LiyPGjnx2vL69otdjzuaf/eBwAFK0USwe/3SLzpRRzWE3fF/1bTu+n47sA/UBizG8eDl7Mi5I5p+ENgg8wJwILtJS16t7eiNAsFi/AMgNr/qXpq9wQ/FtZACIA7Bvwy08b9g3YGxAdbbUYvZRHIbZhIK55HiPpOblx1vA41HLuainYGotq6QFzfngQBCHukQ2SUDzc60ohrXlFdaNha5uHlqztczJUZJTDxm1Z3alSYlBXZb+6VRihiDMuhhzHfj4JeNVpRDLFKBRrdaMs7j9Dsuml9C6PnsvOcbS7IMi2ua9ieY8JknnLC5gC10lSsY3hABTe+tq9cOxhYBEKM0KPbmMz4WwbkKgXWNcU8zSjSGiJ2pDRAEAA/m/98L3C4jDOBIHHwly02mWZumD3EGHWeR2HNNN8oBLpL/9MRbmen69r2DtO5sBeuZd9XEyQrWMg+TXhbdBIl2xjsJ4bAAus3b2K1cAXLZ4xECe0PF0Fmhf5EpSWcloqQrG6EjlPfP78OdLcCPq5ZliUxT1n+6m4p+5ZWboXdKqBBM2GRIhcXW5BFkGSFYbrWrJOhuMNALAmY2wEZphmmU1VTy1iCEMxS4GiGrMEUgGCmDBnN8bfntEM9fjgMv/iyr3K0jhmlcVAAB0ptl9eS8FPUvFDKRjHgXcfq1oLPn/5gi9fvuAcyVxissXkrjp4jU7rvOSqHPgMuqy9+LPmPpKMjkxHj+JeX1szxQFvdfaMuyvkzbnjS+igygY/fr/meCjm5IHEHpoAzpGF0GMyTczoWVshcHTIpLpE3TypiPujCNh7L6WnTwCBBz/reoMSGm5IgPtE1CkmLbJtTeVgHlspAf45JpeZ0q83AAAgAElEQVSo7GJ9cAzWOfmWXKKDg4241p+2bdg8Qr7f7LU5e5BUq79x3Beq6zlCuBrPoZU4Thehl9Ee1rbx33MOHId545MZb4RchuMWQDDLQD9OK7CvVu9izfkG5mYOj6013Nmd2dfecFmkQ6FqtUGn2yAhs5eaq+L6pFRBnRVzjKQGj2ZXJlct+pf70mgrvR7E1+vwdTJ8HlKmpY6yVKEFOyz615wHFh0BxNcO+fDtb2efzuajgAzU0yg5IQXbmIEgAOBxdDw8U6J3pj37HC+GqUTePe81CUqCJ9+NfzME1nW4YMCpmS6QuyNSAKGZBswjaJTF+PbX96fjGzytxW1rlh2iBe/v797PpEMA7F7zue87fvrpJ2ybMfWUUvFyv+Ht7RXv7x/47bdfsRbOf+v4bkD/PzouqRLhmrAfltkE4F+8lc+Cm46MZ+C/5sUGJKZ3dL028+RXz9AiqW57xb/+y47W4KFrp2ibBX2cOM4HNp0YbLzlVFrMtRtjovfDgYDnGMKiBK0afWatLK4V5yYXa3Yx2FnUN717e+CAauq1DoDWZikFN/K7bntQhYqjq2zm5AO0mrUyY9RWK5jA/xlE0+6f9LDxlFQ8OrzT7XDmF6BKNSXn6R9MZ6FxwHxW0AgSsx0gNNxm3JuAdQtW/EsQxR8W8nLN0RswVeO6q4JqRdBibhpuu9EUFjkxdIZ3XTR0bij18awERW3WFoDBVIwAe5osBt0ZmFaP/6rUgfQ2s28BReZqqM5pBU/mfNEQ9lACKMR3GZGI+fwG8M+5vvwvP7/8hfzTUgRVM/dRi3XEReUeJRiUyz2s3mpZefwDjPK3/LdQGYBc9CXGCJAozmvbDYt0wVGOoKY83aP02++/4zwPi34FZabdYzTZq82Mw7Zh24zWM9LifA0Mp9EdY+Lsmd5jXicqk0DRERlbO0SKfA1iYiYc9BP4q9Zcd5rc1QRi1hxsBrixPFb/yrzO4TrHTNHJPZR3USsgnvvLlJjVCAcQcrD6XPwsBf8mFa0U9McDn88T77B0kHdnszCAHHDtYgyR4m+VT2sre4IT3muwh+i6i66gXzU+HLrDZHjxGo+G+8sd27Y5daRASucyQh8t5DuUq9OYRNIvavdnPQ+s6Lf2glYEZysO+o0hZfOO4FXM+09Gt0tVk1lRHv1dDLdv7KVQrQRDiyolVfSE7d0+FcfZjer1PN3AsHZSBOCAEz1cwDV1SLKCXaOMZEKx6Hx03nV+9+6RKYKg1hpuLy9OPHHLdFcqfF+jF1mvGeVdZzuiOPzeIvLoDGuNwJbzNDydx/fSTF1CAgpLkZwYMC/1KCOIFc6zmw4/G3RMzH3HD69vHskny48XBusMI5f4ZC6ROu6nRuINsYhiL8kQyMjxtlkK0L7vkY4iIkYJqQeGImoQGW1k1Ib6YPVaq5rjslZxQog0WldZzegfm4i17QSkQA4reLb8/I5ST/Peo2AfxvRGg+z9ceL9/QH1aA0uss8sYjM8HfhHo8gE/Db+cIzg1MeLc0mVnn83pmaui2dMqoDrFb3MA5AUphLOEDfe4NhlkVWn16yWUvD582frPH0axfvL/QV/+uMfcbvd8NNPP2LbNrx65PP9/Qd8vL/jb7/+isfjI+jv/9Hx3YB+elVDcaQOz4Gmtz/eJKDhJuSP79jUlYn4F40VEyF5HfAssn7WrwUNjnda4jySdhPuEfaFBXhFvnjXSPMSbN6m2aq4C/owgW4g05QVrdG2FWxb0pJS2fB5S1WUoajVx8+X3yCIg6CPGTRXEDbuKOmVatm1D/QWcTxkHYPror6MkSuK2AhP1i8Aj7jKBXRnjv41dcFO70pSEN0Z+7CcPupglGJFT7B0ijAALVHfgJZY1b2BM0tfYMtvS7vgfdvaswiLmEeC3nCOuHsQWq1oNT3+qsAoAp02xwqGFuGMGlSyXGW6gAe5CN9Mw2Ch09XTT2EU6T1uPKzLOQwekcu/r8ZOFlBFs7aZECQn+DqbsT8kjSTEtl3+/6zw/e9lmod+LZATcWXJdVeSHzm4kiFXPn/OiRBwigOqFYwi/u7o34vxNAxPXi9SqmAKgQWvx7ZZzi/M+DoeD0DJI5+FXiLFmwT63ioNbRsBboyyksw+3b1nPQw6U+jOGhFyMNdphuXH5f7XcaNsE1he610VP0LQITiQBh1/SYCiNiez2F6c07u9UkFSuaaSleX/XNvExfHu4pAxo8I9hSXnP20BRm8zcpvGvo2HeZiXlK64OJgqn/exGk1hbCzg3w2j6BfCZV3I6+2t7QneqPtVUb1jemvWiXPz9MgIu4ugzIIy2MCq+L4tATB1FkixIlqhkQV1Q8A8nPZZizIxUFTEDKkqGgaxcnMpQI8/h2dCFgNpGTRJA2GoF+tCAuRzT9F8KmMApUNF8DgPyChe4CuWi+1c9DtH13X32Y0acQQFI9drGvMhs8E48qLT/b2i5sGnYVFr84LVGnMWFNGaRfVZ8KyxV/L3a3TzqtQkInrk2S/LWNOxJCH8LqMb52MxeO8DtagVjIpEWsyc4uMzLrWKBNq5ae18q/wn86HpJkY+2fvI15gAY5QAlWOMMGbXpqC8ZuiaQWeBGvh3dq/y5Plej9WghqbcvxCIuOyizqu1YM6C9Oive9VrznSkHhzjIo/Wa2fdYdK7P9/fc3TPnglg+qhwAeXyu8ixyw+dToF/APEmcJOECZIOEYblGFVnLeN5nvh4fEBEjKLzeEQqaNsabvc7tq3FWI4xIrVyY5p4rd+YkevxnYB+871p+ET9WMD+7NONOAf5MyAo+Nf4WhgK/u+hZqzOuByyG+VySQfIVSqqAFNWlhv/qiuL6mEbHpsXWbQGwBe3sQkYeGy1YKsF+1bR2oa3Ty9mba9FlO7hp0Lb993DiFx8SyGery5Sta2eSYjlyFkF+MTjw2itzt4x9bCIwe2G2ipeXt9MUW0NbWvLBk8FR6vYrRfbUOGZ8SGctF6vzEp8DW/tMk9zTBznEQt4zqsHxrooCh7DuhiTp5bCwxhYmu+yAhGrASgFQK0QmBeiVLvf1hYK0qVwdcyB8ygO8hwoqnmqzvPEIwwZp5ij4J8D0GHj2arXlnikRDZszTxiY7oAdrBiRZEUbIjW9hkBykZAOjxfr49omd67MQQM9wyvW2Z6EWv5B1ufQHz1BqwG3PT0iMxvBYjoMzrmHyde417zLSUCdw6ZQLOtdQXhU8TqHxwYiUjkrZZq+fVSSuSDNnBcXAJIRgcYeuXaHXPG+o1Qp1+36LIu4YYHplOxWQ57fXmBzonbvuHsNzweH1A1Wrb3L58x+sCvx+/xfOr1CtUVzbY1j8rtaG3D7XbD68urr70GVeDj42FNwh7WrGbM5F1WB/3iXij1VJUxZkQabA3MZTet9pXLsWIpBH+oFb+Uir9A8T8nwrC9RDFp/Pl7s2ThX/X9T4BiS2IxpoAwxABxnbYAfXrxvVs6kwmMOpHpAojzWEM6lzGq+Hh4kZrH8Jn+GM4PSbliIvlp7XOdORB/7jly2QP+WhxMRiduVZRu163T6zG8qeK+73h9fXPKvZeF2QQxvoBim83llin7LgDGZM0sMtIBDFGoM81MqMsBm+8hTmbTKmoRzGoRx5W1bBILLSouISPCAOI8TJgu6V7YGttGSqQKqVjkooyBWg88vCjzHDYuL48H7vcPW+9vn2xNeK3EcRzOlOI0o2O6SSOAs8sYr291VgWPpJvbGKU1Z06pkDmx3e+4v7w6INptnqpFz2kkWWM8u7fTIx3dC2NZW2N7ieD4SinJdI+60C3ebjcHqNl/YDDS4aAjl5I5CqfOqGdgE7ka0Ws2qktGpI/3L+itRZrQDPASyVsGzNUIBsbIegPrassogWKUpECnsb5G+t9e37C1Dfttx77vlors9Rd27oHhRffEz6UUJ4MQjxITS3m6mYgZgZrrX9WK/xmtoTG5b80ohs8OQDzCQ8Oipr4uZakbOHGeRuxCAViWca3hXGW0nI6Lq6PWZkxdJrR0nCjS4URdU8gIRUYk002tNZz9hB7puFyPxD0pY/iZ6fPOMZpz4i9/Men422+/4TxP3G+UL6/4+eefAbFoUR9Gd117xdY2vLy84sv7B7Z9N8P8/3B8J6B/AfPunZHokASkJyuVVXwvaKyWcyCty29dJ9/n9/Ldy6H5V82PhzI0RQbUJti34t4XxARXycZWVvD39Q/bz5dSoYVeHQPwBA9Ahn7Xyn2FFwQVAn6GoQUiatEDX8BrMwgu4NXCX42JoCddxyk2C8fvOloKvSi6f3Tkwvf/SN23pFPxHPS8r97NPnoW/xKMhkozIWseglSkZfmxfzPnzhQZw330wEXHXgc/pvStip8jQG9HnhfhnVTxvG64ytYJLc6Ioull5LGmpoXHGMs80xul3x6nda2uY4en66Risn+vlIqOr3LcwyshrsgkvDPLMsg9Igpe0vZKXif2Iu8ZemExZaEVPeHeGtnoWH1MLBWJCszO8jyO64OGA0gT5Ipcxyueh/eyKGsU794IxRjZ9O9w5UCBzRzYwDfrWDl3eSkFZzthXNl2jd7H4uWbmZMfIBEXEJeDnX9TJbDw1e+CirKKz1rVGF/qMgf/8OC4XNbY+r5eNn4aULisN0YMeX/Cgf6Hl/V7hVoTrrRDcY1yzDyv0Evscl0ABFmAYqWb/eaxAN/LfQvD//nD9SGUt6qL/MyOmPRcTgeZF4eHGx5zqi/z9HJjkc1Qa/A2C8x6pqGspCjmvz19UM2DHTHeWPfCXxagH7MF+HMFxarOSD20po3w4lPxiI9t6ynFjILSARGcfVgR5nGiFOuOu48OSY7RXO9rbr4z0ihyjcW2XZxOCCNfM4JSsvHUOo8811qTk71hGOVaI4G4vF7lm+sR4gRZhjDeW9YOx5QGKb/j8orOFOoIdlzLfW6Cyxhulnz9BbTzOnle5HfhESI6WsIbPvN12v4ZbGjaNltvi3F7uWashxksfvGZkn1hmBwzZwJYXpfPkWmGy7MII9xOIarmH/+WaL9kBTydg2NA3fwtb/5X5/vqL4LFHRf7njiCK2F1FBTP1Mh7KJczP6+Ry1V9e6bs1CgY5x7R5Tq1Xetk+rBeS7X859799fguQH9MFD2gyx4AEFXxRu9uJU968fTbWYo30GEOHYUHhIwz9A7Z1y7X8k1MkDmXBQvfMBTeqzHyy88b/ss/3dCqopbhTAq2We43o5l7eX3Fpx9+QPNGXNZQbEetLUKM5uHcDGi60mcLbe5yjbz9XJhtY0FvAVTcc+Ebzivi6QWpCmwKCxXdLB9y260S3O2tyKNM4MjiwwJGE6yoyBZneokThAYDBt1F/plsvGT3P8bA4zgwx8yQPRXclOhJQE/IER6HDP1T8EcRt19i0aU0haBOGdcHFXkK0a2RvWNecIKgArMZLdjhxUc1WTt2z/EUt963raBpwXRf+zkGDs9HHcOFii+77HjcUD3HspalVkQVc8lrJX3bV8BcUyAybDuXc3DFrOudSiVW/wL6L3tzmbM0Sq5sNSG8ZBk6B/4ZDUhFC96PanCDC5wlQa2rb3ElMxlVccWkqvZeKVD2loic63VcvvX7KsB9zESyy3LRJAUAHMjRK2xCdts2jLPjOB/ONjIwfS/QbmYX0tOp5Uaf6Kd5Rdk88Oz02I/w8DPHk55hNjMz9GeGlYWtp6U1FFuLq/eKxnHIPp//OadR5i4pYALfk8VYjoL4QclE4grdweszHRyVEcHqGkHxpRfrQ1Ux1GkN2Rlck0WEhuA/QfAnVNxE3UnMdaMBINtmTDHrfUgOPgDrkSDSoyARSOo+4c3RaEAaa8XXkzjANpk7LuNa3DO97Rtud6M6fnm9o3hBr0gJo8kiHQUVxsM9g6bQC469QR1rsOjIKLLZ+7PbM81h+B/mxVa1KCLppb20KaIoZDqZvvbJYW9jZZ9if4juBZFn7zh6j5x6VbiX34khwhjuFmU9OxTiEWTFOSYefeB1TtTbLWTHVMX7l3evP/Ni0Gne71qNAnRAcfSBOoY1WBoKU/kFWoDSGkQrqq/ctu0WhYBgqEKGM/Rhoru3eA5rYKYKb2pJYwBYm2IRmClSFsU64SiOjqkFvRQrdo+IaHdsYLVn5oX3tV8dfBsaBkQwZwfEiv+LFJRmfUJqq07PLMbJfrpARq5TH37fUGYUqq50ywojuVAIBo5pxcHEMuzmSgNEiuB8fHh++BteXl5AXn+r63Ep0YEVc6QRbrSi8L8BZDA0QoLOplzLOov97iQFW9sw5zTjAwLVA5aV5LV7y/cPZ+2x/bzoqdAt6ewjtSYdPWGA0AB0VqQ4je+7Vf2l45YGuyCzqgVta7jrzXXEkzHJtNuLI+T66jcfzwAA59FjvqInTNQIFczptLVj4DhPiAAv9xfcbzc8Ho9wiP6fju8C9PvWe/oXQYsL/qnQ8vxAi5LR5XsCRCcTfrJIpAddvi0h/+NcXJSXxk1IQCTLz20v+OmHBujEeTLP1jYrC29vtx33u4Hrfd8WD5EAXtRhqR1Op+UsMaFI/WeKekOpNPNFagh4VYbWF0+92h0Hd6znP168/OS/D0F2taRtGtLAorK2oeYc5Fxx8yQo9fGT9EoqdAGyE2zWw89LotAsWHVPd+XOk8Wqh4M5We9WXCCYoTjVKThj89EAzF4EbBrG99VrMHQKsK4HKvRsAgCBsfoogOJ8v1ONd3d6pGXymsh7Z8QgPJfLWlsZenhdLFMjIhfWlggVFpbsMmKCEEj2N8E6v/z9WejZq3mQDPiXq/GA54PrEmkBqP99ueRyJ/E5GnRxI8WboImg+Nq4AE+O17I/V5D/rWda9zK9V5Pj6GuqkqvZz9+aM4T0aiC+dkAUXYyRY/jaKa5guhpQm5NKwELX1oLd7j8oKzm/fqNmDD3RroVRxbXDyJSlztQIRS8gmgrODaZL4oJcTx17BTk2AYz5wrUX3+PaWKJTSw2GEqPHM6VcCNaLZc6mpyrtU/GpZBQv5o3gX+Bc12W5nUzdYdomlebEhLc9iefi3IvIpRfM6mmPR16Mx3BmCFMJanj4TY7WlAdiMjr3OEG3Wv72XKKLLjE4IQIBSnWawRL34ag/AM6c6qlBBvaip4MAdHLFLgjSCHsNWcIoqnoaoq/HTtBPbeZpPmQKklIw3Bjop4H+2k5IPbD1Hd1Tf+Br8jxP62syRhQpkypyzIkyeQ/TaZiVBMsGw6WG0cvUD2DJrQeBp2AMjbqBNaff1t6CpbF4g2NPSPx93XsR/Z4jDKmL48WGGKKMinjOujyBPN8Ygkw1kWLOHqbRzjFSR7nMRVn1wzWyPOPvixwEIJQ1ESnv3l8j13/1/H46OGqtkMb881VfrPw5mTYZtUBKR6N79L3IdiWc4NriMAC5N2opGLIgP+IHB+yYmcdOZ+Rl2jT+h/BT4Yr31o9eazi+cQhyrGksP51Kgq9fMeeWawKaoN+vtwL+1KvXZ5hz4vF4uD6/RhozfRJYa7sANcKIWq3IXedlTX7r+E5AfwL3BBMZ9FonlsuieE79WuDHz+C6XoG9oPzzDhwK/UuHfsxYJKvQkAvFH8/DlAYJC/ICNBeFKDCdw1SZl/sdn97e8PL6ijfP9WytRboNBbQpHKCWdUFSqIib91ZMZqw9pOUkDlX31Fg+3uPDWtv3wQVgF5JaLcwfhbstdgjZYcYY6O5pJMCYrhyGe6TUGQuAZDXguMSiB9MVvi6YSiF8LV5cBenqPWxbg0Cwyx5KMZWpMTUQ4J/e0KQ7TzI3oE2rxlzbvVvIrBYvrC7FIzEtFl6rBbK1a361h9UEE82BnHWXFNRtA0RCIdZqnn9oxWgV042HABAEQKO7zUF6QHt/LEbRCnrEJYnpkBz36SAZYyyAeFH+BN9ImrHVAx9Anb/7kzokhs70aMs3Pp5iDgu/sRlPds/LBPBYpClBllHtTXuOIpAhKBbeQ9GKotZx8erlTaXHif5a5NvnlJ43sQiaefodCNYayrS61m67tbSHGAXvtm3WwK1TkTIUP1GLM2zM5KW2iKFA9Yx5pfJlKkiAS8/JLGiAp5zxnumZrL53jX2rhnNgjmGNjGZGxrjPXkTwX4vgQxX/oYoOAzF0coTck1ybMZHOUCRkmXLFmlSzK4DKMDmQhsga0bCaktTOXL/DI3FVnY2Lxk4png2hEd2rVYIlJ2pgDC0sILNnesECNHmfq9qwVW4gq4/pBm6uUfFaoGhi+PKC28uLeWgrUzUl5kjEgGAyorUEoTO50Wd0fk52s+g0HNvFve0A2AXe7tU84rWYV7L5tRppjqUBZaLuO/bbbilrbKzkNVKPPqxmQARDLXucjcQIvAmAaADKtHWqEHSdlkOv7mU3CxXizGAKoM+J02uTWGDqk4sBi1Bk1rpDZikeldDY42HcxRwJrRo3UhBMdjqREQue80n21FLQbjeTnWNAMRdBRvPKddWYOMH0PU+x8Nx3LLorjAE3ZIsAzSm3WeR/27dw8tFobS3raMw4XfLEJw0WWwMsalVnCZyLMaXeqOs4HpfmW5NNzdwoYM3M5h1eBVacPjbzpIex4I0zNehb895Y6DsiTXGEzGHuvoH/lQWP8iJrnCAaufg0AmqR+BudYyz4ba26Eeb6jXJMjaEvo5CLUZbShhNs68kzSACmznlEtbIgmNkUi1Gl6mnRAsDqtgKzIQ2W9aDhwNpGGic0Oudw0D8nzm4MkOyrMMbEcRhd68vLixtRpGJWpzH+wMfj4T0//vHx3YB+GylZLEAsg0YPTh4E/kLAF+fAFfADkE0gf2hAV4zfB/RLTkZaRQzt6LcnDFeD47KAVmsfCYD3fcP9fseL/7DhTT6yuvfCGEAYIpqygAAA7ooEC0qE2gRAV0v56J4q08+O949HWOKAeCqAF6PAC+tYPOUhUrIbjJleOGYWUUlOnd6d0IoaqWRLKVaMtU7nIvzo1aTlT6ADpNWbkQZ6FQwkVvEiV0+NWC1ecIkscz57x3Ec8WPeAQqfqxXcWg22jZf7Da1tuN92rJeQUlBawxxsHGWCjYCWeX9zWMh7wxZgYcKUsdYKqKLViunADIsyYgGzjcVwQwkBkL7lUYIKxAv9ZNkexgEsIWCQQxOrjkhdn95ZP+JLJ17CeGT4WJjvGERl13OEReD3GDDwurd1uUhcQR3cku3In0dRIOyYuhqHS4TgchdhsNs7V+PGx5XGO//vQLD6XoF7ZFu1nH5LH7Qi/fN00N9MQNOLxs9YfqYpUPbdmF7gnGB/XvYKPXIAzPMVwBsRErc9bWlH+74bo1dJWlsgc0KhBEATdxG8ouDvAP6iMwzv5La/GnHrVHKtwz2uZgtdvVGXLuUikd6Xxk0WUQ7PLaY8JFgfc2LADNaiLlFoMEIua5ut6xklfU7V4dCVckau+rqXEtDnL5PybAyXjf5OqdhKgVSjO7x5B3MjW6iLN3AZA2ikRk63AmT6s4sx4cwyzZBShNHItXnRfw6C17niL1MmxjAHBRwcFXVDw3PyS9uw3e6ozQrM55yWtXGekGr9HFRIyWmNxNYIkTfmdX2kSMpmA9kJtr0g3I1l9RS/Ma1IONYlj2LpNhMWubKMC/EIlVi0b1l/EfkuJWoCwNQd3rPLz+hP42Ooy7Pwdyu89z45xdJKGS29GKR+jdGvESrrqbF0L3+S1XaNLNxtXku3bTVS/aBksSHgd2A/EzxyusPBEiB3LMA/u9qPMfDl82cveIWfjzn9eV8i7umvVhTemmUtrM843XKb0KhP4LnYffhan+T3MBP0k6jEQL9jEYJpymBBAP5SsvauxJRLvLZqXcynGzgjcqpSG5koT7COZX8ycnHZsxxbODD3e6ylAciMA86vzWmNeeO3Q76sOpuAP4yR1M8E/3NO3B43S+E5TyMY8U7WNARatV4gImJOpznw/v6Ox8fDG3mdyWz2D47vB/S7kLQjJ4kvYRVJKubA+j64pKCc9ChzAjj5qkCrkJYbKV7hYkGAwoJOnZgzw38Sylbw0w8bXu8FP/3YUBu9EHm/xb3G7Lhr+aJeSS55Pvu8eyvjRgjmTADMVWCJhMdCgSUfcwSzh3lZKDwWQanrGF+BeYRCl/dlGWTLhQNEOKaJKJWbD3IB7mygRVAbuXR+PXM05PVWPmz2IjC6NG9W4pZ3WNQMc01FP3oIusdx4PH4yNbUkR6kDqht/tlQp9WKx/2GrTWIALf95hs+x+w8T9BzQ08MhWYIEPcIudQIr40xMDXsmmG54qAwajTUojprOJKCi3MYa0eve2Eu54i5pcc/9pOkxohfl/dXPSXre6tN+2wsC0hNBujyvW8YE8t6t9hBSYApy40tz7z+xJrSCZlmeE/My7jwXAnieVZSewpo3Ocj6XLp9ZkZbfDPiqc1OPgyo1k98sH8bFNyvTsrVB8LkxCL0+x6Y9BL46CbTgffNwDsHHwGzb0S6SK1hOFK1pveBb0bkGYBOulo7ZwTFYpfVPGA4rc58Yi0kSuQpzKr3qFXPM8+FKqvQYCsYvldAEGLCtieYxFrbdz/XpAJ4GUMbFPxyeU0U/liDsXkOwDU5uwhSwHgc1fpTAXIAnCj6UWsgat1k2CABonCCmrF0yBvtxvatuHl9cVBv8n30EfI9LMohuTad3lcUJbnYHdUxZSBOYul8Gt6LpFLhieCCq9h77FOw/agOkMVa598joo9h5RqTDhzek0ZLIJRKzC6A3UqXKRo8El3SQPeQIBtIFI0M/WAY62L3eKGm7+70hQHc5Pfj5QCmUzhSS0trsopxwnoWXw8ZxoA6jevcS+IeQa87s110jiPOGdGmyVFG5BrmxG0YZ5+plxA8xqsySmC4M7fNutavDXL488c7NQByYzHCaa7hP/UvP4cUB1O/3uGIWL3MoMGnJGHOccT0M3nDbDerbdE9AQhXz/SYUOHwein170k6CfJAZ1tbABINqJaK6o0ACUaGcq+W4pY7ejbxHfYpkIAACAASURBVO12s6i7p8+ZwVShzXqfzJY1bHNOyGHYhel2zclT7Pks1SyyNDiXxfHiJMPcBGD7jlkZtVTUui1APue1tuo04IkJrvgJiWH5q1xl5Kr6TFZVqE5s3cbz/f3dcvVV8fHxEfhWRMIg+PzZmhW+v79bhODJ6Hw+vh/QDwLO1Tri6wLyV+HhRbVMfaitou3tInRWRQlRyDYwm1/vq8/knQC+sSnEHYRbe2vBv/z5BX/+0820MawbKgUYQ3hvb59wv794+Cw9QSaE/dlKiTSFFZPbtdwTPwGn1/d8dngHOmuQchxn/Nh3KWxYdZIDGh4YZG5t/L4ISb8595iZ4JszhRAjDeo3bbRnDlQijH+1OPn9FfjzyKJWA/Yrz27zAif+ewVKbHv+989/Rz87fvvtNzw+PvD+bhuBxtt68P4ijFgrbjfj2D7PM8L3YayVvCbgXk4HGrUY9/bhg6HTUoronogwZVXnQbZ7YeX9jBxLgmiCWAdTQkBbQuAzjSoKW0XCI2dAQ50AZ+F/ITgP8L0iniegvvQdv9h3cf34IJeVrWmV5b3nw/df/P58D/73J3m1KunJ9BY1D2JBuXw+GFIWStkwmuKO1+ek1LGxYZMwA1IID1dRhmNtT4oAtXq4Wz23GgKFCdyjk/KOFJcLw5SsHsLpaW25PmnMAkBZDUrJsRFIsG9t25YNdrzd++gdXQTHUaD0+AaoABoU/wzgUMX7GPiyGLPwvSfunQx6vkJPlaYTht+5vHL/5tzS+3upX0AaCxuA/9oH3qaiH6fTGzoPdRj7uf/bZvz4taTMZeSDn1nlT4TIp6Vv6Cpo414QwDENQ0Ftgq1YtPH19Q37vuOHH37E/eWO2rYADddGefmahpDt4SlG+cm9aYxOE3PY6wnTO53jFICzODBQqDc6U0+JpHVa3GteikVvSxFszWlASzVwv20o2w5RRe0DWoqRCJwnZPSgNdOZnGjq88pJv3asz7SaPgbK6JF2AGTdBfedFEFFRrtLzJtz7deKOmd4wafSMMoC0KQ5XO9jAf0KZMf1jDCa/Jr5CvV0lNO91sfFE14rC7Oti3s43IAAuP08cTKi7AQYXPvbtqOKOay2PZthllKwe5+eYGlZ1mvsneeaQtDQcz0zzeiYo2OMEz3or80IgaekSkTzJowOmE5GKziXGIcBdMXJGfNxPh5HpK/yyPQeevMzysCUnwD7zOl3evGgpS6sKazYI1JpkeRt33H3pmtts64P+9ZdTtk+H2M4IcLAR7Hx29krw0G/GWaLo2TRO6VUbNsejgGLQtjz7NuOfdtdxu5eCK5uEBDnWcRv1WSrXKSzleNWnj70jHfX72ftgtGYTp34/Pmzk8CYp/9w6s6//forfvvtN3TPcniOND0f3wfoj7yrZRAuA5QeaA4U6QtF6dXpOM/DLdQU7OEfEAGGYrQBvU/oY0LPcRX9tC0o+LhRYMK2FsH9XrBvgtoU6qkYnHUqon2/uQduj6ZXdJHxXBjuoVEaHSnAopNdsVzGPoExzdM29YRCArgeZzeWkGWRJKBahTTi/FJSwIw5jQZuSbthOs/qpTPn0kwQouot2dNwopdsOssFJX4ufhfGi/BIQeeV9rgWtaYCtzxGwZLn7qw/vXccj8PzeA+v8u/Jv6yhumBGR1IATpEAZmMMfPnyjjFGRGhiCQKe+70UnC6Fi5ZrymVshpF4TDyMPGUzFKvR6LVAZ0VQVsIiB7woPdQ+UmEkfb2pM40lPELL5xx6BLglgJRF+MQZVN0wsLmiVy32CLir0oPhzln/7GoUXL0ZC+TnnTw9hqzLdv1lAf+m3MUWbXxPaLcorOAfy9pbR4VIStNg5WdZuwKBpRbRyEEJ6kIKCXGPJI/STQlJ7ygfVuR4vRxvjgav1wBAvzGfy8EBDmMtjZuLEyG2vORtymqE6TKPXmSoihdYnWtEjQTo8X37oZEbl5E1qvmNV6GRZM9fnbqU+4Sgv4ngpVRsCtxVsMnALALrbejG+iLLQnE/gXtQJi0/6z19tYZwfcWy/mMuPFIXDQy3zfuZbAYES4nny4jpDAay6KhcSuzjJBDA4uCwPV/E+NpnNZkko0NRIg0w1jAnwO9xvWfjbLF/l2mR1zJtRIZz8KMUNOZ5cwz8HlZ548Oan/M/0DkEpNc/TFpNz+uYiuKNNNWtglUXrw630IGSa6S1BoWiojpgdOCIAfXml1jPsc4DeH6Ji6rfQBa603BwsOvzZnNDZ1O9eJlDdgLooywG3sDoQF+MIfHxsPB40jgyN15D96z1JiMXSHx2lQ0acs6aaGkAbabkSIwhXC76taftS0ZxVqpp6shIB1yMDj7Ps/zg81C+FqfvLK4X5wSKTFvDQWVsTgzrXr1di+A9/bhW9Wggm5ByHHI8apUwxhTWWLOw1nEhJwl63PW2lzUHpQPN92BBOtB8iX0lZ2OQlygVrnBVITj6jq415BdlJ5AfvrUDW80eC8vUh0Ov1Rbdk6k3mLJ1nGcYjc8Ojv/T8X2AfhjA9arYZQTzfcWA5fwNTBWMadbtVIGeinMU6G8zFHEoff9/hMw+KfACjP/1wPyL57u5kiperMZuudPz1EiV+XIv+PM/Nby9CrbtxPvHsGLQamGg+/2O1hp+/OFHbLvRdd5utwR+0PCSWGoHqUENvB7u9eVGr82ad03YD8BcR6CfpLGyBlx8jgITUAjPhgYtYIylAkc90rotxQtxMuXAvBs8pwt5Fy6CtFrnNIDPlt1zWErDqqC3bbPAhm9MTLu3OQaO0xb9BstD3YoZSGyhrarRerz304D+6NEpl5vgt7/9iuM4LMR1HDgPMwBifRE8gU2Grl6U6o03juMIatVt26wouHe01vDp0yc3BCTyqNfc6oicqHourVOHsQixAHVOqG4Y7u3rbc0TpJCW0FekFuuS/Ql673nvmto0cR/TWb4G/nbiJaIQn3FAygWCSNpJQB3nue5PFnghgP917z5Be/+bQIUMQ/LVB2mg8KJKphKdUFHINHAoSIAZQEzVPiMChtR46rWAOsE4oOLjKoKm5tlWXrcCxhGuKE0cEOyozcdbraZjv92tmdvHYR2wi+UZKA02pXfWwZF6QaPzUotIdpQFUCq8GdmVDpPe71IlWclIJUyHrBjWIFinoub8qpq/+F/EiscZsv5NgP9ltXAo1fPDm6f6IJVgZR7rqgxjcqkk2ajObigYM/xvn6Tg30rDpkD/+IDSmJ9eAzQHRIsb1OqF99ZEcGvNPZ007DMHe51v7i2el1GHFdxydOzVvtk2k+u32x1vnz7hdrvh7dObgX8WdSsdEOwf8tQpVNWKzutyV75Oi6gr6CyOHdNqRUKJjwEV0kDPbORVrEZIqzionMC03p9W627ECCLAVG9S9DiAIti2Efu1j+lUn9VIHUqFovjY62Wc+hjAmJ7zTyOJcsoWnVE0nu50OSJnO7zYF8YUMshYBKbOTJEtuxlYBFaqivO05l7HceBEUkpHiieQRasXAJERUgU8+qah282RZR7k6jrHGPYatn0zb28pnvrpxZ2wpo19DDweD3x5bzgeDxyPDyQPvTkCigDQ6mk2cDKMgRMa3uq5gH6FpjMjtooE0KScThrMM7zs5oMqKMUbTTVbJ0H5PGfcP/v72GkVY5w4D0WXgnJ6ql4YKrybedlbYoMGi+iU3GcRuSCzzapjbV81B/33+1uwCIrjkXBS+pVO9153bxZ2u214ud9s3ZzetGucmLPi5muHUcA5gDFSz03upUW/iIhz4BdL7ZtZIwaRIBHgWmQ2AlOAbNRzvoZW/O/3P+Kv728pjGNCiQsm/vXn/8Aft9+5HUATGrwWYF79UtD7icfxQD9PfHl/Bx2sqorHcbjsqLi/3L+Wx0/HdwP6AccNkorhkiWlpnjXwjfm904P2569oMwn7z1SUYWXpAGjDMwygAnIcMvNjYOqxZueWFW6rW1FrcDWpnG6Y5hiF+PLpoCqraHt1t2utgZZLS9NJWSddEdSpPWB4zgvlv30MNyUGsuBXgwDvSyS0TBclKALV+/+GjokU48CVgTpCpYeb3pSxT0WcxLMaRQTqrdhHZNGy8icvjmvnjggTdjleL4/fj5/7DPcqN2ZH+jdX0H/6d3+rmw3y7oKb9niEXJvHP9Wq6X+lGKgrNZq3NVeUW9tr0s8o12HwNhI8gjjRC9bfQHQln6iQo9/jgPTK/JOAVvZ3xhP/yK9aHGdAIfPg70A+G8d/r5qgvzA8tHX/vn7X1vngfeXFKE0vfH15xYwm++5QH520ugS8eN4rSdeENz6ua+fc3lY5GV0muNBSaXI9bmmEcQ8iRu/FvofImiu7FrbUFtf1jaiBwlLPhbYeR3NWKz/idUEgrKUhUVL5pKvP/HZxcDzn80NJiuYEzwE2N0juPvfK5wAUoJTIL1fpPF5mttlapHpatU8jv6dAkFV6x9y6kCfBX12dC/47ZONjNwT2BraaMD/T9275UiSLFliR1TNzD0iH1V1u5t3mhgQ5P+shOA3v2dLswH+czPcAAGiGzPoYd/uemVmhLubmarwQ55q7pFZl2gMcqyQFRHu9lBTFRU58i4TqFRwF9BUuWDvEzpVVEgVna03bK2h8T4Ae/alPwIaSrUiyAFetkrm+OK4X55nJPlkdKx7NGvOrqyGMmfjyPkHktCRwlNcOQ6wIloeR+lRo6wuYYhNebdURRJL/9ykN4BFILHf6/695G/y+0qSLKdhxD530McG9Lpbd+F0R3GdE4zdz0K44AqjlEAWXl2I1LIZeQM03MP+pXUMTgB7AQvbFZlo1njbBxJ2Mk0Vc5XY+1IldltCTDXcSNfbQkasTwwhGxbCqyBWcJZy3ETeKdeMZLaHwWHxD+wCN+Q46HcDXTS7yiF2xzkRpaOgNDPaWWJxFTB+kBu5dmLngm4lm/OSJxbPEENLR0cnrZpnP9XZwNptmUsF04yOioZFee2kSfoNhZrnEA74hWN9bU4KwUuW3v+D89PjXjUOfBBRw5HxidFnpq7WC9ZWXYmy+WhccdtnXPcFPth8XzAKddz2CVtTfGjy4dDRd8ciFeZIChIc8RwAD2+c5ylyjL5yfDegnyqsZIB/xmmKbeJb30Ed2NqKbb8BIGxNKsls+xpaMYwo5G8DTU6tHzp4AfClA//SQB2SaEsE7IzaC9ouQPL9c8Wf/27GMgN7v+LlYpWDJJSHqGBmoM4z5tMJz+/eeYa1EYoJhb0zemO8vl41Q7t7Q6zr7ebKg1jzJAGF7R/nUB0ICEsJu4DEF69dLNxdEamFszDE01C62u4LoW5icbY4zMxApjlZN8RspATXJJTKGBRrvKyVPiTpqD7VWaxIOlfWFXHfu5bW7Gja5XZdNxDt2PeOWvdBizYGf72uHre2rqvG/UajCisDWErFNMEFjlVesLCjYB0iMA18llrxw48/4unp2bshf/78CZ8/f0FnYNulose6bqo0BZMtVWJ7u9WsrsZvovqB0YHVNC/LSUB2SWE9ym5NEEhJOFEltl3X2ZhX7wNTUsqGCNYRTIRk1mdoJ2sykJkmxptcM0vllHGnDlaQ/DkO5z08Mpf1dz6ekirtKHiKdwwGDKiQrhXMhIKutcS7h8A4zvL5sJccx8QdaKyWNpISgtxZqlUVFfAk7uLchdGSxgrE+l+o4qc//Q0+7Duulxfcbjds2w3X66tYhLcVZu3nmGgVYqwy3QAWq9dMhIopPiACr+xx/HvfPSRu33dcLq/YW8PlepHazfsu9er5CPoDuJm++aEUnDUpdrJ31FH+wsCvZMCtSDnKUsMg4HQpINSS/4pe07/8gH59r+spVs//u4iBZdPyotfbDeu6unIPkMd9n07S0HCZZymTScXjgp/2Z/fWEREulwteLxcs+B3v6AWlaD4IgncKLM1kqSVASxEv7fmM5+dnfPzxR8zzjKd379wa3DlCBGEgvce62fxy3lgIq74AxlTJA4RWSIC50Ss5TnXeK6OUUEKatAlYL2PpVbB7S9Ck/j1fxVpvDcLMQCVjtL0Y3mFP/gQBxGiN3cIvSkLx0KXipUp1ctXaa16rAP1AJc2RYga4a76T/DstE86nBdM0a1UmrUgExm3d0VrHy+urVim54XK5qA6p5UsPLEYKcygvUWUEvMvvXfaF7MMdpRDOy4RpKng6LxEbruUsS4nCDHJvURa47ZIA3HbxfnHRkCHxJuxabKApr4veH7Mmv3PwaAp5bTJY9pZSkoN9i6EP2qq1YtGO0LNWuYvw2O5raYqEhMOEkhWhl+QQqVBB44p/+vQjPt3Ozj8z+3dvXtr7Nv67fiNrKJjkirUl4As/+bvn3/HT8y1V5IlE61IKZp2QbV0VS+ze+8G8edyrlt4s6qmXAto7FffgAuyKH5kMAXvEgmEpKTggOMKa2QnGAP758xlffvsbuV41DJkKwus2Y9cqbHctcXSt/+m3d/jXL0syigTPsHA2qwr2cfmEv33/M3rfcbtJgZJ5ERoyPGTleL+B+b8T0B+YFUlO+yFCUAlAre+dm8e+W7hCVPOAau6pxqvGV8naEGgBcBKAz2haHUM3hLrZWhdiKhV4/37GVBnMO7YdKApmq8YegiKebJoXzMviQmGwknQpbbbtDTcFj1aO6bZuToAyDgIVBlMHK+DIpTgJkhRFdQRPBpK9yZYJuB5lMUvRygjqpbANoxMKq4dcND7aARTz6JXo4c62+au1qNUsFBISNhmMQcv2mZBxtmOJkRyWC+aoxrHvu1j2U6MX+S5i3j12mCHWELsJkSoAGWzFDiEqOJ1E0Jsr8vV1Uut/eDH21sAklt19b6gVKcYwhBwzVCgnimb2TV5NIdVnOSiACGivQlVMAIzWMQdYKhBc2A2bnoJRK6DXqfC5ZT56EDCu+Xg7+EYdPk5mn68eCl6/xZkSp8wKgK2ej9cT4eU9wDJf0GiPTlbLO15keFd9R0bsVWH0IcAYALUuzfFU+eYiQlGlmNMcATifn91rZoJbXNOkYQVWycaGoPRPcF4CDl0MzN5ky2irkQCnTSttZNBvHRt3635qJfgOKq+upFvEiAgnIjzru0xkPEbW9zXtHIkmikRz16MM1KY57tQBrmi3BXx55/u7AbhpXkxrUkbyts7utZPYVVWQS8GyS57NrP+mOnmy3Vafhwo+l9uE19uE57LiWeuf35FY/sP4lT5LGikuWE4nnE8nMehoj5U+WHA7xm3Jhzsr/0SmZ1v3EUwaX+6lpA06rtywZogGlATl+9QzqcMSk7e2gxUKVY2jhhofwhvryxe0psQRNePtaezjMNBmoMeAP/u1cZWdX8BuobUKTNlieTotqJqILMOoaF1D8LoksLqibPfOdO1rwv6TYHy5e/UbZvFQkybol1Iw1ar0VTWWP4wGpuBClRa3trtXKsbiOTsgdM3ysfwZTt5wpz2yNRvj8+15YxlMSxqWy6t6HKaq4bRW0SrVn/bQQLKmUvBZ60mpBEfREuIJK7/Hl/2903eAfqvapfM8gH5AY8187gx/GG8bNo4qD8/TF3w8ReK/THPQncyHhKaxyn2T/f6Plf8rL+9N9kCrklzelcgln2KsZpS9+K11EAVOsRKwVMQL8XKb8fP1CdZc7Y7kvOr/UYjK8fk6AVDPodOBHJtWYrJQ8/PcMS0vQN98raS6keHNzcONvyWGvw/QD0g1jonE/QPbWAo+WEJdAEaHbDAUxnyasAH4DPMaRxiPAStrHiOYitP3kP99qKB/D4AhFW9Q8eHyA077GR+Wz/g4f8b5VFAn0u/lvlOdUUvFu3fv8OHjRzw/P+P9x49Y5kVj5CXWalt1k6qlYd8klv+2dTSWKgsoFXWuONdFGIbFvisxMCAdQlNHYm8jnjZOJLyMQtfxEwUY3ffdmQoSoJDbsTN4IkJp2cJBEVLEkuRoNAtEvWFxgxZ9VgdR5DFs24b1ZnF6Ao5snZg7im6w1qwZkbkWC2qZQNj0vg2vr6+6sdV66qEY3QWeyGECSBJ8qAR48p9gXzcrfyoaN+Pp+RmlFGx705rSQN2bxn2SMCxT1Eok78i9g5mb5DZLp4xNY16LWTWgVgXprrfeJHRp1TmzuNYojRYKl78rjH9QCqM1cNElQZySC9QPSuDdVYjjRoV3fk5ahmMd0xMyQnHQA5OIh5P80jcOevCbXsfR6IkgQoapIFfyMVDsD8LxV1PKhUnvmhhv62VlYUkraYlbfPJEMcmXUeXOgBEVTNMCPmmFklq0v4XUYd7bqsBDkwhlBEkJBmqRUBW1izmgzKCu9Q7eNp+X3lXQFsLpfHJrFiegmufeSjrWEslvk9JyLTZ38vNHIsm9KQUTVewAfu2MDYR++Yi+ngfe4xiCSPbf9iRraDrYoHCTPxsclbX8ArLEV+FzVuu9qrW0aZ6LrbuFAH5uFa/7D6i44eO8Yy5j0nvX+5MC/vPTE6Zpxrv376U0p5YNrKWmaSN/P6G/7r0VhOaqz2948OQ6A7gy9/I+vTf0XYwJ27Z6qKSFZhmF2u8dALEZtDQfQ+fdYpK7lmkl7LYIMIOKFH7oWi6YsK6b5klpuCNHCOI0aRLhbHMmYUbiiTYlS3iehLVVPJ3Osg9a04pJjAJgNqBpSbMsPUW4N3BrWK8XvNaC+uED5uczGOzGpbZbXkwDSTszTIWwM8B917BT42fyXiIPAkOAJY+lEsPjL4nAxcozizJxvV6x77vPrwNahEHtdhVP/fV6xevlFb1FnL0oL+bBkegEq25n0QdRDctCvExrDl5VtEKh3VfKI5sQiepQIK1dP2lY0hzN+nyHZWWEO3pjiT3/8ozLtiQZEkchCe359CoVwQbwanIm4QVZ2uR95qBd2y/yM3s3VFKp8vuXTwsutx/V4MHBfxHVmSxX0HBi7x236zM6d5wui1b7k6p5vXWJSgAkVKtEM9f3yyt+PH9Wb1Mqcwz2fXVp7/Avn35E6xBMoEC8lIqX7YTbvoqCZR67YV4Q8hCuEqduy4eJVF7LTgtRsOW31wm9/Qiw9EZgBupF3qf1KMVqvPprx3cE+rskyeVY2gRozBLfU8WcaZmwAngBG2u7A/UeckphdTNATQDwjkDvogNr6ROmX35AvXzEu4+E//FjSgaFlewjLQs14+ndMz7++APO5yc8v3+PSROiGjNuqyT1NbdEd6mlb1qmA1rt3DqE6hg4ZOHXGaIoA7K5ySEL8Zljlkeznaz66RiEcNTSJu/GqR6VFrHwOYYOoAPoJwf9AHuVoW1bsa4bojOnNMqSDSm1/Rs6drIa3EamWZkgbFvD6+sVbsm0l7bf86uB3OoRGrkxJ7PYSRKbdPPdvanY+ekZ5t7b9bNaK07ns8b0kypqIgi5Jy3o0SKkNfKV7eFOZGbtyNc1PGT0bmzr5taIQbnz93FygJpaYKAfKCI8XPAkKzUZDYSCd0Tj7IHdRieHc+y9Mqg3+s1C6MFxBP50OPnRtczQuup2DgkvUSZsln5O1hxXyHz2BVDZXfa++8Os7G3XOeudPcxHSu5JrslYDUMunmZJxJ9mST6VsLgZ3Bv2fVULYeTSsAvy8Y19HWzEHO7fzh1tH4UsETQeXWJKrSkO6zPsXFtuA/i5/KXFy+Z5/YEIP0JLoqLgAuAzN9w6ob9+AF9+HJTPewtXzP/REmtrY8K3MqPXKPmIxLtD0ZPcLHtHArRKCbRu+Y7breDT549Y6hVPP33CadqDsJJBRXhwxdP5SYowvHvG09OTJ+26Jy69S4D+HbfbDYVISzLGHhoUVqVBS+AFVKaxeHr3fWzGM3gNEgkopI0wQV0rZq3a0zt2EkszLG4dVjyBsW8NRF1y0gDv/ik0ZWOV+87T7PRgvKHbu9jnGhYrpY616hkLL5MQLc2XO3hJyMCrWlxv1ysKAc9PJ0xVAI91lXZLtO6VQtr4sEM6pDO7bPBZsso2aSWkoozI1KkI7wZZ4n5H78DtdsW2FQT+6A5mrRfO7XbDvkvS8u128z1SNDSs1hKKQmvY1lvMaykq70ivCnk/0onyZ5ZOyaanjB47oYZCIkM9KZZopJ9MiczqJST886cn/Hp5vgP8AVGNreyJBSWsgeAn8hWP85ZvrEDW8UtsDOXXBT/vC355OcFAHHMoWt74TY068t7q8dRkX+ujVFXxEm+40MBkpX81zOfffaj42w9XSarXsEDv7q7Hb9sz/uvnP2FvhNsqnZeX06IhpQzmzT0spuQ5vjSFxkFnXoUkt9O6cx2loNA+8Ps+4ffLx0Gu5uCpo6z82vFdgP5OwGu1mFW1fBpwYUvkCaCbjxVSem4oVEQYJ1x+8e9g2qmBkPwdGLfzizDF000ab/neyrH8C5blhKfnJzw/P2NZTq59XrWZwu2m4JZTLL5WLCF1B5mmbx3ggADQXks4/8esVh3EZ0RpXoQtZGuaaY5kdcgBBDpOP95AVW4tUUATDUWEaXpoCdlm14ZRDH83IOUWpHhy17zd4hEhEz4w/VvOiZJfp9MZz0/P0u1RG6vk0JrQmENw2j0NHEfegyRXv14uqqA1dGvzbpu5WHO1cIm23lG7PU+FsNljDAB5uJUKDq1GlMvfBYNjmKWfO7vVOYdqEcFLoyUp7e89qDYebytVFkJxggN9zyFxd7MpznRHE/b+STc4cJyRrgblICmId2uTn0HDG3z94KBFE1O55KvRl3sB010H4G+giuwzDIouwazf1YGbCSqz8rg3QYmWuoZP9OKgYqoaD95m9SDs6vLuDvptBHnNQ5m18DxN7lcwb/OQ9TYD7V7bPCsWPmfyPwsPsPAWAUjpBJjaGO9auYBuH1BaBfhJEvWSQA+Lf9CostggDyI/h2GJlBYzb8ArnWt0CfLwCwtjyMtryss0TzidTzgVSGf0hZHspeqAJy/BOlsst9bgr0WqisB4LEe8e1Og3DmSu2GUeBDyo0fWt6vy1+6l96xCiStqZjlNSoByeAepVCg14rO1L+Aiud7yygAAIABJREFUiby9mZYuVvrSWc/R2GUNkTC+Xoo0lqy14sOHD5inWWr8W8ikrWXJvVrI58wqtHTu2KzXBJkM0IIPBGyanGvgf99WXInx8vKCT78vaK3her16/gR3xvV2xbauWLcNt+tNeL8qFlOdxFtlNfW75YyFccySeBtrYykIcBWFvsY+JorwPg4Di3SVF6OMrZMBb1dKPbQp6DZ7rYRPmDKha+eyIPEyLm7pN88PkezDqvvfnkmeH8De38LBuA7lus14uZ39CXsvuG6HspZOr/ZWI+36Odr3hXPA+nG/J152lOmjOgKpSKXvYWGyriBoBENR/JDllJQKDf7nlXU0XIx7dxuVYQy7/tZO+Pn1oxQxSDgkC57P65NjUAAeHmv0ZEVUdoxlgx30Zyxqyt0gLpMMAsBrmEoGQ2/6f57bmNZ7ZeKt47sA/TsBP8/WaGcEbDke9RHoZ0jSXT189+jVM90dDTE+b6Xjy4df8PKe8e+nGdMspdkkPI00lr/i+f07PD+/ww8//Ygff/oJ0lxkQm8dn79I++t9a9K2mwrMBUpUQcWabIWGK5YTBf3OTI1hNW3iw1rmD+DGMEsfqxRJey1dn35Xoat3jZNtEyYtXb4ygcN394M17HIrUhsIsFBBq33YZG69YrgAMSWnDMAprB8GVD3MhyAKFlVMdcZUJ2z7hi9fPg8WsngP9rh3DO+IwbLeO4O44bffP4WrDuLRWU4n1FK0+54pZKShSk3i/RW8lzqDili4PMSI4cnaErcsYTqtRx6CgU4DFB7PqGM1oQzWuuclKboGchGMxZineSAAKcdn8bcmiMy6kdcgWyaybZ7zfqHDxnmA0EPxVmYKGkpImpC7EynfAP18IPTs4QEywMdD0J+BZjwUYSREgP6gRYr5VOXflYukwMvFGq5jQlzMkfrO+rPtAHd0tmRCzalJtLun/husvDArkM4V03yEHsY+98Nb2Zy5BZR1frKwgn8GBMhWyO9AYN8W1MufUbYzChMwkdMwELHJd143Ip8rXwsbDcf79eFdg1Ls+ZMnL1YtIRpvJP1SZs/NOU0LfvjhB7xfFrQeCreXF9b7nJ+fMU2TWq1PqGo9tfcwhdxyjLL1sWhDPtO87uk3iXMOum3ab2TbNlxvV/l727VE8si37C4ERtfeLVqzNVAaNNywE7ZuFd4IvRCq9psoJBWqAAmTtIRIMDBNk5cp/fOf/4yn52dvopT0RQdnUqqTEbwxYqOv9RZ5D0RSZrvt2HcCtKwoMQO94Xp5xe1G6H3Htl6lJOb1muKsWa3wm49ZFPAJtU54fjpjWbT2u5atNEDo+XVtBzqw9h3behOFgq0vDiWwjJQzFp61AX4N7CPyNmxvm1XfrPCZ/kXZaw5IsyyPevTmgWAH/GHMCN4KpXfbK/u+xb5Le+/nL2f8wy8/SCWeYjywAkjN+fJN83gTPecdm42rSeXNE+M/HFBzVG9lI9r8DEreADYZDZ8fN+aoXGFm6dbLEibslZRc8RPhanzaQq++bO/x8tvz8B53UqdUDLKOjeua8t+xdwa2ZHDxOYu5G59xf5iydltv+u73CNY/oeMnpmp8G/AD3wnoByBEGDwxfnIZPiRwpuNBVruigCDMECYYFkUuljOPtM5FmW0xRsahnekDrRvm5ElRQnxmeZBQFtZGV+y17kWDDiAx1hyIz+XcqC0hFRu6Vt5hH3uBlelMQs+VpwA3tpnsSUNkq099EkaQUoNyvSaHmeZu6H7gKdGAxGbewApRABn2e+goDhtBdRNlWBZW0Z3ZeTgJwprHLB38SmuPSxa68gR9L7H4WJiVuIHV0qCCTASuMIqqTUusxjEp45FY3ubJRDDrkIG0HoBHjLmhZCT5cQBapryNlT6MKTIzuIzWMxu3w7MMRDUu3GopYwD9co01RslWriPoH9iJAv3gk/dMPv405mcKhc0xo3DPt7u75sHtnOk6sdwNLq7LNBMdesvhrFC6AvkOd3Go6WCVCMcO2+YRyGMkX2Tb14yi9eu4FAX9FVHNZ4yHLaWiW5KafZe6d8peMgXD5iMI637lQhEx6+Ld5I3sSI9U2xuExhWblqRjnkE8pWsl7AQsOTIBjjiRe5rXg4LHCl7dI2R0zvFWRkOWbFuSQu4zoPNYSBL3pgrseMbKFVPdMJMAd+qSB1C1moo3DCrhyTE6sXvmJoa2v6PU5DiNee6dXHvwCrlf8/CaaLbTvBKPhbY66FT+600C9f5hKgme5zwdUQSCzBJt+xHk1vl5Fl56Wk7y73TCaZGqSUUrnBh/svWpZvTQ9+u9S7gtc+jRpoT7cymRmMiXtmv8v1YM663hZlXa1OJ+u97Uyt61wELBaRmBniSqanhNCeDYU24adwnhlMIgGhx8AP1dcxIsqfOe0WT+ERXHTCE3wG48Fole3EsDQkeyaCfaFX5QvKCDgX2jf6E7UsUnheXlpFJASkP2io2fwLQgCDVkgIP2pJDbG+ZuzPH5OBcZ9AfPxN05IEh+ovFIv9PbgFiHNUy/0T6VlKPEgf9CuQijQdF6w7YGolO/uWHlmgKUOnrq7dnZE2ehKSbLsjJk9D7MQzp8PHykr28dwaxHLvr147sA/cLAzZoCDODRrRt89/1xiuzTbsDAN08qo5aJwn6YrFdaL6TBEJVQqgI2c5GWqklyC57fPeN0PmNeZrTGuF03rOuO18sFt9sKoknKgBaSBj/6RHeLEUFzDyW5EvKRJQsXs4YVwoQmDEDbRHeQAkJyhWYU8zzUub2bsQwS7VLDAX69CY2YRxdcNp3dBErEXZoVsafrDWMEqLH5T0CJAavSlBfHmmtYpRATlkSkHTInTMsMsFqPDwrG0d3o5e0OG7n3juv1IrG1681Lqkr8dkFTd7QzyVKlNCFrB0GEhcKrCOg7u4vaBaYIJqGzKDU4usyThQr3cyfLeNzuMqNeFUTv25nUMqhMCEiKQYSV3TEkHI50DtPxy3xdBssmOJK8sbWOZR4sKunquzvL/zMNHc5wORzCrCTL8sCQwXEDy2tAQPV4go3NxmXn5vvJhV7GUS8rYA+ViWojUdbOw3q0ZKiDDqVlq/DVu4Yk9Kje4XW6sxeAm9JdthyqEpuqoOW9LXuDFXBDEiy9IVd4vioVfL4847/89rcCJPqCWm1PhPzNa3X8a1T+beoTGDTl1kMqelYZPH/ifD7j44cPnhALkO/XfW9Sxah3nLYNQMev+zM+9Ya///AzPj599iZUVIrH7c+qRCynxUsWG1AwT+KWygPb2KcpAS4n8PAi2ns7DQJedeR2u+F6laaC18srLHE8aNuUHjaNRj+154cC6sqtMmjjwb1r7R7NSyKiUJimCXNZ/B7LMuP9+/eY5wXv333A6SQej1IjfEt4iyh1bYsKamb04rbq+opRhawhIIk86wRoW3oQi7Hm8vqKdV3xWemtM2sCKRz0r+vqFn4iqVSD9+/BvADcUYkwTxXLPPl6MENDmBpeXwgrd2zrDa8vn9A6a7IxhnQAp1Pjveotdo6Q+ahufk/MbpoPMTOKlfys1Qt5cO/YNaduqpOWi0SicTm830wPoGl0ZjkBZnRclgXn0wm5DKyUvC74z7/9iL9c3mOngvcfoi48YDKAfP/YHvPDeVzCXmy0nEZshizc06e/jyo1cZELggHfdTUG2U9O6wHAvVL2rswsCiOzK0H2fCmTLJ4PC83svXoTvJzHcvfqJKGwdRKv0bpFfmdTA2M3GjGvnMouF2UH0P+WtZ/1Oyuj+/A4yvphmb6uvOTjuwD9AGD1U/OcyN9CGLbdTHOW/+fDyCaB4eTCJv/twaSlUiRv0b7d30BL0frQVtqSWaovtNbQtANuLV0sevouI6hOYBQMiwQn9XgQEP2NjNcnoJOtBhmi2OzcgTVHQodXN4DloCRNTrLQ2y0c7BswsYeCAAjxdwOFh8cfwzIe2gM4/Rg5hIAgGj+3WsellsNYk0Ud8RmAVK7tHvRvm2TGbwrgzY0PSJlRTsnWza1z3eP/A/Tn9QXy0jlTMEBaarLS1IFObFz+/novEzR5LYOGya1lZumXnL6RAZVk5QGFtXpYt+P6fA3057XLoxqYHhwMH/e7J1onpv32ESM7npfn3cFQUmoGd228lph1/PNgAsdZDoU5FIHYNqrucGb84z+AXQkR615XcGQVKUZhVyzHpEs1K2ZrepTj3ju4yb2oG2gWTsC+9mo1JoC0pJ3cy7ZU4o62SBRzyFzRuGDrMy77CXuvh7WlNHWPOHSsj7xL2hO2ThbTy5xylcaSstYQaaoVi7aoTzeCeBbhsfZm7Vt7AbUOJk1OZYixJYF+4+lu5Tda57Gc3wDg6QFtZeDIIx+18fbWnb9YvxHvxuuzl4GR3dMUuJBq0f04NVHKPFBpROayKU+w0pCTJ4CaB3tZTl4u0BO8SyrvCfIctkaTNmZqbtzYe/FSh0CqrMMWaqciJ5XclCIP2oDIQrA0Z8X6zBjolzFVv25IfOa4p7JZmI3N5kFCjHYP8WIwsr1pkLNIgDZ9Ta4AyZpKUAIlGWjrrXIqXOcuob2p3kFmmzfUZG2Wa4MHMyXfW7d4lEmZzQSmih1n3PozAEatRpi2ZyPPLwDpvfwW0M/BItj+JdxlctYnaZy0APSxX+0KRtzfwwN9Lcm/h58nDc/i3lnep2f2UHyD5/LhX77AX//u3Pz3cX58b/vbZDwW63b00B/vE0aDB0f6/Ihh/7sE/b45/S84k8hOIKO1YHfwT2ySLdCESzkwUDn3SMz5TvG7WNGaJRb3KONkpbFqndD2HV8+f8G2N7x8uUqsoTXOsM1pz+0S/8UML8Vk6kipolEWEmuTuOzk+rbfsO/S1Kfz7gIjv40w0Ug4AVvWuwgJE4DeUMVDO8g/d6CoHDmDU7klObMwYSyd5IBJNQJn1ByeAtvEHnqjVXKAIFb2JxzBlX1577EgRFKUKwRKBLLB7teWmbUsLEeJRR77FzQN5/EKId5ptYnFykD/3kXBm8J6FkJxdIlSqZhs05caCi1FCbIBUOtYo54yRlD26NBHUz7LqkMVguVHMB2ZxMjs75nOuCY5jGKY2wdjsT9C3wt6tc/9cR7gas/KpT4fj8np9Y3DgdiAwO/PEyH+5k38eXfjGDEekIjQPvM8OY5bRQKcrEuUvg3x74mVVfKCQIwJRelUvQKeJ5PCg2B0rY18LF4bYZEyD0Hp4zUw5QTKf1yBJPzy8h6/fHmHtc1gTME7QGl6Es1/TQApiDXDDKmXxcJqZMtzWHuPoL9IEyJoUqqdj6ZeEy0DKdWuVq1WIlVrmnYzJw0LKqWgzrN4VDXMx0IcuJuXrqe47nEcBroCoPPQP8T4SEbuzPB1ud1uuGmZyNbEk2P8YJyz8KRmj19vxq8xjAGIEDo28KihMuY1rbXi/HTGvCw4n61HSVUvAHnCqliUo0yiyKeKvVf80+8f8eW2uAFk36TR5EwX/DRfMJU9AXBJXK2FMCnAWWYBqRIWJtevt9V5E+tuYkRZTAt7K0TY1xUE4PL6IlWApqtYxNXLbsC594YvXz7jcrngeruJR8KJNUCnc0MioFA07dRxDEBcaTQrfJbEa3XTS5VStK01FNqlw6qu3+hNzLzx/hhBvqyHJE9rX4FpwmU74Z8//YS9V8Pk+Hyd0fbU9yXxOdINbz+DUVuSO3xcA1B2b76e5cUs5HuKy2INE2DOL2nra8+0czqOczReJ/xS8VOR6IlcKlXepaA0wzrmAanu4fIxHERryGbBZb131E3k9rKk6j3QMM6DtkFKu4afCOk93lhgwWFfB/zDt0fAf3fC4+O7Af123I3Z94KjOWtcp1+z/1+OOKcjtCrPBSB6PC+uRTgJgtE1gVblIbG7lKwWb5RVlEoDVppTIbIDDrNCqEzy0l9WSaLWiklBXmk14qwhiWObdvLs2pyDWwIH+p537rRm7n4B4tbZUpiHWe/0b64AhzLgTAAJL6XPoptoeqYxV2UKBv7JwUjx70vSjAFnd8NnrgTq/JuKlPkG+UwnJSIB/wBWMUjna963gKWba9LGL6+v7jrsicEVy84gVaaS9W8EPIxw1ahli6oqg1HJYXDLJ0Dq9H0n+ONXOv7mQOCIXkmfWfxcPlzLh9MHVjKMwYTEeE0wTXLwmF22cXYIEHtlU4AcyMSD4Uj5gYXkfmz20WOLis3vY9WJXFG3OXx4fX7nN+7kbxlMSrCpWqCFN0GnUvdbkv0OL8j4iCrluauuzZd2C7YwCk7za4qAlLjTfJeizbqaGjOoe433DDqIUlUn5S2X/Qk/Xz7qeEOQuZHA+cUomP3FHsxWT9cYkIyGPxEqlS1pDrYplAN7ZwfFHi8v3WGbKvGEsAoXu1cqcxg80qq2JV7Wo7lQWFppUBLA5unL+T5ZWTDQCOzbhrbv2LdNfk85Sc6DB+6mssmKN5i3Bv7oRIBapjDtVWaxorbW0IlQdlNGZN6X08l7kkza8LG3rsUaGL2H15p0T24N+PVlwS+vz4O39HareKrAh/fApNq04G9VJClAWDRVk9GYxV/YVlRTyUDbPFhNjTRl37Fu0tzSPAFCoxGzI0UUrlhXKbdpPS1sz2eTkvv3nD/ruxso1apAOa/jeBiI87ryHI2tBj5OdHePO7bGgScC/Fu0QdVk9oKGBb9dP+DWpqj61kPJN0PgsI4IPuRfHAB4AH5VIpOHPLxJSAaEu+GP75hBf3p/u370fNCwHoa9Mvww+rH9KA8c5UB4Eg/5D2/ICZHPcm7n7vNhHrCMGQcklMZk9wu09HXgn/noV4+DEvDXAP/vB/T3xxvnCEYM8B9BR/47zgl3c1H7v/DJNzZpeqpZlc0qWrX2/FQntw4RoGXWVqzrjuvlojHYcrdeOkpRAQRJ3Np1IwroZ5ewzKK5i8cqvBNhVzaBJhsv6nSzg+HBemsbkOFCwhrIABHaYfWnh5bwZCA1u/7SiMhc3wJkAaS42hBTgWHJiv0ADA1kSgDVGUw0Jslar62nVyoyCaZjYkhdb3ZArxTiyxzKkSy/Ct4SoJ9RvPJBtOKGv3uhYN4GdLKgctSb+KY8hAbiDOiSDk4jdIYsoy02D3x3VWx8e6wDVkpAKO8TA3b5TqPnK0B7ZmN2jcOHO7XCqI913X0cNvC7cYy/hgVIFQKlkQE0KkPMdO5WpfxGad0FkIZSHHQMH+/wDvY92d+UfmJk1o8+A+48BtI4CMiL6LMr2x8dmfZ1lnsuV6y7XN8H3fyZ0aQnBzHKsMWkMNOEyWL+XfjHzySxB9IIQSUvNE0LluXs3+kMDX/7vNn72v/v6JdjLwOyD0k4dOiuBtpt3+sbFgYqY+sMbmO/kSh5q+GW6XpJhtTxkfLzaQoFhnLAjAzCYtSl2o8mBCoQFbAlNGOlHZvyjk0rdJnSYQBDXkvuvW0r9m3Xn5sWfUAoWoOQY8DKrYo0SU2rQ6EYLLEsxFTSjeJMaRrFe8dtvUkiqJZCnqYKWhYHrOZnN++oW7Yb0Bql8JrutGcNqGqtWvnMQqbg+1G8noTz+QlEhKfzk1cp2zdLrk1hcASw5gZ0lYO9s9TyZ8bLlxes822YEmNlBAmLe315xarz7fvsDbr3OePkrc7KG1SOsvEHlWXaKKntO5rmQRAEKIuSY6ATqHXCNFWhs6Ze/Ox9A7w0aNVE6qqlagHGvss8frmd8PLrGa9bwb9+/oyWFLRc3CLKcyrNm/xXgBtHYCD/JAP6AdyHHMx17j2d+KDYHz9jwwP+DH2+jXTIx4r7UGqqxZpoXTXn0rz47mVjlmR09eZZZaQwMMR4kOjCx+x4KhtI9JpiqmXI/+CHwR8PnPL+0Hf7+kF3v71hxn7z+D5AP9uiYZgkJ7g3JuLIEx9979VQiExsJnJ6DP49GRTGYDWho06pukNRq8KG19crtm3H5fKK3oFaZ6kaURp6qbAcD+tG23vHugroj/r8jD5Pyui1Ey0MzCdxnlzNvXdJQkpWMJkuOjA+mVuLGbVz7Gf8K8PGjFKEdn6cV6skuVmDlsnjYEkSIhMjKIZBK7kgMqGeLVvgELzi6QiLoqxL8bU5AtOOYBgGGgNo2yY9bly4m5KVQVy7CW6rv8zOYMLCmKzz9gRWn42Oya0feIN8s6XD7tGD2bhwUfeynRcbPda6pHX0wyydOs+j0OdhbsZdYKya0l7MY433GkdyODP/YkJ1AP729xEhx3Pub0UjfdK9hSzdws+hdO1xxPcWtsT88xyEZnWvABzWt1A98CZHscPobI8YKMk93YSG7GzlWrIxlBC0oZfmAzAV5HYt0r1T7z0ZgJRY5tFC14J22SlRfnplCmFg87zgdD7ra6TWMAm4H2YXtuhZEfN5Z43rz8Cfc6laA/27A2UH/cxovGP1uPQ0BJCX5Ww5LEfpLXiYgidKE68/Wc9tLcI1jVbqZEmi5DRoORe3dUVvDevtNljuh3ACvZc03Fu1BOXuEyFyy4Zi+82qxzDIuwscdnWuJ69WfCZr3pUVWrly3xuoiKfavBzzPIslc6qoKKhzlCw0xcfAawOjNWiFm1C+RF5GHoDlCkTjRut3IXz+6fwEEOHp6Vk8I3vH7bYZngQAtE4K3KzUaBsaXkq47BcJOdqj1K3lwZj11yz8Gbw7eDX+kvmYywsMh0pDIZ0UkuGV7iAJp7VIrfjMryXEZEIONSlasUl6eKiM171p72PW5dolnMfIlbnjXz4T/vG3M/adcVs/OcgliipRmYbtPaWrctGGVQGu7/iqidPE2I7vdMQQxzLJtSaMkD43Cs4rYp9lfl9SdTXbU1U9Utxk3g2XmXcuSh6zNyAM0D/inQy6+6AgyZfe70SrKg3vXb4Ovv8QLD/KcB5+HO73TRXizeP7AP2QGD0Tqv5/EhYHSta8dM4jcW80Semv7BpiZo25CwHFHNcChNP2HrVJXfPfqOBcOz6cdt9A4bpt0UhFm3ZANetO2oikSWUAT+xUa428huYJkJaGKuaeEqGdt4FJTiNgA/1WMzqA3WjNHGan59CjEHIOilRTzZYvIBG0b76qDUCi1GOrVaz9Hp+eN8EBwNmmT6DYcqnJ47jjZ1YEi47ROdCAqGlkzkcAmZQCm0tTQMxiPNWKrhavZZ7dalbUYpWT/RYVkHNSAo2ZtTSOO5BMeWwGyJK1JDHdAKrhtbI3tpCg0UMj88qkYQh9dJWyjocSFo9qV4SI5MxzGTQVVOksX2knK2EHhpTWKEBe7LfB6zMu3T14JoqYWQdoj4G/0ZoJD6ZxXKz3dIsOCGxNZzy5P/bE8C5vAH5AEvrMOmqg92j9dw6kJEOI6Yvx2QeJVw0i0axxpmTSAN4N+BtPEaUy5f2QJVgK6Dd7G+s9upmSST5f6g0f5t+x7RUv65J1yQORD6tmCPqwOvC9NXythGl7MsJY8hyGl8AsrJnWmMMCCyLMuhaFpSGVGW4KWdcBHDo2424MA1hKCr/x4l0NBetNOi1bhZ8MjOLWYY3vQ0iPlU9P5w68PzweA693ZSYDMdsXYfJwmvR9Kp/uTUNy1hteL6+Y9xmlRtiN5xWRKhZWjQeR3Nxac9o1j0jrBb/fnvC6TZg38WS/O+14d9rViCJW2azMm7HH6MDCUcy4FXsW3jTN4sp3N4Rp7grlEDUtlbtHGUeryGNhwFOtmudR78J5+BCJ4A35VCZIZR5JQm4uj4M35Yo6pRDmeRkUob01qfCjXYx7l27Ercvv+7aDyULUNDmdgZf1jIYzLvsTqEwotWsHexbjA9m6qeKiTJ+U9ksKcynu2T/I7UxYRl8Huh5LGEffElLG5thi4Kex5yKdKzI4Xd55Q9OQjaZ02z7spHzM7n3cz073iHOAQdGxL8mFFPv6x7QEw3Z6dRjy19rc7w8PR/oK4Bd2oBURk6xN7PGrx3cB+pkZbdujix3F9I2WNwyEg+Oiwk9J2IrG81JCwFGzBKSO9p8u/wOeLx/QAPwjgD89veLj+WdUUgsKA9ttxTpfsd02YfCaHCauwB1AUYufiVPI993K+UlMaa3QhBz5Vyu5AkBkWyHK+5m72GJApdGTNvjpPRF01r51EyTB7JZu+ePxPN7Nvf1dvBSkVbjIAqIkhmjXxwZJYTJJeJaQQXoNI0gacM+BC8XMNALQHY9RCZA/rHyrg3/9ureGfT8L8G87KkWpNwP5pVZt+lNxOp2wqFVsnidlrmQyWsG0KRV5HHA69i2rjDHmzE5lpRdykh8YLTDMp3V+zJZSBxlK6fH+Oq7OGl0X8ZkG/Q2gx8LkpLZED8bsnfYiEdFFiIFXBZMRspEqVaR1uvdCGCXoeX+Aw97R8GEZHPQjQhnG+x55DQ0/EPzZgZWFzMWpeaUp/T/fcgxTIkgp18z3jIbCB2n8Rho1ddM0rWa0ouSpkoPgiD41K6UKLxWYI8htCvIAcMPH5RPe0a/45fUJv376G+ztgUWQ83vpSrG/onxcaGgmlDcHE6GnmTBPw3BPjucUZwpGM0XIi6S8KAOYYcCCUArj6XTFadkSfeb/4rlm2fZiEIlnWcJ/U4B/vVzR2i4dZL0UYHdvQvYyRfnVPazSGhJSPHFf94MnXkdJVq9KR2kdlR5QRM70oBB/d5tf75+gk7jum7zHvuNyvWBZFmzbhmWZQQTM8+zg1IxeNkd7I/FY7KvzeQPT133CP/72NwBYS1MS/qeffse78ycxnky52aHwEQnBsIpjTcJgWROjzVqha1GmCWDG3jvQO3b1QNh2tc7tBvo7d0CTuq3SnkwjSbLtPGOqFefzGfM0O21ni7FZ9Re1FldVILdtw8vLSySOK816jfhSMM8TnrX529PTsysARDKH16s0MttUeXl5+YLbbUVvjGu/AWjYVgJPrH1hgL9cf8Lv259ANGFZZrQWuWVWsSx4OFxRjiaDCfTfWb5tru2z2Kc5DFf+PhieQL437ZzNCwoYME/P8H2X8JgPQxss5ugjHUPVqn0wo4c36aM83IdHFNDVrIkEAAAgAElEQVRIcsIewgwqWYZK8nuHlgUtBaWWUIgfYqhjQvM3hpSNksMFWTKM+DV7Sv7o8V2AfjdFZHChvx/FPrFZ4b520PirgyzoPeMr6gWlVWOJKL1g7gsmngEGdjA6V0gSZIeVihrKt/U+WgIYqlyoK8gFbSSVWKWcai7QksF+CGxbThc2JKSUsECawwhgkmcVp8WYBg4m4I9I1sM0Oda44h70Q42P5IqJuNskbtJqzlvVD9L8AWuRbaCiEAHVrG1GyXJzTlZnU5wcZx3wW8z8PbAbeJUCJ/8sMRwGYJWZwIxlnl1402bJQ1UVtAlTrVrFafLPTXgxA1Ut950tiTMAVR4mZ2J0gC9zb3wRBwabAURm0kfQCErMWoUh2xbjSHRnAIU5QoatG5DO7gj8O4CwgjncYNYCMwr4nQYPTCmT9cEaNk7Ig4PjqRkE/5Ejc5ZhGMz343h0sqP0OCfzY/ld+ZVn6cp3ASeDhr2VnS1PGhPs/Rpb8aV0gs4nm4Ak3CfV2+9W6tV/DfrXQcf6WFhXnCzfWf4Ooxag1IalNpznFRtVrHtRj8BbR/g88rvmUY4berTQEeBlj21M8S/Ah81eZ/OIFbfe5zS7Ujg6r6YrPZE+fWbehHiPOFgVArPym2XfYvrNo2q0FeQzhlpk+hvfcZiyAPXDCNPcDvMZr5KnNnu4KV+k79N6A+3CB7dtBSAlMgE4j7NkZlPUWyO0vqvn10Ama5lYxtaseAOhcsFlrfhyq2DtGwIiTBp//rJOuK4ztlZ9/q0JWk6YdSOS9Q1ISlAoZYSpSvM2O1/6rdx8rH4vy9dTAL8sC+Zp9nk267udD4IYe0pFnao3hrteL2GpJVkvz0PTyc5FQCyuX4w1mkxehG5771qhpzkY71xx2WbUPmHaZlSesbYJexcZNBepIMU8uXwljN5vkxShwI6g3/afA2eKd7b5MMXK59zmEbE3jQizEWVUCoxgv8I7Bhq29bp7mbQvR8Zt4zmc7u+YLzM44Os33NN4fuYHR45wPBxRDYj2/jQ+/Hk864GgY4sUOX73tfHE8X2Afozy9B4hIIB+4mZBAAdgMUiVAD3Dd3ry+faMHz7/HYi1Tj6AUz+h1knDdbrEu5F833YJ3dlWicdsW0PfxdJQSRirNcXqvQE7QJpdT0XbZQNgiIZYp8gVWGbZ9LUwiCIWrRTGPFV1/Xa0InGuYtXtKE2rLDR7R3m5QlEGkgheriurUimFZpyYRK0W+mLucmlbbo02VIrvYammBPYzI8gl7oq6UGdtopIZTd7kvtbAcF64IRVM2bsmTnG/3U0A8/CpH4Xw/t0zmIHzecGq8bbr9Sbnazzq+ekJ8zRhOZ2wzIuGT8h69i53713AkMQVm7Voh7l/Q+jreuk0UgnARYiOi2GFSVaWR+wkMQECh5JY5J/QnjZoUotcTZVOmsZG7lodysuuGu2QgXog0lNDgIbgrf478noOuOXrqD0rgzKKdH4OKU906o9wbdfmKn7Ph+kzlBXeNFynFnpw3eFc9zZx0KDRpFOmuaq1klKwKkp7zihUgaPPa9BFHOZVYFBVL2IxIBm5PHtvzmSNLRJJArzzB1+n6s8lAiRaoEoiJQF/et/x7vQbLuuMf/j1J1y25QDkY80pvc04cTLfU6pIm6+PPW5TafOXvCT6Pnm9zfbCBvaJYH1hzdJvHYOZgca7l0umokYSRmjrgNIy3Mpr1tvb9SblNm83fPnyxb2wAEeioNZP9yReYKjJP+RkUaphr+9p5R27Xy0yCU4fSHTNPtfW98a0RtuHBLIYIjcq2HeNO/oavQKmacLWdszzjKfzCcuyxIbRdVrbhNfXV7y88hjDDVKwvOmcTaiN8J9/rvh/f32PWDlSXMO4XAjr+oR3ZcU7+gW7xut7LgHEek+lSn7J0xPMC2IKLBHcEHM+nfD+/fsA/a0BRLhcLqDLBR2S+DkvEqb58eMHLMuC9+/f43w6BcmyNn9CPGPWplqiNBRcXl/x+vIlhSlHrsM0VR1/V9lnGKD7UjIY0yQlIa0ZlDUh27YN67ri9+sZ/+X3P6HTjPe3dxKbfnpCmUQpW+ZF5npZbOCJg+qKKbodogFcRt+HuggxId1lBNbHrS2euRGXpadLnoF+xekZfnfm4UlyyiM5wapTW3UvC30rx8cmPpINBqR7sQ3vSsocbRzhMQ/FM2xDoQx035POgMaxPjiG10o8aXzN+0IV+buvKk1vHN8F6E8icTj4wR8Mi3lSa7BrC4QDLPDP/Pz8DRcQA1ObcVqfUHqEVVh9fFiJPSRBY64kiwn0Wu9KXByjsfPcYoawRBhNmAWlVKugk4lcWIMJu9yBzn6Km9xKVJVhBpzRpz3sAmaYLQVLR0vncG7+Ra4VxXcES8wFpJ1f/acOoNaK3tXSwQzWeLicRT9YAg5r6XXBh3Ni3cyqZ+sdyCAGmDdqenUYnVRtjtX77OPxJHOIlXBSQW7WfnMf+/mqhBQUtM6wahWeT6Hre+zUyYC2Ckds6BTrb/MAxGe2byiZ8PP8cZqbUhwS3FkUWBeYmdBZxtHV6zIANQCSOBp7SqzNmd6KIwqyxNM7ATAsS8bYh+9DLTUr4mE042eJWduLEXS/Hbws/iSdpHu3qtILBbkMc2YDvbue8sQn/kYQz5hTbaxffiGynW8IlFxQF4r1Nb4Qb1LgXhpfNwW3XrlGq6voNdKlmVFKhIDE/7XRE4kFkUoFl4qFGKe6oRbCXAm35rUrnMfJ0OxO2c19iC2+X42YLQVY9u6Uzok1iAR6hsTt26O6Mz9bh9gLIUPM+2YcPoX9MUsDrzzfCCCQrfzrusJi6Alwr6YbOxIwDwt2NJRyAH73/uR76e7wcWeen+aSkrpF6T2SPMjny2sz0Ds29VhMNyn96DlLh3XaGyQReZtS4Qet+MMR306qfK0bofdUHx0mSxi324xtA2iuOM2E1glb15Ai53MFhAqmCVSUR8P4qoY71gllmjDNJyynU8R99455nrFtm5dmtRANCwWa5xmnZcHpCPqnCEshIo/7t783VeyyjBqZRhSEMO+reESE3wrftdwJXVOaQaWDygIqMzqdcWnv0DCDtmdMPOF5nrBQeKIBeOGHewuxrRwC4Pt+vd+3QSS2v5QXPcL/JsMGSHFAY1r1z8WynZrIO6SYfcY6tsQc8wCOYjwP6ogjjg/O1x0MRkfZwsMTjEcMQzi+/L3cPAwmT98Rn37teMQK3vr00fFdgH4QoU6zTmBMvk1sWo58Efxj29RJ0A+nUCYEAEx4d/2A5+sHTPsCNNJEEhNIECKzrPcu1p5aCqpq9pKIM6GVx0vFEE0f6KiAxmqSx+la7Jk077BQEatoILugaYyuuJEjphMwS05sdAKhQRv2ZJeiMXJCKCkYCXUESTp/jDc6rnKAGQqQZUdnq2UfFXTMchfKCsGy4F9etB25t7Gv6iFI66yb1QRPVPUxMWkLmz67A8oGoDAqKoNlHJ7YJLcgbac+wT03Cu4s9GffNnknD2mSrohlkkRw6gw0C9mpWhtaAUVi/jav2ZNhgh+K4SxpyOL287h9Bgw8qJelGqsuepN0ESuzr6ozdmb0Ku70ps1H9r15JQNx08Ot/+wgzhRAuzeha3MyKw3LaaT2XuWBZcnPsJdR+snx/YMozZYXt/amOeW43YGc9E+lFwbaSDTxMDo8M0/68PtB2FgjO79B0GtBJLtHwbcxvjTAnvFBAT/ER+Afk2Ix3+Klaelv+c54XErX9qn28Rj9WQiiUlKpi3i0uAPcMGHGtJww8cn30bAjOZ4R8E4VDlOGHvGYw5rlewJRXU0fEvOt9HNcK28yRAQUAtWComF86DVAOcE9WhmQe3EWDVtr247WpULP9XLB9XbF9XIBSMI+rCnTPEmSv1VaEb4hJUD3PfoFEMeesGFaecFO2gNEW59zZ7RHFkEnBvnFjELuLYaFIOq2YkAi/5VPO92JZ8A64V6uV9Qi8fXXm3h0ihJMoYK1Tfj85YxPLzty5ZaqYZx7S/y9FO+Q6tZWjhCephWQft2e8Yn/7BXxGOwx6KfzCdM8Y2kLlnYS76smjDoI3+Vd/rY0fKSmhSjkWJZFw3uAeY4uzBbWs2gNduO7UKq1tcl13d1rq+v4/sMH7PuO5XQaKjedTic8Pz9HZSTnrTv+9eUdfnl5BpUqBidA11er9vSOFStuyw1lmvH3p2cwaX5ZkTwE6aI8YVZLf9TS130yaHa25xJ+Goln5D9+Si7+cXcJtB3xyEEPNBreuvzh/TlgY2nGCIwJxz72/eLKlXKZxANMZgzhdPYfWzKwegH5yDUeHwaBLLwv6q0cLP1/4DiyvuCLj07KvDLm8Wgsf2wwHY/vAvQL0NV6q8AARCPmkd6eTlO6AtfpjbP0GK9erme8+/KjPzP0WHZi8Xs76O8AREjUYglHY53oGFNYwkuxxk8iQLz+caGw8uvPCHOBM0X5170xjODD0fJvX/TcnjrveZ+gjHd5+In0bQbGIc4TQH6DuMQVrTGfZmWFZdUbWCS3lF0uEgfpyWKWCBwP8ucdk43ubH8e24z7HWVv9eidHZzEM6xsHZFW9PE61IBZAXtraBQWXvdWeBlWsbyaxVasQKIQ9d4lMYmRYm0R7/YA9BAMlOWtnuB0umAs0Zfgsp8Tc1ZgIEDLonZGoSil2ntHL2ox1kZHBkKhlsE7z4GgCHCPhmB5UYT+zQtHIWD8vcd1JGP6dM8Hgk/E7+FuFfDJ9srKErKwo8RbHjpTk/C3MfoFCRzIn4SsLXPSEDxHBiTw3WlYG2gpuOBEAwMj0j3lgsEefSDl7vQZtdNDcbBBhWI0vL0+uxRChXmxSEFVRaUKoAN9R+0zSp2lWsjB4ELMAHEUD8ismDItB1U4CQ382mid/ZxjHDyBNcuPMCyfyQUH/bIfqWiVMUC2KIWVU/ZAH55hSpA90YspqJVfym5KIus8TQqMo1RlBnmSlGollxmZDu1ZgHkK9LNCwC4Gk44OdKXYh8CffB1lvlTlIWCULdK8eHy6zJFQJIM6Sw8B5XHbtnteGZHw6nWX5OXrVW5qwL8qn7Pwialp+cgko4uGurZ9D8jEjMu2YF1/xLZvuFykSlRVS/qZnrBgwcQTZp6dV2cAZ3T9tL8C+IyoYiWJwnI+wmBGFKW4Pela+KbYy4I+LO7dxKkUepB4//P5rHy9SLdfVWbMcyD3V2VOIwV+f53xT5/eodYJy3yS+dCKf7YqHR19Fn7x4ztraBbV4uRvq90PN/oN5rhBXhvvf0RDI/+748cjsRw++zbgzO/1qAV6vo1hBwf8lK9LMiMzFoyvFNI3KQIcYqCoRs89rhxEmcsMe17MqymsPqzDk/N83M3MGzClJFp7dNx5Ueludb4J/L8L0A+QZuLLX7Kh5A8DukO8rh0cC1p7wfv1A2qb/Ca+PAZQYECFMN+eIKWF7wFvyfdnsbjve0MBO2ORmsYntAZMu5QJ69uO9ECYFZGJsPcmFn+WbrSWAW4mNhPSxpwBYN+bA03XSFvHV9eUg7GOOIxE6GUwdEBBAVBSRRW7Ni4anu/uOrxNbA51rEyY1gSWZjnFn82dwdQ98ZUMsKo2z7AwBRqInfW97Wn3PMmYwQhMxnmTH7aJO3fUVoYax9bBkVetu90mTG1CtSY/pWCa5J3qLG5modue/jGkPknAEbeDBx9zvhY1ti0WPA6z/Be3fMTbGzOjpPgOCZU2Z5QAumwNMAFNvRGFRAlompxYidBIrP9Cn8o8EaBWQDcbQtNnRhMUgqx1M4bpIDaHM+iYU/fiNFPaqMeu0ZAsL4+r1Ygc1GaZF2Ig+LlNesRdh2DM19xhtDS2RIvpy6DN4zklPfugxCZhfthsDpQ7lZFe7N2SRUvAHwLsg5MSEIcZJ2BAnQidI2Sr65B2MIoaLqqWGv67D1d8OO/4/XLGZZu1JX0XutM8AuojeDa6GNPz9bsH1dWGucy/6/szKN5Z17CpFRZE4CL5JaUQuEgFjsbdbyAFt3TGrNxjGq8ZX9quFv7rFdu+YbvdpKnW3qQmcylarpnc+mpAcijx3LMxK8MD0vwv6bZqe1gqtWRvWSa+DIDsnuQMJHi8en4y8L+jVvtstB+ass/QiimloBYD4hXTPGNeTjCvr/Asreo2zYd5lBsaSGeWGPwMUadZK9H0jqcnaQZXqpRYnU+LA/R5nrWCi66vm/R1XsuMn68n73nAzLj2D9ixo5WGXjX5uBD2UoF2QuWKF8yoWx0Izrzl9gybISvkYZ2OmRkbbei1e8f3jSbc2ozCBTNmnQfJnVrpGafTWSz9poSU4JX2bGmIFjighPvJ+T4P+4aC2byFF1wO2O/jiWZccjx2L1jvSfHR/f8tjgf3yjRjYaSkFdg6mjYuzcNi5xv2b+DnbDLH8IYIREbqCp7ekSj6TRj/HZjXwJvzuyR5dzgj/0YUP13xTLQXaxbj+gbeB/C9gH4iUJ0H0OjW0+SaPlpnrYNhZ0blGT/d/ozz+t4ZaudwbVs8tTfe0iRLswrkBZVmR44ZsG8d29ZAzB6CU+uMZTmhM7B3Bu07dg2fYRUoRoAMrSHMjNInlSZS9tKYuSQ9NWeQDHi93lqsCQXHuO4nEUYAx5rCwfwhTXwOqqwxRNVUMJApMzIBxle6PoeGXnnt8noZ2I8Y1wIuAioNcDBMqZFnWmgIKfBvveEtxYL50caxDx5890BDzjRG+5YUC51Xfed9l3FF5R4p41lKkXrLpWApBVMxNsMg6pB4blECnEmkKY130zEwvARqDBIe3jEVa3ZTQgj0bL4zziNArRznjnLlF6i1VMCoGSEnt05qd1PuaE0sVcRaWcOEOYyWAVhTFMs1LAVwBZEADVPwtXC8S4a2FKhpgna18n4piVgZNRXJz2kw5UQbq7AXTJW0ea9KJMDU0iPVrwpQ7Md8hCftG4fN792pAeijQXPyMByVBl+nVPZUfx5zXyh9NyxvAj+u4LDxpnSKntV7fGf36SrQsvWewJhqwWmeQQX4+x9e0Lni//n5hEubBfBzA7gD1N2YR2BUIvVuaYhHGtsgIQ/TyEjLpnNoA7VzWtfdqd6jnRk7S6UpB52lAoWxM2PrTYG1VkbRm0uTLTPKqIGCSEP5Vuz7jsvri9S1v16xryvavrmi0FtDIYn5Pi2L84jc26Urjd4rMZRizeVnZ4C6We6T5TMvYFKoU7wBXOnTtbcGWs6vaZju+59kip/IL2hsf68VPGksea1YTiec+Iy2Ny8ZaR5Ta0Jl3hMjSztn9LIkD38fLdXVmkjpmk2TNBKzccZPC0+TF/nnVwyHyyZzxBKhqpx53fU+W7y/Ge6cT98BNrjnz70qkHsjsW00+Wf39vGAcH4aP6t+5yM/eONweWtX6ICG697gX5nvpg/GRx7Gc//x/d9vDvkPoNJvnG0UnvFFKXUojSAyTPEeDXBciV6IxJQpwLZR7C2fTw5s4Pgg0bgowjY4TuuROVjQqD1v7BEgH3p54MTvZaiWF/QgJDI96+hxf3R8F6C/csW77SMMnOYXuPudZGGHOC1m1D5hxgmVzGqg8atFNGoqoq0VddlFvsBhkVhiFl3WMSKUpyTmeyAEN2wCcKsLaNhMpAsIwC1CQUSIWHazVrVdAPxUteJEEJu5IXPHOTvyHNoxGF3/gDrIdhEFYDEtmO8YSBJED56fn3dUWsTaE7WFQwhkAk9M58F7xe2PEW7DpQnwP37nQF0MPr6iq9LxTANRUn5OOzFq1aXedrRCiS44bXYNIksYNF7mMESjjzQ3ViXDwYz9BEDant0LyJjSAUYZ4g4t4djvDrGqC+gvusdoivJvVUsUEjF6I7SpoXTpJGu0L3fuYKtiZKKcFWjbeWk/x1gNhVBiygoMlPYlRKMgl6n0js9s81FgiV+W4GydZ9EF7JNab4yfADGORxCf0zq8eQyK5AOJSJCSw/quziuG7WNVVwxJKE/UUQZdkoPgwcU7CF49WY0AuXygPRbOu7p7uZhtD3edZ1YFSm7fWEJDxILKYG441ys+nIBtq7ipldSt2b1LiBVroi2L1TmP9z5gzag2eNdIO3Ems1SeYQaoSt3jvXc07t4ssBBAWmrSrhwBTPDs/I1Zry2kx3N5tOZ4V/5bNGTIkvytkZ/dYyjxbLTP8cQIqypiPTRAjCM/NHqwAY50NtpzskeUB15poXsyF+wOFuPvEmbGzsvvnqt3BUlFFokt14p3iUfVyXrVcIB+XW9T6L3RmY7FQH9+TJSBLsM/INH/EfT7usbkJHxlt0b28LnF3PaBzT+n79PPgU6+VrqWhx9/6PhrzrUxAHBGYPtrUBSHg3LfvzeBf6aVfBc+/PwjeN4NLYdP85juR/lHZkIQn93BjSKO6A/3NKXXaYf9czMCFJXv3QxLGPmt9euohTAVnyzhb/b78H5092yTee6hz7RMEVrpck2+PLx6ILL/bkD/1E748+//i7+oHxn0w4Tu4XuIwJLY5AqajuWWFIyxgQ8cJihZ+fVZVt/WsMrpxJjnE+baNR60aoOPjn2XtuG9WUknvTmRJpxaklg0MAKkUQXUkt+0zJu9Y7Hi3Dq+0+nk8tviQ+Hvd8+Y3XLCCVx9a2O50MsY5AB0koB2XGIAkseqMTRsqJGJANFpUVya9aFl4UAK6ffYTAZQas1mlXzto3e9+yjea6h6wncXWHiFjKMnw7oyC9YqEqWgqjJDGgcqZaWFBiycy1z9LuQ430+ZpF5TNYHZFL4c3iNdnUuK9dSbadIt+p4UCJV8zhC1OgsV/93mzRp5dbXq7/uOdV/Foll0DprQZGdh6W1vIF3jnSV21cCRlT6Te4aQ4vHVnRfY3LmlnyqieL1Ug5AycMo0AZl7A63NxijW59Y2UTIVUnqjKAA7b0lFOhz8DZmWZMvYnXk8KSs4JqKcnhwF20kKRpR3iFBrLnx8zjI+yoDG+cDBSwq4gaErfZgF2q4zpTZjYFLPAzfxvhGA0sRr9eP5F/xwAv7y+SP+6+1H8bA2Brij7zuQ5zzgvM9p5sn2u22JZqlM2bjCEXLHLAmjoqRWCbMBwCRhowtrOGYtQCF0z5wdQbdNuRvL2ege2Nsusfv7jtv1KuV8V7H8M7N7/J6eniRhUz1/Fsu/p0ZcTbuoG/0LDRcNWVkUSFjRgg40UXRLKRJFVEOhsrmwuYu5pGF+bZZNwRsmHQaZgl8fQdFUJy9Z6mtE4gk5nc94nt75uAc6S8Dm+Lk1F7RwFpfPR3qlCKuRfK8Cz3HLa5dAa2A9inund743XL195LlxQwWn0DQOZeXf7kgMZZiLe8BnY0gD1lOdwzx+X76/3R8xCP6xI9OifvKAD8GNM+mjI9VSouOH48vGU1XJSMujqxc8us5D5YqBdhru401DleH3XtBI+wUV0q7e5LJ2nqXAyzKpf8aVefa1iXfOCsjopQXJ3xGWmz26I20P85D3/B+kv+8C9BMTphZNNOxgBS3Dq7hWxMNmM8sP2zmOXE1D6858TFAawGMwhlrpugC2bsVKTWW1ODEnjyfNqCUd6aqUoyB/W/v2bPk00G/0ONWKVqu7m4GR0R3nbZguCq9IdiMdzz+C9sOUH36JFXl0DdFwMgZgMxBmVLA5PODBffnwM9M4f3X8j4/jBqGHv9qYj3Oc91wWvJag27mjaJwv2MoKWrJmhrgmvDnd915o2cYvZSxdWkqUPPWybWQin8FoEmJj9PIVvjBYFa0Lou6pwiY4GMwVjdRy3AmNIPkZLP+4WBhHFvjRxZM11M52dsitpNqTjpklntkqG8gLBOgvpYhXgkiel1Cwk6Hdn9OCpT2fjQQ9WbV8/d+esvuTSEqdFmEwhwmmdDMaP/NxmrJg757PJ1DH0H36654vszQnC38Qhw6lH4wD8jJSDjkKB8QryPWlUbwOiRepEIOgMesaLsS9e0IxseW0SF5LmgWHCG5/QdBF0w88Rtf2m9ISs8ZTg0GNfBK4FEDBtXka7hT5tCT5mV4BieFKq/RCaW6osXhuUHhfLd7cQhmPHmnOln5bERr5eDnwmoE1KW1ksrE1PtKDwX6DvTrDcc4BABu4ZRZlmCwWTfc6MbliWMxzQQG8TfHRgRz45bgXDPQDEebwyMPv51u/Ep3X3uGGkgxuY1uNgPeBD/irxx3wHDWkt4H0v9Hx6N5iiOTjpnkD7H3jfd8c+j3/c8B0oKSj2B6G8UCG3itFPPz2eMQ8eCPyMdDU4dkmK61KIgEp1PAxbiKQN+kzXMK+N+/vn/drhM7arpPfzWt2GPkw/vwzQH/s84G+j7Pjcn1g/F89vgvQDyAafb5NFwDyiweIcYOUZmAnG5rcgthBzOhGDjTA+tOuNEJnZm8kVZzRElrr2Dd18Vq8oioLEr8sCVi9705EzIzbVZjluq5yj333pk12D4vjnqcJpRbs+4a9bah1wsk6DJao+/+IofobJoF+T1Qxj4+Oty0X/BWG9zXgHvc9uuj/moNcrhtSorvxZoXgLePI22PPikh+bm41HuebxdGsu8yS9AfAwwt8nRhunRT66A4syJrAkVTvMGtCKRVTiZ4A1Uu7yrlz6go8z7KlLW54W7uWco32Pg56NUSGilSPgVWXIvMmIELSCgCSJjXbLu3e1+3m3Sp779hbw94aquaNdFLQ1wEJgTKFx4CPxkFr/K7ExIa3zJKKhfmpldlQCMTiJ500F50LSxRXQGHKFrooL6pI3K+sI723CAPOLUadFcePgLeS7cPdbn85l3KyS/TnypfRm1ZVIUK+eVivQslxq6j3g1DQrR4oF90sMewOantT0K1gaosBs05PZ3jyJBFQjV50WK+3DZd1lzVtUsFkW1dwa1pCtClYb/4Gh2mK5ykf5jQGGPCBhBdNVavEqDGllA7ilAsBuDIneyISHvM82jzs+yax6fvu3inuWmnsekFrDbfrFbd11fj/jqpJpcuy4Pn5GYs2eyqloLUmdezV0vlmCgsAACAASURBVG8W/sz7iMqgNJRSYo/GTDg/rdU6rQvv6L2Bm1GDz1K8Pw6HrrEXKcgAzsivC4Wadb/t0XEXpMm3ncGl4bZfsfHqybXyDKU9W6uSehW43nWURUkBOSgm7nlIgMnDe2JTjX8j/nZ5pROSP/trFYI8zv+2xyP0+xUZna3Ax/PeuCxkY16Tty/6a2YhG/go/T//esDWeLQ6xtUdEDM8J8dDXysBRazve6neFwNg6S9iyfKupJryHiW7QUBp4lntvSjuiBBZieWvapsa9539QYnT+99HuieTDaag5Hn5A9T5V3qYvhvQL/G2uKPpb76Pl/Gwv+9PydN21OzkklGsHPdWBtYOp1WIZMtNZkgmhL2KCQno2bYNvXdcr1e0tmNTxcFAEBFhmmZxSS0LJgVzwuglkViaWx1qnD883gKvmejGuRksRYe//7rjflxZ0H3ttjkcKAxzAfBDqR0B/9tKxh9VglWlo0fjCwXrkaJ152LXPgQCrOAWgfiOHTQgKa5mnTWLvlkR/O9CHuZjFn8JDaj+EwD2HSB0bD5PB+Zva0Hpd3tTwnBvDaMHFWDXd29VelCIssNRJhZizZQGdDZXAdXHuT5YQZPLfkzAykDX4tsl/6AUiRnuJD0STCG2Dt4E9UCkdzuurUElV4gozQbHOflv2LmHj/zcoRzivXArmVekn8jv6l498TIOdDco9prgr/fhAskd0E5vFq9fcqKaDVrn3c4BIpksvZCoTl0SZsVdLmE9rchK9Cp0al1IW7fwtY5t19j3viu/7N8E/fKNUQ2lv+MviZs/zHu+VVaQsqGBj1CCpfVAGvO+72gausNdqrN5LL/+nj0oZuW2ij1eCpDHMCT2Mp0G+AO8GJB1K6ORnCsA9l5mHUv8nRJQPswnwRTdBO4Z497L9+eI56dOh9uRr9G2beAyofWGBsuZ0zXS0CZLcPYYfB4VjKDnGJd/rq/4EJwfwNER+A/HAeQ/epevQav/9gD/XmDFnyHz7qqxYeRbWZl76Dk46HpfPR4I0OO1j9HG8fI7uH9/7hs/x/uptNRCIKR82z1lEIVVwLrKIRh7j+IXEo7GYMVTtZiBCb6niLpGXSSZoi9lMfcZMh7f8JFF/9FnchXdvfCgFB89YH/NGurxXYD+3jtul9uhKZMcHj/IxiTTBOjncc5I3EcNKzOKwehwAGzp4WAA67RhWzdwtRjtrl0YN2xasSDcV+TJg9Z4q6uLu7WG19dX7PuGL1++YNu2SAbT0RARpirWntPpJKE92rZ9nmat5lO11nBxJWK0cj8QfofvDNDLV/Twuq8dRyZ7P3UDOrq73oB4xK7FnePvg1st2xyOWOEPgfo/cmTQH3OVBbP9HQpJAslaitWarTmY7R27hjlsuzRuMUs/1BpQavWmK6UoIxI0Ai7sFsFlmbyCBVHBNGkMcJEqApJXwBoLeV/xyWhNsATHOvAOLgKmCKZ4VO2CSSiQDqyVKnonVLKym1rRpzX0FuEbVprU5geQRE7uiomteYy3Upe4ewM55qWS0Y6gX+ikoIHA2waxkkSN8EIl+mEAsEStKFkZe5Yb6yfyjJ7nRy5yvhL4i+9ocJjhDGweUVnad0feBBcExVFhuHuTSHkgHMKbF1ZZN0yU4m9pICiqyYQBw/iJGSy6ArXO0B4OBa2aV0WGaIroCb/g37274vU24y+3Z+xNC9WWAqIZpZrAHPlDbH9Kgs9Au82PlUsMKqhkayHvVbQ5lsS9ESR4N+bRtesEMlvv2G4rWmu4vl4kb+V2w7ZtDlIZkjdgCb0wIwNJFa/T6YR5kWRWsx4eAT/8lYR2jQYHylEF1Zo+2fpYVSojDwHFMucWYmPvA0At9AQ8Spx0MjP6GOlVQBQFaEy0aSGxrTWs64pOBZd2xYUvWJYFJ61eZsqL3dYs/bqz78f06DigyEHG/RsC8TcNZ75kGXO8/dyvG+D++HFQ5w6yLe//jPY5fQvxavYH401KgAPVN17pKJPvvr+/7UPg71xOGPFw3aPf3/r+ODDPx2LzZsINZUQkDRB7lz47BG9qN0/FvePTNKmckVBKs/QzlE+wVKdrhutMaWUWs1ORfh9VBzoWpo495hZ+3/8RLfBoHsdZjFkNBR7DZ3/N8U3QT0T/B4D/DcBfmPk/6Gd/AvB/AvifAfwDgP+dmX8leZv/BOB/BfAK4D8y8//1rWcwM7Z1C2aWPn8Y30ePK/zot4/eId07a1kY7nMckx3mmiWrBsHFG7NIp1wdQwaKgIZGFOxo3pDFksBeXr7gdrt5k4481knDe9q+i7uU5K77vAME1FIVsJehIsQ4/rfnepzH/z+AWYkwXffIgirC+GvMOYfK2H1jbMOZD1DOo+d96/i6h2H8Xc6NzTuG9iD9DHoS0AX3zlj8L/eGbVs1tGvTz7uG9fx/1L1PryRLsif0M/eIzDynqu7tnn68nvceI7HhM7BFYsVqdkisEEKaDeyZHdv5AEhIs4LZgNjBgh0SmhUfgg3iPXUPvO7X9966dTIjwt1Y2B8394jMc6ru7Z5qL53KzAgPD/9jbv4zc3MzUvA+iQ/0nAVEIUuQHDBYA/Ikgpt9SXTH5PhGa4OEcGBy4KRNOI60r15byOjYvEUROAujSsiinU4C8ORAsphL1JpBYGwJKCSADNzeb6EWiGT7lROBi+ZDA/1wDbBdV8DFcemKkE/qUeqi1/UQlgpHFhk1JcKUUxhfa2dt5hZaNutca9G9rZ+apviIplvRBwR2j+aMfo4WchdiUstr/AuN3uTTC/L2+xZ1FEBUGPT8DD9UajzMtsGdbtmiMbemFRBSsQNvUo+iu1CntOL5/BG5vsNv64xSsrfHD8mlaAMLRM8Zcb65sOPzTt3XodEYamnUQAr69VwLSE4OCEVRNxQOYllMm263m4D+6xXbuuKqfNq7XqUNMxPyUnS+erRV3Yn1vow7wYGHuILIx7UnFw7efuL49ON9yHTbPQDmT7JT0kSewP162urQgD9BNf+2EAG6g7OiIOG23nBjiVkg3r3aGpvC57i2H4GVXV0M7xzNuwfr1pFm/7OTI+jXy/1c4PXaax2Q03jnMRCO4L+O9QyA3377e3aJFRu8rV0Nlu6/2+e4Q26cbFiidt+79zhfa44rAKCYu1XlL6KQSKg1qxKLwSTmozllTNkUc2oOa4fCk50XU5PTnEKgS8AYodU7IcTSie0Eunk6Wgj0/dBSW5fb3B7EuU4E+BJV/1s0/f89gP8WwL8K1/45gP+dmf8FEf1z/f1fA/iPAfz7+vcfAPjv9PNhsgGyzgKUGBWECN9SyTQslM6Q7kxvW0Sdafsn+Xro5VCz9bS1RwASK4jI/YFJyuprHuraCa6JGZl4VcC3LgtutyvWZW0MEuFgpvt8FU2lmfKA4dFf12XVoCLmsqwBN1dDBk2payusXPX80ggzBBtRarJ2W9r3LR8yZnuOHSCxj9s4Hi6tR5Lvui2yowOtKve5jhbPMT+/kqVVIbybwgR1jW8oRNQLsO1o0r5YlwVl2ySIj9r0Xq9X2dW6Lb77UwPozylhPol9+mmakXLCaT65JrGUFfN8Qp6SHhhU216NaCvaWbXRVtMhIiCJ+h9F7XTdG4Kv4W0AGVXt9FnpnSWqLmcVMDSoTq1irlEqalnFRem2Yltl8V8XsfdfNznYWRQ4itmEHLqsVe271c4btWj0XPP0Ate4tDDp5jIvwcC/Hb5lLvKbCKzbulzkADxn2+bVdqtJi2m0Rb6TBaTClAno6Bnc6NC0oJ2giEYnjUR7ptzxmOHJhsVNSZEjw9Ob1D8f5m5bUMy1G4fShQ645m5VdtNCracBftNoR7tv1vgHJETlwIK06whiDlZzwrJMGsxK7O5Tkmi1k0as9bG1ZlAbX/kdFkxrpzs4UPplRtiJB0i89DQtv85mcwYRFm8Gg1XoXtZV7PVXmaNl23BTTT8hnJEwW3rt65SzC9+n0wnTPPkw1RG0R37q3xtdjfdcw9/59jeXqtaOnik6IPWuE1DQ5bL6gzrhxCO7H8qsHNbnnh7lbFLBVlas24ZNQf8YJXdkvI/AZBRK29rMgU2xC7ePUtcfvO8fu3ZkUtH1Q2T3uCOsHJXxhelIidmzi+Fatxa3vov96A+wYaZWwEOAjT1JHNXFi49lDuWb6U3M7xQVcF1gbXffSWSgX9wDp6mtv0aniRIqJUyJUFgP9jNjSglTygr+VYHqfFnPjmnMhSiY2J+5dI/KZD9LwAGPhJq7gwlbqwIdsv93Z80YrtnvLyW3V0E/M/9rIvr3hsv/FMB/qN//BwD/BwT0/1MA/4qFav9PIvoFEf0VM//mtfcIiG7NsDbXpB4kPCS2JoIzAl+UxxSkKoeY44QJ7zIG2SL7SdlT1q2gTBIZUH0pJ9LFhfXwJuniSX3pRbeLr9cXfPr0CeuyYLmJuzfZEs6+1URoW6Fmpw20EO7MUA0yO9GLKzc1W2CGuSltAEPqk3PG+XyWBSwCBNOmWY2NuALQan2Kzs3oyLvj7sy42EVp1xYZAx3dOMSRcW30Pkd8zr1GPEifM0ka5mj0wurne0dr6sHDET+A2/WKWguutyuuN9vd+YRSNtzUlIDVy4lpOGP8BTPxen5+h8vljKenJyy3d7hcLpjmhNPphNMpI2fT6SexrdVD4davookkAMldICKp5tH612RFVLA5bKFNBZkNKRG4TuCcRJM5TUAt4G0RwWW9oWwF23LFcrtiuUngolIZ66aHlvUQqIF+7y4wWGkJSsPJASDD/CemIPjJslUBGMNuQrcAdtsCbfS22SFoNzuovrPRhHVh+O49NWhp7+0IdjRiRFONLvfPuLa2W9cHnmS/ra6+YOzf75ovOoIi8pxr2NULWKxHVWWBuRYWU5Kigt/quxwA3HsNkS6g2kdxXtqB8uuNsC43FDBO8wXTNOHp6Qnn89kjmMY+asDlgI/baLozBlk2E0G28GPf5Qz1Xyt9wtx2sIj0suQupWC5Lbjdbvjh+x9k9/Z6c9OVdV2RqJnOTXpI3nj0NMvB1fPljKeni8zdQcu/980v/WkC59FONrMEaiylufo0+/imLQzIdaSH8DmmuCuUOHV0Le8I4xKK9t0zozd9Biy2/cu2YFnkL9bhp5q8jMC97ck9LjvmM0HnCLDfLePu5Tv9+lMRfwcAj+bA5ycPfNmWpfF1+2rc6Q8DwMeFBCB/hNhDfRrlquAGchAPBJB9IATEOhJECJ9NU19Y+Vh7DiDUlDCRnUsTqphyxpwF8E85QxRQymdN0KEkHvgc2DvUU4HC1E5y3UxiDQLs8KXOlTivnOMNGAmWP+TZ/YaT9dDxr6cvten/dQDyvwXwa/3+NwD+n5Dvb/XaDvQT0T8D8M8A4JvnDwJyehFJGZG589Ln5Fe41mxO+xe0Lx0RBUA/zgVfkNMA+qdJgX91xu7BU1g1EVahgJPlkKaAftP2FvXVLOBGQIgFc5k0kIkHNsnmr9krCLEPD67TwruP7Ogj8LfFCICHYzdJte+0A8166NcIBN6aevOYsP07uGs7SvfuHU6WuxX4rNreLfcR6IuL+Lat6rlDdnjWdcG2LnoYcBU3hjUIskQ+rkSEWqocNMoJZuueSMwxzucz1vMJU0561mNCnjLs7IAs3qXTYtcRwHYAMgAvnVO2ZDLLH2pV71oEuOtFgIj1oLEpWJudd9K/CqU1NO2IvK8qE9RPVD90K/jOABKH7waY27wwr1pMLGcGnPaFkTOR+n0ktS2XITYw6NupYeFlRugr0/br3RGwt0nW9aPXY3iWgaBZ0j5to9DRk68iPjR3QP8h7GCfr6T1tCjIrr3Xvk2UwCT+z+2Qag2Co1SjeoAr17GmxvAEDIv51zlXfHO5YmMG5TPcrCeRxB3g0CdW1+53aIMz7N4cQLbWe22ve0ntVkT0QrmOj3nWid51thBw66g7Qa3PXVmjSqEYOfsu8Le+j3Ox48E2N/cCwyh4xkd0CI7ZsveFZLBdSdOYdzyOAjCx8rjRi2QJ/BGMp+kG0CdMeNdcmWp9O94oX/p6AYfltiwDQuraEz53oHbw2AOIC9I+05vSuLtxmH4GnN5xY537zP15F9i94ZV0VAfqhZ79pNgnW4uO793vv5GGui/U6LVpzsnrFzGIaemNXD3vwWtTuOMunQ/aY2aIrFjJwLpjJhWouT2B5kmutjxhfbQ1ASoom2ODkSw1d8fbOiWQ1QND3+/ytOcP058A9HtiZiaizyZ5Zv6XAP4lAPz1X/w1v3t6CoCgrb7NRVIj3sbsyAfG8kuGyFhGwlNSGfIIb9Ny4tYwGM9PwNPlI+Zc3TxmyhmmbfDT3DYZFViv24qybXj59Ak//vADbrebaEBLEUA3T7icz7hczmoXaoGRoBraDD/Mp5NDFhNxKccqXY6aRIdIw6iYzaqUb5OtHT0ZRmj3fBOcyP0m37NTO9JgRS3/mzTzrxByXATLvYX6M9NrZTwSQJgZZZPPl0+fcFtuuN2uuF6vWLcV15cX9wzigmpYiHZMHISXl0/IesD3fD7jfDrhh+9/wPl8wq9+9Ss8PT3h3ftnPD1d3PQs9oe4lGUUbudmfS2s9q5Av9o+ObAJsB4oZnHRAhQGJ8mXkmjOTlNCoowyTaizAMbTmlEqA6QBhSqjMtyXf61ituB2/Kw7D8TqjNN6RDW1tdmXu4kJEhISzAwm6xOlVG0z6+Fpxy5OtzC6pTAEZPOpZ8ZtYAbAH1PUtOtDsYwmPMCwuD2Gbu5RG3sHSl2xAWSHlbETG8K8sYWEAJRAH7WaoCVJzpEkFKVPA/9gYJ7VtJELgCIHuikGiCNXgshZiozLacMv3v8OSz3jt5+e8VLPfs4lpk7wHIWAvuUw50NxYbUdS9ut2TSYFsBAtYjQcGBtOyelVNyuN3z//fdYlgUfP35Ucztps2vVU+N1svyou9JEOJ9OOF8uOJ/POJ1OAKAHboOnH/2M4L8PhNaAiSlmRGmwuaOHUtuZF0CUA9FEk0eiNEHP+7eB+Ahgk0bhMI1w1d0vyxN5XWUJtma73FbWlCv+6v3fg+k7fMSEH1+exYvT0xOY2W2mjQ8ltPViBPRdOwYw73U5yvuVpJ9Up9DO1lZ22KOD2q/S3Xr7AM77kN9fT2nkGaH8xnL2wD4qDEfdYQPvAw5AM/Ppz3yYEGCKWgrFCaVbhbhWEfpZ54Ay7l5wEjPRrPzJOI970asVdZXdzMLxBIR6PGNG3cR0tZYiMaPcLLSAXUFQXCA47OGRZuOH19lGeZgbIf/d9Ha8D+DLQf+/MbMdIvorAP+vXv87AP8k5Pt39drDRID7O+20zsxwMo+2rD7+8qVyn+cR6Pdot3GENI957zDQbx2fstn0o21x2qLsVNYAk4PRwOSjBgRonlhkIcxd2PbYLy74+WtaAJV728NHKQJkER6apr+9zXN7k7r6RNCP3kwnLliPtq3ts2mrjin2LdvCHaP6DEn3tRQ1VPHaozpYv1qEXVu0RYu4+g5P1N6ZFqZhyp5pEYCiEWWNvrhWvLyImdDz8xOIGNOc1RTMDiaxmlBUByGVhb6NTAnwyKMj6BdjIZl77kEIQUhjm0tAJTV1AIvL0Jx825RIdhpSAqiwBgeW/kkESLhccoad1NtQSoTkr5M6VRN4S0VNBr8SbGkxO3g2QapCNP8AKrG74JcmKr066LfyWLRBYU7vRr2jg0AjbgParh/R+zEdxXIA00h3O5jKstrPph+V69xKGucCQUaYGeYxphQzy1GhQcEnVzl0XpXW5HE9zKZ8MZN4cSIyD1IN9FPK7TsV3GrBdNPF2QA7eW8PICY0NC7ymkb1RG/XzWFOjX0cRkbBuwk+zX++gutq5Rifa4Dc+KV5hTKb/rYmNJBtY9603r3G/ojHdDW2fE2Fo9c9g7fsQFuA8fJhil0NgLgJHvsKHQAREjqc8wYixqcShBsV7odGuXnEoQb/4J3ycZzJdyQOnuny3CkXwE64QHdLx5T2dT0E0GMf/aQU32nnDq3bDRTw7okRuu9quWcN/e8jAYEOvg+gn4Z7FMvYvfMA2Ov8ikJhLCMC/8gSncaOaM3Xs8Az7Huci5A11ksgah7MxGWZrgXclW3zGrUpHT4H9EtR4xhy92vMP9xpjfqM9KWg/38F8J8B+Bf6+b+E6/8VEf1PkAO83/Eb7PmBENVMmYKt4DwQf7POIb+c1OVGs3Ucn4MTomnzDlYbhTpwDx72aCIL2EA+uJVXJw4PtlQb4RhAMaAmh+KqHtIFTueT+3XOiSCBjzbEYa9a15QnpDw5HrBt+ag1ipoim0w1xQnBYI2wKIBffhOXsTO85TxQVhNAGLz1oP1Iyx8JOu4KdMGqDtLR9Xv5o5nQTxEgLInp1XEaBZXY53amwtyrfvz4ES8vn7CuC5Z1QS0Fy7L2nUoBCAFCm0qc5oHANdNcsSw3D+Y2TTNq3XC5XPDL2w3b+o0GB3on9VCXfzfzMAVyQFtV5e8mJgHskwovk4H5JPXKJAHCUgqHJymLu7IpufZ9nieclhV5msUuXBSnqEyoTA6yooYfLAFQcpY+nbLGB4B4mwGz+kw3j0ca0IOAbat4+XTTHQB511YYW5E+WDbRwmxFAzQpmBZhSObOVmUONIUAfAHbUQ63uWGgQ+ygWUGsHl50/uWZ7wKCfmtbAXrAvC5kd372bbEqYb6FdddoE3DAWYk8Yq2BfuOZNGVQzrJLUlYHEIkIl9OE8zzjMiVc5oScCCcLHjdPIErIeVKzSBUZmbHVius64++XCfWWMBMjYTN2FDh41+VtYTbwEA4kx/EgIlA280A1c6wFVG2cpXhb0MXUrKVSxfWyBFmUg/UGIkxwyeGcTVYXuca7z5czTucz8pSxFQnGZ9HVhQ9sbpdf9bxNJ/R3PLHt5DIrrUahL/SRmQQ14L+nq7iDsl/vQnkRgO/lrJ1g0AFf48k6YKVWLOuK2eZ4DDbWFXgfEHr9G4E4SBzbOmr/d8+/JfEdAB/L6NH03fJ/jp3m9sLxNz34faeMt2TrBvYgs8/BxhcjwKeja/JAMwGMggTZeDZQb/Pd1r6uFhwUAw6MKmCYawD9LYvyPA2uZeY9BIBLQVkXr5wJ1xzqWtVkx1yqi6Zf31sKOCWUdcWqZWaO5xWO09G9HfLi2Irx5p2LB3PzUXqLy87/EXJo9y+I6G8B/DcQsP8/E9F/AeD/BvCfaPb/DeKu8/+CuOz8z99SCVtcmqY/bqeGTIh55LcMmBITWdQ0u4euV52oInFqkvXBnQh6zC8B2mSUrHnNjV2vzWmu/zBIgxwYPXSRzG7LnxJ1miBLVRdlsoOXFLmyNC4C/ggePH8g6NajDSDs2MkDxsUqWHFllNrA8fheK+ce6PfotYhjeZxGgP3o3iOh4FHZ+3b2WrijPonvtPtVI3du24ZlkQOC27a6DX9VgaItYuE9Q1tyiAxIRB7nwaKr5rzixx9PKKXgcrngfBbzgtPpDCK4tq1sEiWXSR15mvaC2Qm8B/16eCkTwAnME8CmlQk0SNTiaqSMzIxaJu0LEv/sDEzV5lUCM2l/mDmPeZwSxjxlcvea0ySgP6ndfdFDpUWFZ+00EaSKCANFbfhzYeQipj1E4t3H5tBqHoK4iukHt3FhE+4Dj4iLWwRSJvxz4ANNWM7+fLdV70/388LmlXlhAlQgo7YgtoP3VgYaj1GBk2uH+j2aqu04UiKNYK4KiUBvtejCWGvT8KtrzSknzFPG02XC+/MsoH9ST2PqF18CCmb3uySAegPShNOUMG8aIZgr7s3IfvG3Njd3nBTni0wMHy9O0o8SeZmbIBYEr32/m9290hRzxw9HRYX9mas/+5MgQNXHO/J8m6+9Xb+uNrTna7vdUgTQ4/lMiPSHun505UTsWAz8jhvgj8D/0Lyge6ytRfu6myCtO5oR7L/C5x+lKCBESGgmFbv6fmZ6FazHZfenlvWWRAdfd9137EXo89PgznV4n4P6g/V6vOafqfHMxkfjutfmuQP/o37rAH8QwIznkXlua22xrMYXbV7HunQ8P9BPB/qH+Rujtbf5LYJ8QjMdupcIvcek8V5sw10auifc7rvgYXqL957/9M6t/+ggLwP4L19/7ZBIPNKYpt+6oW1Jh6wGtPylgB32pWRb/cYUQ4c47ZEvpvGag337o/bdDmzlZAOuNo4GnLRe2Yledgy261U1m6traE3wmLKaZLi7x+Y61INLqIapMrCVDYkTMkmY86qgSbazoc+ljhkTRLo1wgfRgQnRSIVHHK6f1CkeLj5g5qMpw1s17UfEPgoOR4mIOg395wD9I3Aft9/j++27h38PzwogF28gm2r72cG1viv0Y9viVGCfZPzyNCFRwjxP3Y5I85ikJZEIipu6GfzxR9GsT1miOZNHGpT8zCJEilcWjSaqn1DtOelB2pwIZRJfxuc5I4FR6wRwxrauqIt638nZ6ZmBcCCyeMRVIjn7IqFThW6ay0/zsS7C/DyJe7V5ntSOvAVfqmVTZq1uTrUfSql4Oj+JwKVkvpYqmv5Ssap9/6qa/psesH65XnFVt4wGDE3T3zSYbR51NMBAJT1j4AKAAU2IiYxOoz1TdmIwAhT+o++zucyA7qyI04Bud8yEHzZzsmZGaP0i/SxlVtsNVPt0MIu3C4jpIhG5lzAR7HSXZ5ow5Yx3T094fjrjF+8u+Pb5jEzAlMx1p2j3ZTc0aUg2sZkn1UL9zTff45dPP+IPt2/wcX0ezvREUCCCpV110G9CAKyLyGnOIjenNAEkLkmJVSOnO69s84abQJ/MrDJnVD2IW2SffjdW1u+TBls8n8+Y5xnTPGOaMizSeqSRaMo3eu8xDhtBv/GSzgRU6aP1UxQccfg91t3eYW3o0hGb5zHL3gyHK6OgdAoJ4WEV38zf4zITeP5H2NZ3Qqenk4yBt6vqqnXMo4+06yaY2NwQWMB3Gv756VWB4Wd6z+emvbAX2MahZPAT6De/QgAAIABJREFU3nIE5sPr74J+n7dhLQt5O5wV+Kmy9QNZpilJOosB1geEmFwxsZsRliUoRIJjc/m/VpRtc4WB3LH5Eukr/GE4U8TNgoOINVAOHfL6+H//zX7tx3eQA/rnwpf2dXzL/fRVROQlQIPnHFFvA15H2lwDNXa/f8YkuwF8hoW8ewbSaao3a6e9s/h0FXfnysCDFciocbaIjFdmN2eQrV0DQhrQRcO1G3O3IEZZ+0K0SAnLuqp5Q0bKNmTsEq3UnsSGOWs0Ul/+m/Ay9t/IeFUu2PV530/2fZxKsZz7pPe5mpAj0L2zg+NeOv5S0A80MyFmbr6rh3ceaecMdBnwrZtpD9G0GdHlYGCSzVuTReTNOJ9n0fYnGUs5WFR1N0EZXhX6ut0WTNMVAOE0q9nYaYJr5dFooHIVzX+tKIsGh9s2rWtFUtDPpwl1yti2k5hFaNCssq1Yl6vUd7bdCNlFsIOLVQUggFwwoJQBaoc9uRbUTWqVdIfuNGfME+F0mnE+ydyYNdShgX7xFW+wQYSZ9+9kLmxFAPi6KdivwFblc9XnXpYFa9kwffyIlBOuV8KiwD8KzQB1h9U9qWa/QE26iBzg29LBDFUMDdz6QIEhz6sGfgD+KU0e7MlBf6M67QdbfDY/eGs0lqzvTNNPUftvGS0WSIVY1FokZsJJQe3z0xnv3z3h22/e4VcfnpHAeqhXXaT6Mi6Av6rgVWtBpop//OF7rAVY/2HGD7ezRNLMzZQqdi+5i1byeWLXe4ed8p7CalJlTg+SeAZC1YN2Yf6SggezybfzVDVXpJRVmRMW+gBQEol5T85Z3eWe3KafeXPQb8JMNL2M/Im9nUE5Y+CWg5vjoK23sye+/RxKusdPH62Zxw/0P492AaxcLuxKCpDA+JSA96cfMM83/MgJv9/+EozkioqRjz7cWeDhM4BGFwD+baS3LF0/U9XeBPh/4rtaOY8A/17L3z7RCX4+X6Oy5B7gj9WPtGHfo9eq0gRhAL4r0AHzIfmOWrWzJYGGlS/4zgM1LbwracI8M44j+pIotIj5kOg9BjMkl0lHuu/b3F0DWmDFoUk74TuWO1x7LX0doJ9agKqYZB3tTS18XeQmIzWzGSuDwYN7rkgXUXnSS1bk5TF6puwSYNzOvwMEjUBtK9SYOVgWhUTJAx0Z8dhWeUoJ5/NJNW0zUs64LSvmZRVzjaLbWlX9ZWsVcspy2FjE1EAUcj+Fulmb2dsfJrH1a0fB2uEjk7EJ3dFj02QdpV7oiC/irj0+wUG7ssbyjR7gT/T16+4MN3cKsPB7D/S1lFDnVqBoeh30q925+eKPwll27Wp28JH0+zyddEHNCjpMONAtxKTae240x1U0/mtecbveBMiwgLxS1T6YEphEM15VC1qjsBQYNyBMtxTSAEWM202i7jIX9e0O1FXaKIC+aZRLFbek0n6AKCFNBKLJt0ubiY70nS/9HBh+FTt0KLA10G8A1VIiAZtJpWY5WEwoiYGSUDPrYauKAkYqCcv5hE1jGliwtFJ0KxcW+dXOGTVvE4yqGnarb3NtWdVOPvapkUk0DZLFMe7ERHpU7zC+rjfXvkaDnSBc1ZME2zZ0A4qu+OC+f5W4jXk6j52MbnTMjMelJIez5fB1dLOqXI5VoLX5kRLIPCwp3yQwPpxvKPgBG95hwRkG4GNXicplBB6sPcFKg+wH000AKKUAJDa+jOZFpwe/ScpiWzNkN8PGzfqJPT+5kJon0fBnjfZbSkHhCirUxcTwcQl8X2JnNB5ix+Sdk1E856S8LH7X8er4kffN8W5k/F3DGtrzwPa8AerIWOMzcffTQN74XjN5mPMVv5j+AKRnED2jcwIA62Acpwe4hTk4sRjqKo++DfSM72smV8fps4SMbmH6/OoADTjvixgK3FX5oA0HAt+uPWzZoqDdhFGhmQbibd3uQH1XbuRrdokbeAtVjTUxevf1yUzuajNzM7xkZbowIGCxa5vXVxhiwGXQ2DoGsI0X9vX1NahWV5IQzHsixCtQzn1vRvwygvE7AnqPg3QOv0I7LpQ73m3XXktfCegXt3AC5JsE0wHS3UMIqF8+7PzcETplJQopu2UxJYpQlIZ0Vi8OJrHGaITNVpO9nL3m10BLINoqi4JFWp1169wIPE8Zl8sZ8zzh/fsPajd6QkoZt3XFsqx4eXnBH/7wnUqpkEijAfRP5g4vLDgMRs5iMsIqmcZFzRYX79RDxB5Q/T1E/RmEPZpMdOVRg/s2Gfcl0vCeJhi06g2TH20RO2aoVn3uaMXrq8DL88VvbAe5C27Xq7raq4Yj3JSCIAB1nkS4O50k2m6ecotgSaop1AOa1lNJtZiJxe6ewR7ErWwVy21xkJZzxnk5g1IS8xMAKc+gafI4AZE+bTwSEkiPOhbVrlyvV2ybxApYlxk5E+Yp+44BAORJDnMWdcu5rRKMjhmotAGUMJ8YKRc/C0MQKECEprmpVYKi6LYpSN3rg/3Qbxd52iO0GkAS4p2QxDQIQJ3EPG5i0eKmOcv8JtbzA9nN73789KLxERooJ4LGS9BxKUIj0vTgPpebm1QHyyrIudAvBCZ9FoLqmULAdpfofNLeYR17dRGsypFaK1bIoXDrK3EUEMy/QNCNCKc9tv6zPE7n4nlpnidVLJh2VmKCTLYDpcqGxIwK2VWwc0zmtQfU6ilnCEhBBeMv3/+Av/zwCX9/A37z6Vsw9zFTpBNS4P0c+Ln0qQB6PVNFCaAJzJDdGsB3Z7dadZenwnfYUkJKRmsiTJ1OJ+9/AyZJ8zrgzzI/379/j5wzlm3FWjaURXe0dI1A6hdu8w60LIsI9PMMgJo3GDQBw71usZw/cQ2kgQ+n+wbCxtRp0xXMxGsdUKAG0qIGncOh6TAw4NJQmpk3Nrej0k9FA7dd5o/4d979HVb6Fv+AX2HFvKvrl6Zxp+A4E96eZxCmPEUBbgCTb04RZ7zyfKxr+oy8HcjsfsN39R6luEoa4He809Fz4CVGfgMN9oIY7z6sfHuU0XvrkfdUN5vZtk2vKc90xTC3+WrRJDspIir+SGMZhTOXJsCasQLpTmt4lwsItaBu6rJT+XpZV1TaxDoFMqdHgSH2itd16Pg4/3yecew36vIPVxrItz4BAH59zL8K0N/ER1uc0BGCXd+nhvoJbTt+/5R5KqFeitLXOhM1QqQEDjaro09617BG6SHWamC2/i4SLZiZM0Tg3aLrZjf3kNrIwUo7+DtNk5oVYHh/z7xYJaGOeb8uBErWyPDGZ/yVUZK9l/mo7MY57ogNTZqn4TB3fEdkFEOeLv8A8EfgH+81rWBfViekxPJ8AWpjXms8ANRrciWqJbUzImpLnDX6rm83gt3NiC+stp0e6mNAzkwJ0pY8euc0TXJgFWJ+UqkC0W0st942WkwKDMTOnhsdaputPaWqO9AidEiVPdqhjYhpY0sV0E/bJoGzAuiXnSZGVjvynMRsJmdyGrd1h+sA+GGRuqUnGK3s2DweaTSMadJD9DlJuHYXKtD6+ZFXKB8LalokA6ftrdzq7ItT7E8Fs9x+sy5m/vvuxGXvaweMytRM88yM4ME47jgBcaIYUJdXJa/r2HQpn705vpAacNaFdLPD1XqmQly3MlKucjgbNv4G76MpSfs0wd+4fJxzUNpm9p6G7dIeDFR31YCxmyYYnQfXfZ2pAtmMU88epR1YpZR84yny/WiSEPu5GwPvU7vS+OpdqhvGzd7Xae0H4B8B/xeDWOya0y53tFtA2EBQkzwdzaPVckfbd6r1Zi3+W7K9lucLu+anpDY++rtbDPuvx9VX2gnr/LFq7ehaXOdsLowYLOwWRSWnfXKbtY/SbreqTfHXE8MFi95kZ5xj4Q0BLxCRromh3TZ/0PcvYaRXbnMptjkoTdlxZlfhx+kNDe8hbU8FFM6CRsHsUfpKQL+mHR4bt5haVlskRfsjgMlcq3Vg1/Lr/0Irvp8w5BFmOM0ZEyUX0AScTchkW6UVQFFNO/ti0+xHzcdr04QIoBctaVLgD2gALgu+dDr5IceyMbZVJN08zTifZxA1DzGfPn3yIF/G5LdtC33Y+iPa4I0Tt03sPz6n+9O96QvTgSByJCRYMuqpejCobBu2IgdZy1Z8W5CQfXcn54TL5cm1h0YXtmvT/AP30Twl/0mAsEcxFlOTGFFU8k4AVIicRAO71RV13WQBZnMtKYdspyRblQmsnu/FACElwnwSD1N5ErexpRas5dZ7cKIkgVlDIDmGuMW83QoqA2kqIMrOByXybgURMCXp53KeME0JzDMIEpGYK6lwU5zpwoQTslks/bBt5uqwuQi12AQbmoBkdtsmTM/zBDHT2bCtm7rVTRp3IPcjrnUwrzbgBJ4yzKMbAA8R7MKiqZEaNBXEC7Wl56Zp5gq3Oa3bhgIJG2+BmZqpRAOXsV8MLBPgfVeD4BCVEMZfm8ck0zZbXxXkJFF6t1LAmEE5AyyuixmMTQXdokGxmGWvaCsV12WVYF96iHpOACGhIqFyOjjQaf3CPa9ghJyEal1ncMXRwxEMGBVBEUA2cxU7N7FtzbUyQXd5JhEOJcBUlQjb2+plZQAUglDF+Qug8/zTad5NeE9QD27NK1yrPXxER7DezG/8wr6tZrkUACGpmtUCcb2qET9g2DzQlK1BpRY179uw0YqNN2zYuvp+TWncpe9vHl2634bdjkHELm+tD3C3zw/rQPFDAazt1ri7566SsFfsXkzogtF12MGyBfwg5TR+cgTeKTzblBiyQsQdq6Y8ae/xwHvKO5suhVs/9d0QFGLWF+TK75SCqXAPJxsLIVtbGYkZbEaEDDHxkQiT/oydPXJFlr35DcJnVHTco5G3TJlOYHzDe78e0E9S9ZFs4oSMhGak2D1hhEu74fScrkGy3onCGHO3O9I0SIPGhkIRhCZNIhB21HxQA9y2wFg9U9Dyx1DuAqoEACb1dWyHyNZ13fcLayhoRkcpLR93v3vh8QDQ+lzeU9FOe/oZzLxbzF1E5u4eIJMVQDP9OHrXwXP3X/x6LqsTh7J3aRCnI+hiBfkcfkuR6pnHNfy5G29jVAbIzZYwggdSsxfZLWpViSCilCruMBG8GanbRTn0WF0obvUidxubDMBA7OMTkZuopGTRoQu4mkszdkHUDmBa/2m36K6AAFiiMNkC6IceHN2KAPlSEkpRcOk0EnYoTKPtc1ravxXps2Lg00A/oDbgzZVpB6yCttTMX+LchI9LqHuYz27OEhdY7+ZGoyNFUc98/POIh3Qaph1Jcl941PKiLcxHZgzGygz8W9A+ESiFcZnJjwV5g9Id66HyWhmbek+ydXGrFeu26T2pXm64U/8iIwXCiWi/zmhb7zE3k/Vg62XjGezCw51VkFufAD1v7vqGevAjgXgSimr49wiH+vlv/KlTvCg60rli2tVHKQL/7qLW3e8ZjdwZf+tEaoe5HgL+7rl4/Q5vdP5ldtBUQbRJbAZkfb8ClHtmCJ8hFxz1WzSdotbIL37HW4H/3fnpoPzxS1/bfel27P1joFctye+ONM2NPx+96R79xzfF391O3QP+5PkbA9X/WasU8Yr8x9T4aV/j9uxY78bLQnlGc0HIjg3qSaOtKq39Y0vaTnW4hAAGdyz9TVjc5uadPtxd1/nTmePdG9ghfR2gnyB+wTskfUzSu+7TRxjsAVLggxVHVjQTrLb41cMpq3ZNCZABDewDBwv0/BHf5e8wpdIAnxJ8lHSN4JhNo0O+IJspQcrJTTWIyEO4Xy5nvP/wDlwZt+sVpRRcry9Ytw0fcsbT0zukU8I0nbAsCz59+oht43COQQNRdEAkiemCm3S0nvVmfA4DDOlVIn6UvkKNz730lnnUInuKlqsGM5pJPbBM04Tz5YycRHCLOzTRH3DUFLpWnsSW+nrV8VWh0Xz5m+lBZcayrtiKaL5TTpjPZwmclJN60iE1JyKcppN6yBHXsZn0cBIBkwYLOk+6QzVnTCmh1A2lrChbwfX2Iu4wt4KtyMEoUMK6bigqtBY7/7KtYGwOCnISX/yJCBsYiYG0UrcwJCKsWRlpLYgmL6bPERek1UG/BFWhBvK5gX6GeeYC1m3Fsm5Y10UiJhfzYKT27dOE0zzjdJoV9G56sLjqAfzkmigwUAqhpA2VKriYgDAuKe2bfRcb/ablsoVGMFsPHq0M9zPm/qMNRg+Cq1+jgwWlHk5Dx6SAH/p+eXkRgbaIfboFVqu1Yllld2kr1c90VJYDtctmpmly0PtcCXMFbhujIKMtnbFnmlewKB7Y734BJTSO1p7YNcgEhNifrG8jEWjzlGVHY4UffLUDzLN61BLTOWBZxC2vCe4gUi8+7AKBeWtj5sFEjLt5nXJy96GyY1jaeN+RW3zPIwBKVu8hXRCiSPCWlKFFU7DunpHWHQ7PEOVSd42bggIQ99LLsiDPn/CP3/8GnJ7wu9tf4GV792Zg8rOmV1DXWzX9D0E59Qeb4/Nv0fQ3UN9Tt/3XfQ9gm/pCuitJg3u6LG3squNNxm+a8sJccmdzQ9k3x3mMCRls7Qd3tbLqeLUotcCKHHgTAt/TtS0lQk2QnfJic7cO4/g6CjmiY1N8if6oKXnAhrwHkjFBVvlhYqASdbE9dFaHCOHjS99U3T9J+jpAP8aJN3KiUcqBd7TlAOCacQ8aFJ4z+8raaVDN17UMfFVt3m3ZBDhBwMIzfcL1+oI5V3ENF7ZrxzY0iXcvJZq9HOmqTiQHuM7nM87nMy6XJ9RihyDFE8xtWfBOgwyllDHN4oHCApHJe42Am+kBp6R+rXVq1rqrV5Bfut7Gg9+H7OueVrzvnPY3lMVjRwFNw29S/NE7XLP34LWv18zTru2D9uKeNsPoqWiQn+peZgAzs5qmCfMk5jx2KFNMwpqP9UaT3C38RKT20aa9VxAxtwOmBLU1rsUPK8qOUkKdgYlaZEwTBqdZTHdmrVMiIJMcgp10h+Ckpg1TTphyQipK97SClgXgIgdjAV2wuGn3Ga71My0x2yHMKSPnGRWCzpkkoBM2cY0mf9S85BT1UGNz3EF/xW2xg7RmakIO8ouCO/ktBYtgv2Hd5E/cjDZPL2L201w6Uq3gSqjUtlBJF0RmBues4I4AzWdjQkY3Toz7SZdSb48Z7UzjlngP5PfpLq0HwN9A/Zg7zEuyyPNVQa7sLGZwC0nPxfu+gf6qghajqIYfEPPElBIoFzCJuY/gUboLaHvA38yWYk1dseO3tIfsty+0x3OWEMAO9TFMosmPmUna4fZSihxaTUlis5DSQ4XP52je02lcGcas/R07U8sDgXFMo9b/eJ/8OLk5TltIj193h/kf7ZJZfmt3KQXTtOCb0/egvOCH9Vu8xHJ/LuD/FmD+hvft+PpB/tdMe7oyjgD/F7R55An2ncK1e+9Icb40nI2xQ8bdyigEuO470MIOq42Hv8P3trOsLi+DiVvM294pv80JAVMQ0qs1go+HVPHFQzwQ5lkUCNgZMA90T23O2k4+WMwLXQElZTn+OxjonYDtL7ZXtPeOuzpev0fpMwSKrwL011rx6eWlgfjA9Jr5glxrtqv7awb6e8BNnsc1qFG7aluR0EA3aFvURmsvWQL51Ikxn05y4PEQ/HW/9tKzquXjxJrnGZfLBc/PT3j//j22dcXLpxdZWKpEtWwu4VgnpkSF3LbJ29kRxQCuG4jUw3o4YHKh3k2xtqekLxFWj+DFo63AMa+s23RYnz9KihpBPagX62BuHJ02ATSf3FKEHIokTLMIddM0uYceCeZUdYyLg3+y56j5Zc/qC3xbN/cn7wqJCBKo0UDTNCakdUXlKlp/DQg3T1M4YyCAP9shY5I/08JPkx0+Tg6OGITEAE0TkrksNI0+imj+tyKCimv7jW9qMCs7fkIi0BEx1oVE8MiESX3MJ9IdDwf97KiOILsb61oc9DObKY+ekQD8GkuBAJHaHjfvKlspoARkimZXQ7A7bb+ZHJlm3vzaO2hkAwGNFmz+WbLD/BxMWmIeIniZOfjpj3M7AlPbASJ7OPC8BhySCxjRs4/ww6KmYeyKkHXdADBebjcZYzXlAdhdvm7Km4rvoKrvfrbFV+jZYjkwgHP+Ef+IfotbOeH3L+9RuDkvsL4EbPEjsLvxDGATIsQ13M/oVJqdtnwvRHk5AfC73b3a9JvQl1Woi373AdutkjmVUkJF88J03wSmvTcPZp19dOejZxu4OjIHIUBjPvhbkCi5EBqRUvcObtf8+mewWtu5sLrVIvMq5SSmqJyb9yqr6E9Md0HUlxX2Ryljb5Jz/KIjUxX5jt11+/QI3QcA0a7HS1EoibsSY7k92PcKDhXmxryH5LuKMOVmK5uhpqpe5IBZ0LBRpiS7tMRIFp+FuSkInU55hw+8fbZWBlp3pTDRfq6FdpmuwAOb6rNSpiqBigSLhLkC1vbbWZk3p0GC8XnOx2N7+PxnpK8D9HPFjy+fukAq/VYsd/cclOnzls/AMdBPnliOCQbOwA38ox3ES1mCYgnoJ3zKL7jeruJzPCdkZGQefA8fJBoWE/fLjza55tMJT09PeH5+hw/vP+B2u+H7+Tuxhy1VDmlaRE1fGBNynjBNxTXDd5MJO8zixzz2jffRfgF4DWD3S/DjfPb5pbz1Twr8R9oDgjSPBrgsOww0Bb/g3MZ3miZ3zTnPM5gZ27aqacSi2nthNnLQewapez877DtNk7j9u17R/MmHKqugFgVkoxcQIdeM0+XsIMai/do7snqMytRs/Od5EtA/izaT1NwHJTnoz3kWIFfEnMMA/uIa9Kq0azts4r60Ovg3F0UFaowDKDQU+3/xQQ+2iLxtHtuyxgwH+wY8TVgXAV4PGBpfsCi1qj22gGoytMk1/D5fHWdHYb1RgNnB+66ALXC2jQ0j235hb3yglSVCRBvXbP7xgzbYZpIIJNU10YBF6W7J3L4aDZvnqD2/YHXlujmgLcp7DCyseeu9UsH4qr6rTZ+gPBbAz/ani+kl/4jn+Ybvb8/4N0vGrcwaqFAPTjsAsPq5b73w2dcfutj2Aaxaf0cBPc7tKLAlkj+mHvDnLG5ey3LT9UMP6GbZLZtUePbaDPwjXvdB5xb/wGK3VKrB7BStI73m9u0OqKDBJhmmoLC4AD3AFLbB/kCklbsp3opMcFA6bNuGlBKWdUHi7Ov3VwXUf8ZydgJYh9gf5+2f6z9jWfEzDULPayBzvDsq3XZR5imUeXfMG9Dtyu34ZdSs66NsvL0vNypWAIinHRKQXWmYF2MygeAAQ8YXEUiYVWpzYTdXQx+0mDEK/pndp4LtaEEP4ksbB9e4b00HbeIorMf6/8T0dYD+yvj0cnWNQRssuP2gb6sEYCOpsbGoTei3HZvQsNP0BwGCVbyrzKDaCxUx7YRc5bQ7+7EI+nMOGqUwIdBPkKSeUmYFifM8u394EVbEVjRn0TItS9QwU9funuj3THe/Iczh/4P27NID5vXguwsANNTgaOLB+At31zt+MS5Sw2Sj4d69WkdIwVafMb+Bx5hHmYJrVZVxEdp4S1YL7CRmPFbVlDJSFkAmgdmy2P/njCmLVn6aMrLZDasbxFXtqc322mgwasF8TlWto76bANe6iJJUDk8lsi1KBcjIKAHsVpYzC4UZlDMyEU5I4tVkK6BSUJmQs4B4MTWSP8XqHrjJ2SQJcDZNbdev9lfhPKEbLwb8ZDPt6dXojFSwj1py+2xmHUKZlZsbVEqku4EqvHDPM3pTDgWSJOZ1kWSO+P8eKNhnE5FNYDchznkXN2WFPdi0f0rH5mmCAdklbB5kqkfkNSFRlSbKY2uNfFV3YraCRKvSlE0FdvqBjbQDfyEaZsguJ8jNYiglvNyAl5dPWOoJdT4Jfc8ngDRSObVYBd3s7DqTwwQfwX3s2+ZxSOrOra8H7WrkxW03rbnjJSLfEZqmKdDPmNjLjNesfNfyR+ULB667k20aIRn97YBFEPyMNki9STkgGYWRI+BvdR8q4XlJ4nrE61a276qzakJTwbv5BafTR1y3M27lfKe/HoCae5cfAatIOq+lB3k+p067vAae7wD/XoALNImIPRVI60XDH0da/gbUH6+JYzMo5BlW3q5u/SVqTJjo0StiCQCCxYY+a+elzBrC2sI09okJ9wc42RaYgCMDZGy1MOEgTrQ47wYppylvc7tr4+BrgfHBNj929PcITtEr9zWT0MtPS18F6N+2Db//wx8EFAHdNmcE/WOKWjJybeSwqGteW6CM4TfpzkBG6/NU5ZCbDa7lIzLrADJlVKhMmBSQ+ZBSQpoy8iwgXognN81S2Jq3Q755yricLyAQnp/fgQHMpxMAlSyXovaSMnTLsmDbtgBeTIBgVHNzCLMtPaKqkULt6qsUeJf4+CDP2F2vlRHL+alE/uYyOGj0j7RdAfD7bwX8ZuICqJu/NPn2v5jGNHvftawCvAlImXA6zTifT5jnGc/Pz5imjOd37+QArr6qgTx2gPb99z/gtix4ebliu64DyDFTDlFrSBApia67rQmcK3LKqCkhkXj8EQ2SALQpiXnP4m5wbQ6Y1x1Cni+YCDjpXFvWFeu6IeUbSiU92GxafQWBDJ+DskvVTPJkTo4eUFQnX8MEhQhUDo4po0kvOj+VQXo5No/dvE0XXLKtXjgQLmXDAtZDy5P0ebGgZeGgdRAO2lkDuL2/kEhPxf6TuRMGokYMaN9tV3JZV8/LzOoZpyrwM29grSy94bwLgCoKpna+IvC/rRTQugIMVZA0waBK5+B6W3BbhM48QqXx2dQAPqOBUoCQs5wJuE5XETq0ld8vL/iHfzhj4TOeLk+Y5wlPT08ALgqm1ZdUAPUNYLTF/bVkczruUJhQQ2Tuk01wkqhuwqeT9yWzOIqotWLSnbLT6YTT+Rze0+q6B6PsnNaiK0/TJOaiKohFAc+J3StvxVi9wzWgARn014QHpI5mAXT9xj7O9U18n8HuASiC3Aj8S5W4Ieu6Ygbh17/8Pc6XK340kLdrAAAgAElEQVTz8Vf47cfzIXs9Asx/1on6z7u23vF3AM8UrsXPL+2XXTlWFEe8pJ9K83I5Htw23qI/ORQSBfNDTYdgEVvLHPQDQDJLhrxvt7lATs1BSidCcP8Gq7vc66UDJiAxI+4eSmlS5xqEWusLA/zCO9tcdSG3Vg0UKHNIeEY/jjvBY0xRALmbzXju/vHPIYqvAvTbouOLUAfMbUtnlL5gLMYXbUfvLhH1MqsRy2je4r4u1EWdnHrXRYwApAlLPSNV4ILmMcUFg/aC3WTwqaT2tlGTRNTcDTqzZ7gG6XQ+OcAnIg2IZKY+YUvpiJF3gk0TkI75xuuMvvV87EvrxtDP/FgSJYwAJ958UA71bT2695b0JiFjZIqwibtnZLGfW92aEGen+QW4mmmA5Esknpxi4LVZzQVO84w8T27DXioAElBMSkjTPImGfZ2wZT3MqoKHRVOF03b1iJl2INgBLJrmvYDEjl49ONgzhjyIGFCzkokt+qowPDtsXMLug5n2NJApkybutJmdeOWm0W9/OvUHxw0EBMV+o/9+AYgChjIIjbQtY9l2/pgbbXX2x2xjp/c0ovW9HcNIM68DUl10glY5avntTEGjtQHskfCVhGh2hMYPKWp1Wc+HqLeZUnsQCAx93i+qrlnW+yYQ2HyWRc48JQV+RFFAY/F6oeVu6yLmi5xQ5kkO+tXmVS32pdVxd63js5JL9W6NT4VVd9xJHpVDvibEtXeY46PZpgNqAwyedLC8rDbettth8263yw1g5JENazHAujYZUdh47XhUK9+1y57XRJEAjsK1UUNtgrS8PtCHXtsJ2j4/ChI2TLQhuQLqmBMfmy0dZn39+Tc8Nwo5n7vTcO+dOzAfBcLDwiKSftuS5mM6gN6jah+ZCAHKQ2nIHK6N63DLelBBx+ONBpvgQN286+gOkXzbHLMui3W2nbnG1Yy6w6+jORgq35pH3dMg6oJ3mXQtioHqO3pdHQ/ab/es7XFqtow/Z4qLwuvpqwD9YBaXf/bTvxEYGqo9yW+hBdHqWxRT0x7VWsKIBnsyCifZI9GTTcZmZmNaJF+oiMDTO/zm+ks814IP33zEfBZ3bb5tasRh2+2+mBhQgh9UM2Zv0VhrrViWBdNtxvXlBiLgcnnC6XQGpYxlWWBb0mUtuF5vTlRiQ4yOwZpUKq4ABS2RemQh1Wi9hYcekVHPQO4w7Q5oxPz3Gf1by/lTpvj+I5Op8ZqBv5QSmBins9gpZ/Xz7hphpYmcyLX7p7O4bJ1M0z9PeP/hPaZ58p2culSsy6bCnpT77t0zLpcLTvMJt8sFy7Lgx5dPKEVoCgBmngGIJygGME2TBnXL2NaiB0qbptPbb59K0KIFFIGFuSLnhPP5pHQoW7LrsmLdVqzLhuv1pnbhm/aP9pWbRkaBvvo7wKINclv+9oC+23tdgA8AsHnhMrinW8QG2Fldbnq0VTPDQtCs2pIhnn1s/osnMOUFAZCVAPRHrVUE/bb+RS2+3gQAt8m38xvCc8xsIhz8N5tbBpBYz4cAPLUFzRQR0XQgrmDmdUx2JoRfbuqqVOyw1XOUC6VtF6SNGbt/fsnT5osoJoL2zhqfRHDcbPFXGrreGLcfP2LlFTMBdCoopxk4TcLfeVJBYlg1/cNRasP2/scxKwx0CJ31gRN9LSDIeLNEJDYnD6UED09g5Enc7tqZmFKkH6seNndxw/lkqAURsh2gt7MAVYL7beZJKpqpWn8pmuFwzWOyvAr8W7L5INmCIIQ27jFvFIzuJqUNo0GnkVqwrLJ+LeuCaZ7VpPCxh5U/ZXq4Gr4V6P+Ud3Qv48Nh8x2UCPKp3du9J66bQcFGw3fgURP3I0T2hljJsYAAfK0epiDwoKVBseA7kTWUrUJ1NjyWEohl3qVEKNhQzH1nbbt3rcm98GS3RgHIhTDDe4AoyrgJyJkSKAsvvHBYx5ndtM81/kAweBPD/x7C9ALOrn+pde3boY/Rzdvp8asA/QzauW10Im/qKwfmZNJXNtDfA7BI2OMBlfg7/oHCAZLhXkoJ15qReUOlm4qfAzNkVs8JaHZd3pZ9mXECFiWkbds6jw6Xs9h1r+uKZV0BZtfSmjcVo9wejIbJ5MJOAHYHE76bNN2TuPvMEYc6lIBD//cT8gHLOQDW95550xb/GyaF5XlLeaP2b2Q6BubMRp4NwCrjNqFNNPziJzwHn93m2989/ID1HAABal6TsoE4AYCVK9It7eumgLoUseXfUkJOjI2al5odgzKNjJvXVPVOIuA/Z7HjjyZqJqBsa8GyrBAf+iXUZQT9EcyxvwuoXm93Ca6LiAnVCIzWtfAWzVTBZRwnY9QGFG3qtN0R6umZD3iE17UP8sVxZ8CztIVN6MHq1M+zqDWepkkXadsdCsI1kTeLmMbAvD14bc3f50mND/rOiwpIzXVxOwRuBTA3EygT2HSt1vJI83APWkl3Mylq5+T5WjY5o8RZYluUIoe6VYgi7cz4ZI9FGuDvrz6Yv0ZHgZ+Ytt2W/rgDO84jBqtv/9SZkzqYccBv/EQqGPlDb9aZ9ufLOGhX93JDxxtNDNihhFiGdRW3/hsBf9dl9p36vEMnd/Xx/ByAP+8ji9/jrQ5YD9j0eO8Rfz4Ewe3C3fQl4P+znqHX2mj/DwKuTuYe+Gu23Zo2zo9QfsTpcS1/0IT4CgPFfRv27emXkLdouoMAGugm0rPNRzsrVd37zlhWqLc1esARgaN143dPyUcE362PZ3xsDhoGs3c2Lf+4nFgn7Kob+qur/eN8Q9eP7XmUvgrQn3PC+/cf2oIF6joeCISqmreUVAJE2BrXezbB2oJtoBdBq0O7PJ1gYZ8mbQLIqeJ36xN+qCv+4vk7vM8vcIBN8K0yGRTWQ7kZucq2uhMikZtzAGJCIQG3PmGeZ7x/9w4pJVyenjCXgh8/fcJV3QqaR415nr094r5TNEUAVOPcFi3R8hvoRvcZAUGcpIoDbDR243DPiOeRpv/PNcVF7LW25CwA2sbXtrfNKwcRMJ/kcPbpLMGfiIB1XcBccLuJ/f17fgZoElv8suHl5RN+//vfSR2SePu4PF0k0FZOeHq+gDKhsgDu2+3mB09LLaAi9L6BgZVQqEDcNo7Co/7p4fAocLCalUFdx75cb/pMC8ojgclUu8PQA/jwoHiw8jkcJjXG7zsJCvxh4LItBD2g9hFS0Kr3qXcLx8we9MjeEUF/5Qj6A/NvDCmAfv3wXT2b/4EuzK0lm6Zf7KppWGWNx1ik7cvl4of+Sd1c2oISYUF7WOpDww17j+F2j+6sbU3LguvLVdqt870yq5Wr5CNb1BhgVu9KHsywxYxIyjsrC32x0kkTPgiAeTWS/hCvtAkTVUxcwFyQ6gqqBKobqG5INSHx2tGl9SlRalsMugKyCUqH8gGhjcceWAv4zki5Ou83QZGIUHLyw++Evacm81ZjuwG2CxLH23hI57FHFVDimnn1MpjZ3bRybUqCES+0hf4YSbhAbODbNa1jkKM7iQNYof6aaTetHgCQagISvHwq5OvVsiyYpjnsdv55rwmflX5yUx1S3i2Mdl8MA/Vr/luW4jYvdlf2/DDU0J7hoR5eChEAc2yhu7PKu02gJjCIK4jbQXGLu8TQeChV/eVTRQHEJMd2W005EnBgq2RP9L2iU/Kn4OnK2kUkgH+eJuGTqjBJ4TyQv/XfBtahO9/vpK8C9JMCXKB12hgoxT6P/gz0S+TE9PCZeG28L7/bYhzLAQSkfNwuoLLhm8sNRFfNw04dJgAwC7HGYF7eHgBJtbwAuZbfTDIMCJBq/16uV9eaGLBvNsCtr8TW37aY42LQt6VJ72hCCgbgP8iN3a84sUJ6pI3/3Mkwat0fafj/WBPtaMvwHvi3vM2/vmjtxTdx046KW0jx7T3NEq3XgD3AWNdFQVQzpamlYFlu+PjxB7WXVjeNiXA+A6fTGfM0g8FY15PWw8wyRNioXEFV3IMWEKoxK98BauBKQLtFuVWBRSONirAdR55R6tpp84gSxKlcyFXRHcY3waDXygrYt+9y2kC1g7WB6Kal9NHxMnGg/ZHzDKZlrABVb0A0dwDS8OSdxGhg36vQg/64k9HzkqjFbdcN+CcL3pYSQBm2YRzrJQqOUC6OBe145kfGUhQDtVYPJhWTaaptB4AN9KmEZV6yai1gjX7O5m3D+rMKrWjFIkOVtjPLDhWAjIqECuIif3UD1SJ/XEAx8quOO9mPGhDMoEQLCu0uMYdDflFQM4VRiMvAVQCFmEnm7uAypQb6O422n5M4tlsnUpe4g9ceZu4A/8h3TPh6lc/17B7GP/qD8ex96eWj1yTH/vJ2DB1q+druGXyH2/qlskQYJhDKVrCpt7GurlaeeWk58E3uuyf8Svt/Qhp3hzrR/C5T4A7gdkqCQ9Q73OuyDER88K4R+B/1RiSRYxwT8ow8I7aa2jvo3j1XALa6PBLnjJbdDJYrJJ5Hm7BGN8bTyHmL8Dyw7lImOR0SvSzG+ez16CoW+OQB4CdQZ6VhgN+kpZSzK0Nc0x8A/4izurSbm8fJ3/nWdAD4X+MTXwXozynjw4dvtG+H7XRQ6IQ2OKMW3z7bfXv2zkD4/IwTVZItfBaECWxGAW0Brcxte19e4ItsCtqQnAu4MrZVbYqZfdHIUzupLn7bxcvFthVAJ4ctCLYomIYt9tM0Te5jO9J004buwWub+KRNbAzeFtdGp2MfHttkHmn5/9xStzgO1x+lNh4hiJI+Z+NoAqod1jUvHqUU3G439/UtZi0GsKqPuwS7Kti26mPxMs94fnrG0+UJlRkn9fR0uVzEV7bSUU4W2M0WMRZzCjIBRkFetYiqoolpQMTiW1Tw1rTl0r6t6zfx8BOAObdP6yMRokvfx6bpV7Di18J4sAFu+w7Hk07//ZIYx7OZMtiCQNzKCaxgTxdo72gViRkERBIAJBF5qrpJNe1xX9ZeMDDtbs6TmuEkXaj0vUZjIKRsvEnLVE2uNEMBtkftTv7mqiZeXCu4qAvXosIcpQaKqbUJekjVAEACCXejZvdvMUgqNyDk55hIFPPmgImki3CZNvz6/R+w1hNuNCu4LoBFXq4tingjJLR+hjdfaWscNN4NajPSMRqw+mek1OZV4/WBNiwv9dv80cGCe9mKgNlkE+X9rgSyMnyO12AqNu52W+/zcO0gBcQThRI7Q3PEy8aSY57XdjhdkKAAiNC8+FAhETjV+9GbJOtH6PFPmu5XhF/PAvgt+/8uJA4FMcIjaBgowMudQDmWtsc+r4FB3zlq2NluwJSBMCEoFDXg6nDxmKGKSRsDsKBWvWmbeXCrVJ0vxoJM8CYAlKqazxuPOB4O47nywd13m9NH+Y3PgdW8CHBT9NbHjzX9zeTnmPC/VGkZBbPGE18v6+sA/VPGL3/5yw7IHkmTY/JdATIG08AVoe/MHUMbgF2bwEFz0V7kWq+qyKiGRRaAM3IbAACYcnYty7Iuqg0q7ot/mufgO70dvly3DYzmplHspFf5U02/tZ8oYZ4TbrcFtULNevp+Gn+PQlTUzli5NnE6QoragoNy/dk/Y+A/mgBEYPZo0rYdJ/mdDKgMwM6CYtkhQCIB1i8vLxo4qbpJDiBb/1uRaKmb7ghdr1cwA7fbDSklbN98i1oq5mAi8vT05CYD3aFFwIGvmC800xYzwYmRVm2R9jgXaoctRNN2MHqtNiHpPTN1MCQ45Qk5iyvRCPoF0jXPQ63MY+ErDoV9rwpqjA37fbOX9gBgOm76sC+zAVh3FRvowq5TV1CrSLP9rGr20t8/BF3UNMDmrctEJxdmglDZDvEr8ASDvTtl8U4U7ceFMWwkh5Ql7oAeTq0VjATKrM+GbudwmNr6hlpMABFUyGkLGq3SukVFF/9UJ1QgAE/Tin/y7e+w1hP+9scP+LidnB/GSJgO9rVSZOBkTJFc7iEyz2PAn7w/uVb3qCP8l5sQA+37pLsCwZOH7XAV6884vtSDLnNAIeaeAqDsEHXbKSOn4W4Hmtq5m1eX9kC3FoRyp8y4BzZ0Quy1333+qO0HQxQVFO5VuJJq2zas2yoHML/mNE7Nz8BjY1bq/wvQsL2K9k+gZy42TE356drlXZ74+zEQfTV1FTViivXbv5zic62yXZ2kOFZdgsU3Mc6gvK4yKioqadyYQWmCDvTrs0xqVtmnxg54tx7HXftdH3FAgbp2+a4YARU19G8/V++le9jontXAYRkHz0Rl7FvSVwH6CdS5L4Npd15pg21D13GmMjQwY6+xbs8gDGoP+O1Dx9m19m5aoDX+cT0hvTzjnFdc5hU0HOYTTUd1ZhilS2miajxJ7dCouYA7OvQkB8cyUsqusQEawcatJlKPLOYhaDw4pk3zmnb9MvSXtUUrfTAGfccLTuNOsnamEBe/e9qHONmGmo4gMLCgrv59kWNLx1sREOzdk5k2k4/qir3waG44x5fZjky0BS5VbBe5qp0yA+sqnqEkxLftDsi4mw1hzpNr04AWWGmq4nufM2PW8yK16AHc0KvmloyozSE2OrVw5wYSaqM1IWHTRirohy72sHKUoXded/z18BDmwQzCmTCCRr6d4O2YL/tnK9NAmgvz3WibEB95QV+n/Zha5wxjeJD74bWD8keGboDTXUBSNGuUspru1wCvcL02M9nvDS/TA9gQIaxaBO9e8LEyEICh7Ag1j0Gt3uRjSmTvCAUZ47TJ47WLkF2LoMYL2IQc/W5rgOdFKNd5VrjGHGhg3/m2O+vnEnjUarY1CNQ05EUBOQiq2FH+CqH7ggD0WUGICdkBdBm/t3EG4IeXBfBbv4viwPIZaDbhDkNfjPyX+p8NjEQFWJiTLqz7zGjvoOF19xKhmQXtBB59sJSCsm2Ypxd8mD9irROu26WN377QPtnc/wL8+rnpaMWIa01/ZwDv3NojvDY8wD1YNnOlHiyzj6JdNxFwzNvW5YO685A51tfH/EEyIb+/2Hgj4HzCVYQ7oL9/Q5tz5AfiRauv/FZp0uKqMKjxCrR5mrRfq+6IUi3tGa7aY6Ow4DXwdQqgOCSSzS+w3rcBJeUDhGS80d5Eu7fFbuz6626fKI239+2yhoJxML568dFz+EpAvzHUDuANn369k9LG3FpYcOrdMP69EvfJzjkxM2oy22oEIsz47cdf4Df1HX79/g/4mw+/A0G0ox2w16/RXtOSeXex5WFSN3A5Z3GjFwB9ShnT6Yy5ygHeZj9tvvr7BSVrIImny5MfFjbm4YedYzKV4Xgt9GjXv93C2wPfphENfX0glcZdmpCzA247iRwIgld4arfINwZJAXwcMbmOhEKGRAAn2VrMU3ZmYpnZdnsURBGEieSpxXGIdZkmCTwkAC+DGdjWFRZRd8oTSi349OmKUhjLbcN2Lkg04Xy64DSdMU2zMkqpj9mp11Kx3BbM0ywRfEk0/fO6oWyimSdo56EtKhznCMPrYtvyYNXwe99w87IS+9voQfun7jrWR0P89xc1B1ITIuba0c2AUbSOFqTPtPbt5W2h6ymjA/hmb9zXfISGaNzXCK2nHYoL2yOtjQLMhojTro4G+Od5xmkWF6+kLl5hAFAhVfUVEbr4cEfXhOonEgwc1gAfCgHbsqAsV9R1QWI5uJt0XDFGq7VBIGq29TYHfME0d3zc0TslW1akwyu3WhKJuGK8a8ozQDOqWvgzZSBN4DSB1RWzxZ7IdsAZ3AlCYDtw3ujDhwhNo1jUpWZh1jopTyFCmiZk6DqUkh5Ir6iraKdzznh6uiBb0DBK2EpBWYtGxpZ3TjmDU3btuvWLnNk4QwL3CY+43q6yG6c7cm0Hh+SAfkrq/WpzMyxAvYmMhNxRqSVGStJnTE3bLzwrelniMF/2JTp4NeBlT7nw1/hd5QrSmA0JCTQJBa/LCq6Mb3/xO3zzDfD98g3+7uNfo3A70Mwdr4mtaPPfwGXPXd+ejiDX/soeTI+5x1vd7zsQw/hRLH9fzmimYfnH9fi1ljcPMhEn7dbyR0XxwWBYS+zWHcHiUb8K/WY9x0HgpCZobEEOhdtVEFj945ONOxFyYnAiUJX7tVYQC43XVRQbNgaJSNxu6i4bADnWxfs69psXtOst+5ntfGbka8OaKt9HF6yHvd9fMOH2LSms3+09rz/7dYD+kPi1Hw4Ij4B85IS2AKJ77qDggzoYaG0zJoISBrCWjFqBrbaDdp02P8yLuK0qGLRp543hWQRID+YUpMKkwKCUgtNJAnaZ//MxdVp/06IN3dgRlXKFtzPPnhGQlQF09XFmc6Dlj597bcLjZFtkXZts2AP1x12jzvbtqCXMbagp3mzPRaEk7hYNlesBv9EoC1vIyRa4xiA6M6IaTAX0UGAiNYmZMnLKAAM5lMtA2MVpXkEm3Q0Y7Y+paw1cXmp1Ma1lC4rXNbMTflohbdegX2R2GQ1Lo+1+RVvjTqPcPdoEwZ7umxAD8G5I7G3xiKIBxU50CH0UrvrcOMRYIb26BNOdrd34pzRrplTEdqgefog2NiAGASfm0EZGI2hvbCdcCQCIbRt5KcYVzCCyVyK2eafFCmCgiR7BNTMDrHEW4pub+2YKz8PLaVO9W+n29fVKtB7ZkSW1ejmwsncHerSDz3tqbm46yepH5DsgNfIearut1l/RNCjWeTRxfSsG6No8kou295HpwEEph9dMtxuXAllnfGY33qfJTZewYaYFmbbDhnEHiq39R/m0PneVU4/a9gCkHuLgOyW/gpm75BU+fqC1uethxHmwr/frb46CWcQkDx8PmUzZFhsQqF3vPHAXOR6+Hn/GOehAu62Jrd6Bv5D2hTBN/zPTw7EpuxR406NuuJd8bmjd3kx3dEjK+3SwbN7PEjwuvrEeXwfoZ7ibu6Nb8skO7HzxB7pebACU+4fjVwMmh2+Rr0VNHCgRkjmiVkDhpjr6RoL5Oa9hrZW2mDcHOTwnE5mIkIkw5SyaPZdekwf8GoWCD+/f45tvvsXtdsPT0xO2dcMPHz9iXcU147pu4Mr9ogKNcuzNfiOwP9x+GrMQKOWuP7vetGsmUAQgnuIEDc/bO+JW9JuWJ33ed1IeAPz4zJHp19BIpzU7K1Jtq13vN+xAfgjX4ifUzSLTqis/ru5X36pNyny2TYKuVXXdlyjhdrvhel3w7t07XC5nLMuC7959h3XdcL29oFbGPEtwrHfv3uHp6Qnv3r3Dhw8f3DRsXVe8vLxg3VYQJeySzQXz7lFLpw0EBzNJZSpiB7414NU6rBf6xn43HBKYueWpakLEPofI+9gooZqAIGji3qgdtu9NlBQlPorXxvTKLIq0T2Zq12xT40FNX7z0MbPnLmo+lWgCyA7phL5VPtgImOEBELwODLLAhl41E7Sa6RWNfMGVAPpORtOea3sO06hcCAA9zO4uRwVQmJXfhoXUXHLau8g0fxxoqK35d3CUNnrXff6g8deagpkkGv8BdPeLJSbDuq5yWH7bZDfAAVUC5Uk8EqnpT0mpi9/g572Y3ZSnbHamogEz4R/pcH6ZeHK/tcZTqQnmPI5KA1ggOywfQUO/Pu5mwBFy8WnTvAB5/+m2eakFKOicUozJhCD3TKfvI5JI4Z+FbL6C9PkQ/XNyf15pb17/2xPdN4P77e3U3bRxH5+K74wsSw7wNjGenFcyWN3/wvCWHlZsuEI/yCwc9HAw1JOhY8NeMPyc9jeT0/DgHla2vC7c7Fa+++8Y6rRXaL2pmFcY4D59HaD/ThqBeqc9GD81P42dhoN+ewRUAdGIKc+sFIcxmCCwseCwHTe4ezL75zbhmgY+hnHPqdnbj/buROKK9HQ6I6uN57IsuOmh32VZXADqNG2moRq18K8BpjeB/uRaxrfQmmk5U5h8u3od1GO3vD0A9PfKaeJZP5Htty0snUYEfX+5Jj78Hncq9ucVTJNnQAvd2GpR/i73/hE0/UUPfZ/mk/+BgWXNII0DkVLC6XTC+XwW151q/iURW1se05iMi7oB6aYFNk1/NNmK+LLvj9btD+ZdmLdNgxNMu/xd9mnQhPt6dnkep26BekSrYe0KK9jddhxz4bbDEIXZBloC3VIM3NK4QmyXg0VutvqRjvs6DMIrj/eov7frO1t8w9pB/X3753PG+6zRPHbPBRAP9PWIebRKblrkzxj45iF/4LEHBY6Uc0gpUZNumnlq98b3mQKo1Aqq4oK3qkejqGUkNHDPzAI2Br5iZUZNv/HuBnzaKLchG8wy70yB7vIBz/fdX44eRUhBmLzn1fk1jItrXe370H/Wh4nbzgYfHboM/dLbPjdeC9Bwb6jao2ofzJ4wKn1dwt1jyj1+8+79NPbIwbsfVvpoPabhXo+BDt9xkGyOdK5Qw/ahUMawZqJvaRTyWBcK5tjXzhh1XvT8zGvZzcdWnmuxw3oUeZTQcFCUekTtoSce0Mwx7wxrAo/zyioQ5kzXQ96qN6a30NfPV8pXAfqJgCn4sR872A7lCkHZAgkBAmSZwuHBVvL9dyJkbV/8g4BoNuslZdVoUcpIXDGljClNAMTGHtRsJas+lVSTb+Awp4ycEiZ1z5dy6gFFJG6IPfj5fJbw7dMk0XmJVMu/Yl1XfUzebe4f3TWouolrmr4j4r7fT/uLbZUcTWc64cmzaz8EocbNmsbJOAAk+x53ACLIthTjIMRyLP+ujWMf6G/Ryjc3myaU2eHW2A7otaReV7p7eUKiqh55ZlwuF1zOFwDA9XZ1r0y1iC9ro5l5njFNk7jxU69Ny7qCAffjnnIGA7hczn5W4HJ5wukkXoG2bfOgcGbucziOBtxdu98OkPvnMEdckHSNcD/mPkbDYtfvkMHL8k+2BYKdiUeBgrv5gY4wj0HK2/jA56U3CBsRlLaLLlh2u4Qkri6TenTJ5sZR86SkMT6sjNAaO5uj7LADsdDF0l12RoHEZRLu/mzc7vVlg/19clmyu7gXHrpl3gCFBn4rNbWYDQRfvJFIeXBC95aAPhpAiFi0F2Ii3xtptWkLe2cHRcs194jXyD8AACAASURBVLUA3HNaKRtyzdrHpCZ44n45B/NMrtWBP4Xxt/luLiwN5No5L7ePj84c3iDoRsJz8GzQJfbBOFYjqAH2730AmqSYsFAG+q/MgPIy23283W5Y69pAXBSI7HEDgGqHTdycBPycaWAln3X31bx0cJ3ufB6lo3s/oQM4/H9PSOmha4OyPeDXvFFwdAAgk78TBrqS/eGuNhZt1wREK79WSCBJJmTAXd1a7V2BGuJmAEVjpeiJyS+I78B3vj/OfIdeOh48TuVXSv+Z6R34SkA/sPeTCkSBiv1kNiKROROXxY+3etyh40Sxy9gzN2Z2l3K2OkVgaxorwb0K3N0jTtBGok0WAvliQGGBFxd97WBmrUW2283NH+uzGrhnZsZ8Orkrxmma8N1333ndALiJSClFAOc0AdOEiUh9efNuwvV9c4cIB01VQPSddjPmOVpgO+Affsd3xEXAwGPUAlC4Z89NCrrHutJw7bU5RKSeZdSLkteXGdXPX2idNV8iCdwBNO8bOcuBQHu1aOJPUvZVg/Fs6n9fD9YRkQt2pv33SMs69rlWZDULe//+HeZ5xvl88UPgImRwCwDUeYQJTMkAf9Q4hu8d6B8EuX6RHrd1AwDtOvagjw10VjfcaKWGeTcCUdv6bWW+BRD98VInVLrwEjM07WkEOgYabS54v6XGK+x3ipqu0L+u1U5iamgA0573+oXrbccyuKR8ACq5+2wdT+MwjJ1ypzA28Y4BlILCcsC2274ns/GFChF7eopXTEgksoKHnaLQDuMnu78U+ZM+w02JYxF6zc0pZRGmExHIhP6g9awmFOtKb4oD39UrGjRP6xNBf3P88IBX3+3ifh06UsS0tRUDAYdy3iBouJa/G4xQE5ZD10V3NNZtw7Ku2NjMMfURauc77M/mh90fCh/q8eXpjwL8DwH7nc/x/t3nfyoC5O7/e3sQiqjul6C0FXeMWtPZB4+HvmtrRZAK7X1qIp2U39kOGDODVNFkkXBJy5esMu9TIjAl5KpafmK1YlSeadWK2OVhL+2/vy3doQFqt/fAvz17/97Pl74O0M/sngl2S2YEqLag+mfc/jcw2gNNAM1t1v61Jjt0n/64Q/Z2RfCG+NMAE17WC/6/j7/AKS94f/oBCQWmZ3I7XiIUHWyPU8oQl29cUKn540+JRKNLBFLGf7veYPatVcHgGL3RARzgrvein+l+a6z54d9rfg6obmA2pmG0siJj7urUjR27O1LfYo71GMcsfjegf/Dp7w2mTI/K8Wvhd2z3CF4tHYHayPQCvAIY4oZPBa+cmz2imWullFBnGfdplWBdKUkE5nmWnYHz+QwGPH7D0+Ui/aXg5Pn52X26A+Q+/C3Y16aHvSlRW0mtXdpeAyXGUBHaBsDde9oYOo1149yP306Qxv/P3Zu2yZEj6YGvwT2OTCaLVTXdPaMZabXz7P//TSuN5uhRd9fBIjMjwt1h+wGwC4BHJqtrJGrBJxkR7jgNgNlrBgNgimJJH63MYU5LNogWJBu/BjLUshPKx68Kr+CfLu6rGcnPkQLknoviK6tFYRXMHeEraXz6tjCmKMhHcUYt0DkYBJOsHACJUz32VV5XgS9C3DFYvyKHbv7U/7NY84pyt/Gm1r0mmebZu3yUChs4r2UrCImuYRNt+P7hE2a64jzfgqwggt2zUldeguuPy6cFqsmvArKN06DU+vRynn/O9V6JYihIYjxwczOsxDR96PNswyiNX+lQhYBtBU0+NX2bJ0xeCN+oXeB7I8xXncOwVb11XXFbbpjmF/zN48/YcMLL9gErz8ZzWro3YfhuOGkjv28e30l3J/69aHuVfkt6T9D/cPAfQ7sKJxhe50dbJ4nKjaWfXd10mnBYjRRe3xJeVtwKqJd85UjnEkc3vFPC5MYWAJVfLHvmqoEzKhnV5a7WQbij1sbJRFezYdud6bHHT+E9lDbCY2XFqsxJ48/G5yTRuPv72fll4asA/WXJsz+Nxg88H9d/Ni/tO0GPGRsX2n8W8vvulH8uWR00jAQG45frO3y6PuCb0ye8+/YZKdVT0blu6koAU9YBlqhc3FTOZ7dTWrZtw7Iu6o6DarElInzOn/B8uQRtt7iGGPBXkF/zmqZJfcI9E/fA1w/0QD/a0/M1k9IeDw5DNzSKiOuz1r3Hb3YblePz7kEPFKSGzV9t+iBM+pUDH4cdDbQ92Blvri5+tYMBLMsN67LicDyA0kEFfEoJD+cHBb5AvbhmWfTirnme8fT+PU7HYwHyLy9I04R3T0+Ypgmn8wnTNOF8PmOeZzw/P+NyuWBZbvj48RddIRAmOdVL4vKWAw0EoIs1k1JCyhk5Jbc3pgHw7I/686zbtb8dT+6rjER/AZcqBKNRdx+vvgmkvzV8CfB/U34D4eyVbwH8siozuY39LoUCS8MFY6YmIF0EbKesqxIwSuy+EPQCKs0im8LmE/ll/EC/DjDb1wwONz2vnMpFhAPgL80Y1T0qOFCjjYxtUj7EOEwr/v79D3icnyFnMvuxm1Iqq3Yp6YZ7ASKmOhWwLKsCysuAstFQfP3d3hwF20KGXC7bY9nAy4XWU3Xb88dXapxYWUfTVjbaZ3fClqruBvjlmFFu5npXlPDG0TvXD9GIYlkybCXxttzwcrng6ekj/v7Dv2Phd/inT0/Y1mMZbzm/AfD/lrP+twl7gH9XEdjN6DeozBeEEUQq84h3Yyku88q4TvyqNUDs/PbO4raAX/+rK5r14ivZVymKQN2k6/37S3pntKqGkyzlsMMgGSGdt3SQa1Nbt14EGUKU8hVLdXFcVDUyVLo5KnmjoKf1UOfzioyEL5gOXwXoB8pFJWOQD/gWcfwvxq2fAxHUF9gCkwA6mi7j7ouVwEBmKrdQKk81Ji2DXm8rTI7RViEhpxmIG4cICr0Fdd2w4VaEjwP9cuGJukh0k6nZFAMHbrX+biI6sP8a7wlzp1Ek+iVZV04T/0vCrg7nFYvmuQAQKVcBgXy2SpDk5+oNQJflJYgF1is1bVt1yT5NmKdZb+EVi64AfwH9En+e53Ju++GgQ0pWAMq57kfILauS/nq94uXlgufnZwXlUq+Ukt6EOaJhqwj4cTLqw6Hy1eASvyLgPnaDV4JCX+yA/OBDPAj33vvZ3YLYUbGdYjN6E0COy1HpaDTw9C1pWIGirA762vkx1gJ/sdrmbKDZ9mRWJUBOi3GbxdVYoMT2IJ2a3748uXegFDQUQPWpWf2oCs9mhUf/zMXFAD7CPIQoF/tdYFX37Q9KFmOirMds+kwEd3QuP06+E5zRABbHr1iJIqtHcdb+CfxEy2etZmfd5gjQ5V8cu0A3saps7N5VuWQ0d7ztHuhv5n/73sjj3F7ZfoeqsRmlct7AeQUj3vkhoKflO5VszRiNFRkDpPthxAvvxr/z/q9J2wa748ulMVYb3jToKEQf7sOR2I18HOfZjwrrW7ea4zBEkbuCM1jnpK4KlMJ1Thl4Ll87450DxnH1K9I0zFv3Tlck0O9B8LwmTMDwdU+WOOaggpVimqYNUp9WwIzHxkgeOWWqy/ptyP+rAP2cGcu1uDA08KkTohJ6+ltnl2ubOQDQrkyfdwNQdPTBA+EdgrL7E6vMVjiUWkvrRqZi0UlBKNyuV9xut3r2/oLD8YD3/AQAaq399PkZn59fqrtO3UxafUg/Pz8XH//NjluUNvvbH2VQh0EubWUOJ03shZYhBCAvcYiKTzKX0xpA5I62c9Yx0lkX69NQegQw20kNoPqF96D/1wQP4pm5O7LzeDwGi9zmjkaVL9M0gUA4nU54OJ/x+PiId0/vcDqd8P1335t/PzNut5tu7pXVmaenJ8zzjEvdrH08HvHw8ACi4vcPAOu6YFkyPn78BT/88AM+f/6MH374AUSEh4eHonDM5Y4Hzjcs4lrlNkOFPkkJk1M6uYJBP17JbZpqWZIAz+wUJD2dxDP2jt5eSYlMrV0mjUqLjYfAyF9RCL40fGk20kZ1EwEUjCVXtUQUNmwv14veCstE6vNdUtoJYPLBgAJ6drwh8jHoJupy6tcVy7pgc0qCCtqqJCjfdIpgyVYuxTIo0UBQlCuZIkCA31LCpb/XXAwcmRkbyrgs+6MIE6Gso+bcCLOxH/Jrs3zfyODBQ4k3TQk5T7rvirPdlGwnrpU7M5Jenga9VEhWX+Wo3k70M4Nz2WhIQD1ukDDVsSKKkSlncpu2zA2G3JQ8ui+jvnC3ZFdJVg+5kLy59oOAf1VLWh7bU+wVag8JrXQWF8TD4VBcEOmoNxoX+k+RryvAEwWlXpy4X9S9avxV4a8B/L8mfuR1/e8vTf/WMnzYQ0/lw4C0B/wQgF1z4FpIcAdC3TvpjCLlk1RGiYFTlGRdkXZxiyhzxjs5+EBqWhWbrn7yWxQPzVQ+6I3ypLTPxuOQy0DkqJLPgxXCWwlfXrm4vJf+Tvg6QL8weLy97goMFImyex4/d/NoLB1mTWu0wjs1s40h8b2vg+St19krqGoZPGsvykSSlYDr9RpOkpgPBxCRWu/M2hRBK3B3/IzBdguWx0gtgIERE9NlLPf5an12Qgv4vXAaut4MrFKvKQG95aue092A/vaM6WH5AECI7hv171Ct+HHDbNZN2OpfTLbBMxy9CVM21nUtYO561T/vJjRhCpunFfRjcHISvJCVfrWz+sm4baN0OQXOK56e0TqiBBwcaMiVSe9YZYbWk7ZuoaQmNodP+xiJx/2x4pvz9rHcqaRh/ktfSv8w7H4ID7TUgiY0zKzgOetpFRHAyRGJujq4OZ9yV7NO+FdjgHFA1jExYHkAGESs9KQhgaw1mQnLRtgwAd6dxhtdGlrvAxRuHnLoKBuqjVTotZcazeZLW7goCF27HDiJqzNeTkmzWAGHd4/Sqms+jr9oJzme7duor/xcskdxVdLy1lW2Olfbtpn7gq9D13qMrPttiMcSb/VkFrugrC3beFHMp63CffB/D0G9knZHrn1J/L04bwP+rn9ZVlPGNPHxf2vDRywjZi2g3vN7HQsUYweD2k7+wdDn4nm5ZPn4I5Ch2EDlEzsSkMT381/mXhAcoR6v03LnxWuTwTeuL36YLcnpSC0uVXb5OoL+KkB/F96g9XQTmQG5vtmzUNqloFn3TYCV70lyIa/t3a8TwY7fK9aictyULIfrsiWihVVAoADC4/GoRzGu2waqoP/l8qIAlIhwrMzZH3u4Nj7+4tuPeS4rA2Llqe22ZpvCAPfOGteD9fZUlyoJa3In+NCD6XKy6QAQNvlRTSMaf8ckPfNs69iC/gpgfD3aMoWeflxsOetdCAL6QYRJrOY1TgMltP1TSjieysk627rhRjd8/PgR0zyVU5bWrQI9UnrRtuH5+TkoNJsofjljqeDt+fkzbrcb/vznP+PHH3/C9XrBy8uL+v1TIhzpqGf5i7VSrGkC/rsjO8OzOpay3Tkh/uXRIleUobWCyuV2K2dzr6uHgMX6nVKxbnMBo2o/rkpvuyQ8CqZYDF/vBw/0A+gvM//NGbh271QwLJvb6kntz3pi0+VSVnjmecal7tsRvmOAP26cl2oUY4mA/ngylwYiZDmGtvbNuq643m5gdvd4pHrtfeVZRKSb4rZ6ulKx9IvlzFZVXYUKFZOcYjPZO1hfEcoq6GU54l9/+Q4bHvD++3IJ3fF40E3tEuSbB/1DJUW/GR0sTXTbEaUyESGTvVdr/lT/2Fn6nRJe2LnxNVGsFEhLXwQAQ1ohEd4E28wNQPuK3QqOjh8hsyvXuzmIfhzq4PtHvgWlZDBman5eTsksCXNOh6JT1F2vBP5QPzMzlsrLnl9esNGM63rFwke9nNLqWXP3YqGr6X9ceAvg/1IL/28RxnpXw5fA2Dmo+Tesh6L9WinSMd+NhZ26Gh+O2pfMRWauvv1xrkmc8sfQiwhl3FaLfzncoKar2RT+Za6qgsykouWZx35t7f1c6mHMKO5QYflS2fVKeNMqHL4i0N9aS8f8aqAOBfxm4htgZYBRpQqlhPLsqb+IhuogDvx7p8Pq8JGBWKSiVnXEH9qzmad5wjTNetwiADvTXUB/SpjW1Za/4AQPs9bbn/M88kEPn0F79k0Szd03OYIZsQQJzULwmj176y3pyTCjuFJeu0qgaQeUD3m5egOoLl9NHe4EFVIChMVlpYIo76Ykq1TkU9aBqEvWqfTHtpaTdWghLDc7enU+zKVdlZa53r3gT3ARS+3lesW6rvj8+XMRns/PeHl5Dnc2+L4XBupPCBqCfsdQpU1bblaj8tgqxwLQK53zNIFyVuCo8yKRHsu2FfQz6r0AbvYsddqHO0aBjglK17Tjv43wahjnG8uPc6HnbwXQ29nvWx1fRtcyhFgV6tbtAbC+88LQ6FLihxWlauUXpUNWgVTpF6XO1VdWBQpud5DDGGwtF7oRj7sjmOO8AIA1T/h4eYeNHvAOR8xuNaxkL0LAFHrPFwLQGHVEw0+8OTBY3wdATuZMWCFzRhufXK3yIwDNCEDWV4jEGNT0aw/KfXb22ysWwaqPgbIwDL2xJ4BYivWj2p4w35qm7RlnyL3ftg1rLu6sGy3Y8orM5eQ6qoqi9ihLnqEQLbwr6i1Ad4dfDKNKZ4dn95SBX4Hkwljaz0b5IQ9etw8ofIyL/QKFxWdv3MlAPgbPPPDvxiHF8STjusC1ht8RoPczoWQvx2mXfEkZg8zzMm7LMaDiD0ZM4DzwONDf1ID+OCqkjlG2sObFzX0ALeCPL98yTtw4f3Pc18PXA/qbH565hRfO0tUxnN08f2OVSoKbWNf1iH/95W9wnBZ8f/4Zp7mclc/EmA8HnE4nrYdYTrecy7vzCTkXZng4HopluCoDcowcqPhyz3VAi1+3Z6biTyoWP9kcKkeAMhzAL4nC55BvNNYqQECkV3Ccy40HD/J7x5LU1kUCA/FmZZmU1Je3x2pDjXXMDEZEx4yi64q61FSQTID6XetzAeteAROgXJ/JMZoA8OnTJzAXH+t1XXE+n/Hw+IDD4YB3T08lL2d9V9ePev/Cy+UF67ri06dPZT/A5aJKoY4ZP08Y1fpeTgiS1SIFl97SHywR9chXNuCo/Um2L4PrVBUrv7mPGKg2/m0uRmVFDEipXL5CDWaSftD+UKtM28F9GAF+Vr7SjHtVjr7M0s+8Uw22G0ihNBIAZ7RlKj7b27ZAjm0EUPdcuJJ0DCL0q1j6vdIGFncNX53mxKVcLoaSAogorILlvAEgvSzMbp+VvhTFuaFvHWxU10o5+VVOoZ1tmi0K6ISUZpxPp3LJ3OmE0/EY+MZoud88huu6rI7dLRh/AoC+JwbqwPK3pOfkT/GRFjhwr+OxggTXt+Roa/clRHfHWDa5+cZKy4AtOoWimTCw+Sh9GfiAfAg/rXuvNIHyNOjlb3JKEXOvRHuM0/JwNdYkZ29W5bJcUPby8oI0E757+CM4/YJn/j1u/ORkmpub7v/Y2v77lwTlJ4MXIf9BYb+2TEvcy9ZfFUaaAmOwcEm4Pwn2s38b6PzyWCohIoY2OctldRFsq84a1fEIb6AlAIkSOHEdt1A5yMTl+GG3H0bqVHib69y+oloWKo/1ykow8rhvzM33PSOFD4GUjmojEn9hl341oF+D79Sd97I8W+bMjib5K8OvnYLX7Yg/fvoep+mGb04XPKS6kZEyDocZmY/qs22AMON0OOF8PqtgFncf2zRWTmkRy9PheGwqXIG1t+ZVcLYui1qiFeQ1E0U+R9TTodYAf6Jyq7CfZL4+kpcerTUoU8vw75rnXTvRgMCmrhrV1dOn8+920zbtSV7BcGWnJu92HDLbOdzSJ9fbFXnL+Pz5s/rib9uGd+/eYd1WPDw+4t3TUz1tp9DN79kAyka4l5cXLOuC5+dn9eNf6ylOOmbMJlmUzHXT/QJTA/pVWfSbO7VvDDT6PiEiyPqGMLxtK3cTbE550LGgCqJ1p4FcAsnpVk1Q4O8tP18YDG8LIDYhYwCrAUnlSZuT5dfE8Mq3RBDlauhGUYHztq1dfUlPd0JVNm1VprX2s1uJUYDbGEw84Jf0sjcoLKMDugpQ8herq5fE4kPLsc2OHlnKGYHUmk+5pbxcqsfTjNPpiPPphPPxiNPhoOOpbbMpalVJoxT4zZabza2xAhJTP7WGTrGXexNS3VRfyicdR+2w2AOONuZtLupzQZUNcGbmsHqz2xIP1pU/m+Q0XDHIY2DE8WM/GFdk3EkFm4aOJEenrA3m7bqtuFwvODHjb775E6bDJ2zXJ9y2J8TRVLPYkcy/AWQeZjgE/L8F2PcZ7BH1V4XRWBmPyl8D/L+sHn25vBPDj5/W0JeonNXf3qirQJszinWdIBqOkjaR3uJc9HFWI0lRIHpl2PqZhmPWym6VD2ELPY6R+WeGtPh8xCbfNBy8HeUL+/OrAf22BErC/XYilv8EiOljN5ZHTONOZr3lkIWPus6nAYOrIyVMoyoYVYBQOXt2mmdgW8EL64bcddtAqVzWJIrANNWjGKVRdUwr2KxMeF1XPflDzrz21mkR5Jv4iIoQcfX1n6U9sYUKdh2txRJUorslZQeWPT28IGlBVQD7jQLin6F9T6QMwrtCiPBjee6sRCYOY34+aDoY+G+BrgB+b+nPTujKLYDFcltasjl3IA/AhGAC4AHger0W95saRd0vap0Z5bbdzBG4Wx0rI4F3ETDgTrXP4NJudZXAu/cIQaQ/1NLvy6r/C4UE9PvTe6yPpR5UhzWZNZESEgEZGUQ9vXdBf+3YcL57wzGVbg7ka7tYaubB0h7PGD03hjMUuV44KGKsSUQBRz/GwukT9T/xgvLKpRg/hsDLVcrPPT++Na7row5sktBUFMDc8zzXRj0FzINSUBVu5dnldsDPLw+4bGeAyr0kh2nGYba/vGUtIAnPkf5iUyyIJludYuenL0JehHQDO1pjQ2Gzcaz5uz+My9Q/5tquyAsMENQyXZ+JpV/6PLoJNECz69GG1koOfxnZG9BCjdvzjcjfh2Ml6l4A7MjGdgyPizZjHTNjXTektGBZVzCtyPXSMm8c8PVWfswmGuP/bw09H+nSa5MHpTTvfHgb4mifmRSuM22cgptHyn7ciHBzvn7pavcmFyhfsgKkLwOXbw0Flzet1nonEA1OqaJqxWcYbykJDQsq2/CrxdDVJ9lP5uWYkpYHq2QegzS8W+ZeB/wDhhm3fzhdBmPMd3tYNazlEL2th74K0E9U/J6FpVKhJgAjYjt0yaiC8CUwcopEj4U6Zh8Dy+1aTdaSb4xsgE8jC9MUf+ZEQCIsC5Bfyoav27IA1YJ3eniwIxGpxAUAJtRLbqpLT/XH5pxxXVe1Fi/V7UPdT2r8LedyzX21viqoraBZwLPQIXwGhYq6T1EgBPgLTSOJHePxA7TSzdNIhLZXUOQYTjRCJSgn7YxxQhDtp6tL6Ev3W8r0vvTecpXqWBW/YwDgeqmMHGEGLht4U6XP7XYLipjkJUL/crng5fkFy23B47t3OB6POB2PemHTVC9qY2bQmnA4lr0FuiF3p3/K6Szlc8t2Oky7siJ7BXLOtllZ2lb/azf5ul422kmfsd0xocqTP75SaFlXi/K2FRDnz+Krv8W9IO243hRXTwemfQbKrB2jDowbCtBKaG51bjMaPdtjL+6VL5cozq2hRbf2aZt1EABkVqwgrXbq5EEsgyEH23klQsaK8KESTxCRA3fMyKnWRugpFz0hlxN/soF2qmBE3Lc+Xh7w//7lWyAdcDodcZhmnI9HPBxPOB9POB9O2NKGREvlZymAocz1wh5KoGmqY42wcca0GXCsg9KAvxufAt6zHolZ+GIisku66hw2EGrtNzEP5c2bG1tdv3kM5mRbkVEurmV/V4J7S7+KoFE89PKt4+OIICcoPjLvGhkoivtrKxJdmZXn6conZ1yvF2w5YeUVmXMdc8lcpOSv9qkqtF+G9Mf1uvtuX6H4NUX/Vvm8KbyhT+4FG9uFDl9ezy/oIMeDPZbQecd2kIcZUcp/ZU4DnHxppIBf5T1zWU1OrDf+FsWh16WaqqmyGWSIwypSX39wQ48x9svoddAee3XRHT0EywLo90kOwlcB+gEo1zIIETUv1XKUf9Lgxt1+oI30UwJ0Y6d/pjkQ6lHIJKMedvIsxwzV5FDfkTwz6w8xq5uOtDOzXFLCukmunH9emJpsOKGUMM1z8cufJiQibAPQMGK+8kx8wm2JiYN1VIGy74MApPpwb0p3A9VbgRzduHmueQoQEcDo0kUr5J3JsSsFX5kSXkEAqu/5pJNrZHWW31rfylBEoEud5WZcswxGQeYtrR5Eb0395nkGwHrW/+VysZuXPdhW4OPAZUN3KWc3tK8cU5G5KozT132YFTPKkmyC3Mgb3FJC15bc9ejS6rIU6uyAj6+rslsutWznRltWW+bgzYAQbr53mL1n/vLcAKQJptespDJWfHgNaHmraqfAs336MkWwRvcwUvZGdQehnGID3/RahN44rkYY+Y9w3WYsa8J1PWLjCRPKpXXzNGt8PcpRbq1FKdfIzAX01+dSbznTPo6nBkjIjzzglw2JBWQOV5i60IB8stWBtn8LjaUMkzrhzPzXBPcgP9noWICA46dN4ylk0xynLABvr81OPozGLDd1C/X1YxA23orFfwWwYOHyd5hnHMSoImOy1ik7cEhaqG/h3o+OGDEa+d+9XOlghv8i+fLeWot2+ACdRJlYsnlFRrXv34jv6S3xaEQP6Li6D5HfWI/66cdLmHtu/rD/pjJNNGK3cpYzMhHSJG4+frzJXKj0TuU2kVzLd1yuH8NOfnuFHy4/xXv6xhCL9a1vNHryUTs75XGPpXQ1QesZMdFrPfPVgH4WsKw/+sFnP/caxo7cCAPKNCHLh6mZCG7Ak2kX9ZkNv75Uy5ym6g86OytsKnlNzJgPM7Z6vGZmxvVWfLIP9ahO5ozr7VYsrtWH//3790hpUsu+DnREIbltm4IyZZQALi8vetungMO1xpWNn/M8GY56lQAAIABJREFU6+ZgaZPcktxOyAJ+U2CI3ue4WxbeoVvpIlNEfBDrmY9jvLZXSNQ//F7/NGl1XDSMXYCP/B3mOQji1LQvHLlHCQzvy231O5/PYHcL87LWE3qmhPkwFzBfgb704+12w1ZPKpC+evfuEcyMeZ5xu5U8lmXR8QEAx8MB83wAUNxu1BLL0QoP5jJO3IY7b80QHkuyubGuHg37o1Xu3FiQPGUzFsDgeoLMtq7VwlzmhNA3pQlzvX34UE8ekrPrt7rSJe0wi41XggG7+Gs4GgAHgoMFPoyIPh153tCEkg+pYuPhc1FiKgejQhd/PKWk1/Ef6sTgLTJ8A7Y2Jnkg3VsgM9EU35Ncq9UoKYhMkriM10PlFTJOpF+macJcL6ajij45MzIn/OnTB/zw/A1uCzARcJwPeHp8wul0Ki4524bLy6WAfeYCzksh1gcV4Mq8zXWebbXPl3XFmjd/yp/66ZsewtWinJQHEBV5oCtqVFbS5OhOp9ka0Vy15BKtwjsIqHO1GF3spnWufTGLIQGFhy+3mwKMQlM5IStgymHf28oFdJ5bWseP22rXPqNkLpEj3q1pWmHg45FbPQ4JC+AXtzCXsrR9y/j86TMoLfgp/4zP+YwP33yDx4fHMq6qa+RcVzVXhp6i9mtCl8oBcbPs35nc6IFhuUSOFKy+peyhjNTvycqJloymEncf7Jb9xfEGde31Etr5dL8UGLMfzCE6NXQUhYOQME8zOJX5lPOGcggCI5MpsHIvTXL4BBB3vVJ2qsdj66q2NwIJtnL1aw0EooBOUzJPBU1e83LtkUNUJD+5HA9imHLywMtLVTh0ntd8s8k2Zs2g66O98FWAfmNZJZBy4kHkrlGelVEcjZpRjDJKbgpYJeCQO+ypaT5zwsapWLLIMd56Co/uSK+uEms923zKuTDfLK4ZZnWbq6UfgII6wASEB2kenGbmcs7/toGWxVxMnM/1iOmwt1i4/NQq5ACLuiGItSiQhCGoccSS/ETR+HdCAOkeYHrAdi+P1ywoO2XKxB4dVWlKkLPeM8Awv1RlSGkCkx2TWM7+LuPCX76lCgNzdPuq+RzmA0Cot/dOmOdDd7ygv42ZnXXA10eVYi+4HR31hBTXrVq/Shswq/IcZkdDI8/EBCCJT2VGu0pV2+HoIqtcLP0gq2asJULmoLX1Tn83QMjTwdjEfQa6D/yFjpGRSJvIjY1RptYdZWzp0vfgBJVaGhjjC/Lk/VtDcEXx6VQwxXPlBfCIoEwk7bNxtG6EnAnX5YCX5VQNEFvx5Z9NSRBBvK5rBNjC38gqw4BeHMYoln9284XhNkI3bdzT/1QWVL6lvLvmM4ha9xZFoC1sT8d7trtUNDH7eWGKeBD2zqLYWX9HvIxjPXQeubEuY9u7JfjmdWDUzeswHNxcafNuonYhKtd1w3ZekfMNzFcgbzrXzerr1p7IPneneDuGB3UfNCsoz20Ev3K0K7u6vPfLt36h7n2QwVJW90Wy3iGCV0ykCnsycLewwTvIOKfmncmRUTLrs1aZl2TU0U/SyViQeAqahee7+VPm70hD1YxMCVFAzjbWw1y0U9FC44U3iPyHGx/kaNCAfmZxL3IgvmmbBPUtGXa8l5ms7WrzGIWvAvQD0NNKDFtTZYw1gnQUcz8wmkkZh3pLqmbSuiwMVMZEksuropOAG8/454/f4/i84m/f/4LvHl5Kfinp1dLgcsESr8DzyzPmTwc8bCsmOas9levokYqF5HpbtM16hGM9k311G3mFTiIkl2XBSqSW4kqkMhCrJUpviq2KBbkB3J7YYrTYH1wjGrUM0v+OmmwEpu33kN59J6IAjEdlvzUE5UmFtAEYAAFgAzb5jQkkMG0A1zsWlhWHuVzA5ldm5sZfX5S7aZrUJUv66Hg84uF8xuFwwNP79wCoWvpvOJ1Omk+56OmAw+FYL3hb7cKxGhSONv3ngVyuoIeFnzgFQRRXoQ1VQsseiBHdW6YsVnDNo64kTEDdAG8rG7qKEtLXVYPaIodRqsW6ToUd64GHgmp/DQxXKNW2xr8Zjy4hTaIJwGTgkSKYKnEzxLfbK2xV24QH/QYweppaOwZV/pIwAvw1w4kSOBdLmfh6c4IQvYB+EMAZnEt/LduEP378Fi/rEdf8UJXWGdPhiOPpiMPhWE4rEx9umXcy8Fz7SJtfxSFxoRFQypS4XONUiZldHq6JQTgLT2llBwC9OC8oAVzAFlU5JWwsb/XUrnqUatijxNz1obZPDTZW/9B2p9gp0PD5YUfYOyWy0HDfdchWdjyot8NR2yERZpYz8BhxR58RCBPKSVKJgN89/IB0WIHTBM7fgZncnhJNUsQp5AQ1VxkfyX8JHT4KcbZHJcB/dwo42SZSfd/sO2qrIekkLzTftCadgrdT7deCAuP6s/ndxfW4x7OpLdfVVw6NGuF9BcTaUz5LMQiU1XCGjRcbRwh9Ki6vCnIbzCB1Vh6YGUyMbcvhErugSNekxbW65pll7skfNG3HO9w7qmMgyZ5UxbE6a1Sx0LksR+UqyZzcaZWXlsffmb9vDV8F6JflVgB61TTg/BOD+aS8swk9YtPj391zGjzj/h20RvXVHfS/MeGn6wOmG+PDwwWM57LkmWrC+icXbV3rOevTNGFRkGf+y5nLcrG3wgtwlJNSBJwHLRrQpVG1MNWBRCnheDhgmueq5NiKQsEaZVC2AM4G3n77R4O0Je3ewB6lexX819/B2n8vvDZppDzxpW8tN1XYBmu/PBfLgfMhy8x2ulK18spmSQG1ogRMadILtG63m15Akqgsbx+Pxwr+HwAirNU9qJx1Lu5IdsGRKA8tI+pCw6DUAlKVcEPQHOL49nMFbBPFE0qAvr/1rzwN1pJCw6Ici2LqV5NYGLSk92CDqBp4qsKCXmi37Y1jgXZoxPHzjvBsLbTJgX0bM04IUVLwqKB/ErceWVEpNW1vlJaj7KJi3oNKbXMzb94SIjRhvWTXZHxxCUpI0F2obH29rBN+ennAL9cHHA4z5hnVwn/AYT6o4quA0yvbdUzVRio0k1YwEZBcm1rlh1GBv2bmyGGgJOa/QwcHWvdoVLJhdeHrxrsDEB34d6BfQIrxRRtPYZXujTzPR/F0im0gnR9xhcfN80YpptoOcr8bFBw+I890eWUGp4x3h2c8nBmX6Xd49m5KiOM8yVzxuYzIIPOliRTpwX5YdMC/xJV84sZropDUeONeUHJEOpd8ovbiKfU6zBtystrPvs+aOdBmw2aRblcPvCxQmoT27PFOGxdeR4MoEa7uyvF8l9S5OwL82ndNf4orc3b8MQJ/1yYIZ2jLAEbzROIL+C/jX8Yj7PQybabJGjn+wkSqrVB4fBdw0Y6s+RIe3oavAvT7oFY39x3Np7zTCegnX5g7zWQY6Az2yjH1VyhqE+N+nMxuwyyZ7zYI6pt/u93w+fNnMIDpcMA0JRwOZWNbOW4z4+VyweV6we1209N6lurTLL60LfMR5t6du55zAffOgnw6lbsCzuezAhUGmlNa4MDcvYZziKuTCIhL2PXTKyRKW592L09XHgN6N4HmsZfnoL4t7do2+09yz5mLq44B+xyUMGSuF4SwMm5C8RXOc8Y8zUhT0hUAsfL7G3jXdQUDuNa+P53OIDk9iIDj8Yh3757w4cO3WJYbXl4uRQmY6gVPLC4P3Lli6NFlTZs4tDvSci9EkdXTzwPBOF5J5YcK8pScSxWD3K1d21ZvR65tMuhGPrtC6QD8e8DvP1HL1Xq3Dezaz7s0EYuRKoLwYEAXbbvypW5ZmD217EjGv6/WoA5/jUR4Y5B5K/6zaU621wWEl2XGj8/vcFsPmE8f8G4+FAv/VBTb0/GIeT7gfDqXG6mnqa4ekAnngcDz46wdr0p3RBYf4KMorA5ge6OBKGjK4+tvuPnfAXigCmi/iiUKatxcXACMVMzxFg9uLFPXcBlTLSX25ZCKwAbYmrrdhNpWCugMpmjEqEYg+VQ+1ysKFGdak39G3sq9Mus0YeUVK1akepyr1sFV+q6nrWUcI4jLh0vbrjoI34j1bNrQbATktpw2UPgIMVtdsoBDm/UeHAaad3MjcgoPRDWfbszsSD6liw7UgrYq8Jdjl4dAai8IjUZV1zhA8BjSOYFm/NoY1nQylzIDqZzwRXI6T8NLTLmFdoCnsyt8rzEo4r1cwKjHort6+TFOEPZQfPlz3uqUrHGd8j5aYfUh2L+9YQ6OV70SvhrQH+ewLSrawGo/XarSYzFDzxxbwUixQ4Z1GfT5/e6IIaMef6fnqSc9iYdrHQTMrfVIzVTfn8/FzWZbiyX/5eVFL2G6Cuh3rj3qc+YmuQD+dnkZbBc4Ceg/n894qH/ivlGy6IGuKhH3sMYI5Hdg0oTiyHLffQ7SS1nMxZUprEx4oTxSFny+bnzQNIV+bgW85M+p3joKO87S/6FeAsI5I4t7QGUE4oojVk5hWsfTsZ7MUy52WtZV+3meZ7y8vOB8PmM+Hmq/nXA8HvH09ITvvvsO1+tFraZypCgzI1egLO3NYsnP8YhKT1Ojz04f3wuNtWPP2ilxhVmpP3gyS3fmchSqAKLiPlGXb2t/Js80xWIMmDIhqkGzOhGrTECa0AffDhd/B/TbCLMNyd37SlezIjZjqzIgUu7e1KSZLzvVbZ6/qefuBs8H5OKxiYCUCMe5rByKALvgHX5c/oBlO+BwnnEkKkpuXWUUl7Tz6VxXpeayogkS/LxTZ1aLGQN6xK7nDaGug/r7Xsk5q/AfAV5VFOyX0kAAhfGR3IH8XN3Yeku/q10dD96KOaS/E/jtSuMotPAlrIAEhcLapkqRk4+vAgkB/HEoG7garBZ4N7ctZxDKKT7LUk7w2XgFT2VVqODLQu9Qk9fAtrae4m9XttTFdJdYVw8MfctiETYfh0p4k4raB02OqQLrLrExgPp7v+3CT0e1IDcO9ippsNgAs1GSMfSZd9WzL55/ySpVG69JKygZUUYHC3ibTDFHRuJ6IIHOqa55zThsjwPt5V4sy+rIuexJy9tqSQZjSY2A3NyFU4OsaE8qg4Sr9UHFq8gPV94bMP/XA/pd3eFHXrskD7hx4dNXjhA0JRkce5RQods+bq3CA7+7YV7xpzIBB8bjTbukIHGaJrxUN59cNzIt64K8ZVxerrhcLlhuBva7o+mcQBn5VSvzrqDebposdNILlYjKmfMN/QiI59IOiDAEJXfAt4L+UZrmE+hXCjxjEF9onQuNkPV+/+3KSACpzHZxkgruplxX91xP6PC3IZf+cOeUV0Yn7laHwyGcsS91n+e58huzEG7bppdnyX0Lp48fcTwewfxUb28mPDw81BWCyiy0nQY+2o3IrTCXtipjYmeVbOIANuQFv7S0iiDHQQ+ZqxQBlcZgsdYyKMu38lZOafHwTsaSuAMaL6GQr242HrCDwpT3b3NthXm/ec7qJNln3+aSSX3Gbmw49uT6nuFAx53QTcMh6HDMtXl/R7YNTC1UAYnRQ9ywjscjDscjbvmM63ZGns94ePwGR54q2CddFZjnucyBNGE+zLZvg+JJGH19PBQZgI5aUVGu2cVtRajMSR2L5aGOy2IralOV3zL3kVKsK9soGPHlfi44UNK8GyrjiOP6HvD3bRdfdL2hVFk4B3qFvMQC6stu+YWUwQ7MtYI55BvTC+CqBRW3qC3jeLzgdPqITCes+AbgFIAisYGbeyAb0o52zAvDIqk/qYW5AFOXLphWd2Cu40evKUgd8O/e0TACMSrGr0QeDP+uDDJ7fY+e7leSfFyOs80rbDJPQo666hMHAwH1dClblRuVrcqde90rY30bdKy7OUSo7rbsWi0klgthc4Ic/0uAnbff8XxfmOGVIo+q8UF4kFs1kPkHV6923HreQAR4eXmPSY+G22tj8KsA/QQ7DaJ9sxd2RFv/YF+C3Pk9HlJvrYc8V/7qGP9crWHicy3uOmLlKNb3cjrLciuXbi23Fetil3HJJs+cqwW3UQDMGh99sAVkiYV5qlZt5mJluV6vNZkhEk0PD/pf8SV9Tcg5uu2594zSj/KTkJxlW/Jrgac/y16AY5tnzo1V3AF5bkCzV5wMLJsPfXlT3BaYWfv38fERRKT9fjwecT6dQYmQcwH267piE8tX7fOlWvyfP3/G4XjE3/7t3+Lx8RHTNOG7777F7bbg4eEB27bi+fkZSz0FRTd/1yMu97vN6GL9AmuzU1KBHkd6pbBVzOSYMtk85U+AkYwEYnmfbssmjhtB7w4voZXVwnw9yOGQiW87wLze4a/tmz5mELbCuIWmYpHm7OKQgmE/Xret3KmRmiM7yZXBTZkt+ASghkARkewSyEbs7NJoXhpH2lM+EyUgpaJAbpu66szzAe+envDw8Ig/X36Pn5//DnxO+Jtz4XVzvYRNQun7qfKiqVolk9WSq+KN1nLlfnih6ILQMgNqvDEeYMoj6vNcj1Q9pElpzqns57Ej8RDSiEKeOAM8xXP/hU+8AfC3bWj5ZAAHLQB5xdLvFbXWhCWGgKhMjPl52EcwKKNGUuWp0RJ3A6H45vvouV4g+N38M/7mm3/G5/UD/v35ERsf9ChSVYSFWQxCeBzO6PalF3CVHQMhm8Cd5b9zv+jww55lPbb51Wdk81WwvW8Q+/J3FB6R2f4YZstA+Chbg7tsPHcp8cS1xzHT8jtzX09nXfHAP1NCIrkMb1D3keKoPNydFCj8EgK4A4EiUSs99RPxyG1VCtyc8G7NXTc3c1Tw1iagHzZOS3rvuuObSppH/Kycix2dXV1eVXLfEL4K0A+6p528opW+mvGXphhN6jKSOtbJTRQvUAAsecLLcsQ8ZZzIfM6B6JLgQZktN0Nv2l3XLd6a6kF+WwX94UeLgXfV/hVglE2ky7LUZGwn4bg0AvjELzxRBCQjYXbXwuXTSTtGysErz7SJ3h+bOdRBAf1AEId6AIG2ElddpDwzqIJOFYnaKknbDjuhqz9vvxy5aScogeo+EHfvgpxH78cHiHBYC7AHgPP5VM46T3Zxl7fUtYrOnrAYKo6ltQo4fz3TiRq4ytoqvGz6NH0sm8ta0A8owvdKahEOAJvpDj5hC4B8GImiffZxz6IwyFvrWkvS32TueUp/oc/9/Nu3vPdCHolC1OTtuqGJ07YhrpwRJUxTAf2cHrDRO3B6BE0Pxc+/HkAwpUlvp2a4jZhktwTLPw835ItaonfJ4U6YqeBAhLMqXMmAv8U3cNJn2axUAeYS7vqJGiIZRr8D+NmNw9rZQaltAb8105Wzf0RrE9U965965cK42BighLBnDfXATR82FaMmvkvHzCBekXBDwuLmd6ETwfbqDDXdUBlXXuhn1n7UNpA1xQwH5pbZ261HgJ06eowrBTfBYp0gqxjkjkUmwx+Gu43HW/sjuCT0pO/C3eqy5UeemPWtV/RUQYD2E2qtbU5zPzYGwW+ZMD7glU/DTtI/odFwuKXN2yJY/IYG1LRVc2Hh2zv19llx2z9t/kC7MqEz1Ms09PXrMFFjAHhNbnwdoB/el+nXh7axXySW/WCsINcmsMtp9KyvCJiBP336gJ8u7/H9w0f8p6cfANRLkjJjShMO04wbbgCzArtEhKVav8RPPWdG3jgAfu8a4neMa42IrDnelafG2dZyYczn52dcbzc9JSZYcl0ZQ9Dv8rOms4K4IOz2BKCfGG0bdn63ZQLorM978XYBb/Pbuz55hcCH9mx8X/hEtpF2yxvWbcXlesGRj3h6X9xyiMpm7dOxbKRe1hWfnz9jWRY8130cLy8vuF2vetoT54zlpx+RUlIf/9/97nf47rvvkFK5MCSzrXpI2Vu9DyJanVvA4oBnJcpoVaMSSPvONnA2gtTlS1QvJCECchEFa95CeeJuIP1hwgZFGNbf3nLCQPX7NxYtlvZyWVDs4Nhmx/hftQ4IOJEyrJaRt1v+5U6+CnTlUjKyNmcAvG1qbielg6ObAwYRn9qzXU7kAav+bAwFDb3D7wbXlaNfi6I716M23z09YT484Dn9V/y0/h48P+CbD4+BVqkKamYxfFTBXRrtgEyFV6JYVGFuhgqjiwAOhapuTHsXtZwzlnVB4hu2dcU2bUZI7X4B8eZ/v8kJaY4fCl/fcsaWN0x1nslUoKAQWB38b+tI+6Jg2/HJtwQxLrBUwv0OuXgWK3OMpbxa50pgsc36uf+bB2H9qQCoKU213QzUVc7b5YplK5dUZp4MwFYAPLpdtpPMe5PDD6aO4RiQVIWogjO48jv0zyi3rb/W7A7j+4LrOGoOFJAVsNiUkQri39Kg/SabrYBGxkLUC/eUzJ2mUxz1Z4aqGYEIxSVQ67RDoHaVxIP9oOQwl30eFMd/4BloQX8jBNpCyM0ZxftCc4ejPA3cPJWVSqMDPOnqH6FVRMxDA9Utt27y9UHyASrOs4eqqKvijnvbPDR8FaCf8BswmAGzdNPp1fJDAjKAUR7LRLeBJ+m4Ldt9v64HXDfC4/yCdUM9w7qmJVKgLelyznVZu3Si+e6juIgLYGs1QcSBHxs3poAIsnVZdPKI37u/uEuXCYn0iFAgAfVGTwMolVJ3QL+nVSElF2DU8NCWjtw8a+N6IDts7R5DGcRpfQd9uS3oFzcV6UsA5idIDKrnxYvwF+u9xJfNttNsx2u2NyyL25dfmbneriAiPD8/I+eM6/WKdV11BQGuTG+5l3PDdc9HZ1GIqyJ+aVLo4cdDu+StjMnRzCyJAFDoJcwrcxzLfuWlxHZAXn/7fpKBI8LEAf7GgrjT6dIw/V3aYG/bZJav5WHfo7AUPbAwY1ZwxcwF7Ms8yf68jkgAbvJjBWPWqJ4TtA/ditZIPRglkbKcYuTHSpLNt9MJaT5jpSdc+RvM00EvjzOhWevpNtgNGunaKQRNwo4LT5aonJ3rUbVSExXYwXLCjYz7urm+bgDncqxHqztZPQQEu/lTK1/nsps3A1JKuSNLv+QTac7hcy/oOHAgQJ97wO9AAfQdHKrpMg1p/ErOXXnyBcrJKGhqkiwNyHPOuo9JFSGZdzomm1HPkSY1yzi8yEXeq1ScWk0BO7xEVxVf6UXXT1KcFLgDS3v+M4gzLsuqHb74vkZ8Z823EhpblruE0dfCxzDLO7lXUVY0RAxxODy0E4NMFoCKq6F5JLj8HO/v6+Zb5xS5QfD4zytQtlrhPT8GyuEoz46YHg+arByFltv7lbkYS2u/G74K0D8KXbWddW+cgIaMeLikuVeOBzgh3mCqSWexDaIhQ2fGj59PuF6+x8Phhr97+glzyjjOM6aU1OJefLaXAoa2erGTHskJMFdAXpnhuq7qChI32PqhiMCIBLBt24YFxti973ARkBX0V59A+RRQ+un2gD89v0Nmtw/DMYPRcrbvCxH8j4cb/u79R8yp0W49mQc0v8f0/irQ7xQT3Qfh3zXgVAA/UbnsjMhZ/w8H0FQs+cXHF1jmBQTC9XIFM+uGxnmai7IggLCOBzmyc93K7aXzPJe9C6m4Vohbj574s61YlrJH5NOnT2Xjd90XouPErRbpZt2Gxh58++vM/YlPHvyLlaNlWOzykpOotmyKzW1tmVcVFpTUOpyqVUcAoFidFPQ79CZ1pUqfVmkplYJLZ6CfQHqPgvJ4gkFWlSmtQHP+v83ItPs1xJqzlfsXtg0vl4tesLesm4JNQjnadwRsfk0wN5K/Mp+aPjNjmhNOpzMwP+KH7T8Dt/eg8wfMh2PZv1ITiFsGQeZSg1gl38iE6/+uf4PxxcUhR18BVGJg4LI3Yl033K5XYL6WPTSpKMeUJlVIGOgU7tW51Yn1jRjgepyuHKesfN8pCn51YM/SH2FSZZ4uznDcOj7KSiPXOYhxIqnHA8Cslu6CQ6Crh/RpCPexxauBUUE8JVXswIVX3G43LHyz1SUi47eD1vRwcX/ItzKfmhfRIk1+CEYg2DamgcMdeZzycq9mnFvw1+Oavi+aMcDdIEMcRD6+Nwp4Plb4Fg/2BsTi2dHFWhJccZo53sFyjTLCWu5p5cnePZrhV3u7mrq6xp4phi2ZtzJHEcYByacfD1XzMTRDumKTnTxrsafgUzUMtu+UZg47kbVJMAkgm/KzG1Ji7BrtjY3hqwH93XKda2yYjEDoAAmqZXmBIs92GWFT4ODJiHEoU2HLj/2sgXUwg/G8zPi4PuGb8wt+//gzDglqlT0eDsVlo/rvMzLyWkHZJgCtDuwtB+GUc46AfxD8krEwTCLCyubLKZOz8IoG9DumWMrN+PnliP/xwxFbFmt/DyzaZyPl68OZ8eGw4Djd32DaZI2WCZpl1/WhTITw238ZL8UOT7hx1i0PiCV9SgmpCsxpKjQ7zLNZDGscuWF3WRZQIhzdbaTaEKADD2EvQI1XTvs56GVeQDnDflnKef7XyxW3260oh1u5IdQDE64Koyoygbyut8jAVa5jRTajp3oCkZzKMgoyPtdU6pFy0n0JKW9gNzJsCbSe/R5OmaLmU5hxVD7kd6GJVxB8cH1rjdQTlXzn+vEfxoR1V/juk8smXaHxtm24XF7smF0A67aW+V2FDlG9b4oELg/mthJs/103/95qmZX6t7t5odgWIMJ8PGBLD/iUv8eGb/FEjzjJwQB1fvpTnrziFMvzm0D9fDWCchu39leZB+V98kKTKx/LuSjC64rEK7Z1wzZvFWQ6YDWYb7KvRu//UFwubkDs+IEBqZFLTwD92g8Dwf+G7vH9yIGHRcvjKP6oEA/mpe4yZr21X9oe2OibUPUIiGnlynsygAUUHlxuk98qbW0lWsEk9zKFBj+4fT6oKrnBOcIWNhR3AD+MFK3+1dUpokpLIBbrVpQ24HwcBkoBpL+sozrw2xrnwlvrG6/QhBhadfK4H9I45b3uhR+zxlfbmtOgrRTjE5BQFJIyBw37dcAZbXbNEZ1+I76T7jrevMyp/cfilljUBlT1wXUj2+WJrn905dk1ddR3YYXdjU1fpgB9n8aw0H74akB/G8IxsO2A0neQ7WHqAAAgAElEQVQWSedtIGB9UMcQ+QxDav/U/WYfM06UGHFQf7jOrsxyWWf86fO3OM0Lvnt4xmlekY8bCKiuHuX0lpUSuJ7vP225+pAykMySLMAJfgnalV2qyioomctlTHLZSZyIwMfLGZ9u53rx0QaxfMrAIpi//+fljO4c4VdC8Ier4bYe8MdPHzDTvqW/TSMVDkuQMCttD8mlhRKT8eHhGY+HW311R9SKUlTjedcXBIbCCoiZS/+s6xoElVi413XF88sz1m3VU5RyyphQ/FoPhwMA6Kk85/MZ27bhMM84Ho8KglJKePfuHQ6HQzm7f56L68/1Gi5xW7e1Koc7QCTQNQp4oT2jMLvE7GeCxWHW+yiMdP7IMqhyICXO8wTGMeQnlvGUJj3dJaVq9aYoRDzIt70V7ncSS39yoyHWT/KEWBqd4Kjdj2DZl3Q+qrdwkVwWVl76m7TBZX8FUQH6t1sZf+u64LaU73mVo3YZ1Q9IKK34QJeRK0huQ3CfGSl0r4WWt+pvm2MrHvDD7Q/A9AQ+nMsV9FyUTgEgZQwVP99EVC260TrXzqFaSqG7b0Nk21oGgUCcSqvd/BRDj8zLvG3YaMOWt7p53i7AK0KYdb/S5oD/ttn+C1/PvGXkZEqBN8ZwHswxbuv3trDrYiPvBx3Xkar9TS6hk5e+jnq0MRDcTyXefZe5to4O4DaVkbYlB16k/HVdcThe8HfvfkamB3xevsGaZweAHPRmKDptxX9HDzEcKAqLlbLhZmBcdVKRp+BRc2zuY0Ae6n9Ldch3yCuA7U0hiMAWrEegP1YKpe3V0h/OwqrRtIx2jJa+FGVYx4tpD0qb0m2keRH5jDl8tFUMUE/4+IgUzDH/Wkd9L0q96284XiWrCpqq8osA6EGQPQ0JAJNY4VmzlhW14vRr9CCiguvQrpaz8nsp27/TcaYDtub5hvHzVYL+ttoNvi+h+T1iLjowGDoQY6QBWGZ3+YsXMj6uaQP3JSpL3MIkbtsB//Lxe5zmDU/nP+Pp8AKicoznsixIVF1vqkBKlLBN5ZImXlYg2e2t0zyDhDl7X3Pf6Z6Rc9kAoz7fTRX/8vwO//bxu3Ceu7hYFNxEKtT+GubkJ+dlPeKff/oeA1hvlWvf8SA2QY/8C+8kvfIPxkQZ//j9gvPTS7BiSZgqgGwFfbDsNQxTLlYDgG0roPMwz87f3/ZKMDM+f/6M6/VazjY/HMJxtcfjESklPD094XQ6hVtMD8ej3qScUsLDQ7nYqLgibLheL7hcLnqRm7go6IoQDNDLmHAkDGBeFRwFnD140U85to2d9bQJiQiZ4PY+JFDd0yBjSVYOpjTZPQYSvzJFD/D1QhNZcSCnKLh4Jb2BBfkUJYGoKCOcWZUcqVa7ujiy8hvrYaujgFcXL+cN8zxjXRdd7bktV6RrUlcRZqGr8Zhgw1Xlspnq7n390r3bCyYLBXm5lM6KR0SgacIFT/jp+g+Y5kd89/SI4+GADLaN4k2J7Wk9ozpaXbx1kgId2joTM0g2wLXgvNKCxWUH1WVnXpGmCSnbeJJVr3Y/TW4BAQoAylsuSsS22Ub5dVOXn3uA/0tDQ4lX47bpujQDYDCc91VmyR4doWef3b4caOecr5yCaDgAXxu6bRvWZcXT6QX/+dsfsNE7/Pefn/D5ljReB6C5fDHXil5EcTdpTQpqKm7pHZ/VCsc4JKAsrna2GDP8rj/UcabK2r8a9LcYf5DdEPBz+8XmXTFoYTAXCgDuLLI5AcT1VtydI18Vgtk7tlwH9XG/pWqqgHJ1K2QXZSSvDMxL+3tlvPBt4eHiVqbVlvY6TMFg5AL3FYPk7MG7M7AxAJUPbuXKG2HZOs7LHVeLyGOdIWpH9wnhqwH9fV0HulsAaV6nlklOo+j1k5vng8HkIjAsvWefLQDdDYS6WlHdD1RYE3IGPl1PIBC2zY5jvK0nEFYcDoSZN6QK8Od1wzwXH345wWWtvuICJMPg1mYUEPF8m3FdZ1CG3laXK1ArbhmEDQ+Y5gOIs17OpVZOsbImAf21gQ394Qe2gO3QJTb57EkaE7JqsLo/XyZ6kUSh3Koz198tcIn8g5Hwshzx0+Ux5ltDcVUBzvOC47z2Y1AFlir9qiy27gJbPctciCB9tK7lHPZlWXC73XCYDfgLgH14eKj+/pPe1Cwn/hRQW5hpse7f6kk/F3XpMTJyZ4Hs6IxWILoGunoLOFrX1Swhai1vhLxnaIDzmay3lNZ8PTHlZKiMfjmVxNpUGXw9HEnrTQC4+sXYZU+9pZ9KBTvQD8gN1sDLcsRtm1y7rN+LUGA8HqtbmiNbC/r1ZJpavmyiLtPLQLDcykzSKDfIrL9Yadq6XsBiaH/5vm3fGwgxDipjOAhwL4gALHzGuj1inZ6Q0hFpOih9OTM23iw/sr737DbneBlfrECpk90Y6vmZWbe8oVnoEY7jFX7lQFRmwqfrCRsTPhBhSsVgkrfNxqKweflq1oLA7aQ8P7dkNS0IHZ+n74AdwewBvsyr8nvHKNKlluY6UDpQwiyJjacwpkbAs4ljvE6yGqRxPKGLI/QB6clByurZ9huVwx7YDABu3HhlQS6uItf2VhTI3LenRvGwhsk+vstg0C51tBADmeRYvwgPsTprBlqXe5b+cMvxqC5taOJ4rGPWZn0RxnjzJRQsacNkhROC8BTNxeecWEFyONrWYaMk9VJ6unLvtLUz2Emf1Ky8hd+US7Omp5TUECarWlq+lw9AHOtB6Btf38TwSoIdjT/ICqgq0ix1kKPPocoLu/5hR5HAm9lGq3avYx6vDZGvBvTvckJ0skueds9F0PSabD8A7oXcDiiFnq+n1bqAgFQGtdcuwYw1T/jnn79Dkg0hDDAXt5rHwwX/+O2/4zzf1Gq0btlZ0UobtgocxZIr1illmLX+mQk//fg9/nx9b0JKP4sLAkDYaMLjYwqWfgniRmFWIIvjAYZMNAOJWX9bXPnu6ATUqy2gAjYIXZdGl1br+e3N1IhMt+2Typj/5+dv8eeXbyw+xziJGP/lw1/w+6ePg35FFZa1JsK/UUUtS/8sAGcQHXE4FB/4LRdL4LoV3/7Pnz4DDJwfzgr+zqcTiAiPj4+Bvv60HwEcl8sF27bixx9/wi+//ILr9Yrn58/hWNe8ZazLGsa9X7m4GypgEIaEqqjozc2VFlFwcGGWeq24bQQW5mqrCL7jqrtOIiTasOnqR7SeTVPZAJ+mCXmaSn6ipIp1pu4xkP7WniPrv+QAv2ysYmasOeG//fgOP7y8g+dJfjwlYvzf3/8Fv3v3ueFa3M11oV+qKEDmQ1mhmDFNBxwORxDKpn2wB0crAtdpGH9vHUIQwHFu7PPXLnjEpI0nfFy+x4/r3+P0+B4fzk84HI5IaQKQsG7FGKH7KxLpeEWtS85xDIYia5nUAAkfNy51l0Zu2t76KXFSAYmpCu5lm/FPP36PKWX8P7//Gef5ReklykFwzcnOLcBXtCqt2MqG020plv6lPW2mJSlHuLRLeqdIj+GpyaUAlXyfkYvX0hl+fMWgYN4rm3Wc8SCOlbvTlgHgF6DOKHvUAC595sBUzoVHbuLCSlRXZya9jJLIuaoqPbzEbtrmCeCeCD3kRta+63qcYWS23iiiTUCki6jT1MaZ0kOVBwr5VkkSy+P6pd2wOwrUyM8O4DtFMOCimKHxD0bUPoz3qI+7KgWOAOSMh/BjACo/ONAjUKMnSw25YouQjixymYPGb4XtTAQACbJKDEZd3a1tJHf8tOMdmnd2CpMC/yJjb0vh1V6WiFFuk0NX6ilt5SCBVAx6k1xWSBWvRewpyhIJHVUZYK07Ku4gYlD+P2gj74h7RKDy1nxkksaBLs9ezycKEZfr3VTtQLWv5s/qs1i2SQUXUIBT5oyVGSvOWFFdDoiRKSNTrsf+oXxO5cx/nlaUK6C38scMpizjAMwETO/KH3OZiFwWpIThEhEmABMVX7QR6PeCeAT6BXjl4NPql7oRmI3h+Qpq6xs9to29+4mUyzrwhb53+N7ut40nrNsURpwX8IkY13XGbY3To52IU8pIKUdGJULSKVjtdwnrVo7jFJcPBmPOs1oiolUKqvSJz7G4icjm3XVZlMEwo7up2StgXbg7MeoipvR/Bf0tXbRfKINyBd1TWUlKIthdfP2swq+sChfB1ip8lfJYq3tZmgjTJHQu+QrJEpGuBLQARwVPqgyeAFmVZyasmfB8BZ6vTllABP1TYjxfCc+z+CKbfZEAHOaMKRndVbhVoaYbXMks/TkzUr0V1vqiH+EMv733fp/1vz0tWnUlPmEU+jAIG0/IPGHFCRs9gOloFv5mfFN1dSt4jR3bcDUejDVbGCdVnoXr+uV3xbYBs0Swp9QjWU2ZwBlY86Hyrupi5MogmRv1ue/9CL8rUCA5y7/cowKX1ioSe+ou4K9yYBjnruhpAP8oiStc6MkCIl+RawXbWBzP60Z1HfNdCp8xirt8TxSO+i9zvZskZZMbqN7TNK75W59p24nCoCr5xv4mtCDc96YD/i1KZTgALNHJPrXcEbqVfMn1n/EYe8XCQLv5W74YXcOnfzcMzaDpgU1b4di+QU7+s6vnTuhGaDAImDPg/fyMT3dVJBud8iGuN6GvKpmByicMvEV5pjjTrWzD+CTX8lJ9TvWZ8C2ZC9xV1EqSUSl4ML7mYbf48NWA/gZnhtB15LBnGUELhhM27DukBj/PGiJx7MYvCDuClIq/sVUE9YgnKaKwlQkJKx7xL5/+U1kFIAN521aGhCnr3P11N87WlhzeHfG78+RA3771woTh4L3PN5sPMnwd3IlCsnQ+uuVWQGReaxypV/b51HRbYfo5W7qi6HtNd6ddVm0hdmHOzYDQHq/a858+v8fPl4cw74zVFHbzh/cf8bt3vwRBWPgBV+UJesZ+murGQbk1N0NPcrnerrhcXzBPs1r95/mgG0GJqFoKWE96ynnD5XKpG4NfcLteysbdeqHb4o923Sods/WBuJtpn0dCuW6v8ydnZLL05WVSYaOMU3lyYW6rs2iRF3Re4CszrsC4xhcLs4D3jIQ//vKIny5PEGs9yO09kbLEUkrOvcdZhEp+KcSXccEAXpYNy/ZZ45f08lfS/9NfjvjjT98WJcMxk+O04f/67mc8nW6BVmaJMgA0pQnn0xlECUvd2Ju3DbfbtVozaz1ZxYGNxFYgeAyiSyh7gNPbkZ2gYeGhVWmaJjDP+PPL7/FpfcLx8Xf48OFbTPVkqm0rd0TokYtVuKqrA63aL8IHTVbKGHJ974RzgFnOqmguh7E9YmmUI/MyinX4cDji8fGdzgnChokmINvmXeHBZYWuHNFJlHCYD4FnVaaDdd2AtRhd1mUry/RTcQtUVNp0THDHek2sVD6t3DZ0vzV8ZLF3Iq/8drJP+K5fcSk0T9XSTfoncoApmzWWqenn8VG9sfUOOIajDsseHsB4rhhTyoZ/YM0bPj1/Rp4It23FioyN62ppVS4VAMdCdxQMKEC2x9zOBBc8DqCdZzKOKz0a8C08jiCArwxehmJJDBLVElrh00cie9k/b2Rc+6xn980DH2GAnV5JrQ8FwJqu4ChO7bMIvnnwqgVtjDI1Y/m2gjs5A1CBMcXFmkFIk0Fg787p3bIyO8AP1I26xlszEegwORwEdcPeBPQTFatU/Z7dqoZ6cMBWLqWFRh4nPxSrJe3PL0GqXwXoL3xyhNbGsXcb2M3ZvcHt4sq87QbyG8hIuz8M3AMw8zX5MR3msWxUzEj4tMwuO1bAp3m6BrWuTB7wS0HpAJwPMV0b2uW+4Tu4MuosU+tv9cH0oL8cQeqs3LIKoMCdsU2rKixcQb8AfhHKmapLUrK8mdp2Z1c/NPVt2qP9HYERALWSX9YjLuuxkNBNeElFYHz7+ALUC7gkBrl6EbG680yYsE0bEpKCq3XbwLhBpvw8l35PKeF4zOHISr0hdKtnvedc3Xs2LLdy26hsRvT3OXjatys4Q1c4AamBWJXZNUol3LGH4uqkONfn4wGdA4BGSdb+UHConwbWMwMfXyb8+dPBgXFzI/HP5NP89ssz3UjsnqH9BANYohIiwqCm/3RJAOrGYSMozvOKv30PnGejlQpmEnc6o/80TTjUY3vnacbqpqEIqkb864htWVbAhe2Y92DRv3CWM8UDhCrlJjDNuOR3+LS8xwd6rC49CczVDWPdkJK5NUl9PdiN/WE09m4iRO6Zr23AQ2EtYNj2LLylto3q/Rbizkioq06MslyvfNV4ktysmpwFDihgwVbrGOu6gbmcRDVNk9a6c10SigQr5X4ICllgy9TQY0wDY+WWWNrhjUaQOmktm8ykus5A0CCv+4Df33IH3/ToBifGKR16kO5h3NYFzAs2zsioa9pcDrlgzl5MWrnNBNBVdhmbTt4T0NgKRyOrmVDcPpMTaloCkJbBlY8Z3UT+79PPl+51J/dz+MsXPzbu1TqwI0TI3T8al9jXcvyIB2Txk1u6RecHpM2kzwQnGR+NOfaIUOaJ0VqKlWdimIIrtxvLIh+pzpf6O5PPoypzdb+J7hECIIiEXX76Wb/LBZ+KazpC7tGu1q9Sq5Pjd8JXAfq/JLyFZfZT47VUPt5AYv4G4bUcR++FZVSspFXzgzOA/Iah6/O/oqJ9evbILg42RrTiZ4sj9QurEFyOvzMLHZxfbX+JlE4MjuWWOLKh2dW8ievr49MaLQE9gxtRSAVa18/P6/f4l0+PSovjtOIPTx/rvQMGVqW/1AUCQK4biVK9LE02/cpFXLfbbXhpmpxhnZn1oifZvOtP69kc2IenW20Y+/YMNld2rN4DQ/dOlzqZ8Zfnd/j55bHSOEZU8SfWFmfHMGxALn4E4kVBIXy8JqzLonkSEbbNTsuRNPLbfEXLZyL/PpahPkEBsNaaqdJArgw0+QDbwvhv//OM0+Gg4FDqcj6s+Lv3n3GY7IhaEWxy6dk01U3FeUNeVzBv1guNYvYW0GA9ZUEEmfEWW85OVCzkK5/ww/J7LHwCHb/D0+GhHBkLmSdlPue6qhUBfVO60Lu5lIZcHayPpMZuLDiQoHFt+PjMlF8VhZe1ng6fVeAv+0fKRtxt26rzrwd3rq2OTv63rA5c+QpZ/egEb/g5cuEZ8+iWnm8R6JZjH7elLyvcbmSG0zTKeeQRRGmVyX3u1IFATZyeNu1mVemFTQ6swIY1b1irlV8Uu2RDpMvTA2WwcwulJgXvWfpbHDDCErHi5Jd4XN+Rexb7oI/7m4dB3gQYL7mrtNVx7uo8zGv0cnSHyE64h7r80FFlIHYuWiWvrZ/voTZ3wQyiIAXFQ8cLYJpJbZoMWua6amh5tUCfiPTyQE9viZOZ9VLBXqFpq+xMsAF7mWx/LfwfBfrfBvj3ng9StwzgfxPg36s3u/eJnEXUZSiCRyZmYLT4FaD/TZWuw5oZfoj78dZrnr1wkd86WQJIt+97l91IyLncvtntM2jSj27HHH0fac2j8l/yjOeXd1r3d8cLfv/+gmkSqkcgJOdfb/W7gH5/0k/OWcG/Bxi66lFddpjrptr6e6u3h27O2t/VeUCbzno/6OlhkHFHcskJ4eeXM/714zeGTZvU6sIBgLn1kx0DwmF6WkM8ddVx6aJbDumz+NvKKKDX7aNwVrpxeh/HylsI+LfbMYAcef/h4Yrvzr8gYbM8uN42Kjcui8Uob7hxsaQH2nSAshEUHD46GloyDrSSP1l52LZHfLz8Htf8gPPpjMfDAdN8qMUXIUeEcmQmOXCo1fA1qPTJPZAV2rfKk0/rn3mLaogflA5nRPAsqlYpUT0rOxGAhA1l3ijhRAA3lNS6unLAXFcl3XGld3jnjlrUleWtjzLPgLcBfw/k+1WHCkKagdLOVVUMHSKTdCTm2y8G/gPFwiomDQejnnTFZd9ERsbGGSt7hcodCdllIwBIsoztJS9Dpc8GNb//u3220y874D/8buJ1735tuKOIaxkDoNnGSXfq47s+QpORkrQf9oD/GJF5JaQdiH3YU0wKQBes0QP/Lg/HLxVzAQA7DwQ4/ICal5w65eWGG7fMrMevjxsQ47afX2LlB74W0K8MWSpN4SUPnvW/2zgu/CYz6MvC62D7jZXyAL8RgO0SbWtZ0d9vCLs+kHuVYUJxZdlluTE72lNCzSrMVeDaxBFlwJ8CxO67PZNjsQSUREVCNhlnzU/S3p9EPi+vhJQy2426p/kBtykBtJQNfsx4Ot3w/nSLYNOkEZihQN6furPcFmcZrZd95NIWudF1XdfiV1zPCe+sm21/CkNzDEgZ2F3GQfh4PeNlOTprAhnvrUzp+XYadfCgx0cP3Zwmo72OTNIOsdlP0P6U31IfAfVmTa71de22vOu49eZj0lRNfiPAj/BsUuWBlfEnInzGhn/58YjjNOvGZq7K3zFd8W6+6tgU4aLKvsdo7WQKfSbtK4qVq1Yz/+I7uT34ls/4+PINbnwG0xHTNJeTU/QUJl1QLmOXs/p6s6tXqBGRAkXNwwEyAGGjt9VwAPjlU9pUS7IjWusMq4I4KsAZQASOQoMppXofWtmEDAYIG4ipAnrfHkneomIA2fE/TVPHcdOOELj9QQ6EGJ8rr9v+7mnOza9grWVpRHmewUgQ5T0Cc6rPabJzyEOF7+MtqwtRkPH3wKjwXL15ntfiy48c2k5NnR2LCGV4nhb2Vrjy/sMCN9uCa6eS/13jaR1/qxrRQPrfUUK6qBBo5sauz3H0zIUOB3DEJK0RU+c3nJK2WwY3n78iMCAXjxGgrkjiOixuYTp0Qzr7QUSY50NpERvGaDGLzWu/guw/vdxrqup4Sfu9L+N++DpAP4CWZfVDv+3kvTjNoHyVEE2a/4ODF5JfAvhD2ldiySAn9wRowVTzTG72DVn18QE0oMErBD04h4tpybn53rr39M99uhgHChZECAHQJfwCJuK7F/wBz8y45XK05cO7H/D+6UcIC2Sufn/MepnPumYwr0oPAS5EdtEUnCVBgH12R7TKykFn4TeCB96uYL2iCg50j/EyJ/x4+Rb//umDlhX6ThnWXzuP6lxkdlNSnkGBijBdgvSPq69Jsgoy5Vey914RcPXPjQ9yGLMenMaCQhyCXSDG7j0R4XoBfnl+UDBvLhbA7x4/4h+//RmJNlPmIYDZgFNhZ28TdHFqFSW9B/6kgH+aJlzWd/jnT38H0BHH0xmHejHcNM1hnMiqVbH4i3AcASop25Qm32fq+kYU+27YDr+CU/1rkW2ekK1Y+EMAZJ6UwweyurxJSETAVI4eLeStK3KrXKpXx1n2PEMASxwHGba3SOPJJ0v9+8uKuPli47azwaOfpX0MhVx6VmgFHLWiAvnNUGQALPBFBfeSyM1NL4J9c0ZMpFPq+3HiQXquR1gv64KcFiy8YsWqfQ3mug/Q8/CmGjvzpKX9Xf3jNwiBPJ7P7lvC/uMQiQJr/4iG73zNTN5HHvmaEhBGLw+eDRp6twyU+dnS7S0ccUTTOB8d2Mc+XeyZxE/q+ngPj8Qy++C9EUZ5jLDPHj66F74i0C+hBfOvAfYY3EJInVhNZ41Gsn5tVxXeJlxHIWirf01o9Rr/imKtw7sBANurzxDwdxOOw4sG74X6eAtDsKj6hHshTDCxdvWXwuyBfgn9xGDZPB+sZl47Nq15DPrlb5oE6PcKgQCajAlp2sDTE66wVQjChuN8AdEGqptvN8phssvNsALyyGZ2URYadyV1/ZF6tPVp2uYZpgeR8nTNCZflANuYSLisM7ZMYE567nHtoYGQ5/136LCS6zRfC5c/3iKY24ntlQO/WRiG19ocBJiolOaYH0gvWOkqRIVOVJCfm5sC3lHTV6BN3hOV8XIl/PRyqBu9JwAZByyYaNMCRtiqF0RGM28Rkjys2qn26wkbJszTjGlKeFlO2HKxmqs72rZp+RBgrRuik4L5lo7Rsu0tXEY0m9Ns9NsJLUYydxqOl8t5pZc5/AYYL8uMn19OOE4rzofFSMdlxYM5YUoTaKZ6kk+Z6xm2YtApmkHxEZorytGOEpDteRlwl83L5DVjhQxsTTUWaiqBDHGiH0Gw8cy1fqK8sQf9tR4KdhwfHk6m2DCyLzWbXkH0rlN+BRWU8ThfcEwvWPIJK1eHk1YBkfrcCW251GTzHxW6Wr0C+H8D5PCrQ5T0KGOvPrFVaugT/c1j3DMC/j4NwqM3WPmd/G6zvBc6fhmyrC10hjAa9c+AQRFJjXnIv1pe8ZYxaukGF+JpvuJtAQgx76+glfCVgX4P5H7N0Hfp9pLv0mQv8lcA/H+D8FvWo4HxqNKuvtwZ9Xe0W5+v/TDwr5OgEey15N1i98JeXJlk8RMw9yCun/WGvRzBhHcpUmCePuBP1V84Z8Z5vuK/PP0RD7Pdnis386q/PqDpRRB68KJgX36Lxb9aMwPgcTTW9rxCn18uJ/z3H3+HJRt7WPNkIOs1ve0NjHuYhcfbQKMAxoQUowRD4h64KfGUPVud2DBNjG3KZ1vuqG6MKjRsOaE+c3FEuLiUDMZyBX765ZvKchhz2vBfv9vw3cMKMKvBdmTR6eu0B/pduyhh2Wb88Zff4+P1AVN14WGai1GXtnIE7Lpi3bZ6jCIJwlXQL5f7tcDf75vwioFYav0pSlIf/9s1p7G82ffiBhjtvXKMo8yHnN182QpY/9ef3uHfccbvn37GP3x4wZSAua5kzPUIv8M817mcdb/Q7Vrm6O12c/1Y/p/SBEa9uKvpH+kClk6UtrRirlFodFVEgX4OY8An8KMp9DPaYGDez1EZM6lOQrne0eCMjTsFLlRvng7AX+Z+pU9VcoMrxy6IMbcXWQnd1g0HuuIf3v8J8/EZ//b5D/jx8m3XqreGttw7ouk/NtwBfoWMf2Wl2N9zY2GXf43ArGbFob6vWeKH4Vc2Z+R2bFzAwlvQzagKI5B8TzlwCbVUZobzCQz5irFnr6y2LtM0dYaRtkYx70G1Xqn91wH6Ceh3e++AwVdD1OK/OHMUSiYAACAASURBVE03UX71aIUtncasvtTi7n1699J1eTb6yhcpIMPJ3GZonnlupHdZeeH1FuuGTowa/00TcK8ZxtHe9E7cH0o1xerIYJZDGVnTlna1PnXObUEt9zNk2ykTY8WETGcwFZcGpgmUCNOcQXUTroL2O5ZA8rSs3z0N29URbZfkxcWi3x/8CCzbAdf1aKB/AL5G4PVeGMdrhL57Muo6Gw0jENvGb6G7n0PcxRjVZ1Qz/daMT4VhzF3uwTpdH7RlLwys26zp5kS4bXPpAy6Aj4id5b+pcRgrsR1bnsx1qSYiTlh4xnU74rqdkDgpGJeLdMXSj7qHBB70c/GFzTm67pSqGJAnQPdHe0tuLwCzoyTt9LI0lXTOSQcEPoN9YMwoFyPecsKypaCox5WIcu5+0fMnVVY86A08q/4wK508c6A5vK9WQbbfVl97xoirFRqn1ylMSYrUguDyYLXXdP6m2FI2oyqZcWC7tgv/qZlpO3v+Ljl6wK9zZ2Dptyla2pi5HNRJyEiUkSjyn9BMp1D8rw5vKvEt9QpWjN8+BP6FO3MMvut3sJmM3aEUaXCOG/tfVt9+oKdBPr+GWqNx1HMN9H0RcEyV1RX0jw0VZbwPVw58tikhcVnx9DUapdqn5Os0/jpA//9PQ6sRA47JviWd/BahMgi68OYm4FvzdS/G8Xaj06sTWMBN+XDg1McZWCtDvo01IgiE9tk9INjW7Qs4xEiA9MLKBKFN+sngS8BbM/50/Qeka7Hwb9uGD8ef8N3TX8B5w1JP5vH++qoE1LK704jkbgR3R4IChVpucQEyRn9dD/jTx2/xshw68i15wnw8Ie346I8Ycff8zjN5nnn0XP6XsdOX3gJ/swDvjQavTgzZuuZTsAxplE754OZ3/Wqls6s03cnAl09mvRJgTIR///Qdfnx5r/m9P73g77/5CVPKlmO34mDfmMs+hT+9fMBPl3fhfdnAmXDjE+Z5VkBuoLT4sgMAbbni/XKFfalsBf+JlB8osE8C9oslOLkjPYnK5mUuV/ZqG/wFa2KtGgpQ917ZlCdlg4eLv76A+yJUNxRXHXGxAjPyJheJ1XTTBKKEKSXMUyob8w/lIq5luQGoJ8vIDcScdRwSiZtQ5IPlq41tucs7zDIF+vI0m6WVh7fZdP3ePi5js6aX4clGOB33VI7FLXWQuM5yz1nLKfwuh3IapBTrEYY7hSnZKWqF0RXAnxnXNeF//Pw9ePqAlR718i4jcNPWNzJ4M5z8r1cSdsP/rqWHHfD7xsTGsbl9amEw2sd45bXCqXejacseJuvI6lZ7neQpPIT941dCL68U4AubotdxH7I7RazJ3mrXu0rH1YT/j713h7VkadaEvshae3efc/7Hfd95MDyEwABnjBH2eEg4CA8czMEADwsLnPF4OEhIIBDCAISJMLFwQAgDA5CQRoIRM9y5D+be+//3P+d071UZGJmRGRkZmVW1Vu3dq/vvOGf3WqsqKzLyFflFZGRW/T6ihwH9t1iBmmYDfcZ65Njf68E8QnsAfxWjB/62I075aZyzndk4f/ee/SUCTSC4WSK0aQqUG3ivu2ecvDpF4GiC+XzAzf1+ma2XvvF86dQFiCIPfLm/4FfXn4CZy9tyv32+4un5L8BxBYWlAf3rmo8DhMxxNW6fo9rIyxLvz3nC5EZ5yck+Qh/5Gd9ff4q/eHnnKrawoL50qq+l9Ml9f9S/p2mZK1pTH4TaRu38N1bCVtHVrn9sQimgFS2/8tOOKXJudcCHVBrZD2DSdeAWAAX86uN7fK+EDgFg+mXjVS/AWbMtgDHphx/Xb/DnH37W5KELot/83Egv3vz8roAEZuWhLCvXZ0v4TpYjZPnqSlklWUXgLFMs+VcTSsaVDskoda3rUMmtdaKMTXnJlhyPG4iQXcZlXEXkba0ylnP/LBtH8/MaoMrpMlKvRIQlyAGHBYG2HnPUfl0NAE9xqcCa5nWjFkgp0NLNZaZvVEQD8eZb4EAk2N6MApbaVVXOtatRObfcyABWTKhcsm/nTcXuDYWk7wi//PAeL/Qt3r17wuVpMosyd/14RM3Kwr10pmf+JOA/rIc7ZB2t2E7j+OvFpqvfBPhzEvbGw+xZaovdrCWOjM+d8mgsID81OhGovifSIh0WMM5DqA+l3I+hHwb030vukt+tvE7hknkpsO5trt0SQoPv4s13NkqWayZN+tHKM8qr/jxSA+cpu0YnDJYfPdD/Wp6Rue7Vg848V/4ZPZkAwRKWBMriz/CH34c0wckb/fJEHzmWYwAF9DNHLBTxWz/5Bd4vH4pn/5cfnvEnv/ouv2I8TbZSi/I2S5Hw5WnBT37jW7xbL5BNe7XcBW6oAtV7Xdwym2eUsdHvK+CSfpXjKcs9FB41pEGyV5snG4XfG2N2+km8qfltvyaAROKW6dPYx2ddzgD66sfnVjolfvKWB3GgZ1DVFvgjf4t/8KvfQ1BvQiYLznKjV8BI+DF+h6enpyZ9Z7orfnrjbVPkEBBqrE7znI7RtyfpeG9B9j7taoOd2Jp7ua2KoUBSh/kutc+DgSBx9/Jma/45/uiHBe8vH/Hb3/wCC615/KX3fqT9y6n15KV45V0YrPbUxKjKquovCV5F0I6KyE0TeL1YQHp1XnhKZaJouHYxvc/HrryWOsvfU+hhThLUHANZAxOjSLI3Vk1DumR7Bk/LqrS5+mv6esP+GFi+19F4mNcRfPLa3v4bsdIIG3gOSXVTHj6ILUZ0ooHlULPfyoSdz+V3Zp5mDN9I/TTc/QLEObLN7osB/YB4T+7kcY4o7YQlfkdyW88VwPW0N16VCuzShzEIvDREmwWcd2qrwM8ffB6Mk+vpi+cdOMczcju1iJCA9ghvRcVryfVoxx/jT/DDj98VoFYT6+fSBQH+z+EFf/nbf4Cfv/9Vmcg//MXP8P33v4MrBbSeNE5vTg0KSFyAn/ysBeEin3x6XvoSVoT6nLdpWAyDwkvSqGfW8rIdfa8aNgCQTmeTcIPWONDaUMEpP41zre1KvgdrTqPeijzeMhe96qOnQ/VFXjDWJJUKyfTCF/zR998gw9uclhrQpu0EVrwvl96bX1dUqhGhAbsuGxPyW2zlHQQtOPfAuwX/HnnP1jrzjYL6bDC/VYiR/svlWHI/iyEgLgte+Al/8uN3+Nm7X+F3v/sRl+UFL3mVLcZ0nK60kWyyX9e1hPVIyF1kBspm56XajYyu3I2BnbtPcQqJDgeaMVUuzsjF3UoHNLwq6G+mF5kelMEUIJt6q/xizFRdNtO/jWXbX9sok2cMqkmvLfMAAMwAuRca+GokckxAymmGyIyPaa8dcGTeZBl/FKwBB3+4vO3k2OfhrwaIn/7ONmN0LxXclLHeaH80ovRyjR3Sbd+rjqeWjX1a2+3VKbAPCj0O6J+8tpnUvyOSclPDh5qvValWxUtNr66JT4OQWoTuHPB9zzXEOokxJlQeFvwj67amUx0h06nrROXc9mhkkRVFqHlP+DqKU8BNu3y3JU//le06fPnl9QdrALXXZGLsnqI2XEHXS3qm5wUzqBkMCoRfXX8G/vCuAOcf1m+wPL0DxVqOUjexP83Bet/le/G0qzTCrHrhDcDnOq48b7/NK73FNDZ5FdDPYlRwOhRBGwEOcLebNtsk/jXHJnC657yN+1lKp0nToKAomRQbj5gWgrKnHwCCcDVavwxlA46p76HtQlhNK153Dfg19UBdrVQ2Xn7hmSUygBsgdbJPNUzaZyrosnzmaXsjoSkriYEi3mtdmwwOlMYDGBwXPD9f8e7dM55y8WJc0slFeWO9vPjuel3L+f8ZkcLucTCLZrrRANabjetL16quqzO216s6rp16USC/ebqe/qUNETGIxIB0daYYBlIwrX+z88Ji5i3Qwfp5ey8bFVUuMdxKgrR/ojBS+Y7y4z0hP+fM+NNsKkjZZHKSNE5Hqvl7Gs0lK7LhWSFG7gi5T3C5tl/cyped50UPSW5ViXr63PIle8E8QLo/l3SMFrb55aHcIRuVDrmWQ+k6VOOVrT00pIB797l2vgG+OE9/C8r9+wPo6SXv8d00+U1E0jU3IfE+upPNiaZMoUMieRN0+SHMVMM0zK2Gbzu+twu/KW838Ptffl7766x5So6zA9r2Zwv8uQ50QjMhd0yFRS7rn/z4Dvggs3wK5Xj3zovEF087+r64A+zra0F5V3WYTzEETNtZ4K8NhhQrjhbQs6RtjyfkOAL9ypiRtG1ltdfcNFl7NC9fAm4F/VVx92lSnUkd1DQt+AVA1JxS0cg1Av+dfO1z9a26fhpmNqC/loOzTLWUIiY132feei3Hko8I0nJXO9jXE37ozzwtkTrtQ82nomUYwHfvgO++/RZP4QlPLy9Y44off/wA+vgRLy8f8SG/Lfvjy8emvxGFZuMLQ47YFFnqF0oFhyzBN+NLy6+uNyXLgIQGzrFe+6E1iLNuJZGHKIVqwT8NxcogeBHMslmjJrDDYMDDNUhMH6/OEIACldUlaU85uMADlDMxPOB/ZnjPftoG/J80/yKGRfYDvdixq/O3D613EtHgJEVWeqwy3oOxbPREWrVeB9N9UUabNUaNrhaB6m92rpnMIGOhlsvRD2yfGxsPM3oQ0G87lblrB+veLmSBnvxWdTWyEE+N97OdbSJ/r8j2deaSTlvdjhZslvfPMkYq8xseUYOXRCYtu9exhbLqdwa+B/ibHy0Ot1KZj81hX/7drNOsE4nU2zBNHq7sVjFxelNut2zoVpPExZqlTKlq8UAq0K8BPHNbrxLnSwJyBqsC6aO9V2P1GZHTls+yobGoARV/LFzUJmQL/Iegf6I4WxZcAFJbm3PQvxMqlWtN2BKjEaKNTUcxAIvhONCP1uOfW6h5Rj61p19Lr9PpNAL6m5ytl3AH6Lfkg/6xkaB59/cnoD/fts6FVFVqFqELfly/yS/UA57yaT0SyrYs+SQuCpC39XIQvWP6fh43CdiLLLVf1zAIqiA6c+mKrb3+zLV9TTrxjhdOSi7p26I0ive89LVWHzQ6QNWpOAXsvKJ1mKXuei4zKy+/+6Rpa30gJGM8FmZUV1hel+7Ooujik2jAaAvfaCOpq7fBKs0eEQhDkXqyhkfhcA7VFbuJCKJLO5Xema9DNhX/eSmkRryx0oHS5ik/x+36eRDQ/wp0D2g/r18d7OX3ZGMtHPjleGVZ3AlgNqgGS7wFHGO8UkLQHnI7CKeofszTyrO3LxSbqxoV1hCzPDsA7vDrszmxAXP2oYC7ts5sXgUUUtp0XCZwmInBAi2YdI0yMyEvOQ0rMFSBjE8NtGdzrQH+zn3Ne+A9HtEI7Oj9ELVMIkEnQMly6CEf1XMRm0ydUzHIAKSNp/loyfTylxqCo9/c3PHM5ZMNqyGE8lIuNmln3n0LHvoYbT+9W86OZ/u7qoG8LF+sK6rhPs0xo4QXDvh/fvlX8G55wT/2W/8QP333Ac/P7/Dy8oIffvgBDML1+oI1RqxrBMWIkD3+kZGOyo1XEBhrfhvzEnSYEoGywc353R7G6mvqtKz6yNUpyFJn5xcedVUvrulkr5CPW6XQnkbUrUYymv5mwbKAfNHRu1ePO/nHMElKX0K0Qu2LHCNWbwxotiXLcZ9qnF8nGQN7+OxxJp7qcNzgNbuvx61dKaGaqPltAb6+RkDnwL2FYjeHYJe1pTES73xmD4lzQI9a65dox8kAEOC8vjijzwT0OzOkl4bM7w4IOyCsm/AnWdxK3ohwk5H+kT649+K76Ud5CqmRZzeO7QLFxnjZVCZ7KtCOAz2Bc5V1xqvEEY7SKD762tSYONoXTPbduNVdsXPTjfM4vMozSmNWFWa8rLyWj8jaGJnsTKphAvpV/2PU3xr0p59zw00J3j7vAOuOZ8NaAE7vBR9nOU5TNjHvzD/lLf/0wFmHTrXhGiYtiWStbCEErHmjafKw69j+wUpNLiUAkID+/NZeR/xN4K/5N2lL4Y8BotTtWq939V4XaNqBEPFya8ODecGP13dgLAA9YVmuuFzS1PjycsWyLPmozwUcKmCgmI/5VOWRoVONEVOXbWmkZupXDUabp7Z0gT9mrHGmv3uryl5Yn/4tRoBdobVFmoOcSSmygSMe/pUXMKeVFg+sdd5op5q2vPxngv4Zr72rDWeB/ll+R/LQq657nvKmv5xpCdm5v8aPg373aTNQe9hU+1UzVZu5pqwaGLkEy8i7+jbl4kY6h2iXNpjRZwL6b6Xtbnoutu+V6J50e/h2QL3efBXa8tgXnWGB1hHa8ci+unIGm9SZOwmZNDqvV6rPm8irH1KfxRbcNmDcenSA7xZZw7TUmTUIbTcVQy4oJclVhZW2cgyILZrKfqCM2Q98KG83S+dcembDeTS8DOizP6Y6pYzJlvmyLAWo6dWAXkYLkU32ZK6XLGvepG+2t5DguJ/Dniaf2eJ27Opez05FirddPI81TjgbOERYlgWXywVPz88AES4fX0BrAOKKGBlMERQZS1hweXoCmBGv13Q0Lidjicgpm6yiiHGY89WxwSwv0tLlZPtFg0xuQCdnvm0YFTUgOXJsK1EZ3doQFE8mxxzik/tRyDvOe8MTfefNqKcpI0aU+P+4foM/+8VfAi/f4fLNM8JF9X5yNFqHA1tj1nr3bzUGhqvTG3RWmr10j5df02g/UWaiL6f0kjQbCnJT9oNtldADtY42an/vrrbtOd677cnTGAHF1SAPVCOgr2Yf1TAc/d6VS3CgFXT/vPVAoH9u3exO23RQUeJzbu7dI+JgDCoPZOxScyb/Hr5dn+kLcpbhIB2v8SLfqbPcMKVN6o27oWfbJN0djjQDXWais949j9qlxrGXavicebbE2jpyucqdx893fW7gPZv9bvIvX2rlswD9LMht7T5p55uo934epV2evPLF0xmZD24cShUV7Ui8P42Eyrh26MGQhTGY2iGNO7YM8HC95TXPspk2Xy4rBDpkiAghLAjLkj39XAB02ootp8xwDudJ+2viGgE50jbn2puAGTLYGAD1mfYDxCq5Bfx5xaz1zLefgLw/wcwdeuzr8zgNeZvva/314Vl270TbztISelVk0MOzTfQSL/iz68+A5Vv8/N2C51w4Fo/xUeeAAf8zz/xrhlm8xaqD8JqNzakcNVH+3Zrrae63464+qHplvkebx2P2s/iAqM2hF3rwiJJRZp0zSM8arQjc1Imk3dLs28AfDd+jvv8HAv0nkBfn5Vnl+dNv8t1d79ea2unKhCC9nr7cTUPv95Z8o6aXeRqTCasZ+WPDyiobuypR9WQ7iXorEd77GJq87PJ3J3LfdpsrB7cYTa9E5wH+xO1uDiXswTofjuWsJ9VjAgDW05/EYZNog4016oDkFd9Qj7fGLN/6HKuu236RZxxbWK12VMAfEPmCP/7Vz/HLD9/i5++/x3fPPyYv/uUJzMDl6RkUVjCtCBxB14Ar8ou5QgKil8szmCMooWQjs4DmCBLveXmfRXJORe0tLO82ZlMQ2wgzEHmsG9XN7ALsck2FoA4/Ups85RkJ/yBSQLGKRwVsqXtGLuGzhAWBQv5bgBCaE1skn3PH/lcakRidVa0IZE6fBU+x3xPT82n/C1EfclfSqGtTbcW29+8DHMlW0A6B84DK8MWr7vQ4M3wOGDNb8/CAvhzQP7JaJ5PvsWnwM6dXBuOfFvjb1jOeapjBNJJvqxN01vUI/Avw63mOBmdXf5JWvg/CdNz3MWh5DbkbQY8Af9oH0N6SzpTnXkdbBZ+N5XXT87cNI9ox/m4D2HseP3uj4hltq3Bo650un8n7vPKCP/7Vb4CIcVn+P/z0/QuW5YJluSAW0B/BdM3vmFgRcc0ANDG8PElmefMj0KBfBoPjmu4VICWr0VzCwIbGdAP83dJO7s1JRQplLrVcIcgpOtk7ruw/Af49oyqTgPziXTcrA82qAlDChxZagLyXpO0LW/Wzj/bG2f+6UtO2aj5j1fp1LvSfB8SYHFgFB6mODzEg9zMdYoJ7iDEvlzLYR84Jy07/yKNuzHvOrqOHAf1l3HnSmwob+SynnYrgKKN0w7Msp0uPDX6cgD+8DkC6aSNueuAk8htJW7ut4bujcU+QSfmBDHf/qMoBmzE1Sm8jud25o0a7b6KMQqTkqva81ZGgwX7rXzP55AlXb5Ku+Zu8yVzTbOwy/ox2Ne19FmKNmb6/c98QMeBSx+JWpl7c8h7atWtsnmCzjbdsgs144m0Ztvh1J0Y1/Fils2CfVHrT78vKGSGddpNDfBi4XJ5AIQIhbexFuAJhqbkyAzEfoysv8eIqC+eXSkUgb47OxjVHQHv8RcqmOFrjKA9rGT4KhBHl5LbORFdU/VHeR6hwXWKT86ds/kekN3qD1epErbsxgKr6q+TJMm7rZvLmibwXIf0XAH1OP6BbrS/bRJfs0Vvl6VlYjMlxN88Z79yGZ+EFNp83k7aYhWEeu2Kguk5utl/FYLxXHj+DPWwbWQehijcR7xCA1VDdMeVZ276d2++jhwH991KySPvrXh+xN/tbk9gzYx3Muk5S6OcN5Mem2ciflf/eurFIjZwGNWDg1ixdTDFgNjAOx2zVpNjcayD/DoH8id4aAPWpHTHx6nYH+k1dH/K6qDCLWxXamUPLCwU5zAP7jaIt3XFbR70P8M9l33+CxzT3LYNhN5/cb3T/VN/kRA2yY1FvPNVpWYB0tiRDQFguuDy9A4WI9wiIkbFyAqofX654uV4TgIgMMCOuL+kzrgn4lxe+VU92Ou+fS9w+xxWR8i4BSevUTC1bUC3BSEsGgioyxCp9WY+xfAPeuDObZKWO5BSukAAbcwRiNozyuzNi1iHU1LHJU8Xxi86Rk6DWdW1KGpaAy9MFT/k/hKfq6T8TrFVpnWtbuRwdBXth6dl0Rm1Z/VzlHOkDL1fvjfe30K0c7HPsXTxIMuT8FXTJox2JqdL8tvZM14Rt2U/jbFLfoocB/QWyuI2Q7ZwbZni/q+qbOUUX+rOjN2wk2YqnvpmOVINnCN2JlBg+MG3lOgMebEvS5tHL0UPpkZelZzPMEjvA5qD42xuraM572JWMRyZl1ty3fDvAv6PJOiOkGM5cr4t3wg5mpfT7WOf7+soJpmPGy+f02Wk767pyBdGMDmY86B+9PHPG/XGbcn0iu8todHlunIz4d9VD+iVbbcIaX97nVcqX0bH2jBIDL+sFP7w8I0aA6AUUgBAWSQFmYIlAzN6mdP5+8tgzp3P8U59iMGLp4o0JLt5rIoBCPu2kjoU6b2RvewOa0ndW41A2t/aaTgN+SZxLm3lysYxag6jG0UvAH22ExEh6A/yF1wbwI0rGwGW54IqAwKGf91npi1G77ibbN/Y4qtSzu8jot4kD8jw6Uo4xpRA06Sea3V6+Z+r5oXI7Dt7tCsa5Es1L+YmdwA8D+h+JzoKrvz5e/q/U0TlOjUJ39aUZ8CoZjNM1ae4mARPje76p7k1iYl2cVdH3j9Ujnv5tukUTvZ6xfeZpF6eTZ9MoZ7ibVn2WmHoAKxP+8Jc/xZ/++BP89PnP8TvffEwhJxdKJ85SSOB3eULInv50pOWKjwB4jYhMyQBABFaqRkFZmYggWvIZ/3k8EIPyW6pjXJVp2AL+OiJaoD5XOmT+iivNqawU2gTZoJyKkiopEiIBlFcYpN6aClXAUFasZEiEQADXl7wBqBt484vj3r17h2+//RaI3+D5+oxIT8XQ0O+7+LqR9w2ISg9sL97C6m69KHOHkmXkYHKf7g3FM9aNiGi4kfewCWpi9L3jZm/lLfR5gf6ZhfyWm3H2ZkXnevmbF6KgdnR3c8ok27NXHuwGVC3TruMob9YF1s1TBHJSGnluzX9P2htXV15tZWgPWS+pV1Dpz7yhLEW3WkXosVTHeA4TddcrOGHt9RNAxSpNg4Pstc4Xep4XxmHDbG/WOrzJYzQkz1useO6JbR7o2lu3F/cyZIYpN0+CPVxsM7YmjxwnokS2EFfnpHP88XrBj2vAEz2B31M25kLGzAtSeApjWZBi9YlSrD6FdDQhhQqqiydSn1Gewbd4+UuITjTx+L3lws1vNRZkLJmqyzC+v6i5FnYKqGcDNq3KyFIFN6srzfht2lSVk9rfpC41YQvZyx/CBRSeEOgJISYDK9kWrZlyDrUGy9YePZ3mVenOLM6ScQY6Z0L62xbOdM60mENCqcfyOKD5LF0vQ8O5fIT6OWi+SfpW+gxA/96GOaMBZ5PQcfqSPf3TEIWvdO4oxXEF9SobyE82RqpPw3rxvWt+mjZMREA9DX6PruUczqqymd3yCew5S/v00uutGJzH1peR1b/ovlPZSFo3bpMyuAVgps8YgTWmIzhXeZfWIgZANgI4nWzDBBBdQIGyZzw1uATtpLD/BKgZAFOoRSAkQK1GhcT3N3/lmu1MbV1U/ezVQHutTZl1R0HmlA2BnIMYKGAwxSqHAfxcROJmYKXip/KvazrFKMZkNF0uFzw/P+NH/Ba+/+GvIYZvgOUJAXkPhORwom57gOH40KT16911xachq8MA29MUj3ZqUxpf5uIrzBkPA/rn4HFiUebPI1PUW+JwOd7sVtoDql9ja9M0PzVY9Pnyew0AK+9phsOkGqZ1dEv1HRR57jFp09xLXR5lBj7YV3bU57TttvpFOfVgjxdpIw2N0u33UGX8djcl5e25uqwuoPbeWLTTabuvZaNKi9hzuSnv3tgTbrf4xpzdOopNr2vydVan3JC0F5WhIoA/5k26jHTOOED1ZVsZ9LOAdnAFxZTP2KeAtNWVs8eaK3YH5fvykX3yzEirCTkcSP2l52NJq43h2qR1NmzmRe77d7Eh3FrSoWpymk/t281GfAsMJS8tpsk7vaegZr4s6c3GP+In+MXLb2NZnvA+h/zEWN9eXEtdUeTROaTke8NePk/3HTlffU8ew3Pfj9K9bCiV0wXNR/icBrCrSX/URds8cybgH849x/No61m9v4flPteErgzb9DCg/xbSK3NfngAAIABJREFU43Xvvow54Nc3H8MK/NJiF9/aQPlS6MjbFUdpd9f9RrIvtQ0frVS3j/vWa3vbBGc9x80/k6d25nVgfpzxLC8Mg4BMk5bbSbJAZAX4PURTvOAMRNawh0C0gEIAcYrlDSBEpM/lcgHFAAIQKWBdE+PAjJWSZ5vzZCWgl1ksB9QwHwDMoQJ85hxGlI/PlHRsJZ5R255dt6AK7OsX9ShrTz9SXD577cO1qxDQRfABjYc/5JdvPT8/4927d/gYn3GJF4QM+NVDp3js2ncK9LKdQo+mTL7SZ0d2XG06Lnf2488W9HtjfwT89wP9V6AvB69/pU9MQzDvdHobK3uWY+PzAfzH1kUfrVRnAP457ZklVJqM4rbaf5enlBlBQmMK7+P8WNzJ5DDSqH0jD1vbDCphPsxiHMjLqZJ3nii9MCpwzLH0KxgRuDwjxIgIQgxrMg4oJMCez/CPqxzlHLMHO4F7IiUoETjGAvYBTr8REUu5omOHjQpavfIt4B+thOl6LUt2IAAhhLqhlvP6RalnOVFI7htWWUSOVUcty4JlWfDu3Tt88/49PqzPeLo+lVWQyggN8D8Hr0sfupvRV/qc6KTTe96Kzpx3HwT07znxor/vneQ1YzO+ZzWSn19JsWOn+GvQ8KVckwWKrROfb5dF89NCtLzLRpTihWsn6Nfe83CkpY75ym6hPX18A1SZVenGaWUerWlep7+ONvt2971iny1Sx29fBlPscwcdqfOkbmx8RKLDY9UsNZ/X9vJipi1+29NT2gga27IOHuJJAhYUWoL0VTrlARd1XU7AKQH9QI1B4cozw8nqSK+6LXm65S+m2H7EEgcvm30pBIQsGi8M5pDBdgR4SeAfyKFC1WOfREtGERPAiNVoCATm5Gkv56kQA7EJHoLWI33/IZUPan3ksJkkfp6PScpcn0uPVB5yrZ7wosAUIRl3QD4FqJ7AQ4Ry9v7lckFYLvjI3yFef4qP/D7XpbNiZcCazttqz62DEbgBDOx9DKl0HSXI5kgzck95n6Egj/k9JnzMih9QyrJVjj3XDgqjvtvcRwUe5HriRl6nhjbiRsbGeR/Cw/VzVuE72/pBQD9wtDv4u7GPTHIb1sFnZAW+OZWxReaivaZJT8w55SmD7nNopyPlnKuK8TMn1sNsaHx1iU3pkNr4bKvSm8I2UXu9xDzeO+GlH/DmhCrzLwUQUyaFXzd3glVYEDeJIhbUiVeMVspe7iWHoywIywUR+Tz+GJOzOARgYSBEBCIwr+WNvhwjluwhv4YrmCPWVXvzuYDu8jIvohz6k7zR8l3gd2QBwuooS2Zb2K5yW8eBgGs5OjSf2EMhy6Pql5HCi8Rzn2UpR2lyaisJUZLQnfSG3YAQCOu6Yo0rCDkcalnw/v17hMs7/Pn1L+GH6+/hcnmPy3OoEmdwPu4y8haB/UNKr0yIcdPW0sbzOK6p96qG0zT5mVOCmrpZja2alQa7ytH3quTNe3syNftCTpDiPJKeZeU6rzEfAvQTbgeA1pr32Yx5d+l5dKN27M7T/hnR1ktxdlE3mtuJlxolWuuM86Rhn7kd+48GiEeOa9zcuplcL21bzn1HduYn2daRTac9YJK+rQebpp+mtoTZn3SblcCUtu7PMPpO8WQrMfjumaqCn3me5HbbMmr4Vo+f8VwefXrQJu3egANG5hF79ADgL3fN7Sa7BpzkOwzl1JHU7ScD+YVQbV1Q+Vfruyoh6/tEgHjlxfuvVgWYA0jerGuqPNkY6aVddexQBbYUIJ59yfeuXkvqeE7Kv80G3mR3UAHzjcZhX8do0B9CyPsgGMSxuX+5XEDLBbw+4xrfIShYUuZ1qRhNuu27eaXXDTNd0d/a9hj7/FrDapDb7OYpdJrPUjZOl6FUjSXPmC4G82Dc3+qe6vo3j/nosg8Wck6kfvQdcoA4xlI1R1qhG753FOQhQP959Bmi8M+Q9MCVQWU/vdT9AsrdaBu3+VxemcToOUHz2iVu/WknHS+tNT7ggIxp/nsU2mGwhlpHdxL1nerY86g27FkTZWQuqH0EyErIibrZT4i3rKvshYDHOYd8Bn3Nx+Y8qUDjFTwt7Mh4tpvD/Jpbql4U4K8hJ7n2LdZ3QhtiDqdZ14jrGhHjiuv1mh63XtAcOoMQACypwWMEQgRHAqcgIKRgn5pRPc6TAMjRmFnGkOE/p7KQUw8VKWjDiI3jpcpIQNl/IEZH10WYIacSybihAvBSn5e3Aie2hMtlAVHA5ZL2QLy81HpfloDL5QnffPMtwuU9fvXxPV7WdwjqxV1VxlBNLG8PE071U3wlIa5rXtXE1B8WTTMEkfsvw7JaznNS7ElTxLNXnPtdR27D224mBdi3HFg75khPf05XVW4U/XFAf2Oe2ZvjCu0mD550FoeN5ylq7r8miHTk2QOy6nFjJdEmn7NJ9/EK+IcQB52Qp2npkYKQX1ZJjTOlPW3thZXZL9Yiai8OGGsF0jLUKydenOvYOzvLz+bqPO9eczut4ZlPnOrGln2z47Z828RumxyhAiagepPCgJ7EozR6YhRs6XX1po6G4t86SNrnxhPSNm/7aPJAO9mh7RvdxDTLykkzW1WtdW8ukvri2iaTBmmgzURYzvo3h7SkU2jSH5Bj9BuxWkXJEhsj5/Vn9FHSFYOkWh+MAFAsaWTVtH2pl5Zdypk+R6uBWaj0fwnrUV5+3fgcIUip8fQzJRnKckBut8wnhCUD/AT6Y1wQY722LBcslyeE5Sl9x1KbsRHRWsfOfILj8zWbbz6IbBV70zsGY6Ht1K+IIUpeniAnYYAmHI/74ig4wk2NsmpLB6zYhu76aP1t28mI5wukpNLU+on61cJjNJgkMOiLXbf1Mjd1dSLgBx4J9Hda3d7b04EHvXHId5vDo5Kc9yz0pi8Bc5xAleyARRlh5V8nyd10SsO9RR0eEXSkzO+hoYaaXjrWvWaG1aNSDTMrsMn8lu+zNMlDSsUjbltwyGeHfMB2O7zFViRS/5Z87cTqGQDOPWHlGZPNc0655dhKzb2olq7xSFVe/WzO55ffGSSnTbc5Np3S0Z1c7mWzjQLCAizIwDpei25m5HP+mRGZEdd0ROcaE1iOCFVezmf5F4OCAKQNvClBPvdfylFeesUKPHEC5wL4syFA4FLOXncrVwc5dSQ/w4Ia/16Ebp0/pvOFJeD53Xssy4LvvvsWT09PWNcXrNdrBv2Eld/hF+vv4eX6Hj/E70z71EYtRiBpmc/o7Prkob5fjvPQxuholM+eP5ta4+RsPevVN+kv3LWay6EnawxUfJAD7dCuGLSgt7OxOm0zA9Uzufpbfso81rvDXW6YY8eSHE41owcC/Vv0ucDxc8nzjs68/1vg/23P/bcDGKYZLQS6PZu9dLbf5bVr0ltRsfePAz1VCzufTRjijNp7TNhvx4SVciQ1me8MpPALZej2U0xb9x5vdsbGbftC3ob8VZzxPdpRrm09lQAxq7rWMKFEvRNyxQQ09VkMqfaEmsw0jSvZYKtuMzM4ZhMvBFAkhCVtyl35iryntYJ9RlkN4Pw7panHgKZjQvOKQbcXQagC/xRWIz1OgiZi7oTyPGccL2aaGDWOgdV0SQFZ2QBSNWaeau8YkLwsF1yen/F0ueDbn/wE79+9A8cVHFcQgBAIP1zf4w/+9Pfw/cs3+bz++oK0ZqGBleECrcFqfrf4kFgZFA3A1Kyd/QK9HuwB8duMwLcxMEajuwf+6ct+SXxkLYBfLnn21zTmfZYjm3Yed+s+L4+fwjn3kKPxfWHupAcB/bWB7+HwiHQGwLZes9EE+9Ynq0zzm4L9t6Rexs1aursazy/sDO/dtshjPSxHn9uRYtY9zttpdhIfYbefn5eygH2iPo3doO2ifYFdxghx92t4j1fjf7bn41aavfRt5q0vG1J3tvtQVhW7ziptb1yRytXWtzXVUN+AqkNbGPjh+ow/+ouf4Wm54ifvP2ChBOTTGfkBEfXce0YyBupKABoZBXAHVBCbzryP6QQgZoQYAGZEXovXPzlPFNjPIKN/Y6/sA+C0b4CorCWUOH1bRqCgKgHb6qPUpRgPBZA3ZikpYyODPjF4YsQaI9brivWyIhByyA+wBEKIAUEdgwrJS+Vem76Vym5sHJudn4ZuHm2jB318POVx74hvN5q2X7qhPMPRJu0QZxfjwQHBt05ZDm1uij0I/M+imfPkLHoQ0H8GnV1R54CJsz3r9UxiMgPyMT2ov7b0dq6er/QZ0S3d4p6TzfauAH5e5Dk82jsVKFRPurlTQC9Be/oTsA0EMAG//PAef/r9Bd89f8A/cfljvHu6FiAexR+ZAb549JljifFnlRctC0pMPCMd71nCefLRndloWNeP+cVdjPpW3rzBVX6X3pSeTy/JUvkxI5CUCuUZVvWiq4S4vO6rGjKaH+mjDnMsv7a28rJjFO85p83OhLTR+eVlwfPTBU9PlxIyJW/eDWsoG3irrPLLA/69p90afnvpoVT1lzRMB+Q6S9T3xpj0EpzZYAM+HfDek9/9FtabGBYPAfrv9/OfwcCyuZ9h3RA1uO/dmHWczlr2vNhWkTsMz6orE8em8xp1XtdQuVOesweKW2fHOKR/v0AFfnbYyKOA0ebc7nMYDm9NSzypD1tX3ilO/RHGJzochhvG93vxvRUIj6z83jMFp8sz5SdBH3GZ+KjNshg5SWQmqusDzMAaKYfkSMx9Ope/+NkZiByrhz+H6OhTiphNO6kcQY7eLhtqLZTVYFhzUUZNOeih9Zo3qx75vn5af4IFw/f5kc22eH7TQ9r40B7/GJNJQURY44Lv12f8eH1G5DDsW/P3DpyFkZ3ecHhqPkdv0OztwMay7dqzk+N1IeREU3U5u6GpVvZsRBL1ra3HB+e9JTJPCw7ZhSdUHYqMj7I+9FZyPATo/0q/nvS2+wu+0r301nHinyt9rac57QX+O7mp760+aUCs+t5rHHa+y2fMnvuYXixF1+zjD3kjbjozPzIAXrGu1+y1TyYBy94AFBQ8KENaAZCXc6Vz/HNyysaIbNIV+YpzIm/4ZaDuEcimT/bOu1pWrXSUyJycacjAPWQbokYE6fptjQCS8ooMeeWDKOLlegWFgOenC0II+MWHb/B3/+x3cI0LrvEpVw2rvtF69+3LxwJRfnHYlzV/MHgO/L90mnnxSz87JwTmLUJpHpEeB/Tf7e0t7ob7ZQHOHXS92ZovO96rDS+zPRKrsqTmWrGCX7NTF4/Ddl7De9yvGNwqx1l0hjxnrUAe8aLu4SP0KMD0UeQQekt57vXCz2Q9q9/cS6/b7+woqz7tCo2pSSVw2Ht/a7/Ky3U+YU5gn9PRmZwDYeR0/XLqjuGkWdb9Tf4no75wqxgoOWTGrTVXyYgBAfivRCXjSSXzKR7+yl+HPum0XffNWLVZ8c1Gj2xSliKvvODD9QnXfHynGD0a8M8969kWOmueJvtzwni0SIQT9bTwm80i01vG+30veYtNgzwHN31eMz6qfXc5CPdU/Wupw8/ISHsc0H8GPRZ+GLmV7mDnA375/dVr/jh0VtPPzuH/FHy+ZPrUAPnR6XH60A53oA7R6VLoNQDjLCJ9trhA3QxE80u1IoB05GaN60//xAyEAxhRZay81NprHVMcf72W3lab+Nl4fgHDcq3K3JgaZeOvSlIjI2C/SRrFHUDyopP63Y4NE2cCVdslpEjmo1R7stdh/lZcA/ad1QVJ9wi90NIu/bGRREJX2kd8I3KTHqiSuk3XVPcm6vvdy6iaIcrluTNpF24aJKlHyd5f2eeugI7pMUC/cqjczaq6dG4yAupS5UkjRnt4el1Z8515ywdKwMbylqVBh89rePw7mbdcMz0DnHXclZbn05O0z31czvTWjhTKV6Db0mvWx8zr/dorMa/Zh27ldeS++4bpgSzVj086NTSCEMihAXIC+xWKUMMzP59j9SOQAb8C96xNCQnR6AF/szcg5rCcsms2Kqk1cjc6xduDYgFT80wukUHU5ZShYkCouiZC0NJ01e20IaHsR5B3HgjfYlzU4hQZ2rChfhXhtTaljwyhKd06BHY+NxpjRzaXUl7OuXven2CWPXJ0OESFcNnwGg/XCH87FzZpSre3/d8hd3XqeH/yVlLOWLl9C6fKY4D+k6jpKzf2dWVYnk+es6Tc6juRJ5Tb6dFawXve6nsG3b268KqV/YnphCo/Uwk8jpf2celLNYDOKtcj9qFRpEWvA/tnKvBXPiIJUcmfIQALEUIgLPkc+ZDxuX4+MWEQBQTOp/EA4JgO1tSn36xFhwsAlvTZEGi4xoqStbe/+0MFURKfo/wpNUSnfkr+sklZ6okJ6SQdzu8hIKonCUnNWeReKjoZF3Ujcv5jlA3OTSMAKm2lYLz8GiyKp799Rpt4X+m0sXriHK33ZvhZOc7MmTNU5NP3P1EXOPto9tekLwb0f3bz9WAwDcE/+4OiSeIA/9feqPIV+L8ufQX+b0NfAf9+fq/dh/byN3A9w77WR7/FScf2N8fWE0CcNoyGkM6SDyGBf4rpngSvaIgesrVAHBKADwGIMb23gdrAojY8R47tjEa2fYC/PDNc0UP1aspqsIq3Fy98TS/APWTvvXo7sFQWS23Zmk7PZfiP/OLkauQoWT3ArzcNlxeLmXI5DlvcvLx/BrEyuh6EHgn4e5uxCxmHZpt1HtvlPRpGLpXmcwb8b0kPA/ofZs4VjX83mx0F0gpw5J23orD5rAya67PwnrM7afIuYVoeT46S9u4jMjPvezfgZjpLnrPorNCMEa8vFfA+GrnHTr5Ru7x2HzqDjgOUpHSqgyOrQRXCwk3K+l2I1b/CQNJWwJk8zwWk5msoHnJ1RKXkagCOhedVHjb5CXw1KLwrtyqr8p5zcfST0cliotTLZSph5BeOScouwAgC5HUZvW4gYU0SUsScbIy0kVcda8p1JvDb3cxfo1AuE/Z1dG6zXG/dOFvkmc17DmB9bTrrlBvNZsvrPpWHazt5uEE7N3X+ktY9FtzkOyuzN7c36W+Y+ovj8zOZRsNWAiL6z4joj4jof1PX/h0i+vtE9L/mv39B3fu3iOjvENH/SUT//GsJ/npEj+t5HgH+0bVy6w1642fS4d+EHrAuvHCwreXWr/T6NFu1867t/duTx1myfioS+FBJfMsVfKkAEwT0ql2gcH3TbetFJ0ohPpS9/GGpwF/SMMd8Tn9+s+5k02q5wlxCiCgbFIEorShkL3kjJ6X3Drj/KUaSLgQTXlM4qjcIc36hmPHEx+57rtHy5lxCivZvebfxzSGtbHA6tSed07/mv1w3rMrmePxtf26+dzX7AGSrm/St+l9J+5nQKfihHVZg+a9s9KjXh/mf2Og8+s/IM/wzZTuim4/o7tegPZ7+/xzAfwjgvzDX/wNm/nf1BSL6ZwD8ywD+WQB/BcB/T0T/NDOvJ8i6k85ZzqoG4UOqF5+Kq0tfmgyie/LRJHpMW+EHvO5nGSUPt2JwrxwnKoCzN/J+aWFCZyvbI/UzjXM92Gav7Y0/I2RgtOJxVGZKzMD1R/ri6EFHiuZDe8srw+qdzdE5GWTLkZh6sq/sJFyHYICqjXFpHIw2f7PgzEA5Wcgphp6uuFwnm8yZzsSPSuq3Qq2sqtOe5dkILKsi8szYyVDrZNTeG7Hfqg9qQEjo891DTVU5j+/xbJdVIRi5jCd7Jt9u2Y8U8SQ1MIscuCnP3GXa92r4D75m+IztZ7tCtOzqBJzft1Cuj9cG/pugn5n/ByL6x3fy+xcB/NfM/AHA/0VEfwfAPwfgf7xZwk9KnxHg/0pfaUIeWHs0z+2vG/061v/WfqTjvBK/empZRIk3p3ZrZwWIGnQbeco15cHOx1AGEg+6GAPJYx2Zsa5c4EL1GWQTIIPcmI/ojBn4lwM/uRoJ5bkOWHDDc1AhJUlbbn27AvSyiTkseclfA//QsATl2PwCrQncAH7OVkrlITkzAxwZK9ILzq7XK9Y1efwjR4S8Wbgzjgw1hqHEMTXlPH6U51kjMG0unkcJNGCy63afjy64FfB7AHuLmjRv4GfaFQZtnAqn6fFdzor76Z6Y/n+DiP5VAP8LgH+Tmf8UwF8F8D+pNH8vX+uIiP4WgL8FAL/x09+8Q4yO741P2lF4UkNOxHE71T2Nble6gTd9SZf2kLsbb1Tahr4sp/HD0hme/i/Nw/+WdMSj/8j1fMYk12zKvHF1InnSjYdXgKECzXPgz/KY8vKpMBVU0F/CekzohoB2iVOX7DXob2RRqwMJLDbu+SkVDG7rSgPmnLCWVc8BrWeejYe68dijilX27dasGoE4hxXJaoBwlaw4rxBwxF2hDOUEn5x5Xd29s0/uAeGTNMXDb8rkhabMYtEPnby3o8h3r8rtqIdp2sEzjVwFKtCQdz1GVl2Tfk1tfe41Jthax06UxFtv0i3G4yvSZkz/gP4jAP8kgL8O4A8A/HtHGTDzf8zMf4OZ/8Z333x3oxifAZ2Jtcl8eve+0lf6Sp89fcmrAGftOUjAMXmLY/agy1tfOXKOrecmXYq5X5Fi7tOn+K+bv4xf5cSeEEL9y/H3TfhMAfw1NriE/WRwz3Yjq/5DBbL+pJG932WVoO4b4FzmGOuKQuSYYukzrkkvFDN/GV6kk4kWhOWCZVmwLEt6OZcqY+VdjRVmK2lK3+4lqKInebi0TXlKxfR7f1Lv+nsI9OaAbEZtm4//YtNmg/vqP5VB/yf5Dv57OBLcrgC/7EGxaZrH1AlOp7b5A1bRW9BNnn5m/kP5TkT/CYD/Lv/8+wD+mkr6j+RrnyF5gVu3sRl21Fv6b+uoGfIsngdjBX9yOqlav9KnoTNiur/SbfQ5GQJHZb2pbBl1Vp90v6yooTTKN+vth7j6HfVKxQCgQAoMc3PEp/BjJC88N/zbPMcb9/Kqg1GQTZqyIqB46/yKEWGSI5s2ihXJsgUlIK0u1pUCMVykGFJHhQ85NU8qFMe6T8fx/OWlTRYUevpGr2ScSPfw1J5hL5Rn5OG36Zs6mDrPD46xSf67n20vHktvqGln+LH0GvA3aWerppO8j5/uNFzWeHW6d5VnRDeBfiL6y8z8B/nnvwRATvb5bwH8l0T07yNt5P2nAPzPt4t3SKZ7OZjforDuqN1XwkaeYtkqv2yw8ugU5WmMjWnZX6FeHsnrA5xTxFs2N96SB7AfdInHTehzAqKPTN055Af3X/z6GmJHy63CQWRjamFhdT41PlPKp+ssFwBhQcSKFStopYzrc1gLI71pV7y/xcMfDdgXg0ROD5JfQD2vX17aZVy8RV6k6B1WZWumLZkripu1Xs8n7JRYfBXSI6FAo7khEClerUzNM4Jd8yrBGiPWmFZmQghgNrH8rbSNYdToHVeqT0vN6UW67nJ7dCEqDD/9eQIdpl0y3Ar2i/FY27vbkG0fkbZnr28fzF/dfzS88Ja0CfqJ6L8C8DcB/A4R/T0A/zaAv0lEfx2p+v9vAP8aADDz/05E/w2A/wPAFcC/zrtO7mmXShN5jac9AON74+cdjtPJksFeL9M/zeNv2ZkOT/SzVQdg0wOh+aQPby1ucG+Q7RmgsauHTzwjnNkD3gL4Sz5703lpv4L/+2nUBqO6tR7RPc98ceQA3FEy/wbluUQBfpYDPFvtJy/quiCAArCC0h9FrPmcS2GVQo0Ajvp8ejmq0nr4K/xPHwLy9VtwBazAPGcBNjX2TH3CfKbYJVnCgDcHp5AVU12oOkBD8KZc5qEkS7oWY9rMmwBfKF7b9Mbfml76c3vdHO35iVeNNVDvNvFyD/y78W3Av6R/lTnRIc/zPwLN9zoN9b6W7nqX2SQPVVf30GEDa0/yz8SO2HN6z7/iXP5PJ+n/NoC/fVSQtpOKAh6mVs9Jvo0UR7M3VL0/SYkba9TFumMrfpbNISr6egKobyi6551vlNmI5w7w3+Wh6KZluOFlctN0ebzFshzJFHqnYnI8XPbeEXpNb/DM+3+r/K99/KTN661WVfZQ7/0c8/pcvfxnta+Mt6GTxsu7Po0K9tE8X7mE+hAhndnPhECMENLcE8KCHLje6E4rSelnhAKS65t3awlqhp5xUHVLAdS1CAn3a0NIjAFdcmskGi96EyKkV6AyPztDE+mNkfIyJTNv6rCmWMvc1Isqm/Xyd6FQpwzXwSx0hzd5eHsEa0rb7QPA9dZJ4151M2/FYSufPasUu8f6jiKd6Vgt/XZERwwdvkM21QYe7zPDjB7jjbxkwfutJvw9WuDXxDN2C70ipjhjWfPXeanuK51Hb7Wqci99CYD/bNrha3S+KzCaf3OejAzMzR7mvImUk2d8YcIFyWMdmcAxYn25oobmADV0BiCEHqBLrtzuP6h+d28uJGgEWYF/ul66sNpQmzzqqLrcbrbVtZLro2xENjVXYvyplbEYOUXk6p3NHBHXFas6spNRQzy8E1qGIW8PNkxTG/YrJU7CuScbn2g+a3xmbT177aJJ72VwbjZ5nKWvHkpPOyslt64klJftvSI9BOhvPQb1+7hd2aQh9d30MsWzVqZ+3pkMCCCnIacGYX7grBdE+ZmYvKTmXN3iyzzsjFue+dlqwqzIE+t1Ko+lA9U65blnJeYkffKaJygc9Z57G6Lupb2Kd7ZiIXTknpfvWS+MejQQvadevFWWT23AbO37eM161k7u+nXsSErTRkZj5KTSznESCJ2MAKIIyifKRORyySkjRGk+yKEwBZcrr3vyjrevx8rQWsnVGin1YFFWV5GjgtQ1KRJRzrtfeSiGALe8ZtTgVqNPy5GabGVGKVO/gXnUHx4I2B0kr89vYoRirN0P/Ouqi0MFw0/yULIAg/mmtK1rxTTPn0neYRK759rPoEvduoF3bx08BOjvyRN+XqCk8Nq4wPxtd14yThu9/AWRuzteGw5vXOazQPHU0/CJ6BNU55vSQ3lavpJLnxr4azmETj39qQauK6rg3Xmg3m8+zbMlrfKUi6efAiIFBASEJWIBgdag88MdAAAgAElEQVS0ITWuEVgiIghYOIXM5D9mBkLM81SSO8Y1b2SNQMx5cwSDavw/GHWvgICsWEUUuXNaqQ4JhQ+hylCLmk0GUxX1tvjl+yoqNVQtmI4awF+MCc5yxfRyrphfzoU43Cc0JbftH4Numtc+cVH27sGzzxwpazKIBzc9J6tzT/h0RmNjMr9xZTpl8sKiN0Og3ggxPATo1z4G5vbq6Fol34OjPSGtn6HPuc2juzMS26Wzd4e7QP3AC7e4HU2GUX+/OxnI8YwPT+g5MHBHMu7J39JI+dx6EsGjeXuB87zd94JAq3CP8Jses7bD077n+S+Fztws/Qj92bZvE8N9q3wSKiM/7X13MnaujPZNQN46CzAIkQNWXiAbX4kCKDCIY/6O7P1PIT8IADVGToCemUiWDhjgEuuf5Kle+wqcBfz3PnluytAWRwwXNKf8WEdsM6a7irBe1dEPw0dUODPK0rnVHdQ/Jxt5R939UYxZS2eCzdcArnuA/dGXg41wjn5Rp86v2fDM7T27p6Pk70C83SsPtn86R5hP9xsOMM5mXXJ7rTgmH6DbPgTo70krIDZ3lLrinNZWeNeG7NzcU/sP0EIO7fVsTwH/Xt6m8x7J3+btAnPu23cr/02Zv9Kr0SNOtl/Jp0dtq1mo2SGZB958chPwUPU3KxHlVJoE+FNITMCP1yf83T/7bTxfVvzOT3+Fb55eCsSQfQCQTwoAxYSyKQAk8e4x806GwcqxPiN6jtPXqE760eE8acrjkrB1btXSE4Vc3h6csJ0WBl77UdhY4dNygd6oG+WlZ0XGVDgJhQqlbsekVwC6k3u+0ld6RTqyijFdwegZ93hIGyB28/vk+f7WPiEeDPSPAL75zSatKExSBddLn+WrqTGqD/e65DEnTKEtoNt1mkln2eS9Bbw9D/+kY2+tArBtow2rHEgW/K8D8L8VyD06ABT6VHKele9rgJIt2dz44U/c3veuSux7XnmwnevTxyx7AZdAc5KN0Mt6wZ/86hs8XRg/+eYj3j+9qHwU4M+fRAGySbV8Fw8/VIw9Q1zbzbwmR3xWsoC/6lV9hDmyl7xsCDTAWpsH+pousW4D8aq7/Zq1praOOi73y5MKuKcVEWq9uk4+I9DfRCu12R+kwaxhvLTuE06ep3jodzi6dhENS+dkWfvdiNdpNMEGJYnjDExiKEE6e7ZvF7vi0Jz3PxRvsmIweK47snWEt3LbNp5/x2k93Rh9Z1s8GOjHIXDaP7rVoHbN5Q06+J00sjj3HKMFOAB6R3630uFwo3ThseiB2v4s+tQA8NeJTo1Zx7ztRnl5x32+lYd0T187s4729WwunwykcJNBmrqdNgH4cqBm8cCLNzuF4a85HD9yOoYyH9ePGLl8RnlRl4D1+uFIKNkTgCC5V4cVARLS3+xBQ/Luh5A8/AstAAgRdUVgV12pdqlefbM8oOtS1x0zwBHi8RfZik+O0nsOnp6esKwXhHVJZbR7PiyA8qgrjHdA6jbdATcG/G48je5sQXAc8L867QSs4+iObWfnGeS24Su0j5u3HgtehifI8XigH9gumHNflEqiWTeWntdqTNuNHgkmSSc8tNmmFK+C/82J9kChTxl8j1TJwBcJ+L/S29PZwP9IXlvn+9+b15m87j5xaZcCMXDaep/VvZrSOeUGCdxzTH9R/rj9nl7GxcU4iPmvwO4csqNfViTwmLUcFFA27AJ1yuJc8kbACs4pvzF7WdLUzte1rac9VWa97XJN9y1WHv10Ma1M5NCe2lfEQ5/m58vlgqfnZzxdn7BcF4BD5VlErOWbnzpW53Eyv4/QzThq8ODDAH9dZY821w5oBvjfkobAX0j7Uu/RY7rNqc1juKI0WYXaQw8B+hNgB9RJv1kxZ0VD6jeAPgYx/yapw8xnWB8G8Kul3XTXCW/RCWYF6S7dP/lreXYBfzOryfNTD4pjhc861CnW9kzJHazLs0DWaXw+EyX7lV6HHml15SxZzg6BuiVsqWWUdVSjn32vtP4kl3dSgDoCVD91CRHfPv+Ap8uKJawFmMqGWxVmn2WX6wn0U8MRSr8lvZz2EoSSJsW7KyjbGQkGK0j4i+h5laacu99mjG46oBrm2unBPOeWzcX5mjaX0q1sEDR7ANTk0oT45LKbzb2zvQTuEdttDjfRLJZ6egx3V03sXk+XBh7GlPH43h2k89wKvR2F25y+clmBVntvJ4DVoTGHQe8OXDE9jGXUTnObtLvWGBUW6Nv6ccWYyLhBDwH6ASgFZAE4mt/px6DG9Ud+cwiz5uI8Ihu3bMXrgbDHAi95n+/hq0aJ22O3n88dzMZQCu0q4ytgGNcImerXwU3ap5jeNOY/zdTnsLpT6Z7tdX4kQPuV9tEZbbaXx1Z/u3dfSvKEo/h6rG8QaL10FnAzDAgvOJaLt03ykKfeXV7wj/7mP8S7ywoQECOlEJ4oITwpvCcdwUk1/Cd/QuVZHHoF6FM6WlOshuJRz8d5ltj+amg0VGLkQwHTJbeSv2TqwOMujl4+WwOhyoUUK13mVs6yxbIXQfYjFEMjGxSBgGUJCDGVmTlgXddWHkfEGGNzak/y8bXzR23Xr7R7rtsA/I9Kn2oFwKVZVU9Avj3N561Whx8G9JcCKwV11xJweb5lm24ZI8Gifnkek80Wgzy7PM6kkWGhfxpZd22AcTa3dEdMbXRsm757EYlO0zx6zJC519v/ZsB/cCLGvXTPsZxnKJXX5D3i99XI+EoN4Jcvgy7XhwjopNZP7j1viRCI8byseF6ueOElhfKgAnA2z4mHXbze4lPRU00LWuVLPu0n5pN9kAE8c1OudLJQftI71aZ497l6VxnZ0GiKJkzMBYec2P7SKtzWer8YX1thdOTv3pUfFl7F8KiSH9YVBSDYcjl8jrD2Ht/zcq4znYeOJ9wL9dpVZ5Mke+vKOy7Tf3Sa2XYah2arLHvymz0zjMKoCXrsM8NVe8q4Q64RPQzo96j34qh7zrXieFDPS+oufadsvTxawLpFh2LuvzCydbXXWDpSZ1NFeOS5N2iX1zQutpT0Wx9rN4+7TXRkMvZO8Hht4P9Wm28/Z9rTDp/iSEUC2hN8rAi7m4PKpEFE+RQfyszrp0TaiBc9xfUnL3c0HEsYEOpOgcS25pNCUUXoFBefAGzEul4R1zT7RL37lwgUCIEIQTbw5oKnvQXJex7joPCkx21bbwJPPPXdgnzDOz8kaaTccpOZcV1XvLy8lL9VbfodkX+/l06Mq0PkOGfu9SLf9Ly2RU/B+z24H97f4jVxvh4q6y7bYjtRMWQVzZyar01n7eE6amje2k8fBvSXxQ/jtXa9Es3P6j1IXhRtQm0izj5/ZbdVMfZvWn0NgKnjOQH0L76Ytb2+J8bLkb5C6OpjRiPAP6tD6/ufZeem3UN7ynGWshBH1EnsGtZ3K5jbJ7Q0Pw7asAEQzmR8UOZXe4vrK9NrytpNdAfyOWuVZ9dq2iuF9wDVYd10MaogtbmVkDP0zZIye5Q8fgnwZ0DOZiAr72gT01/KpTzsqryjfOQSSXgPQkrPBMT2mEpd3vSRw3lCAIVQATfLCUPWA181cPksywW1eGQ+W7JXdK3z6KFaFzFiXdf6Rl5uzaS9/VTCdrvUzYbgHeSeTHSDl5Vskj5Reanm1vzteOhvpbPCdqaniN3gkd7IbQ5pTL8uoTPSBmWs13/Tkd5Ac75tlwmrf91bPhVj9465VT3b1fXJwP9hQP/dJAq+UFJb2ts/p7GpPdBjjgjnA36hBjQbIK8SzZ93jP/6+C6U3V3uRemVf5o3SSWe16at77eGe6P87bVPIeNDhb0U/akAv1MxpJbsbvEUf8oyH+0LpwJ+E9JCA4CiSZ+rrjdBvqXRtJXXbMWgOWZUrnU8pVwVoEt6bp7MiRTIl8cp66hO0vRaXRAC5OVcCfgnzz+TgHzKJ/MAK9fTelJcf8ye//qZZpWYeDKBGAhB5qcKs+X3slzAIW8EjgzQAiDWMUeEsFwQQsCSQT/nfQURESvH7GnXEL48DDnaQR8RoWtXjtRo54d0hc3v+rO2gOYBMYwYuK4rPnz4iI/rC16uKyKnYzylLYUXUTWi/N500Hnlc+hKma7fAGI1m0Ea1/HF7f1TaQOI7nFkds9zW1tsb0JVhZr/Ya9BXfN4eTfstQKHDoZh94L393biKkD0waye7TdbIPW0g5Gm2fNBYfElgX6PDOD35qK9GGIL+PeTxz6+R8iNz9+UX3ucvLvFFk4Xjnpk3d+t5d00A9crrjck//PWQL/JH92U1twb/X5reouwFz/fXm0VwD9qvIK9ctvf6LV+qzLP2t27Vvv4ub1Chyyw8D8A/OX3vVI1wNvmPynzrF68dvTy6A2v1sis9dOXszECCMnxkQFq7buqNxOpzpzPwmm6tJzbnyZ6+S6gHxAve0SMa9ncipyawGAOkBdzNSGopIA/LSBmUFhAIYIiJ4NE1WcIFyzLkkFzMikirynsSOng9jSfXC4N/KlvpxF+kvrkkkIDf2kQKvVE6jYDWNeIjx9f8BKvuF5XMJKRFSZzdK2hVopbibvvtefc5bXeIdbIeXc24D9dR7L7VTLrrjdpFNC3Y3kopXdDjBi9kQZQ1sRB4D/L80j1FePKPmTHkr3v1chIhN74Gt7boIcB/WQKXxwHTZo2RVH2WrGVGhZl3Va3HdqtFaa5K0vLgteOHK9DmXTVU7POyEZKYxRa+Su4tqx79UH5qp78q0HZTqcST5rmBirPt3VWPYfVENF8J6sKTXVYNa4PqetL3TI1jcKmz9jfbdadbvD2VhVdMiFb/iYDj25SSKZ2O2+AP2H26Y7n1dwpeIxy9/CgmCXbc4VXn9oLDep4MbqCjiXe1wij57eayp+ox2Fse1qh6/kNCKvlr/cdScXTr/qm5lOf2A812qYeDRY7wlSGEmaj9KzuA1Z/aMuyHavtHKG1trzNpAJXco/OFTGaKZnlXuIq22hTn2vLVfQfZSgvioLyyTVYkd6glX9HOZ0mlraLlE6xSS+nEq9/qFWbjYoLnhHCgnWJWC5PyvMPICxgBKw5QiZGxrpyBv0L0ln/qgKk4KEC/2JkmJosgkg9sQBW6YLVyNHdoTYzN1UXOdXxujKuFHEJH/Db3/w5VrzDj/FnWPGEheSEH7VJGcW0AjPSqkbuGz347Nta9aimGkbzwhiCbd1UjLj52idxQHI7/2No/dirHTA8hP92aEwrVyOHNFJFI16ZWtwwzb5wbdpH9AA1KbQgkHMJOV9rfjcyC69cVyP9AAcjOHzkAkvGDcPRjOIdNVDLoVMfg/Nenj09DujPDVUqWul9b1AWQEaqcpRnS3/W5yaDglSFG7DUdHCHWH9zvGDb4KHl4gEHWwfed33N61SEpFDlisSi2nQprQPKJEU7JzR6wXstCTWfhHbfxfhbXzrV+lZpK/1TcOGgDzXP2T5UaHvw6HhJL/U+tb2H6salfgMT2gowz3VGnWq3uWiqRpwG3RoTrixKETf6eyaG4dB0H7Rzo27DLUcXjerBYiQvkcO77zuT+uuE8S7VTslO2nZMGR55NUD0aZi005GJZdZmI+pAgJxg4vGFjNd2qm1kNO1DXNuyrXUyf31+ognT8JGnQ75XQ1O60ujOk/9q2M8K5uThT2/yWgFea4w9ACwJuIaQc6KAEBYQEZaQX1aVx/zl8gSAEGPEuqZwoZfrWvYSRGbENWKNETEC6fRLAoVLFi0jGz2p5j+iWlYpH5flB8p6XmnmfC8IyAmMtrUy70AZ82e4LnMrAy8rg3nF+/ff43d/+of4yN/h//3hp/iwLlhyuBOVPsKg8obfZNmEXEcM5JNMWwUgJ/vUvlBlLLoB2nhBSwzYS03rD9TsqEO7vLw+NaHa3QZzsmNETMswpR3yCP8uE2rkQe4nZbzl/lTaxVE+Na1V7FYxk1sv9pqr36m9oFGPW878wzzW3Azw26HP3Lvmz9EigzuXuXPSPk3+MKDfwXIA1G+FE73Kr/Vf79YlbgtEy9aP/Gw7yYyazp/7zaTUPVN7xwg7TOdQ6cSms+7yqzLUr+yR2REeoOvQvuW4mUapmcebNMNy6B+u5MPSbIgsU3irZJrfiqtOY6/t83864Lu7+nbkxab2iZQx2X5YZolYdz6/NebPt5fZAXz9rwGiBzxbsU9b4tjH3bxha8NJnHqxY807eq7XAQd6wkD3pYsKVHXG13g0iUfZ1adG/O3R1SYaHn/H/dfRuPAdmbo8ghZUmIiA1gbW176ZtVwFdL7wbR4ZmfQhMPuIqemxZZOhQF4B+xr0l3CfGMAU8ylBbT3Ut9iqkuYJixLCACJnj3uqHwpIwByoz4veV+CiXYFuy93PVqoFiQCWdwC0LZyaJQnM+ZQjtVjT5pObNhDnnROGD6iWS2KroqSi4ulvEBnqfK+DdeS+NgJk9q9zgJ4E+rYfruaWZ9Rv6r60aYHiZR7hhg7wIo85/V3kqgWr6RuspNvX9Ow9KopgVvmkN4owRjeqsMLx3iIZd0oIZ9Wv0c32OVPn3uk9bRi0MkTyvaZdJ3Flng4ryfNEw3mcDWdhpw77+aldCSnNONGzkHluv8p6INAP9J1whgMH1zrfdUwegrpJKHcFUv6vbsf/p4JuPRGy7EuO53SXBvXEpwYP2S/qN9cOb/qQ/4yTtrmWv4wUmU83NPAwjQ+AvLEwu3ak5Ud8XqP3aCBjAdV0vEtbH1AKWzJ8LjTqr7P09+b3Ws9K7+7dF/NnHrG9jtaThgM1JroFMPq7HSc2FXWp9KekpE6faqoQWn4LyI9AzCE9LDH9Ka5/XWNWq+lFU6EAIsIS0hjNuBmXy1PxxINSLDxjBShi4XTCD4csCUVQ4HQSTlhLTYGAi4TKcAQgL8/qywLUaZBZh/y0NWtBfJqf5BIBCI3xIeGiErJTAW3IfzYPyGIBEAhM+VSiDPpk83MBTY3RJSsXTtsXh0PtQ6V9J9avu/m23myeORSXX+ZLtf9NGzki204+CZznnn3H6+CtQQTUNvPC8WxsFxkj2Ipae03GLNZx4TgyWK1cys32eNb5N08OyauubG2k9TiqFT+JFhrqXCeLmq2UmUzBdwiFBs7toocB/XdvPCGJM6bibUmGpLI2d4TajMetZ07x4LuVbduUsDHOer2BKGTlxEXJUReaY/hZvsUiHad1aRhOwsMC1TQuwx1XjtHMUDlEYgjtEoi6r83cceJGqgaamD6sy24NFzJKTbfLUIGpe20MZf42dJ+PrlWN1Oizwqb19DQG6A11aCeLoVjO1eNgdN8T/grHTp7KXcrkA5BGd0ha450kwweoIGEXTZIWz6MaOBaA2Mc9z5yboRpU9ZQOBfz7oitA5/Rhbn5JKiOEwEFyZWu0vu6j2RLgcWrIQgChfcusXgWosfZ1TIiXlCiAQmJCnNKHkFAHR0oRN9L2GTyLk7S81ErJVOQvlzx0UsumL9g2LP2AqZvPQHaOs+BQyqo8/4Unp4IIKJYUpIFWNVR6c45LW7aAH4pnT4cAP0/SliLKSngV3Dt5xvPqm2oq90p/0QXa0nA7jZy2taTO+3vVsaTqXnn8dbpyyADMBnLNU+VRj2L3eXdyWD7Fw+8V1gD+QT+YtqrgKnJHxWHSc3grzphrfQntvpwfB/TfzYDTWcXmmihUOe6OQnAbt4m5BPbW39uSZ9JtgH+drkm/BaimFvBYsRylM6DxRIfdwOweL4lic9T83uBJRuk1+Zl20tN6VbKzTB6xs99Pn32pSH1qr6BOUia6ghLqpFrAH/l8Wvw3zv9W2Tdk9h+r96yMxQtJ/vQqNeEXSesskyINKsXEoBFxv7dTcg3bibF+BxfdSRQQaAEHLgAf4HSsJgmPmq2M1RACwrJIZZV0sg/gQktBBQRK8fzMeSPvCjkliAAsIcfgxxUxXvOKQ9pjUF7cNfdGtXU2VWl5I25y0zfgLITs7S+r0rmelDFRALHKmmhBienvQJrKF8hhRdoYIPUZS8rGk+05BlR/6291VmPly/69ykv1TXEEmgMpSP0zG37u2AaQwq+ajPs2cxnXWbSbT9kH5Pp3E4ojcnEb7ptWMaidkwwoJ81L8RnRbA6013dVw4Df9Lk8Djd57uImDpntJ7s+sJMeBPTz/QBpo+BNrBnGjeNB6OmymcXg0hA6B27vNbxBw3tV1gEAz4PKO9t6Wh/KABjeLxZsz6fTIzbkaKstXwlknnVM2dSI2KEMtHdiK489ZAH/5jKrSivPAwb4j5S34dEKzb0x43lc7GNmQriZ9vSbHfIATv2XudOATifxMKa94a/HpJR/kHgIElAHG409j9bTLyf3NABKGwWOd3FIDfidy93pvInMndyGj5Wx1att5L6F8g00p/xNzpDXSEbS23qoKAXWHclZpvrCRO1E4cI2eWuVd5648dlw5hFjRFwJK60IISDmcFSO3M03BUCXPp5PsgnJw7/GKAO/FOMSEgiPK0CU84vyQqx7xmMLvqnULbmefmqqkdU3xliO2mcFNAOi16QOZP6UPQR1/Lfx+zRdcWvG6GBMzPpyd28wpkUuKDk9mgG56QqE5blzqtUtQPaGbrvZ3KONMoUhtGHQHCc88LS3+iylmamqPXOY9/ym+tsL/Pk48K587HyzTy9v9YEZPQjoP4EcC7NLAlHWubPptMpTs7sBbSasv7aA4VC8X8OSERHSKQYifyPvWDQPJG7vMG+f9zz+zAMOBtQN87AhQw/kaWbz/SbJrNLykgzyHPEqEMfzfEyWJSsQ0r9up3O41Png0AM7ZWknPfOcAkQ9hqXmhuelnsu48ayfqcPGGBUFr7Y8bfhJE8LA5h3jnmyjTjiQqRxztyU3sB1CZOUe8GIVi208DaUk7TOkSz3oH2aUK6DcoNMBYmBU0J4c0LKijOLNFE8/LwnUpv6e0sV0xE7x/l8zV6J0Sk8IAcxAWAIoLAgqth/KmAiB0tt4Ob0ojLJXX4seyptIUwy9fX+DlMgdi3qVvK/EgeVsj6rWAF9dZeR3GyS7irXQyPMlJ0OlE8tA+/azT71F9wVkKB7UXBjm0YzjvppQ4vpvUbS+RdPl0ScZj9MjTsUitkRWUL9yUDCa553XKy8D3b3Hq9/JNZhstAzDp3eA/1v7kOccnrFyncoH6csB/TCNrz37qsHtjvLmU74PYmenNLIyaA74RxabNhrS2c8VJe0F7gBqWRXK2qtLtoB/nTM8xfy2NJycDvI4nXZ4uUc62b5UySrUhv8Gb8PhLjrrBVm7gf/Eg2NLNAX8JtOuNhymu4G/AxQ3gf8ewG+eG3kTO1BBylPuimtkG+CmbrXA0Wd7QLvXSHt0bLMS2jRYE5ndMnY41yq3Zn3+1O03AG8sfwL41ePi6JfcKQSAYzpXPl8NIYWpsPK2y4u8OFLx9BOlkJ0QApYlvYCLKAN8Cuk38tn+IZ9Ww4zAjKhW9agRzgP9Ir4zEK3XtqmPnJ766qp8dcW1fUBmoVKPKnlpYgYgJ/jkdi4hQRgB/xG9wWxk+/RG1x7F6jfGg1FQBfANXyqzT8abqsNZ3e35Z9wlWajf3TNEHRBvTy2i5lOOi2XFfw/Y7/hpA2bPCvTEuNE/mvAuN/0OXefg1RGfW53IwAOB/ntBRANEnM7UqHqTrsvZ6r+B18r15rN5jtvrXnyrB/zLRl5ZypyF5OwJIxk9N+E3H1TsVNwOMsrjkbz8HnX4zAHbHj7rvP0b5ZxOWzavET+jxFpPysBD4IXDDJShDu3xNmkNxXfqTCZ297GBB6hLVvhUEF9ZtJNGzbhOHg0P/Ryj8WqXF111Vpl8+JOwa9B7DT0C2naSNoB7BjCKp7+ZR9sJows7IvNp8ql1Rn6ejg4bhhEdAP4+H0YB/hk1CtCosFdBwsZjrEPdjJ4tdSBlrmC/pNc6XoN/KU/uQ8K9nXtqPYrnPxCBA4ohQETA9YoY8sk1nOP8cznSQkIAxZjOB5c8lOXRApq6t01Tk8Yx5KW6Ox0o9ePO2e2I0oaRTVEAfxZbQpUIsSZGDYZJc3y6psN9tGR2PKdr1QhmUyqC6YPdcDXjbTTnkT8uNo2AQRU2q3EDvTOioaPCbch91OjI8sXMN+oauXOQ6Nc6H3gidbpb+qdN1zLeUYh2wmF1bfr0DuC/x+m4S9ft4HNPaA/wQKD/XpL4yHGcqFHAIyPjaF0OwLzcY3Cj5G1e9Wxh7gZruwrhiOcBtgM0AlPN4Nqz/HUr7QDD++jxDIeRQuoNzB6wNmlm4F49v0+iW6w0J+8zvPwD4Ohy9vqg7vsDMOOHJdSYUrsh2m541VXmesalHAPaFeKzByTskGMr/92TxKRcddXQz2t4jXz9uFemHgAZvdf0j/b0FulmLXizskjlStms8SJ/4p1GCuuJYhEwwAJCqXse5VnFSTz8XMNcvBW0+PSE5XJJXv94KWnSgRQAs4T+VABMAEI+1CJe5djQKjuptOXDroCXy/Wc/2Q8iTFUa7mz6ZzqrZsO1WXmtl3ECcSVb17jLn2lVz+6LLVfiKwaVLZzbE5FBK8fDsfNQI3qozZr0g3A7/Cjri/Xfr9n1bHUE6ir3ybPI3TCtAEYMO/Me12aerGk1e3pFmOEJ5ThUJLOZB3e8PQcEBA222YPHWnjW+lhQP8p/WoLjGzdLw3KzeRWNvIOpKyKUt3nQZpi5aJ4N+xpG62XX3hZjdICGw3gvcmwXmqv7er4BnS5Xs/Rs3BArPH8Poq3fxS2crNR5YD9cmXk/R7k59YRm7hIC37HX5w0G8aF5j9QfCPyNoOnZ3pwNe2PjpHbOcHspKG8ONqzY0GOm1cWqN0Q3RRgWJaUn/HIjBp4BBZMmhEQcY/sJD8tgD48wO1wrSw1xpqGz40mo+2Nh+N7XUiDfkMb6x5DqE2mvYKcvbyVoxWdbccjSUm4hIjnsOL95SVztYrd/y5f5ZQcAWDVf7PPcOPMozi1AoFiBHEK5Wk8g5ShEBG47AFLoUTV0yPQs7IAACAASURBVK9BdsrcGsGuEDCqeyzyuCzZs1/eCs8Mooj3lw9YeAGH92C6QDZLN8COBMhWaK+NFz1D6bZPhWTVL+wG91oPtbj7j+rUjDwdvcvTPxt/6nSfQx5eryl3jledVnDQPK3Sy8bD74J6B4DrtKNVWs8Lvgn8zapCO+7nXvVpTet5mwHcEhJuaFddn0APA/rvJubsMckNmb0GuwGlBQfqi14m74CKA/jbjS/K4lYeD225d55+bvlUL4dSVgowk5HfBXBmcpil7Ta9WAODGbFZgvUHSINxvCVA55lb6bSBUoyw+/mcRUNOJ3ndj8hxVm5psi1Tc+V/sDzS98u+lfy7+WweqJOONQBc5mKYq3G7X7ZB3HxXgPaZI/TaE4TJbFh+F9ywudfcOqEn5Rc3tXIYHNVkPRS+fgnSJxPw/Pn7H/D7P/szBIpgXBEZEAe/2ADEyO9NET2f4vY5RqxrRFyviJEL+AZLiE7Vq7JZN5T8xdBMmXCMWJlBK7BeryAirOslx/knb3WN+ycwp7j/9XrNewiqx7+UNgPiEeDXp5BpeM0KTPtV2vItxrYaoxwZ1+uK5elH/NWf/TFoeYc//uH38cuXn+X+Egr/FNKU9kZQyGygPfRSZ/nlXFRNu7IfoBiLer6u9ab5uGNq4pGpbWUB6XxsDsN3BqT57Rk/p4yxkm/La8hZ9Ono3iiNxRgD4N5c2zPHmlUFbm71/X4v0G8vE+Dsszir/ofi3Kj7HwL0J31wfwUVb4YBQ3uqxqZp5JHJ307iTlrtpbdKYFcnMIC/iFAGQ5VWAH+TzQhQG2+95ukPJqPl1AcPrFE732uw71naTZ730EkrBtaje5ibjzSaK7akuuf43pn2yep5rXxbs7M1ONtLuk/fVldTA8SkKTK67Vs7FOXEbf9oAzLSJR72I9uX2wmlFajUGVHZINYVQ1WwwIM+Y12fPiroPP1eBQ7sjTaHvn+Q+QTq3DM+XZgnjVi51a5cJ8xefqsbtJKwaasU/a0xoir7gL2xxWgAqboEVdoMXFvQ134zgCqjRibCZYn49ukjAMaPVxRXB2fUT7ZdMsgtc1oJq+HyW1Cp9LVAGbgrQ6CtngqcS78lAq0riDMglmtIPELM6xLRevp70tq+Nwqc9BOXv54fZnM6A4gcsfCKd8sHhAuwhCgZmPFWyyXzqgf65XvbB5R3f9Dv23IOAP+0L2v9MZ8XgWHVlazaLz2fmidvPjOniSVj72jP9uyJLTCunS3ePRisUxtznEenG1RF5OfrKmm9ztjXXls325A5YT9Y5TVjYqSD9gp1C/B/CNAP4H7gB7ReBc1Xe/wHHdIC96bRci/X1zzPnxvmo2gWr6W9+WWZh+tKgEwKY5Kh2HajYdpSH50gRnnUIT4/LXdAE0v7NGIuHrq7aDwvHCSrTEel9q7317yFw1SXFsh4JsWWDJ+IqHbBWlu94QL7u4xFp626Lu2lMn3xSKfc1TkmY+TmzjURsDtkfpZ+T0E35B/ghE43zcp6pCtutE8X6jTUsDpjbawZwEfSMQnpRUfpT8A7Mm4vn0pMlFCeDLSNZ3/JL9wKWc8UoF8YiGiyKiCXhacC5CAAEYEF8IfyOBGwXkOdb7iWuZ9mJxWsPfMlpU3bP1+xWp13JaxJ/tYY8fHlCmbg5eMLQgxY11gAbXrRZnqIkF7ulXjnE4hc0E/1e4MJqczfIp0O9TkCnLzS30aCH5y6n2LxgT5XbSzfSzsclMyOqG6s50zcXlOXWSaMe4NF32qgycAGO2M6OwuPeAvurlF2Et2LUR4G9J/i6d/g5S0ddScWSCgOVLfO7eeBdgv+m5h9nRc7w4RaxVj4qN5Ylm1J8xL1pRS5LNWKHNR3abLftNlrErbF0LDTGFQA9MTgkh4V3jLynR76FuTdyecWWQb9jb26Kvf66/Za7RdKdVNN00zC1tBNDHBXnczGZLeU7SQRNhveFN+A6fNn28eVLM180nytdVfGi67KZlZ06hl+2Rzx9J27V528TIYs9XWjf27TqzzOTNfLFvD3OLM/SY6e59wkpH+bB1pHjIY63POk2tNKv9P6SwC/ypRV10yAn4unH9Cfef6InNNU73oJIyHgEqpnP4XzcHm2fY4bnsWIQNINYa0nFskbZ0WSWBxFXQWY72bC0QUuBpAtpX0e7RiUO1a3qfrk/PbgQJTAPtXNxhQAUCjjlSBicG4WPZPpGYqamaoDq3Uqbp4FMFkZa/mQFOAIFWfg5Lo3P7AZ2lafD0Kyyj3qzSKXnJtdHdpogBnHTT1Q0YvtMzB9tpsBZ8skHkQRdW5tpF7NT2mWLsEvWz+AfVGcfcamT4k3wrRn8uyccx4G9J9BzYkcznLUsKvKkqy8qXBnTxgaADnTLsZvIF+5LxNNFlTH93vpvY7TDA7TgUo9sPICeHyV4igToebXTGY1ryGJbA7APQMabaigQ9Qo2ZN4WvIAv5uOt9/s6zzU5HNWvbwKKSPWIkG3Zrb62YPQo2xM/0pzUpAy/WWQSwB+45vv8e3TR3zz9AFE3MTxFzye/4rxmA2CqraTB55CBukhgAi45HP3Q5A5oa4KxLiCo5zoU/dNyeoBIEOAMpKpRkXkmN7KK/IQcFnSyT913LRagSidkJPyMHr9LmodVSW+nwEmxsoMXFNeL9crFgSseXUDGfg3XvgM9pmiAZ3600afG5A8ohngfy0aGQJQ8yRtr63r54dHlo8e3hPaMgvDmZRhSlnXz3D7yFQ97e3uj0KfoBxfFOgH+gmXkTonU40LtJR0NVelGg5sAC48xo2njzmzm3G91YcSz5h+oGzWVfIKP1+WHow3RrAadBb4u4oj15/waxSNk1crzBjwN8/fS2cBQsfLUPjrnzey3wv4+wcn5Zusojws6bKMXL8e7Wznt4Dd0xNPvtJnQKYPipefCL/5zff4/Z/+AmsEXlYUIK/Hb9rAiwL8q1HA1RjIoTchBFwuFwQiPD0J6M9BOnmjbYwR61UOSeDshMr6M4cLAQkQAyH7tcVnCiCmTcNyYhAA0LOaY6Sct9XQXgitsqghqaQqiHMdCa+XlxdEDnWjs4L7ab+CAogUAIpVsrLZo9Xb7R6QBxujG4C/6WMT4O8Bfq2PwqCtD3mSb3Q4jZ7TBo2NFGjw2Uh2KeeROeMrNfQ4oH8Etg6xqOB61AFnxzTpUzqaM245exmQXnXeEBvAT+JvQHUilb7dgvm9ZSH7Ww2SmUfUHbgzz34rQDcoN2kHMLbXzvCK3jKZDcmCyoFiaXJzDM1NheR4LEp72rIombyThfQGN7byT/I+o8ZcHqZsjcEp3/U4tGPVmxjK7YHUXhvIrYnnyx55OluJa/jbvn7nBDRdcdvB/0jaWZ6z61v39+bLg3oeOjGa657+1bdlfGiILv0JJfwjbTZNv5MjowJ+EAHiHSd53rpdxEOfwHlc1wTMkR+nAFBAIEox/ERYlqDKw7i+JFAfY8QqYF34cAb8Mg9xDlXiHOpDDI5ryi+vIIBk3tNhTXLUZ8hx8m3liYEibaHnFq1XZJ6rura4jMC8qjbKoL0B3YWj5Fr2qzGygRLTKkXkCA4L5GQhWVkpeef8vY2+kPYs0pk+wOhO8ZEko5476XmDB/brgWb+Fkec5313sBGr6w0moHk0geWzy5FExgm6ZyVi5ADUOn/ggKXRfVu3g/tdC9jrIz6TtnPn5ZlsaNu3mZuVw1XnTcXxsE0ujNyJ1x4C9CcdWxXSDFDtIjWpWBDUHqeJFphkZSbKIm3GqhMGEWGhpR9MDWYhhCUoQIPyNkC5Xx+bK4iygVctz5bBrYGgU35HNB/sDQafC6SNDFunM2xRnQa8mwOZBmm7ezuBrZWzMxiNLPcC5a5vm3J2/J069up25iE5A9y/Bg2PRh0ZrCPj9JXJA9TTvj+5N5rUrTNidtqKzcum9U7+2mtcv3Vo0sgJs9uAcC6QCnupiFYradFvIRt9hHTcIwEUkmOHFiBc0lxCJQAGFZZkQB5XxOuK9eUlAXVOuv7p6YJlCbgsCy6XpQD9GCOuLx+wris+fvyYj9RcEderFLyRu2wEBrBQOj3oen0BAFwDsIQF9PSEJVwymF5L2QBKqwjMuNAFkDJmirE/wlM2G3d6UL4HwiJzNad/rmsqd5TyE5WjR6sRIYZV23Icgeu6ImDFNa648orLkg0UZkS+5npOvC/LkrACy/xJmp1LDfgvALAF/R290TjwsM6eMahT7BqzCvgWM2xkvG9zEwb7sZrFYQPZoFY6vDe57yZHT7POp4h8YBv3yKF2FC+IvtdpRnXzCvQQoH9IZww8CxqU97Cz/BzPYkO2bVFXBtLjVcGVe4T0go3OTpi8zIHg3rMDbGjtje7Z4hjLU/jupdHxcoPEVZ693lvn+ebS9lNjT4TmsWXE7PGewzEgRvmpPPtpcJZBY13mj1ZZePW7i270VO/qZ5M8z1JwXtuJTJ7he08ee8F4Jw/14UDdKs0OPrM0M2/5Ec/+HsP+Frp/RaR8y1120p7lltbR+UoHRtu/Ar1Z/pRx5czxlHV2CkcBlpC8/CmbCvhjXLGuV6xr/eS4FlArYld/ALdzjPoeMrheiLAEQozemSH11KHaztthaaIXG2cCVz865URHmpNkfuVGumwsRFzoI96FH7EQgfmpLYmbkQP4p44oawA28G9/QcojGw4JJ5fuOY/tjjSbZDHOxAlmnQ21D6G73uVxwODwbzmGpfxMwvnPe2nN9S29mMaZkn8L/w0wiH3Cw1J1xYybVZqOj6pnzzCypFeqaSOt0EOAflGq5TcUeDkCQgu/3qJrMnM8/1qxSAMQ0dBLb8+kHsbma8FQFY+O27fQ55azV28mYyS4S086baahhOQs+U0s4TNIT8iex9tvm9el17bWv1KmiY5wDb693pq7RBoDb00a6Hug/BaAfGvIzqPRnv0S/dnr9uQWAwwK5hWPt/4LYPH4M7BG4LoyXtaIjy8Ra2S8XPMm25h0dyDC5bIgBAnhAZ4vIWOH9DKsdV3x8vIRcV3x8eUjOEa8fPyQY/gT4E++IQnjTP+E/DKqFK6UdJt45gMYIRC+efeE56dnLJcLlsuC8IFx/Si6MB83GimXF8UgIQo5TVTd3jdSW1AEsW7KI0SpHqIYS12bceEFZF1d3Otpg/R1XXHBR/zWd3+Mp3ff4y/W38Uv179Um7HjJvN1+qdm6cIl78lBmq/kkoenivU8qceRc3VwbcajvZRexNqIM+fSpRV80/WYkSE3cToSOU7WEahX321aOtEJNqOHAP1AO8E1oHPnxGctLg3mbeW6kwm3ysAuuRfgj3qiQInRN/1htJxevPsC9suLb7wO5T1f/x1Sb2foh3dRa3TNMvEHfveINiqajCrgGZKTh6faW/CkC9F6UttmGU0SqlEJTZre38Hd46UneTKrAe7l7F/rPVJ1Q1OfrFOtZ2oS0x5NDY4mAm9ZFUb2Q9T6PtG1q06paXuiUu6AXXJ4T+6n9nl/HHjXzIRyaHWuf36e/lxjQVT6VuzybPWjaMcW4aPo7jZpuSMavEnFJEg7L/VzPkc/bziNSGfvxwy8WZxUiQURpQ2TOa5+WRYQAesak2rIwH+9XnF9eUGMK67Xl3RoBKfYfTE7xNEkrnkNSTRQppzvZVnw9LQgLOlvyTJoB1bff8h8N4aR49El9U9nBEg9yLzmzrEypw70XWRwiHgOH/DNBfgQf55WPspKiUmfq6L15NqyasBmrnVOqOGP6fT3mobDYMbcTTOgvY2HdL06cuzGZXVutPKwTQe/rrtcuNX+Ot1MU3kr4lp9NM+WinI4DoRsu5BJxIN+1wu5G+/eQw8J+m96HtsQbtQxumV7OWKNQj5J4f/n7k0XHMlxNMEPNDNJ7hGRR3Vd3b0z+/6PNdvTu91VXdWVGZER7pKRmB8gSPAymdwVkZ7LTA9JZjzAC/gAgqQB4XG0WCtTbyXg/mHExDVcKfuupF2bYvcsiptJVJdeb6SWz9zraVNY127Ue2Y/bWhUy843Jbtla2S+7R/tNavOTHMXk2xZ/evC1upb793I6r2bom0VaL/gbQHOdtxRqdfm4Vj32Q49BeJ6Bv2uGI3p7XTfajHAyrZRmVk56LxL/5gwbKrIA9K/gO7i5WjdF1/3CbNj/PG7T3g4XPAwX0A0g1yIx0eqJZ5zYRH9i8XcgwPjy/oMcIjA3mO9XHBZz/FknksG9MzxCE8Hh3y3oLr0KK/Q7a7EAcQBjkgs+9OEd48nnE4nycdNcAh4/jLFi6+8lOUcQOpnLxZ/51w6qQ5offuFDmP0UnkXn9f7yuRisADoJ+wek2pcJ+RPaVUjhIB1ZTyfzyACnv0Zl3WFcw5unmI6F9sbUc/v7Xlp541yy+2ZRObf+4dvNK2aoPtIyodZN7u2n2boMaEab7/UKt7XUY328KpRFOUF9+R3xebpWvYPjJt6omRidN8A8ANvBvSX5wO/tOpDOGxcTuynJGo7xDI4BwfrklNb8RvfrOp910+3Y4Et3H4AswpgydwC/DXT7sWpab4OYEblcSYqhx2DthvjGgLoWJ+afGoDVoylgD8D//Qm51TJpTE5XFWxntxD6qBtRsP3vXzasjJN2gfjuDWtdxNt1npEVa7d8d5J20VumymNkv0S/niLotqqlf1PQ1pp6umsKt0SrkAUqn+3BZU++X1Crlnbv05o26YPPLSeG/RY5lgy9RwhmeTFDpDP+SYzBgX4O+fx4+MXfHd6hg+EwJMYgNwEcABRiO7g1r8/xD+OIP85btY9w/sV63rBusomXz1yc3IUT/WRE30I+ZZeoZ2RTsRJywoy4x0R5slhWSYcDwc8nI4icxzBrzPmSW6yTcpC3WQ6X627TQ2gIwCxewDUxmVP9ynjRUCP0mWt34Oah6ysyPGijHX1OLsVa1jjfQPC49IRHx3LdGnS6JsDNmdT4imv5I53BpD3wX/jwwB0te2aKyIX/LrM2+Y1St+2vsUh1bNeGzbJB4c/XC1jFKNDP+WCNxeF0hPbFvvas/Hv76TrSaCtOHvDGwH9ORQiasuq+Moy9sUrN1EJSQacR21Zo+gkskvTQxtDwv37qdl+9w3tCS/kSH2Lwb2Cgvv46+q4KcVFb5JvD79bAP/bCBtbx78RAX3FdDwMxiaALUvw1wqjTbe3gOc9K5q3ueuUIK5+Z3nSVv7f0ud/l7/+lTjWjzYHxlBBU8DPABLvJjARmJ1YxMEAJqgPPIMApmRgDkEAqmzCDQj6p0duhui/H0/jCelsfZl5ckkWMMd7YKa4F0AJTEpEAmsC/sHxbKFpwjRNeHg4YpkXHI8LDssMxH4+LDNOxwXnC+F8uYAD5CQiJ/cEuOLITl2hqG4ONhOL0Zd31oiGZDElcdfT5k70IwEbURqkH4j0HHkGIyAEwHuPdSX44OGDR3EsZwWM+pK15OVKTj5wIz+RCPr2buaQNxUay3LFA4o+r+K8xvNiDPhvD9/QAG7CLQVej9trU7vKsnXIwtcIbw70Ay8E/o1K9vJGHJ2so+cLF3E4A/ca7N/j5Its4e/lpQJf43ybgcOZsLcRKivUVmjJ7rXtbe34WwD8b02kWWq2Gfs28P/WoQb+vZW+Pen3lHNLnFvoeAubel8O/Muz5CPnje/quVxZhCPwZxDSRlcI8I8+PBHwO3Ack0HjMOBDPHJzXeF9gF9X+FU25PpVQP7l/AS5PVdv9BLrvmBvOcpZQD/S5Vzq28/MgKZLqwmykuCmCcs8YVkWvHt8wLIseDgdcTwsyQUn+AUPpwOcA56eohV+EoVmssdIKxjnEvibhk/tm9svy8Ts958t9mLot6ce1Yqmxs+AX+68YbAPYDD86kFgsfRzAEEvJ7NyrhgKA9aQXwyBPynlv7Ih5CuFvvtT+X7reTkesLuVasDfwrLbcUopH8ZuOb8WJNk0x24oUb8W8H+ToB+4HcJm3MVplKRGNM/2ZsbgDuOKjMPwDo2XfPy5rxBcC72TftLv3YN5X6v1NlndHu48QLdAygvT2VAD8z74r4FUvzhWa2FK0z4zKW4hs8qvfW7z3MgBiKseaXU2Cd07hDLTndSgqhgZhrfVPt9OmR1NhdEG05GVfYt538Lc7x3vLYWR1asXp7RIMpJrgs0nWaT1mfyZ2Zws0ekNCfifp4CHwxMOi5wXL9Z8Ob3H+4B19dEKLW4n+jt4H4/cDOZCLQlOreEU3W0U6EqxMt5ZwKdevgWl2xh6FKpOTs7+PywzjoeD3AMQ3YRiVSTOPCOEgGlyCMxyKdc0Nas+2T1Jy+p2Ur75lIFgXU61XJvadEXjF86EfFRm2dc6wwNHi3/c/Oyck7woqxdq/DfdmrLNPE5yzKVxzINMaSUZr4X+10B2Kme3vHrLBqR+2EOzzF0236s+GaQxv7pxR4a3fc24v+9v7ZbR6rC+q7+PXMNvNQJthTcL+l8UrACo1/+vrRjYxo5MuLs8ZgE/cRpjCvST1X/D0j8E+F817ButtwzqV5PfczO4Mf59wq2TK30z+LcUaG0+1/KtGcI14H+VymLIJ7/brxH2tBlQzEFLT5m8rzRp8v3hBUJTjYBXrOTXLP1be3pusfRf2xu0N9wLQHyNfMq9B9tllVZE6o4HPQ3HMOb8Ln1S+mQinOYz/u8ffsIyi5X9fGY8rx6XNeByWfH0fMa6ejw9PSP4fPoOR9ceRH99Rkh8wDk9HlPrydmVJ+4BSDLG7AtQsA8OEbYKtcs84/3jCYfjEd9/eI95mTHHk4L07zDPePf4gHly+PTLF7FiLzNoWkBuijxF3JPkzoB4A263HeNcjafohKjU6GlFetCF9F+IebfuQrbVLRAXhS2XxYirKMRY/YrzegaI4DkA7DBlPyg52pAIxKqApDfmszx6Oo2JBDK/qTkhhWtAbq/ycEs5rw/3baUSlm0dtNED/Nu8oQ/+OzijkIv3D7e4UN6Lz+8Nbw70F82yw5JYN1EaOh3gz3a0Dcq1fonXCRzR9ELv6YHlwSoXNlJt+e1Zgm117zmgbvI73s7o1fEl7K1bFAgFqC47fb81RsnJDKtcJd8L/FuGt6WjXiOvMsSnsmlP4tsz3k8UFQM8Jkszr3yxs9hOQcN8RmTZsCUM9lhqfo2wR7Gol5LrsFfw3BP4X1OAhkYTk47TP/GdJNQcClu/GGr0KykiBIEx04qZPNYABAaCZ3jzF6JrT2A5I1yO8NRjNxWoZ/osGBejOCGd/MPIssmCQPOFq7ymyWGeZyyz3PA7TxPWMINBmCfGTAHOAfPksM4TpsnBBzkdSK3ytl1bcN4f7/XqQNHclH/J+xK05hUazS9WnyO/K3iw9JWsmnss7oyJHJgDAhMmqCMOI/Oyqt+L0B6cUB8RnH4ydq/Ib4Vb5sZLx/5bDiXWUExSjoUSlmV+tL2puPi1EacG/jnNPv7cS7+nH7bz3mvoqeO+VKZcS/fmQP9rQmlTaD/l5UDKx+8ExH1c1DAD6nEZMs+pjbebmdDgO1QsteTayNcAv/zuW8fKOP3vLUU7BuSdgNCYjDFQqQFv+cym207Ty7MFoa2mqMJ6lFeVM2qG01q/x/QUMRtl4Y7Co7Zq7yWoeqeY51fEyd8kbFur96WtBcaWj2gv/t6yb6XrtUHB4TVXqOuhVhp7n/Zsfv1z6S8EwvN5RfArzl5A/3kNWKNrz+pDPGFG0lp+jOSCE0oWTvnGXOfyiToFSCZ1DdU5YuZUtGwvEeC/ezjh/bsHHA4HPJwOCFjwb3/7gJ+fDvjnDz/jD+8/YSLC8biACHg8HTFNEzxN8HBgIG449lhXtfQb11Tb7iFkl5s4UfX0IdmMXPPPuIctrh7op7ZDwW9hFQ4Uio+0MfBh+Qk/LAEX+g6f1gMCHTDTAWbX8/3Cndhjq0S9HLTZ41S/duitVO5RyF8S8sqOAn9u3l3JwXwv5/0tpN7bys/RCFDn+VZdud4O6LdWBLXw15aFW7KDAfzcgd71KoL+VibVAfBNKHSAEvjvIrqH5QbF5SWw+tko/i3Pb8+nW789Vvsbl7L2TstxfVumNkq3RU+tDLVRpX90/OwH/G05e3jAVv+W6W0F0z8vD6PVt/0E1RBD/t0ka48F6La0w2gb1vC9oQfSR+81jJT5Hsi/Bvz3hi2ZNM76dWXW+QrASBQVz8d5WAFr42XwvE2mGi3iJwvQWhHgA+JfSKf1VAZ5U7aWqq4kpYFIFH9xgZHyWjBXXLpV5C95TJNY9pdlxrIsmOcZzs0IPOPz+Yifvxzx4+mzACkAk5swTQHzPMEzg1nuIvBBQJyuWDDrJtlIbaWUQ2Umkchhrogz8i5Z+IG4AjJqd5sPi+eQqbu4OhEWesbjAnwOM35ePZhClYtRkhKQrAezxRPFo0Jh6319SciAP7dpGqdIj4p3WzaSe4WijDrvAvPk8gvgH/tnD1121aZ91oub22p/B3SO394kbizvbZ6ZpvHvDZKQjAu8vaK6jTEq4m4dDLVVchDeDOgveIoKNas1DeKWmSgzyI2+ZzjpMWWp0bWw3gC5t1IWgb9aXOyegFrhuMW9wS6fvTS8BUtsTy/KL6PJ4M6d0mPIQyDdLZvBrMB/H23XAVzPynFD/Hs1UbuU8MJ8BsJ3WOzLKnDTkjtQMO1eP7dLvzT43ot7W9BxWC5d27zbMTEC0fcJ92Z+dwhU/TAyoJQeBMCBQAhy+D6+Oz3jh3fPmNwZk2MTL7UmSE/zBMFNM4iiSw8RAsSPn5nkeEyKp+SA8mFApONK/fjjqgGHBL45/hYgLv7xx2XG5BweH+QCroeHE47HA1Y+4X//9CPOfsGXi4jv//7yiEuY8OH4jD99+AXz5HA8HuGmGXwhsAdCZJN5hU0UCmYk3/zC7Sdam/XEITgHglwoNsWNwS620uovGfhzfZimHZcU7WnxGFT2YHBhwNc9B8/Pz3gOzzivTwABflnSEZ8wqxOMDPxNLjJPlO2lfyKATSlT9HYoDcI2j0J5iwAAIABJREFU9qgV0A1j2sbze82y6/XpYAwo9ogtlRSl11B1i2y7d9B+aPujv9JQP9sjmxAt/XmFxMWJVkiQnhJQZUTk2jdXAawl+HqvvxnQb0PS/wwDvzpsbIMaYNKKYhPHvEMh6DdK67x+9aFfCvyRjwRNv1+R97Xl863wFgC/huvA/45lGSvquO32MKl9E/BlYPZa3rz589XhjsC/I7E7xX19wJ/Ige37Mn3f8tO3Vr0W8Od8uPner1emI3fPvjG4k5I75XOf0Bt+ArIpy438NFn2mRxIrlzH++OKf/n+Z/gQ8Msz4IM9x96B0k22ko9zIZ5mM4nNnh0YLoJ4sZYv82zGTvyLlvIMqvNpP3ryD/Q3vGyUPSyYpgnH4xGPDw84nQ44LAvOlyP+8ukDntYFq78ACPj5+YSPzyeED5/wpw+f4RzhcFhAzuE5BKyBzXgwNXRO6mVAf3LPiQ2sR2tqC07xroDs4MnwQb+NjqpWC2T8LpPMrNgY2w3Jef1n9rjwGZfLBZhmBO/Bk0u5KQglpmKUW2t7IoMU7Js+0ZC+UjVbOgBtYwr0DYx9+X1tRt4D+O+Z9S1Ckt+2fV8L90c12buifZ/QB/69fU9Nyh1Eij6v2lF5j0VHH40ffQWAYPDM3vaxImgHz38ToF+tBBqKOqsV3j4b5aOZbaQp2ofqiS4xtjS8gk49sz8dZVZaVJuOHXU4dd4xkuVfmCIVdO3zuesBkTJND9xI3O1rqtWHrVkbNCWn0gZxur9L4nI0+7ghBkPwWPtYXnO9sJbCdnm2tB3epIhiey4PfbRtbbM+GC1Ztl31YwAIm+XvVwRd/i2KGCgCA+tGNDbqpL1a5EuA/15LjQYhh4y/aV2fdpl754rqncP26Ntj6e/H4eJ9f3VrVO6+8VW0F21YPDv8raCZ8sN6HDIp0Fe6xMWFScDqh9MzHg4eHx7OADmQczgcZvgA8BpAAQjs4dkD0DP0ddNugAWrQDye0wl4niYHRw4hrBAsHxD8Cmb5BDM4eEEKyH7vcma9EyuhI8zOYZ6cXLh1OmLFI/76+Ts8rQdcViB4LzLCzLmny4L//PQdZjpjJo95JszTKnsSWCzq7OQWYJmE0k7OieU+yA1ZYOfExwnAFJUY56Sek1r6ta2Z4VY5BUmfJUXH9k1kQSLLHAIY8LF70rKIpA3MgGes8XhUsJcN1CEDa1Xw1FCWAX057/UQDAtiy09AT+/ogfb66x6JW/+i4kV81h34BBDf145l28IQn+d3tUMlxmdknstRaR0T1XvRtlRd57vuGyj6OP8uLpUDJaxWk8hlwvit7HSuYtvVJosb6pDjccu6e8CmU5fNYNJZb5FReBOgH0AJtmCGkQ68+K6Jn35y+a6nbVnAZxhSoQgwkkUGVuvqlaPpkp+z6dz4PJ3fb/MYKAN10HgOLQAv6RjNxraNWvJbdwC1CilTyM80H5P1AOw1fXhHB8aW/3SYUt083GH7aoEzkfU4ui7N1bNN6gfdw504NXOx6XqrPamqScGt8hmEe1xDYxlc0w+NItLSY/tABHcv6v5x0be+A3bm74mjv8uuL2s40hHf0qqYum6M343f1xOoBv5bebfP+/Eyr80Nt2dGZdqVJw/yT3zdRRgXwTQRGBPIAb//8AV//PALmBxAExw5HA8LAgP8LCB55bNY34Fic6p106FImC7JO0dYpgnOOZzPAuzDuqZber2/QIxRknZyAvbl4q5sTXfOpRN6Tscj3j0+4K+/fId/+/mPWD3J3QDskY91FV796XzCl7+f8LA8439+/4zD/IT5zJgn4QyBAYIDZhH7FMG+fDr41QPkBSA5Af3zPMMRYZ4cnBPQP08TwIzAckfBenHgUAJ8+az5gdR3muLtx7Gv5PhPgEj3BQT44HHxF5wvF1BY5AbkOfdoGhcKcrq8pnY3soKrjJk4Qf918WU0SmtZX+7zy7yk5BftvCHa50O/HXiD78HI9pL/WaDP+pms2CW5t3oRlCeE5WcZy2xVekdZRpYXsr3qE1uK3qdhMojfSplciidOccjI3z7VVHzvAv+a/hGOGQXTL3u8Q94M6K8tP80EjA2VvXAqZpIEVMyo6rwC2I9oSLRw0enUGTSt/BwJOS7rUQ2iq3I45pEM681bA25MGQlMmTTM/XYomEPKzgzWqCkX8bl4OSa+idMB0ptpamCQKC2/UdXONk13gnERr0uFBbdXTJSiV1RjTckv+nyjBy0hVl7YMV0XzUXm3ZpIMjKX3Lws2PmRx+12jmxptCFZBs3o5bpfy7yHM2xjCOlnK+TIfGrD9gB+S0dDQcWsmk2RxRjOm733hZbmhtelctvyM30ljfvKbbu3q7tXafRheW9rJ8jEirWo27l2r0sooV92Avv5pB6Gg4J+gMBukm6eHNxECEzwEUbas3UU7Iglu7T0K/Mrxn/ktwSkM/D9uiJ4ua2Xg6SzIy7N68BCXpzYjhwm53A4LDgsB1z4iI/PJ3xZD/DBNdZZitQIUJQNu6uf8PlywhocQJ+xzIzAAY68GeYU/fXjpgVy6UAjilZRIoKbRCmaZl3FiIpxYLlJ17opxTazo95CHqXcNl3Rj4Ucj88DgynAhwDvA6boC5TdgTrCtfotUW8Z+6OZQrm8UXZDdqHM9zq/vHWFsi0D0NWL64aglj8UsGtgje/ve2pyLh9V8jCBXFPfvoy0gANZl2TTryHWVrEbG8ySZKm9lVk+Qm2hN4C+pNMkM+y4e/qVedZ348ljqN78n1ZVYrwRgB+9+01Z+hWY1M/sD2VWauGwVg4AkTlrZ5enLiRBq9allF7T5gnSNlq22JO9JEQbmHMesRQzeeuKFNmW+XdaRQVQPgLNClICmxMhCo0cmdZ8eoQtdzCYOLcCRUGa29fWkaoy+8BOPyh+qa0cwbRZQV/q7+uBVXiWxaJFyEX23RawbcV15SvLZJ2eUJChxA35ogUOlL+mZEUeW1nVoI47r/ZizJ2hoOXFpu4koeRfWw9qStkmpsiy7CGCEVKGY9fCrthExdzJ1swjpY/zvNC5SHHDaFPN4kcNaHuCzsYd3bDcA8odsIxauFPzPrXXi7qzhLQlFCMj67k0Gpg4uR+wgw4R8HKSprjWRAYNwCEACBx/0yx9Nx0QHBCmI/x0Tif1MAtw58DwcYNtCCu8vyD4C8J6ib734p5D8eQbaWpJS+zAIeDpyxexfscLvNQliIgxu9g3Kp/SygHBTbJiMM8TlnnBD99/h+PpAX/5/Hv8r7/8DowpuSboJkHA9mRu/+f1gP/9058wO48/vvtPvH/4BEfPCH6FByPE/QfTMgM0IZCLaw8MVZAmEh4/zRMcyVGgh8MCXlf49YzADL9e4P2Ky/kZ67oirCsQfLLcS79Indt7INRKKu48ctGWWvLjGArA6gPAHpfzBQTCIV5KVi5yZkF7AwTdGFkbmaA3OCVFMszFTqlncDk3ylIS0I/tUb/chBBRrhbjgIxs3gjjulqZ1LuB3H5XMmv8ZNooYXuzYRyc3YRNWXXLqodCPnHKynXOYIuBgOylUXtDOE1XrUYTCGT2iwCiDKT0skQGchqH+gMqtnlylUsUlgC9MGaYr0E39Wsbsqz6OZf3GjH09K2cJ0XXwnYTfT+8GdCfQ19gbcfPg6xU2FqBBqAD+PeVVy/V6Gfd0HuZS6LLjgFl5snKzd0Maz2vBvzpe41wzafNoe/fnuOzTlaTxe562mXegT9ECXtaVtkEi4B6+sbgSaXrZxk8ojvmrwpAqXSZ4rlu+PqnMsmSIfaXeivhRXX7jIsaB8nhtrG5P2xd7tQrk6pxkHUrbhhqVxGqQkfM5F/dNka2Fpo5mB9RWWAxR7XMAZQYdtYYknTbaBB7/Hacop3f+XfuhjhGug3NLc+simuPTQR0L0kJyziPcK7nRD0/yndd2lIfRus+kYALys/lZB3GHI3a4mQDeNVAQpBLuQLHW2rVym+th6qt1FqLghKO1n09r94XcRUqceI5mqe8JUL0mXeAO4DpiEs44Gmd4cjBTb2623mkssPh7B18mOD5AMYCYIUjOcVHdY9shDFgNF7mlQxrbpK7BqLbUnDan9JOwVj6ZZ+C5jS2UbaTqeUXyfAST0XJR40OmXWiaztsz6ou57JgH+iIr2qvmImtdemxhA62b+m5AtyTiK+xsKHttWF09vzQvWeD5ILPx7gd80qTpnRN1gNPMlfJSgXncgw8IHC6xTkVE+NY2d70k8UYheFvo13rOiLXsbl8i8v3dR4pH4PXXrsP4k2B/tFFEb1gfc1Uu9K/EEJK224G6w0qLj7FkGK1QSQtLj/ifnrTiUm5GGiFxedmMCsNlaU/CxTLoFJlI7/Kfuqc6ueafJJGqlmlNuj3QVGtLbNc/c5MHldovRWg7gDsXr6K/8vNpeO0A6gmceME62IkTZj8dsy79PG1YPX1MBpmmVdeFyC3lLXLJLxRJldRuoorVbimel/DrxcHU0YS0nZoDhNSTszRIvPilQ+lZS+AGSWtoMsrhUQa2QXSV15Xgvp+yprG0QzM+RWrdYUGaGlQ442AU0kkn1KGKAFMMw6zx7989994OKw4zmc8rwGrZ6yrbHJdvVjZLvHiKvXDBwfZAIt47CU4ubJ4v4Kj+0768z7KgejSQxns6yKxHtEpnRXgaMI8OyzzjIeHE+BO+I9f/oD18wec/cm0d4jtF+nIFhnkAxnyp2fCX375EX//8h6P7r/wMJ9BIcDHFfHgPZgYsl1ZLvByTjY2z/MCRw7LLC49cPEuA+9xWVf4dcXlckHw4sYkm5MLlBUbTZ4FPeyCpsSZRQaZdSB2JrEon94HMHtcLiuIpI2q0TQcS6/nx7fM460xLaGdm6US+5J5Wlrf++9emnfMBeVFk4DSXWKw/DzzhjorOfY1AXhd1Sj4fcYoqU3ZfId+t8+MrCcXFWs2PD3ul3GUVxKIwFGRtLhKg0Pc9KsalQH7GWtmGgLvu1BtdJCI4kW16gfuK7gEXdXMNMucjXi3cTVow5sB/b3BuwX4e89sHvb3njyK36QAkorfw3nNUUBzm0/S5kboExsaM5DAfvHMattXtId0NnJHi22ULIxoHVScNvXdJm4RdCLZPIp67c5YM2yt8D3UxvYBN6+VtG641jZc2n4r7Fo821Sn9vDnXrezMrR+WVvhZpGQEHIGHsM8e+/sSk0/Sn5Begxlno/jVZ6eENxqgSqDLUWzEHBVmi1+o6TWr7faTLMuou/vpa0LYpoyuUyzRVF/xUCBf0Z7Q87QnX9m3lPNKngQ1wrdaN2PLj5q7efk3gNMjvH++IT3x2es5gKui/cIgXG5rAiB4yZZRvDGT52i+0ncYCm+w2LhFuDPBuzrX6SUEY+81BByHGP9cyQbXOd5RqADfrk84im8jzf6xtYtAKJpcZV3BQiS+J8vJzCOmA4f8W52cCw7HQKJa2W8aQDimiaAX87inyNNk7j8cxDLPnO82Te6QVm/fhijSySDq8/Ue2qI0t+WtyaFDWkVIa2e1IY3Hbv1OIWNh+pdDvVsf7m+Pp7/V631HSCY2et1gkZxGqvyiwMVeWWAr7+zEpBCMlykHBDPWirlY5HOSsVqzid+r65MJeBvMJIZbAmoJ9Af+ZXb6JdYBltrEJfjVg2nAg3b9t17OlHh16956wY8igpBMUazjCvoiXW+VuabAv01I9gbVOMs/KgGFv4tzTgnRtHYaXllcOxh68sWy9ShPjhOsgb0VyE0lXEK9xxTRneAaFnKfM3gt3Otl09SeKDpdeVhm97i7Wutn4MwtIY2KwiZgXDzvXw2pDTlGWejfV7zqUYIVQCu+t0LvZq9vBW/TvsPQ8X0e6Fh8ZUiAFigX3P1PtCm+I5svKq8gq5OmXtDvXH7teFe+by4/B2KC4DuULplVaKYjfU0rSPWwt28lGM4BfQzHMB5Q25gwDPwsDzjx8fPOMwrEL7g+exxvnisXqz658uK1Xs8P50ToAUjbcBNfyzuOgwGxyM42Xs5jjO68ogVrlS8WyUGsT6c4s2Tw+FwQHDv8LfzPyPQA1ac5EQfXSowbSb7ALQNtByFVLl1iShaLAmfLh/wdAlY3Bc8zj9hQkg34ir3c47g5gnOyQ3AemoPAQirh/cr1ssF58sZ/nKJln4PH2QTcV6NBtTiCtgDBMq9S85R7LMgc1YBKkQJOM1n/PndX7DihEuYcTkD4XjotmWhM2yMxfvyVJPHToAHtNjk9Stx43APa7/FZSXQby39o5DcW2LkOr08FsVzI5NIj2x2j+p38S7tSDT51hI9zRMSK7nd/FvXu5evxYW5bSo3b8559PIuyrGzI8311kvF0m/TJXoQVxyudPObA/31M2B7sNrBM/L5azSirZWA6pF1eSnO4zfla7xh3UznFOlvAfxX4tTvespNrf3W5Y92hFsprcpCuRmlo+VWv78GW8ttXiHuLm22Dwi2Nyov/36w4LM7bizwbzSAgsrRb/t8FGqbyL6wZ2zdsY+SVWZrTrRl1zQMAX+OAF1dadKYdL3UVuG4VSGt/XfvEX5twH9TqAZhO8p7wfA8tSFU3TtenKmBv/10BvhHCMsk/vnMWNwZf3z3d0xuxeqBZ894Pq+4rAHny4rn8wXruuLz56cE+KUaIX8qOGEfl9DF7YeDl2M9FfST+L4npXPAItmAforW9GVZ8MTv8N+XPyPQEcdlweSoGbwlUMptoithysuUw+nFWp8v7/DlecGHw0e8O/wCRytWs+JAIDmSc5Jz+JdZfPinWL6/BPjo2nO5XODXCy7xhCKd5+o6QQ2PNLLI8GMFXGmTgwL/CKKO0xkPj3/DhU/4zy8/4tkvybCnGLNs1/xvL/zac+xbgv1euGX1r0xX/raY6yV10PGfeqxa6eitUNg4jshsbi2Bv4JlBezDlQ5CsqarS3jX4m6s/IULDxlsqPGsgmDhCIzhd6u5OmJIV/CS4XUkqrjmDePwJkD/LTJ35NqjoF/9+XPefTDc0lDBMau0dcC+TTcCy4WGXMUp4u9EyHYw14NulNcWkK+VEZvG0lhooNxO1F7x9dvit9XCnds1AFKKrntBzGtHXyeGYiy8tZVmjzVoH6vbgptbca6HrkvG9lDoPuHe21o4dcvPzFldx2zaW0RBYTHfUiATAx73VVeRaqVWnw7zjup01sIVf6dx1KG1KKGie2+PNyNlpzWx5n+vAxejGV3G6I4jiEpdx7ALplm4xpQVzs0jg8wzijkTmDLYBwTsM4DTcsZxfsa75RlywZYoAT4wvBcAq3/pZLSC+OhvTi4Cf4DZSb8nDhk/CfniKVdy+dQGrC40Wba4ycE5OQv/sCzwPGPGBI/J8EV7hnwGSraF9CJFmYvxqUYLQe4jgBwHuvIBPz1/j8ldcJw+Y3YBxA4BLp3BLyeGSD1CVHpW73G5iIK0rh4h7n0o9lERFScL2d5vtCDT/2IjUX6sO2q0bqJQ+eDhQ0i+zmU923nVNcJR86WgQ/K7DxD/WoD+Vk+InqX/FrdneWZZ2Fj+NwaXhH0rPKFyI4LhBGrRVzDSd/OvweIo3JIt8AYyboGxziNiNsqn3igeKlYIOlZ6m762QxSGU0bf+6IQ11SkHYUCw3Gum3KiHj7bCm8C9Gu45oc/SqN/BQOPgFutCaoZlksy/Qlw04SNHdbrVOdc+j1yDboV89m9BVsKR5GmVjg26jxasShWBjifb0uSWDPugq6aUVjmM7mN5byrYQOIbIyjAqwOgP9mqS8Yp79+uD+9NfCvAf+11vwaFnPN69baNn2vqwhmXBTL2epKaCQiAdHqbLKp4uwNo9jXxummovsVwzUOFAlJcTn9LIVWP59WURag78CYICfxuAjsJe8Pp1/wrx/+nkpfA7CuIfnxX9b4d1nzCjFlLqngnZIQZ6hFmuMxn+KO5gF28RhPHUfmQARW1wE5BlQeygGZyzJjniecTkc8PJzA4YQDHbDygqlmi5vGFi6iWR9p5gCQAPN5cjiHR/y/n444zmf8j+/+A8flCSs7BJYjPOd5jn79Qr+P4P58PuP5+Qnr+Yzz+Qz2K/wqKx+To2R9pRE/r+RtUvJQgsC6LiF4rMFjXVdcwiVb+jmPH9sKFmR+y/AtrPa/tswZAf4aT2XrODXpGHLyjrqtuZABOPOYc+fVgTKKxV21S09jzLSAHyU+DGlPSqbHAvle/WsFQYdv1x28Uy0X9xtpm8kqYmutrz1LlJ6A0LzbE94E6FdGtel2syNYN576T0F/bxWgLc8sp4zSbGlu+UE5KDHoTJMsdZwOoA4DS5s8Mm8fB6P51vXsabEprgX5VnGhNp28JBt1OyhAHK26DJ6xTXtjGFlytoD/SDn6FiBqb9iyuOQ6x7jjTPLXjXc2jsjsVnnqpukA4SJGVX6Kbfqsp1Q0QMgCdSC5Cgz7apCfHZ89Bs+ddFnQ5Xf1mE06c2eubIH8utw9/LEe768GDMZytxlnM7AxDMi/GbiRSU5ReKZUZS4ULftiWpf4Mf1xXjGRx3H2mCbZYOiZoKZ4Ihf/QuEmMLl4ek0kQi+hAjOcQkkv1AQEMDuxs6WbaBW4Zjtcot4YpoB4ZVgse55nMB3xFB5xCUcALvZVZz4NeQ43r9IJSXHzMUX+L4eazGB4cd9xDswOxJTqrIqq+giH4OOfHkUaEEK1C4q0faOdviKZCJ3xkes5Hjk9HmzEQJJNqSW2kr6pMJ6T2zKokeMd3qTx9sipkfdES08HkFbYqAD9vQ5gJOt+3zpTP9Dxa6jglo6aZguOc84V3ouA265EWOzT8xywuNB+9tr6qkGWWpoaF3BTdiqzg9luCW8C9AOlcLoFWNmBtixL8Uy/AyhA/7W87WUILY4vgXrjJ99J00Nbo7jJ/+ta1cdK8ThJAU5kgGXLZbWphhguCaBEHHRVQ3e+p3FfxKuYUshWsASGuFpxqYm1eXBZlgIHAQf9o7LuYY23edTff1uB1eg4eF0zq62sSlBbf78WbLzUjp3yawPA0I2oEgA6thK4LFBHSX9dp2TptaiiAv4N4O+EIk6tiGyke+tBFK9aHI1bIoFCO5XB5rdFbamU9MbAZiRgHz/Fl98Bbol9RHAU8Ofv/oHvT79gch5ws6Rh0Q0mOBADCxOIJpCTv+ADLu4CIB5/R8CkJ31wPNGfGcFfAGasFxKXE6+n/Mg58gQ9TMIqsR6BfQTKq1C+zJicw8PDCafTEZ/8P+Gvn/4VTAtonk0LII7NrAEZiFVOwAT8FTbEo/+Cj5EcJiK5hMgRjvOM42HB6eBx8eIWhVh3IIC9uNKs52fx5X9+xuX5HC/kipcIkQMRgya5wIscye2+Sckp4GvGK8WUjPJEqEUd1AWDHJWW09/6ZIqhb1gCrgOA6+FeK9L20lPtV0D1vIyvRJmmRk5yvC0XrIYDapTCnhU9W/5LpdZ7nzDF1fopsCaUR11S9sRQq39t6U84MNYdUyn79ahMi4GaemCs4CQMZF9Qzks/a8OPF+tDt3+veX0Abwj0b4VrPmg1wN8C/dfykwiNDKpet4C9XgHoWRwa7a1nxXjFZO8ykIbttqBVteJ6eQw0YBzaPrVUH7Rr1pApC69qMF+p2AZizapvjnJ91ai28Ev6sRVD3++1sl7Ly+b5krBl4e/G2Qn4b6VBLfC1W0uRb0exywDgjgqUjrHRu2vPe+l3Gh6u0WSVlm7sgfL72vFxN5cA0WBKy15TmwzT84ktKbL9MA9zm5vpm3Ivxi2pWw9FxBFv2iJ9BhwWj8fjJV605bLyQICeE54s/c7BxRuvnI9+705XhqPlmwMIctuuKpKOCIFq7s3pT/o6PhW0lPirgFjJn9wMcgd4f8KTf5BTcwo2WQL+ouU0f+V9sL8tUNJxxUmpTSscNIExg4jh9EzymAczy4VlIciFY/aisqSA1Cvq0UiUwH4tZ2xb0WCqSg1cIt2s1pMqfEb09LK4Q7gnX65Dz4Js06sydA/atuLu4Q39VQQu+o5iv2xaxtnEjUN0i103ZZo8ABR3MW21Z3pmGdBWmUYJsM96eec8C+27oD25B1HzulAwhuREBaWLK7XIAX2j8GZAv2iKLXgHWgFWT5LR+x74t2E0IcrNWDFu5mT599cI1eAYam4djbBDdPWTG26pFv7aYspgyElqJAaYjmyvH42G2xhv9pfprobNNPvzq8G5XQV6KViye0e+dbiHixywzRN31aqu+x7ubssXE5Lw50qhtJb7DG/iI5s+Z9alLaWzCuU18F7TyBlIFel/cytB28HYsjBQ3bA9Mrbedfgy0FiJhYroykOTAHg3A9NBngWAnQdjRsAkx29Gq6Se5OMjrwusHsLKMxUkM4KXn7zGDbTsgeDF2rnKUZ3BX6KryxrP549HejLHW3ilTNnAGwAEEDGmSXzlj8cFblrw8/oH/O3z7xDofVylznRQ3PRbK8Z0BSzb9iZqresOABPgw4z/7+M/YXErfnz8Ce+WL2AEBJZ7B3R/3Hq5FJZVdUkCGMQTAMYUZbeL4ERWgQOoWhlLsIXtjG1Bnc57RxOmaQbxAUd/BIcjpql3LfEtoW68+6kNrwX8+vsesmOIbe5gBCiAr1H66ne11TspM6WuL2Mj3dwdxz9TwgchiO96gNlHhdvkXeHCE+PrXp4u/qnyJJjTptrM8/it/gpXpqpdAmUPCMd5b4Ho+TpvNg6AeWF4E6C/tBZ0tLTOINNQg/6tuL18exZZ2V9Rad+qsXV+y8P4UZ/J35t7VH1ei29o6+VT11lp7MnkWuu0A94eSTWqnyW79k2WdulXp65WMWE776+GLlPLzKWetBnXkfndZxZbCmI76bMQ3l6RGr7qxa7yyy3Uw9OJEirbtR5gXepeIASuCaVs0DP16AB/AvobXyvaahBfQ4Yahmq8Lhiv0o8Ukj5z5y59lsYm1d72NeDoa4VbLXvAAPAnXqfPOT/PzCAnK/I1kchEMMmKxZcE+NWa7yCXcQnwR7Q1fuDPAAAgAElEQVTUZ5r0NB95FMCyuTcKUgX8enGlNZZwfEeB4TkIYOcADvEs/vUSQcglHdOpgF/BrH7P9HOuhRPgMM0zpmnB0/oBn9bf4bAsOC1TolhXBgyTRgJLJueiDIvsofNGIyjQknwcAGaHj8+PIGK8P37GdPwMz4AeSxq8+vD7eDNxtO5SPJaU85lJzt50CoDUCosylIYzA7IaARDpd4R5dmCWDcazn8sb3G8M1PmWqNngaS8B4VettzeEW8ofrfZaXPAS4D9aWc5/fVZXplNZWY7ltFfQ0Gpvli2APZfm1j3Av+db33Mnqo0/RZ40UNhEY+niqVh4UVf7bqRAvErp29G1bwL0vybYwax/1mJr4+zJx3Zygy6gTDx/auhu2nhV35Wg+2odqFRUGtDeoSsuOqfvRRQul6RrRaGeIGS+N8WlCWBKiflO81yJKih6HYPUZlLUtDc4bxB66oaNXDKs/mTUnq81uby0+VIxxYUluaW1VaRM87yi3L1AdW/+bAkz1sevBnDvYM0CWuVlb1l5WbtVWu5D2bcLma8VSF9fyj9UAVTz2wK7PPv1+DxEgclQH3RmeSvJVNEQIE80gciB3QRxTZnATJingB8ePmGZLjhOZ7lt1zN8EN9zHxgc5NhJZsa6ruZG2Xz0JIAI5Fku4AoeHOQCLnAA+zUS6JFu1gXDGV0oxKZSbCObdsXCP88TmA74uP4B3j9gde8wzxOmKc8IZk7fk1Kacu+pubmfbHCuHHO62sGUl2114266DoDFl59DBv0cLykjkjyZ8ol0YI6b5WsKFQFSbKc0WND/JnQox1dxMzm5tMzxMVv65znF+f9jqGXMawDgluV6b7jmQtMaVnXe30C7zhkC5LK2PKasC5niEacFbMi4Vjbq/KoUYpASW6RWN6vSeNZRFGJe2ehTlixG5DxB7ApDSx8aS7+D7BtIKwYkexMs3kx9wG35vfBmQP81q/y1tACKG3m34vWe5U9Y3NZFJqOGLYD/NwD8tDXqS8IqK4s+5jzArGyJIXD2m7OauGxcs6sCidBO2R1mr5MlHvFWW0ntFOtW7wroF5pNZj3gn/q2emEjFtlmZlbnk6+Q79W/xEm2+D715YMy2zwgR8Mr8SjTeEPlaUTTnnl4qzBizjfudlbYXhOKFbtXooGC9Q9ovK6AD1YsX0HXrxmKzWjFrIwANQHV/Ewt1bryWTdlMYpF2oM5z9scX0C/WJKjWw/NEfg7BHaYaMUf3/+E0/IMv67wQY7o9F74lF9DAvshhOS6Ym/cVcGvIDesFwQvl0/JBt4A8f0JoHjkpoBTY+VUdG1Gkfrvz/OE0/GACz/gv57+hCf/AQ8PJxzmKd0uWrZlNshoK9i2KhrS8m9CpicpTcj5pptzxX3Gyb5eOGIQe3FX8kFu4GWW3wn0O0OD5JkMQCobErON9xzARTlT8S3OQJQS4bnfKa4oHA5HTHTEiU9AOGKep31TvM/0diT8dmFkRHproQb+I5dpNspdnscWx2wVgqLqaU8hOLnVECL4pWJk5/INKKf4WSo+LX1jdxm7edgadNm8M/t0Om69jffKCE9WypnFY0UdNBsqN//qBuVdB8DgzYB+ThszRstTGnr+Y73JYwdp6fLQhvJdBv92iaa7HFTl0a9ZW+aWX9amhb5KdnV1gXO8BvhvTMDa/y2lM3mMAGKT7cZMH4KnkXl+mJf2X7nUV8MTmXNkk+Xy6rJNP3N83izdRe2aqL08PMXTJcBKgG+rLZmmcRsN0gHFUZUEgKkz4raWQKp3pZ1DH/b2vdgsKvRmVm8YLUPWchgdYYJyXGVeXPk829U9jVevDFnwweVMq/nJaEm7BCtt3a8pT932HJQ15CuD+LeEXYpXMc4UNHL9Ov9KlvsI+E0bN21E9WZd6eks8zKfZ4iVmeAi8J8wzx7vD7/gMF9AFN1SWN15dK4qJuVeExtipHwyjxKwtw9B0f9Y4ybGKPzYoBFiOQXITQ5MR/ziv8PKD4A7Yqa52McGC/i7k1qj5bmZYTabOWLmLdnslB9pPRX4C+AXa7+4JyWXpZBdl9LcbQAKMvBX+my89DvPOeXTqRIWwVFWouSGYFnVmecJU3TvIcq1b9qnF+p5MZq4Vf16v6+FPe6i18oYs+UxfhmFPRb+nh9+/aznOj1Key0YnVFT9sc8Mh6ipOzGvSNUjvakFKAcf1u4r6Spgwvqd2zz6+wDsDJe6XPlKUBqPO16pii2qmhmZjnBSrEEVWVoes73DWyFNwH6mfNu7PI5N4NwC/TvEZJbwjIJ9Hh0QJEmMvXhAKqRCXC18a+GgWbYLbcqP4F1oKlHzn4T+af06uuvm34dUd5QdQ30d8hNcW+xhhaTshPLXI5T5MucQG+nixraGstVBC3MnDazFascOub0SNgoyAuhNwCxTdfeKGA2gwJ/iBLQzdnQ1gDugVJwE6wcgW0gHmFYrcwpkDbz2MUjABugXIF3Td/QWdehVt7Nq9paU4CZWuDV7WPqOrygaEco6NkwggxX/24E/i8Jih2T3zkZH3QViGCg3ngHJOCcJ4AZm5TBofEYB0GOAwRNMs/cDLgZ749P+Ofv/wLn5FjM1Qes8fhM+YN8FuA/10OX3jkQgtIP2XjrpGihIJ7zr0ffp7/4hQODoRtdpSIUBfg8OyyHGb+s7/GXp/8JpiNOp/d4mOTYThfBDIci47bNgWYOWKOUtGPm6Hksm05jde2ReI6AiYDZATMBKwKg+xe8bOhFCGWdzdzwcbNEiPsAlDBCniMqw9NNuqoYIbpaUJfNROvphMNhQaAjjuGI4I+QPQfKN+7ILzvhnquR18qoLcT3zvua37ste2TQHFn4r+W39dvSCfR7NFvKZV45omZvR+bnBlCH8pl+t/mq1bywxlti7G+r/LOUGUJoj5ONcXQFQLGSNaIqfYI3Ix1mb0PPak+gyJOibFRFQEV2kLyHF8HG8CZAv4aeBtwbgFuW+z0aXj3BivwIUO7es/Q36dXeY66Tti4+PR+v4STsjniTbiQQND9keuvy60GftOJKCUh59FBpRobFROyQezU0jKTzDp13PQmRLeoZiBVWbgN69XmTh36GUABJqwjk2yC56bseQy3oslVA0UXNuz0hjZ8qjy7Y7dAwCmzasE7DnWd7Q5HqmhIS3++10jTpXxGoHj+vyq0N1/J7SZlb1sUtHjn63eSlaJetMivEJuybgP6Yf/TqxlU+nPgvQY7YpAj4Kf3NzmOeAw7TBbNbQRTEFQUK7DPI1/rVln+NnGUMF7/1NJ4cuQXd8i4rNgoirK88piNWnODpAUxHMB2QzzMfNbgWUrVYz4CQNbDmebaOttlrTRiM8zrhaV2wep/o1uZWpURvOs5zUq2TNYlCo57cMxJpuSqx0wt2ld0iXHTjyvU2skcHT9E/Ze30my29kNFKcxW25sRLLO69tH0cUv8u9ybewg9rjNEzmNbf9ygG+0JXKnV4zzgHWY3KcnhvSH1LLR60LtGboN8CfgvRlGBlUVS62iQaOgabHn3F7xxBTi+qD4Wp6aqeqdr/m7D0AwaUdjRfDVuAv7ckUk+YUbnF5OB8ockeS70F2t0JqY8sU4sdk5SEHmA38dIAS9IRCbBbUN/kMZi7Scs0oD9NAEdwcEV+LvplikVbNMzeDccjy6e+S3NIJYpNXzNDC/ivWicggjS1AwqQnpqkZ1Ew4D4JffvcAIGQUQSYOZ7z7fIyfRL42QGCrTW7sFhs1af2BeyD9p7CVJdllYBmfFpmb58bZbv+LARHJ5/NMi0I6M2Vup9tf9k2swKrpt2UL+O5tLpbhU2BvY6xNKYr2vcInF0C/1r6mIdSPDJ63DP0+G0zTpKcc0A6Wi/+0xNMNpD+o2AiSUtA7Ha2COiJPI4mgGYpk+SSLaYJDMIPDx/x+/cfQZTPj1eLvrXqq6E6MMeVJbESh9VuUo0n8Hg5jnM9n+XEGn8B62VaUZkhjr7/MQ2iGwxBcanD8bBgmiYcjwcs84x/XP6Af1z+iDAveFgeAZBckoVyFZsQeVhih7rZrxzhrBVLbYuUh+2wxPuMXJqc5iTKCvsLfCD8x8/v8ZePJ/xw/Ad+dzpjIoDDBM8M56T9Vq+W/aQvRbbEAKbYB17eB1HCmqGgMixSEeJeATi5NE0UpikpHdM04bAc4LHI8aHrKu5S8UhtclPDX6R2lRzkogXjuMvKUsJ5Nxo0akv6NS+Dtj3K+PkuoRKz9HDMVUXd8LNReaN0t7bDFj3yOJjvW7RERVhBbJNlbm8fwsb4L+XUSJap7I5F2yIKS3uNA13czO7kxr8iTq1UMcvxt7F2jaLX4H1N78oXKR/zOFAoFYid3fZmQD+wDfhfko+GrYHcUySulf8it53I1JKmZjS2QuBeyzsxqlKj6ykNtowm/haILMAgp/T6zn6PXzp09rXf9LkTvJgqVC+4eN/gRYwnu74vnlUgX+vA5izfMIirisJuOFYpNb0eV6ZV0LN3XgyUgS6jraw89edoTqhiQ4P6FPPKxqmZ3k7a6zLSY82np9B0GHCinUuLFtVp+UaL15YCNkpSpbW07u7rgoT+nOspD1LEvmf2XbOToQP8Mxl5dHME+akvCousKgC6yVT99uPlW/F8fk2zTBe8W57gwXhmFEAf8ZO5mp9sltWjEsAc0nGUagjRIyo5yKZWEJqLxhghgX4Zl8Ifxe3RYZ4nHJYFy3IAhUdcLt8BJMv8Ol+M6lSO7TRWy2auvmSlyzR4zrNakUnRbJsj1fspzAg843GOR2KSAGsEIMQ9xk7blKD/VKA097clPSvg8kt7OfOVXH/dFK06oQLXEBFgnr8ZHCdFMubRHdPNk/bFrRZ0u+p7j5DbEqi5SM2r9lrj720gsOXvf27lRytrAEtnGadk6yV2IfuIyjbptVWvzZJiUBWfXGT0uxmv9UpBqktn0Gderh9lnZNDnn1PGWt1wwA35qKv9/mbAf3XBujW+1sG99aAffUkGc3/ndn2wek+plIsaQ3S6IAtBnr8TP5hyG2hl2LoMlOaJJFR59WRLLR69dEQDPDTsrJFqlJIekCozFw+it/ZSt9Y7LstUtFYMyJm8dGP7/QkbRtHLfsJ/KoCEIVn7U+f4g6CM4wrKaJVO26NiESHxrOAoAamNRNE5ikWuNeMs6G/KoNMHwsm5Hwef7ffNurzkjlp6LGplb5ayf9awrGmqS5ls1Rq/VbL160AG4U9wGQkGMtIrvIXJaSjq9TPWqVx4jEZ+CdEl0A+zPcI7KNLj/ye4nt5FyICD5xs74kOtYzrUZzee4R1ReAAv3qA5XhODgHBy6VaAu7X/Ewt/kEu5Mq7CmKdou+6rg5M5OAU5B8WzPOE9+/fYZ5nHI8HzNOMT3TCIcgFYtK2nP3kGyMMIxoFkRQqa64ehS7/zYgo48gMQggyJ5kIM2TxYJkcltkhBMCHAE9IFvtlmbEsTi4587LPa10pKkoAuQAHOduIwOkSPVVEkhtsVJRkvImlXy7DpDRknCPZuuHkqFMHuTlZf5eKseXf4yYahgiyRka/0XxIJ8rsmTc3EpSr1/KnW8raw99uVfxvKXdvfqOVxVFI8wgl7ulHRinUkAH3diGANa5ag21tYM3Gz5rGK7jVJqgVg71d8IJh92ZAP3Bd8NRLaLcIPmB7gOeyO+nqHuhobvW7PBZfNuGytbmN21jaK1ob7TEnhEO1nEWdduXS7UiZolr51WKmdPWAf886bWur74Melzdoj9oC1stPgLE5azvG4yq+za8IVZxmwlLrJgJkEOlqpqxp7GcnXRG/Kr+xytUkd55R77n2zxXAr8/s08Yabr9X+fTaTC2ayTXHjJE9oL9XF6WrprunwNTf6/y2eMkor6bc4at++47y7fZnNQ5eE3pAprcC0iZUQiNYJxjgb6RpEsTlO73AK41NqnvG/mWLvtqE9VlWDDT3qDTEjIUnxZt3fUDQc/j1WE4uj+hM1ny9gCqBfh+P5sxbiVN9ImBNirCT03nmObrzLDMeHx8wzzOWZcHkJhwuB8zzXFosWV0rCWlPABTD2n5qu2MYBoYXMu0v8QgqHjS6utPIaTlOWtqJ9V6PJ50muQE5BAYRwwcSlyrte5ZMnDl+VHst7wlhMByYsiGBoONcqJRNmpEekv0cBEqnoMimRyT+vgefphHZm5JFW40twmVTmxNXBnilK5tvBNOjcveEwnC4o9zdQL0rZPbnWyswZRyTuXlU+NzXyqz91muayJKs5T6lqZLp+Ej8jSo81fndq1fKd6d8qfPKjzfwZVXWLeFNgf49wQ78PZPg7la8EeCvO6Mex+azR3fho5/wcvzuXlkPYyxKlzxE2hTIy88M6Ivl4d7grj4b6iLoqy28bTQDSC0TGE0Yk19q0mRBLBlJC/oJw2ZkU1ltF/NnmUxWLbIVLS8V1qBmrMjYOM3w6ctwU37/eZfvxboly3t+WBbSW/Xo9BtV6YZWDQv8ze+vHQoqajq1YXVFpoqzv5AKGBSvOu3wWw2U/in+zS8Nc2NCcvUhO/bLNBlOZwu/gHu9addu3pS4zjF+PP6C43zB4+EpbizliMM5gXy/+mTl9341N+fKhVPggBDEmh+Cj5Z9AfuyWiCfBDmqkiI20JUEeccAAdPscFgWHI4HPDw8YJlnuUxqWvDx/B7P/ohPlwfTDqzIPv/eavbmyUb8mi+nVJm/K9BXzhXVsniLMfB0ecBff/kdJnrGkf6BycnGXuhdBgjxVCT51MvPeuCEzF9JurRhbguALchiBlzmpeJKVfGlyMfy8+vtWVL2ulCvEr7W0r/HKvw1w02W+Vew74F4aDNPz3rtkUdzyecHZWp2CdDnIgxrG9Ns03OrIDT4qNIkugphXWjNUqFlVSsSHQGflJAbwm8O9N8Svgngr5+ZV43flgH81pIOVFovVxMvDoAX8aueMhK5sbinGAs2wRqeWi1dxb6YhYpkdSAgX8bUIUPjFBb0Dugf9qHNt54IvWVaS2kXGduv+VxcWU52DR1FGc0E3wL+1Jm7OY4VXzIUyvTXeG5ZUv2i7Yu+kjAG/JKo3VQ77KcB8N+GMC8PI8Bf0wMS1yurqBXj3SoL3YL69a3b5WuEWyyGhQK/I7T9WI9lozhb44TyJ7JMZJSX9dGX23Yz0FcffpfeMQhEAX94/zN+ePgl3i4LeEay5vu4OdevF3jv5ZKuVaz3CMYtJwSEdU037SroD/6S4sj4KN0OCQGB5R2RHCS6zLMA/tMJH96/wzRNeDidwJjxj48/4m+f3xtowkh7AArgX82Enp7U7YucYAj4SSF/qa5p6Ulli+jnl8s7fDy/w7vlI/71/Sc4FxUcxD0Q8PA+pNuOZf9D3i+RqdT/2JTG6b8C8APR2EOGljwO8/jlovrJqBP/TQajm7nKy+bpvdwDa8D/a9sHtnlF/W4/sb1Vy15RZfkKaPMYlrx2F9tQafTL+E8HSXfS1ziD7DxNhs8WXzRKwEZZ9WrBptdGQd9vFPTXGvPWstC1fF5Sdpn2djiStLKKh9euOEPXJZgTfVD5HEeBSuVoelnYGnyFEG/f2WNJC0sHdOznPPcCjU2wuPW+iFsKieEYGrSfBe4aL6+AUBvHKGXFph+jyGV7BFcoW/vYlK9xRlVV85wWvjtkgg3mN9mON7hvlZLG8h4SaqXP/O6VvZnnjpWC6yy8BeY9BaQXp6GlKbwPAkYU121S5781h17rd1sW1dZlE/zXGLXRLqVF05gzyrAuXiZLf1ql0z8B/hyVsYkYp+UJy7RidivAuqleXXl8PJ2nvWVXAD9HK3X81FN3Qj59R89911nJCapn3/v0jPI+HnXjmZdZNum6BR+fT/C84HmdhC5tkwLsZ56ggFuicb4LoMOhG2U9/lMuHFZKmsap8tDTg2RLRq6x5eVUpNPNz1aJjG45ndU0Qsj15WpDdWFUiC5glk8YP5wQdAN2zIp6RgkDhzamBXW+2TDkhdZ41Fnh3Eq7Fb6Wq85L6Nidb49ZXsl7XJZkNio/K7M5OqXPDaxWTBTTR0Yud2lrvvR0cBoLma3uZE06tswX2CUj/Y0sXzYW3gToV8axNfi+1tLXq5fWzCQYLe30ysjAyaQxg8kC/8Yi/9JA5acC+OGKgwZjFkr+/NZSc63tNizG+ba67AqkN8rmaGOApeXrBRdD+kekVfUe1cUKK3vpB5CVhPgjT+5qPFPu3D6DsO1MY+bw0lAzsNqNSt+9GvAXArwE/S8SjiUBV1ldat5O/drMy/rYrunyhq2xSJ0es4rKLXVn9Vnel+ZrgIGrZSqAReviYUd9ll8C8Liy9OsxnXIecHTvgQPD4bA843/8+F84zReAPS7qWsJibT5fLnKcY7TY+/UiG3a9B9RlRz+DbugVC7+69whl0eWE4m4BFncWZkbQi7dED8ESj+V8fDjh8fERx+MBp9MRT+sR/8/f/wlfLgesgdJxoom3JDlhh5EZf2poaAZRuYE+tW1hHa7HesPsE4gPiUfmYz21WAeKl3YRJhAmRwgBuIQg1n1GvPE4KyyWh8tfiPu6Oe3ZUherVtHldGdYkBFQ8OTgPXxcYUEE/+W82Mfnr4VrwPoWl+LXBE6acp+2W8I1OmtlxnohDDIU2jaERD2ue/TksiRe7f1Qp0lGz4SrTO5GQbwGgjd9/28JN6QvQD7nZ1vxbdzm+bUydoQ3AfoBagZdr/P3hL2bVoYWdyOjDXWSTk+xqVXBDdIabRXl4K9pskAy0TnIf4+m1/oXV58wQP9Kfo3VGhtVV4uP9ifGPLnxNbezu1ePGGcE0FK7tWq6ycK0s06aKBiL+DXR15p8K61p+2srQyk+x7g69tI56TssAeYoxdfwuW7faX90AC3Xv2tr/65CSzbWA+U2NH6p6IynmvZesVtxNqz+DV1Vu1x1mbpWxh3CLWClbE8dAWYk2I+uMKuVswj40/hVKW7+KH86YkxuxWH2OEwr5mnF6vN5/MycN+rqJt0EOrMyUn7PR23WcSnV1/DCBDQ5GaacI8zThGmeMM1i4QfNuIQDzmHB2c84+/qcr82GNn1e8/qSgVFvnFHumzRy0mTJvKJ2j8jD0dY7r0Gq2FGDimNCqESZGOrM/E4nsVHKMVv5cxn7AuW0Riradi1GW6e5s9W0zdpmYt9vWftfPn/GcbaMTLfmZ8OWMbM2cPX3JwyldfHRfYesEG7Rt3tfRDUtCmcfynyHeIu2IalXol2PmFiM/i5MHjtOCupm2ntU5hu/pHd7gf8bAf35CCygr3VvDV77e+/k7CkYL3Hv6ZZVZ9NDLw0OyYyfzW4TtRg39I9AXwUsbf6tNa4YqcUz64Nn4+lCcKLXXNJlrcBJlDADpm8LIWfTqCTqWHJbxSUqFLGcLtC/ZZ6ZNDSVvoccTUtE8WzmApNnbqQrMaqkpXSqVPTqDNPnKMe5XgCS8rpD6IHV3vMe8N0Ew3WoFYARPb3yN4QVAAPOcv5bLkoWrt4aXps+ZyQAsqC15mu9VYIbwte0PmYgbH8acGw+OywFyXVEARYRQPGiL9JjOaOlP1r5P5y+4M8ffsbsPJxb4QNj9R4+ZLC/eo91PQvfjxZl4vKMHwaLL36Q4zjzZzylh/VozkicKgbBg+MRnQBjmhyW6Mbz7t0DloNs3n04nfDp8h7//vc/4BJmXPyS+JAei9kMonq81vpV+siglXrPqUrU9Jq6xTCYnNmGxeUfe9hbkB0xZkeYyOGwzHDThMkDExMCE3zUh/RT5W46ChUMHzR7UbaUw1k+onXKxxTraMnvfAhppQWkJ/ooTuhWuwklhP2a8+T20OKQdg/OS/j/S1ckMhjfAv67cjJ5ls/LFYZcbi/tbyFstVSv77aUAOodMWULukN4M6AfaAVXPXB7lnH72yoNrxWCRWclhjvWJLsie4SmtrQzBeucv1tbR0yY0qffFY3DvQQdjTQDkT69Sk9y7YkApQ9kq6rXwM72y44+utaP9m1dj6t92LMOGTuCBes9f/2CAO03Ww6NNfBi7KK2xBE6SW4PNZjoAcsXzpOhG96geH03Uui6ikZliUrvuRThW6KpEF89mmueo4+r1STWZ1fK65Wff5SAX77G+cTcdw/aEbbmyEsVxi1FqvjFlo/04lP6VD/+vJsu/tY/ym4/hyngu9MTiAIuPrrZMCNwkLP3Qz6SMylVrAd5xtLi/MvvjaXfKAkZACPFVd//XGu5gXuaJizLgsOyYJ4XuHnBejni4/MD1qA3OnPmB7XKaFeeKiu7hr7YsMBYoXE/1EYzZoYjUQAafhkVOOlDl5Wf2B+Tc0g+/xHwg0lWbKIFP6RVFhdv2a3qq6spRYXK+lA9JKA6g7Hzm3dNMHy3AVXNvGq51GvgrQ23GCkb2dIDiK80+LzInbIA/imn5nvilVmbRd1BdTPULkUDCponZT0SOJLYurJ07XbwJtMb4r6EMXf54Xaht7rqaLgF774J0E9UWvrz83aHfL0k1M9vH5hMVlVjrZYyXlCJW4KZG8NOruZbA2iVEfYA5Qjw90gx+bKRCpsDj5E2X5Hmka6z7qTb06ADQNVV4GpLss2/Umo2/eitTLbt2sWGVCpkmj59rcBjvMbbug/t6Y/feqj1DPmyrfRsxWsL6PkFb/ODvaFJrcDfrCqZAst4xSsFujnfIWUdS/89R0ezavXC0M7O63lZwN+Aezel76x+/QrZGclnHwhy7j4zVvUr9xXgRwveCQyEAIq+/OlYTr1pNwSIhdtHxUXP4Jcz+pW3ERHcNGGZZxxPJyzzjNPphMPxiE/rD/jrzz/gy7rAF2f4WVtA5BsKdLWCyCs/6cAAinIJKMf5K4KCfg4MdpYN9hUOAHhaD/j3j3/AMl3ww8PPOExn8IWhrvV6txiH7GbFHDdVezkVycd7D/TEohrMA1Y+JWqzjgCAQ8C6rvBYoS5CrPFN49Tzprcv4lpbXnUxqWjuhXutyN4r3FvhH8YvMIyMpzLF/b4AACAASURBVKzIdHRcE/rteeUQA9yBR76trkqh9gIoX6J8Z3/f0CBvAvRrqCfeyLd/BPz3gqnGraR6djPdow7qIqAY9gB/jWpWMZp3mraaCT2A2VhBlLkmi4+huUdODYyj1dX2W2PpGE3eDmgazcNiHNSA39LTJdkoR1eAv+6j6Co+8X1foJQKmaYtyk7Yrg+At+pwn/ArKho9gF//7szzOlzzi7dT7m61rSz+xfNRkr3Pe2PhNupuCt2VkyuhnW1705WAvwH+Cv5RnsfPLG0t58CLxV5Bv/fZwq+n81AirfTLpziNWVFqiC47wQJ+XSUwfv721Bkg+fDP84zjQS7gOh4POBwO+K/zB/zl8+8i+A0pjQ7EepVacX8qogmFt3LBQfK/N/SBAn6GuMiESsbZ9kqlMc5+xl8/f4/DtOK7h2csc4Bn+eMg3UVmdcXurwghwMc7ELRdVXlSpS61A4zOW1Ke8vXew5NH2nRctJZtN64fNnH3Av+t99863MOYcUt4saJwBfj3Qtue1Ly7inuK1C/0n79HMANstF/vehY7AH+NWyuMsie8EdBP8dbCCP62BKqJsxX/Fmu//cvl2GvlLaXNg/E7fb8BSGurvIJLm3fyJ0fnnfndDIQeeO3QAGSrjS2fXMWKtc1ZLVTVIOxZsq07Ru3Kofnq8451i0w6m0daZTD16094SnlkgGnExAZjKhlLVzop3jDpM9Anl8+isIIvWf2U4tQ+ZZ7WOiYKif5m87sifMRg0WlLW/ZWuFHYDedex+qcq1SOkWZOG8DfjBFjWbcnPxFVI9+OxQ5dOv5Gte2OzRuC9d9v8inGZx7je8KeFc+uQr6R1tLG9scoDpMhWx1bFMQqyNcz97OlX1yaHEK0lL8/fsFpueD98QvYuvJw3sCrrj7Waq6gPXix6nu/Yl0v4mOuZ/GrxZ9DPIFLAX8E7ZzdgyYnPvDzsqTbdk/HI9y84NPle/j1AZ8vp04jRf6YmAJly7Tl8URyXI0qCFDeoOPfNHk5iJuuSNC9YxAprOm1ZZ2cjZl4uCpfzhHcJC5NtAJEDJC2v/SLAnNpe1XIVE5w5ulxfCR1Kk1Tw7uZIZdxyVj1IQjoh48buINsBbHNDfXxr+c6iqB70bTsHM9A1R2W/iLPGwHySwF8z+156/0o3rV894Y81Ln/3PQJ6yrPBrfsG3iuEECdduiU0psbLwqbyStswIovuHgmUfogvcGBwyKowIVbeY7CmwD9RAL6gRLUjwIb5m/j3jKILVh1zhWg37l202ZKtwH6mzgdzlwy5g7or2gDgEABgYyvJLVxRsDeWqF7Ck4D+pWuzmqIgv0QgghXU8Xikq2iLVCAMJjfsUHqJkoKRd0uZb1MeirnpB06pQLS0pbGThJONveOhbdDgwihcjVmcnqhV4Q/BRDNIDUj+ZqBmpIbZUk3B28zxy0h+BZCA/zNZ3eMbFj4Nc1V1r7RaHStQV8YusqWfTd6/0p69rpC7gP+xlKt+SdrVuQVbCMImM8WfkBdeMjNAM2xziYOAz+ePuFPH34yfvuMNV4CpSf3yPn3HKmCgMVo/fd+RfAe63qBX89g7+HXS7yAS875h17AxR5ido/HeUJmFhEwz9G6fzzKxt1lxvv3jwh0xL99/D1+Pn8HtjMy8Uh7tn/mIIr5KSo/2hysLyJQsLLD6K+xvasOqN40v5TnAzmj9MHRqGP5o4v9LO5W0+QwTzPmecZ0YRDF+w5Y3IW8l7sR1lVB/xov7PLJ9cqlVsqzvK5XJleAv6wWCGxaL4CnRRQ27XVnWiMOymLmD2TyNSvwSBm+BrpvCfuAfysPfhuhRzMN+/tuRd2c96sSd7KJY3srKwvaB8828etW3F7eG+HNgP5pmgrQORrzW5b+l2iuPdAPTI2Vu4Zd1YvqkQHnie6K/lIvLujvfdb7DtTHvHiGkqHYTVBg2bvgnJwKk06H0bghK1LJB911BhhDBGjsr56lf9REhWuMKh1xBcOC+Bpody0BJj6AtDewy0/JToiK9XP2rS0z3hd0rDKHIqlLt/iqjansJyI571pjcLVr3ypI/dp3UEEn2OauY7K+2Jhvvfztk1Zlq/qgA94TUDO/NzexUoadDBQbaotx17PUUQarnBO1FVJLjBX8I3q69A1eYbtuxfOeonOlf3cDkFH/cx/slO2gq3qZYBmBlLFcbFdVDkp3Ht3v4yIh0YefCAwHIsbDdMbkAg7zKuDSGHbyRbbZgpz+IlBUC34I2a88RB/+EF16OGcEdTupzAWJZKegd5aNu2464Dm8g8cRa1jSyoSutOXmal31imlqeFF6PuhCqiZtLqLHERh6s1fKMo47MsqwKjVKRTGXSWPk8hIbciKjAwPOCb9yce45IoSoRBCXRqV8GkmHjxRtYmRkbBxmyqs7UHmWDTHKX60luZxPMT/m8sGOMJ52bWflOdMvw7Cn+Lvm9XW8Uoa/JtyKjUZuNckFFTBNsDF4b6Sx5EGbsQeqhY787RS5XoZxGaNm9WVXSNw9CZhMU49QKr8UI3c3hn2FJvVmQP/xeEyaPHTpthP2uvfU8Xtl6mfr3jOPkE1M3Hk2KMMZzd7SHDp0pZWGCkgXdSCUTNV0vIL+EK1NusFK008qwMglRUeFUAghXyYTKku/M98VbGaiU5M0oeK1ycodpQkzI6y+mpR1o1Ts3EiHPH176cs4lkYVIlGSxI/sPqXWmCx8Yp8lpsf2Awqa2ZYZKtedqh0AwBlgI1Y0y6RdAqu5cmV9i3ExlGuG6VP1zGw+TKpWzfioJqATZ/iVTf1LMF27IpAty4xLg3QizbYcVRqoeZbAbN0e9dy1fVKBbhu1t5ScaEW3m3LdDOhvVruY+2UQobt2VshdBpEzYInLSCUVvdw67WHbIEdRcEVUvuNUH5d6g9kJL1KQj+jKo5dyuRk0zTEuME8e//LDT3h//ALCijUey+nX6NajfCxkH3z1KReNwCMEsTKvl2f49YL1coG/nEURUAt/3KRLzNAz0eQzgNIFXOLWsiwTTscDHh9O+PDhHZ78O/zHl/8L53DEs9eeCYlXuinWVdtFT7RpGru15hevUzQqHg9P8uOckMjwj/hA+LwzeyAoAn+9Wdj0MMeLt4DUNgSGI2BZJpCb5MANEFYXN1jHw/sDC/APJOf5e3WXijy2Ow/JKh6qLGY6EBjOy+VogThe7Fa0SgL+tvm2wlh0bwl0AxD1CZf8Oud+W6jZwb2Clfv6+6XuPJSHa6cl7NMi1U1lXPP/b+JXpWxwuCZRlhu7UjVl2nI1v7252KmdP/PEv0nHU+B/o7LyJkA/UGs446mpgMwuk73Et78G/UA+xad304c5On836Hcm70Rj4DRIiiVEKNCxtDkjGOJAdTXdxmdU8+Tyt/xJ/SYnqxiTm1rFJ/pS6m2wqSxHRTsasXUb6If6jWbafIxX6O8JUMR2VKFUzLQa1FvwVBPQIyu3kyhK0veqcBVALK5+OG6BPBeF5vchnt4DcIN77ZjoMmfEvjdpinYxyse++c5d0F9e3lM1egP6DeA3Vh/Squt8ZOt2lP2828rYx2TGPRmLcp2+m3jMcKlMn2k1884qt3lgxjqORUJZrSpWZV2zczopM0CyrCovyC4iJX05Xy0495UqFTJuxi4MZTaF5pDaumjLovKc3mU7cNk6BQggjZmt+RI3uo+QfodwQgpYJo/jfMHqZQOv3PzKlVE/jq80J3UDrp7Q45N7CUcXE04bdLW0OE8N8C/ayQnon+IFXDTNCDjA44BzOOLsD2D2IGLbTTaHor12BdI5aPvPtG0tGm2DG97aA3aJV6dJZV1KN8iPMdcw4RImAAHOMZwj1cmTEkgkU6pcyazmlNaD67Foa5omfmXdR+wpjvy65Svar0Vg+8TsAVP+1J3g/VlPkZ/L28K8UzVfZ1DUrBR1H41DATV6A64yCg75Vaezhy5MXB+vahPJQ2UZpbGoxQKjIZbzyg8yjmsobYa97hUQEZsVxjwfOmQXb5I/QxPDpsk12gZ8LfDvjSEz0s28tSU0NradYTevwRsC/av30frNxjJGqTXUfSKDY4pWByR/7LCuifEVf0Cy5FlBLF/aZwVAsmAaFThNeShzLQU7ucycMjiUf5Klv7EgGmAcP8WPXo89y0y8/Mz5O8iNkKoAKOXOTXAR7JcuRdKWjp3Uz9X1bIdzcl8xXkKKcwtskvl4BjuZVWCeXMq1AOMQwQ9E5wCi5IOqzWObNIFzQ2rC3VX/FoLA0Fy+NPW3ciBKDIJY/qXYbIUMCZBodENzxXgt6OcQ1xGshtDMZBXaDYXmQSNh4isVmqXLV52H7SP5P38qsMwAVlKHaB4MwadVJp2rzul8dRWgYCN4W2HRF73lSysAyjboNkGO0hnaOt00Qp6e1fzstGtuJyEsraLBCoNBr2n5ViDEQewaYjWHjlhNbViBHzJ/RYczSsZRfSMBV5JGNnzGwzWRZ7DMUT1xh+HABAQQQA4hpgiYwKD0mzDB0QxmOZoTweHsgfOKCPpD9Bln4fvenrLD0JN3gl/hL08IweP8/ITgPS7nZ6zrKkqAXrzltG/kT2RJtO7H586Jwv/wcBT//Xfv8PD4gM/+B/yvn/+MlRecA8lFX7ERc5cxQvCW1bWB8hzKLlA5Pad/Tf8gzkfWLtkW7WQGMRWjLh+6IDQWwsjINjsCCGtw+PeffsDyi8c/vfuI706fQfDgcBFLN0d5i3j5VtobEaIBjeHiWE5n+evFWgDWELIMI5KVBJqAuE/ARQXMg3EOK575jONhwTJPAEmfgSGAXBCAlMV2lUXlv0uyMvNuIx+1fQnQrQ6FwiJAI/F2NbSV7GALpdW4Q/ohT8eSXptbOVaqYPlDBSqzEaGisMtTaj6VE2TslYlPOGzv6oGKpZxF/mATJWn4huxKFOq+wuypwIAayTqCI+dj5kYCB1WcTrrULlT9Lgkv6keWt5YfKVjcpNkz+nG7CbcfDcObAP1pc2iciGohtxZs9e1zTrbvk6M0iXWw1FZTC/ip8tvPg6/8Xbr5VIw4cgcGZ9qM0C6BdOk3X2twZJhObdkrQD+EQZHZyFtb3cv6ZGgoNOYJVO9daBZXI6PLYskIhAIs5HyMAbOoYB7zlGiybZgyNPSkaRMFo4vtk/owtqd1l7DAz9pfEjOpmRL1vmr5HRRsYxAV9dQSQxBgouM4J6KyvW1dzVjlyg2rBeI5v041OoKjikuULjXKVs8u709W44ZGVjckWx/l0UEAnAcokO1aM+ZcJ++qNomHcvF7GKiksQuK6kdc/7RzL86doKsV/SODC37PnO5k0Jy0zmkeDYTLiFEnvqWCTcuqO72WoE3OOnmQp1yziikZEWz7kXlq6RJXD078C532BEDRMSRuDA1wERYq6HdGQZD7Vj0DawB8AvuGn+u4LS7iEoCpG3f9ekEIHt5fEEJ05xGJYnhRTEty/j/HOGluOzlQYlkWLAc5lvPj8wN+/vweAXKaD8WzQJW1Up4EWWAnplhxxQgS2XZe6hd0g8iaDpPtxs/zEtCuzjwU2qcKlFDzAEUf0rGBCR+fT6AL48PpS6q/XnLGSNfuVn/aBgRKS+RZ4VEup1Z8InFlU7nPCOl0psDSi6vXI0Mzj9TxbMFSWvlhPRoJAFya20VV7ZcEvFR2t61rZWBRZhkrtXT9POMDw3NqcszY0HHLjI3yKgLTUCkFXeLJo3wKodmhTJXVDvbYzrgmkRNPa/SFDobTfNlEbjw7lEe2jVnVxf7MfLw25HLne8IcvfatcEOGb12w0acszlXlReajIKR182uPLr0W3gToBxDP9o32yAZ4A8H7OFCkRdUvvfCTj0eHqZtOCMEoEFQAzLJxzbP4PI1hZeb1QDOhBuNpcte+8CYkgNmxJBZMnij5tfbAYwNG65lkgGS6zIao2TcwGjbMdnZqG4g/J4jgggoRW7dSyBBRC1gMg2roje8VoFrhWlgwkOcaG65W8K+6v0116hNJqK6Iab9+oAhlCKEasylGNfbsuMurE62rWiaSi7zs55gsA99UceS418OoRrkoy2RK5spFPygAqeZnjJPdKXK+Ls0BqkB/2Y5FsIx41PxxHCTFedgW1e9hXINgk5zrzPX4D6eonOi1ygeRraPGMWm6tGh6CXKKPaU5YSiMj8h8r4UXQ25S5bTiKLTqzhTt/2KmFr85OlFTdKMR2308+SaWFliB/SSWfJrgaQLDwWMSsM8TwNHSz2IXDoFxnM74/fufsbgLJnrGqme9J2DPaY6A2Ry36cFhRfDitx/SJVtBFE1CNgKY8Yvq4i0dQ/M04fHhBNCCT/gT/PkBn5/f4YFOeAqPmJcFxZjn7HqSx4m1plO54lfzeJNXrQj3QiNfLP+AxVuDwc2yApp71sooO2Liig3rhuys/FFKJ+3rSFdgIyCLKyVMlNvGjnljlMmU5noHFloIeWwzyzjxHO9oQJQ5bgKgZ/fnVad0AUJqR5UE8k5WrlpkmMeCtrdNp1mWfc280d4mlKzaSsZxvJo3ZrratPWY4aLu+0OBT4tyVKBaz4JWDnU9IEwWhHKcp3FvuqMB37ZuXLelxR0tk7fdk8aaZmfkHZlxrl2esZT8Y+Ui2ZexkGyENHzlRiC+O3R4xG09/UZAPyOf9css9gN13QEiU4igH8hAqmZ+gHSN9z6DHRhgO2CexbP8oGXGV5hymY8uWebf/cpXAqEA40iAsFnBMCCSyJy4kDlEpyhhoAQkxUr/uKpHQyOV+QTdyNRpVwAFPQ4u15/M5K55oAFwCRDbPqCyfblmE6rx26w1PZFs4CM9QkxmuD1ZxQLyXGYLvusg4FYU0P9D3bvz2rJka0LfiJxzrbUfp+rUqaLuA7pvO0i4WBg4SFjgtNceohFSO2AgYdDiF7SF1BbSlTC6JSRAAgkMHISEgQEGLSSMdjBAXOjHfXVVnXP2XmtmxsCI8Y7Iudau20Kb3Fp7zpkZGTFixHh8MeLVwi5UmicVXkd6X3P4NcJ+D/jfk+/UZvA2qLJbnc9bQH+kM450KOivRjnmc+YEXecwyb59JtlZZvOFV0/lCiGnqaN9QvlebUZKs3jPnpiNAzbVGg75wFxL7B9bm+ZSOkAcphlqdNXBjNMjG6BHbWCSaLGAfj5AXfd2H28d2AToDdDf6YINGw7tsjCh9wawdyI6A3tnvLvc8Iv3f46H7YbjOLAfEskVgG/6r3+9y1z9Hdx3HPttbMfJCgA7iHQapPKFYUfJQrflHFcT53y9XvDhw3sceMKf/vhL/LD/BJ+en/CER2zbhstli13h0BlW4OIAsSmK7j4lwkAwgl9Y6PLKFrzms7KcKfSIYCnoERToRD/hSRX8dBqR92FyyXiqgN80lwBijYoPXe+tSd3JKFGZO9OkLj6JunTYhBrGmDrYwbbRxChHg32yVah3V5AOSdOKCw2GL1XHvOIl8FEvt3+a12vXeVxmDfzPQP8EdBfvrQIpVsc3YM9zwB/uMZYy6JSRjXhO7y6uGPHn0EbJ/wMBSMQghXdHtew5/5pPYY75sUC/Zr+gf1kP7RRwBP7/H1+s/7299K8D9DNLpL+bMCh4UFfXd50TKIaoERrlSL/23MYPF4/Q/Qq91LN7euWt1xyomhT6/9r4QYBGfguQVtLE/Kx8yjTq1KZEswL+UodYhvE33I6jEIBPQTpT5FxJN+W61WZrLTsRe9kjA02jA8mwDUGlNiuLg80ejILwx5TLnYoxa4qoOS81UkDsSZ3m2YizEoITw2Hc8WgexyTye0XXVNYCNNZRnVmO7o/ORECg3805BCOhU1DusCLXWF6tU1/0ewvnNahcmEEdxAntVNoyyBrrNIAB9mpHKXZ2U2GvV6HUJ78THVES/ZhuAd6trWMdv/QdeIvog035I86Qw/tsi7Ad9NfdpUBjekvbVH50WoancShE8IXdwgPbB5dAaGhMII4HOgGNdL6+R/cPbALuZSqm5qs60vUgp2HzO/Ww09joYADs9Zb7nQ87I6Qf+9gn/hiAv/fx6fP/fcFvH1vBQPfQb1vDpiftbhu26we8tN9Fp3d4ePop0N/j3dMjHq5XtK3hsm2I3NfNGAZd0pYiO9uYA4N+yBai7LbSeCZpfDpLaI/QuQPzmJYKkfWkLzD9iPYndg4HrbKLDml7+a49VX8YYxee8TnkoPGYGnPZLti2JuvCGhqL72ijXP3dqKOHDrkegsbKPrHhucfJJm5VJ6zt+5jeQzR2oVPxgEifaoC1E4fpNGJrVJYnzc/mBckXGw1sfim2U8zH763wRKhyaI/Zwvx20FF5kXI6yeq1jsT6nfvpIlbKdFX7PWMVHQUYurDIp2ImwA/0dHeYX9AOiHbIKQiXlJkCxxiID7kJDUNEnKc1jivTFVt8+bVkmlITa2Sf6b71kt8uN18N6H+53czwt6B06ox16o4+GMbLp/EAeS4tsGZDBrLS+AAQDFWmTemogLLmE4BafRZA7xS5WRUa3lMmxOkrr72fIz1+T+nQKKl2nlJZtX6YaR6OtCfHEcFefecs8qwR8lX5dXRjlVeOiGnbI7ejGX/vNGlEewxiN+v4D7DjRt2mbBQZWPEm0x6MsGTOzBahWvFizmPcm86QOPMkyMYgRraAsbitywFE0XR4xJyM1px3dM5zmVPkEVn+5y6atAWC4UWum8cFCd0WYY4r7g2uQGjFDy6/A5FGT/wNsKwTdRCwbltefs9FnBvge1FCk22VEfnLZY403ZqFLF/Xe+GBHKbUWgM1gkbDIx0ZqMh6DAXp3fUdGDPyt+LZmDawLNrtaNiZsHND68Cx8yhOo/YC/g5ZqHlsh5y4uvtCz7iXvnZlZI62z99/sSj/Ln6j91uRV/YOU5dRZDmU67o94NIaHh8e8P7pEfv2c/x4+ReA9g4f3z2itQ3X6wWXTTY90AneuqWx8CxOQ9LO6WW7gIhGh4S7nVIbFUg3U2iNxqGGHEFT9jRxGqaPjhn3HYzK+9oR0Lb1QJr6oXH4JIFkjr6DCwX6zGONBQM4uAHEuF6v46CurctBmgfadpggMgO8NTCPUZG4Tulc5inQy2BuoV8w7MQ4qOvAftux8w5qDZfrFUQXNNKOnNq1wefxPgTPU7DHKucwnpqNB0AL1GZt3Z2nXp9sC45D23kG/fWdyBIffT5h00zVab73r9+uQ3FOxRpn5BLDNB7FHIUOxSbMvoOV+fcF4Le8Fy6RQno26yjeRjfEWzB62FlMLFq5mPySYtFQOK/aeJ1FVg0u3yPU94zsbsVVb2zerwL0AwAHg9rBvk3jeJiUTWHD2RwwGy7CzAeNbOpDi3QyL/dCNpUy0K1iFMCQRh5Fc9MzOLh5E+in8J6CoAA8vwj0L8BqnR6hUbh7kf4V6Ld97cUZrQz7GfCPad8K+mvE2+uqTsKtZpSLs86L//X0DFbFAIoYk6xV3tRrRFR9U7Aaea91mMBpeNZqvYtxSfQafbnOtrNOeGqGVnkBpAVTXg8IaIv1B0DNtndVuU28ZwSd0kikA+u0QSHNnQ5mFlAR6gk16OrYC99qW93hK5myBT2bE63fvwPe771HZ79iB0lFMdoc9UgKZtyECdsWBSZ51/JmPjst1j1O7+vVom3T/GiT9hgLdIdt9YidR8TZTtXd6Ib31xc8bs/Qedim7wqgpQPg8/jHn40OaGRfgbeuVzJblxdbxpbWKP/D9Yqnxyfc2iOeL49gesLlchlbG28btk12fFEE2Ye8G8iH6At7pN92bmIeB1UVpz4CLc1Af6MWdsmdJ8G4btLaRok+cXy/6IDr+Mhvk3yarfUw8kYfiUbknpnkrAXGzg/4tL/DjYFGz2P7Tmpg6kFMakd8BdT8eQR5Vj5gdNpvMB4vz2j4jEs7jHdbIwBtEOzaIAEdHSUbWefBlmy7a2c5ftfgTWvVJ+V2Gp2Cw37X2Albxyb4FaPhZDR3eQlHzDTEds4p19mc2LqQP0eBCBmtAqanJObiJBua0qWpPV90sdk9H00IhnfKb22Us43I9jh/fZNBR6z8qhN5lk/GOuui0tsLWbknNfH6KkD/6CXLQl5mWxAEeKOoYVNgvWpEiyyotRh3U5pVhN6zGgtOK4CKdMR8zI8CiD0wUyyxoslwh12HXhsyCxWb6c9Frao6K1JUVvPrRXgWclqjuSj1qmlWU1QqXWfTWE5px7qDoKM/OmR+9q7RL3WvnYjViEV0qoAbqAnwU6iHNQgn0I9Sv3w5IPa3x7Vt25gyIHlIcSmNAZ9UT6R3FCCpQwSQpg5UPlTndLdT1+bozXlnyJ8zrWUoDqdPUVJqoNZlap9vIOkqn79XqlMryX+G6WRaieoq0wBu0RrYnHPL3fOiwGvvlcRy872ghjmf4JinupltMY6eO2UDFGKvdF6sdSIiPYSx2jP8tgj3IIAaxjaJ2nmgsTh35CdtcYxpRp0lot87brcDR2fc9vH7u3e/xu98/DNsdGDDy7D7PU7pkbUhfQf3jn2/gfuB2+0Zfd+xh7n8kOlAfd/R9dAuAFtraNuIwLE2sADfx4dHvHt6wk9/8g2++9m3eMZ3wPENDjxhk6lQmy5AJ7X93qEwkK30WtOO80+AMS+ee0enhotuxysK3sin90CnNzru9XZlhG2KY8dNkwT54JyBUniENUaKt9vC/7B02zoPwH9AqzbWYvzZ83f48+ef4kP7U/z0+gyiHZftAIFwC7bFM1SuqW6PaUIgyKgTW+efD+ew1HaMivYD3BmXtuP33v0x2uU3oKdvgfYLXK8NDw8XjNGXsVuTbRyrbccw3owovLVUtv9R7APoPbOBZyOz+74HWcjPxohL2Lo0Qk3Kf2Ohct3prIfvU/HFjo57XlZKme7FzkguDyWNl2PloQRei+xNEf2CzSLgr7425VldifIj6gMPX9bJA1u+ZbcW6Hbd7Cx56Gd1vQ2hBSJPcOfyrSJnfxEKvuT6KkA/EIGgC5wNPfLsvEcCOL+jTzVGFAAAIABJREFUIN1h/BTp55hUOw0KJmv20amKQWO/lQy20c3paHLiZh2XL+rd1qhI5MEy/fk9XXBzFqGv6HGK+Euie4Bt7ijEqpQhX3WAlYxCW9z/XGlnfZ/zPPYlSA3t9xbQb/nwDB+XoyAUn3H5fQcIB49fAT3A4O4dmpQDhTmQr4L+oVvR2dsCpMKH2Smc8NPymTs0bwH9tR04tCEzj7nTtrZHXmxA6w1dtrC9R+vKagx9jgvXXRdZpr4kpTdbLnIQ6OGYmAE7Qtfn3pzqp41sjB+ABjNKmR7FnesxvngdFqWElF9ga07zCR0Ckli6fsp9FvvNzDKfnWVqGQPY0dBxbS94f/kMIrZAj3h868AiRPftoK0Q5e9ddusJfILsHOWL/CjolE8Ju2wbrpcLLpdHXK7vcfATNlwAbNhkBxkH2VozSnZTek/ZJVgnwSPejQBuLUDaYjNCZ2/FcwMmFCBUQpSrd1XGGQ1jdCK+Rqp39SXlVbT5GO176w84OvBwfZB5/d11dy5+pocio/ye62+wU2oPjE8dj9sLLhfgRgcOACS79wEU1i24fWs615lXQFnBddgCuoD01Wf9Hi9bg1g7P3bPN5CIWCdG+tW/bXZaNYc/SuWMfLMs+d94fhxHoQOI+KoC/hXojza5An4Q0LDwl2e8ErlSnzoSwcwLg1FtevXPRGPUxuVz3FRcr3IfLBWyhFWSQlCHkEfmVJdVNoNznrHY2ffXroIrgjE4caHhPZ0S9WWlfjWgf3WZPARQgCLkMaEJi7V0gOsGmmbjo/BAnasDf5g/v8d/shzmGiTZZpYj4BckYG40e86cyjgzszGCv86olMe+2GnVY598vRotddAw15oNBpDHU4tjmCL9wcCHRJPROHoPLTrSdNZh9S3Q5iAt1i2Bb8oydBqFf02TKPPdo+jKK0tWX1qe8lwVmFL+46l1kKKBCFkbHQGA6BxbdYpa52jA9T2Hs4GHC0M8/S5goVa5vkM0poPoSIEavOiENNKvpW/UQK0NAKcdNAPGC9A/KZVT5nRHrjP0NGQi2cUEIRuJ2iZ+KP9OOmYzniuRVv0daDHAr3VJgq+lFNeWAJXXB/E7Mo9yfnEHHzKgoUl7B3YKaWnMrGAAh2zFedsZL8fYV31E+Mf8/d4P/Pzdr/Dx4Qc8XF4wdl5x4GFz+W0az46+38aBW7dn9KNjfxmR/uMYfw0C9FjOD3D0AMjWn9olaY1wuTxi2xq++fABHz9+RL/+Ev/45Q/QaWzXqYehMQA+Rt7KOTFqhV9F75jR9yPLotmegHPkWT+6mgKEL/BCYdPnrFlQ06w6+yGvIn9R1AM8K5S6LLZhKLGJTFxkNyNgjLZ1YttSusvuS9yD7AYwFkXWSot+PBDp9wdY3o8DjB37dcdxObAdBOatVGRweZXnWE+l2c+R/sj0HICI9o5nWrV21glxHkZdi/YsjmTOUX7Ctl1z8INrpJ9DufrpgL8G4OLlfnoN+ut9AGkGhpfTEkBdlVG/x3vGDxkVzaMSuX7eMfL3dccnO9kq+Po6auDBnIz9fLQil2k0qP80jCT/R6jkjmGqp10n0CLCK8NSSR7LpbjGiJH2+aJOxlcE+jlUomJOvZZRBWkYjczP9XdhmYC/vJ+NdHHyQaaqTabFd70TZd3Ah0aI5DMbXflmhkleCW28qrsZVQG8VBcmLATIADdyb3XquHA2gKkugVjnVeBhYkDcLi2DDp1iUkcH3GksjEZNA2Db5vqt6mRgOMhCVLRqKE/jWAlgZbmyaIs5uAgOClhYNmyup8kMFIgOR+x+NIBXcj0xQK/16t1MWIrSnXR44vCrEnTPKC31K1U2pCECoSU6Vs4qOQMimUMsUbEI+ivgL5+x7EpHpVXXeTQiM+VmE0QmVcYn3sfaZx+T2vD0XpAZ4wMFmQdExw3VhY85yjgaLVq0GCmMcq7dG0p/1vThM3ZWOo0NEw8eU3r2AzgO2Vf96OOwLZmX//76I37+7lfjwCWO5bPzVXfikR16xsLdsdB3LOQdf9yPIZ8DqaORD7CAAJ9i5c50RPc3PD4+4unxCT/QN/h+/wWoNVwvzThqoCccBIXyLQJAIm+gOqWCymvRaSfgCzYZsqJE70/GuUODaFWLwIlMrWKB2Wbrn/gnRFnUDrlHo9vW0DolfdV6V1ALqyOCHDswN7u/sPPRjozOf8fRh1x103n1Zd7OpgPk+eRo/grw6wvnvD4D/P6sLZ47kB51PQJv3A7r99ba2CKWyN5DAeYTl6INSfUslASbuM4bpZww4spK38jcR91zB2tld2c6XEaO6VDL2V5XHkX6TGRFn6LuWn2iAdU2NtnIo3DC0ZImbBAaDrwY7clua4AiT7kemQcwfxFHJiI2CTm4HzjpRH3J9dWAfoSGJD3s3cCOC8VQ7BxInio99W5dnStDPdKE0SOcdUrVuiiTCuHrVZsb8bWGey1TdRxupFikiBfRKHcu4571mKOwr8qnCsY1fQHGwWgrWEl5vsYkXkdQziPliyxwMv0p5uctafnXToDtdiH3Nd9FgUaYpufQQ6tgLdMBB3tAMiSTe85oC2AeW+JN7+R6aBkKZbpEUAHYvTPQn0d9slxo5IUZE699dCHWpNQ9vK9p0g4l2obihDQSpGXF3Yw0shblTXGGg6vSArFjorRSTUIGmM7aQ+ufgBZpfdqUb82nAjQFLADGYtHCN1V1myOdOvcBrBDgWqP3IrCrTll535SKYH/Hb4VVspxh8EbSMzUwEQ450Gk/GLcD2HvHfsgp0HG6k9dILYlUTIBAP8ZJu3233Xr6ITu79R2+A1EX0MCW19YoRZo7j8MZN9mi8+nxAZfrA37s3+HTp+9wXD7iuBy2aHiolxwux1zkm5MsqS8hcdxNZHpMO0LRRa+p2QbLR9b9mG2mCXvaCGYsvDLUZI/8d7CfCDJhksNZTrSdGZAFvLLGDYTex8iP2rpor7sA8UN2KsoHrKVaeourv2flExnv7U8YOdr5QO/A8/MLdv6MRoyH6yb8l1OVm9rTYOMKv13evdPhGxzcA6xnO+xkwOjNERuxAllt7zy9J9KUmie867Yz5qffYe8R5Wea1usQ2mbRCYh86HJCtq6VcNs7dzJiR8/pVPyhp7LPoH8KtgWsUgM0sbNXy9INNGwnNoxRAUDMIEi/jDpbxz5bZpsSF/5PUXaRz1GXhn7sqQ20XWe6kb6vRO1sJKcGRmtna90pna+vBvRrVHcwtsPUVu5V0B91SoEuUdrzJ+ia9tTUGldjDmh3caQoDrl8qnNMeZRLG2u+Fxs+caDmMOU5peQYtYPQbxIZ0rvS1TnrZrSY53u1HqnK0VGExxXwv3atLelssMp3dbrRWLwJ8MeoQQHKgxzPj4KynyqUiVpVaKdp6UKKITODXrOPhlBzVQVfZFyNQpd66J7mVhYc4snNNR858F7e061HfV/4Rb2wlmit55gSMFLowkIDPcH5dgvfqgznIeaVPs3DxBOXAq2LPbPJ6zrVY9HelkYy2to2QKA99J1koh/098Ytm0qkDqdlmYgdpezzpB6WsT90exglMVKitWwG5Ef0y5/pBqsHazSdQLLYEDQO5+qSbu/A0WER2TECoIssc4kDCorDl605uxy+1Y9x+FbvEfQftpsP1OHKNrQXWWBs8I07+jG2eKRLw2VreHp6wvXhCX92fIfvP/0uHh4e8EQHiPoIIrFE7YBRTmr3qNNSD1JdItsv206Ob5Rk1eQm2Jce7PdZVFO4nQGHtWIFk+F9Bf1VF6weEdSEi3StBvvpumgyOhOBh0uWjsIc3UG/+aGon8jAUmlritZt16c4UjCu/dgBMJ5fnvHSP2PbCO+OB6kmGx5ooAH42txWOl0t2Xsw6uLaDKrtWwHN8Zq84PS+v9Pgu7qoDcvt7gD8DETW8ueLGb6gOdQpv+t2dvVptDRdqJ0DLjHyn8ue+QgA26Y2Zl7YPIN+r+va91a5Hh9dD1hkGKDvig9BEdpYZzV28GOArwb8WG2oQizWkcmOA95e3pbnoyBnPKqHW0Z5WtmGeP3/DvSbc+MCqQWjU8Gl0XHEe1PCkKn3QlOPwRWeh4sDBfAhoDcKYaaCUzHhI9XBn1Cgw4q13wqMBrDzAr2/wLmcoqCIgmmlat7pxYVTSzcClIjKmBV0kOo15hghC4aGQ8ciC30AOAOBhyYM+aLyXvLpPPHBr6ywVs/Ua4xDzCc5vEWZDC9SkTUjNqQlp4N1t5h1HVZ4NAgDSlMn686scM2dv08/cac9148sYy/fvReXNPG9ol3JkHtu6th1nirJwEXLUhllqcjUKCdE6CIplffTJe0+SXfQXA4R0dNcuNTVORtjh4HT4z57E8aAvaazqaeNjO+pSvEl1jdn0K+QLTpItzXRSin4cNA/UuVPnbcPar6daPN6dTAOVtCvYP/ANw+fcGk7HrYX4ZMPiWvUzw7ZOvYxnefYbcEu9y57/cupu6FeXRbzdqZwf1SrtYbtsuF6vaJtD/h0fIPPt/e44QEAofex48ows+z0qDyVQAhxhLIeoScKZ8YccSvj7KhNRkWuudgEs/36STTJYI2exiuBAtn1pzPn9G8A/YCP4IyzHhoOHqM5o1Mj75PKMdvfavpJpZVDWo8Uu/+P0inOQ+x8x+12w3N/wcPDBft+2I5SjgcI3FQeQkaeofM5BI3OQH8iw012qEtNmRejWtMb++N990HJCkmHx8sMtTv1RTPt4ywdWtZn2Sbp9zpdTb/Ku44imu3rDKJwCB/yAujk7wX/ZF5H3pWCI72cnYFSYb5cbtgukeSdarfg8xh/51qjkbY1Qheb3GStg3eQpD5gH1XgPnweZ9fr+uA388hQsA2Lz/r97PpqQH8jAEzjSG1jllzeTvClMkNIokM1LGcgJzg50a0YLRv2RBuCp3xiFDRPXfA8tEEBhCH4k0usmkYzRrm5nprQgOCcQSlElUb/gvLYh5TVlMgTmmIRSo/9kX0fQ6LCqx6nC1FRXrlv8z+1NcR59nESM+AOa2p7BOGGNrDzzhVpYtYEZu3NwFtTktC5isPXZ0o0N1tWVj02PA4quR0Sh8nI3mRZhZkfEx0xejbnoNRBo5JuRKbCAiPJ2x3hM/Y+0umsahHdLDIc/NbiOsOmG3XtcFExs6ojqb4s0zEw82zt3c4vq6q3vVFesYpVmxSHTGXq1zGgUuUyyOwJvVqkmSgBjTmLwCGubxp0GiDWEngXJFAbalxBvy1/hS+FHafuji06eRx0Q00Mt56JOkDm3sfBVfve8bDd8Psf/wQfHj6D6LCpNzqd5xCwf9xGVH+/vcgc/huO24t1BAZQOKR+A/h3SPQ/VkfOdWitoV3GXvzv379Hp3f4k5ffx8vLN3h4eIfLBTiOHc+f5dBHRBCSQYOzly2Ncy9PNYstcmpDSsBDEtl7AGwv/3jPKcj0pHKjvlKQtwj+9YyVBF30ndHeLJ0YpgtA3vb7w006bCoVMNDctTNjdBBAswVIIJthAR9WcKTPeYAn1rn8vePT7Rnf8w/YGuH9u8cxB34jUFM/k1yV0ek+P6zdkNvqm1ZAVvnZZO2IgvAK4uN3b+41GIsjBuOTU349LE5RPON0FGBUyo52pvc8WrK65iDmyqzWvIf0D7xx7pyq3Pe+Bx67Lp29V3kc+et2TklTJOhylexiwG6GV1oza7pe7JsxEamf7YJhCALeGzbogXvNPuNUOw1sjDprZzPX2zt46884elDvv4ZX4vVVgH41kESEJov74g4lzNor85mBOrQ0DJooBMXhcInDiYBa9Cu2KQAdOtXoeqIn0mhMrZRL/sW5p8uAdXjMcicamFQAA0Ek/b04+wzgSbDnKSKxjt6RCW++ipVCiRFLGG2zwkUqB2u94to5mUZp3kAFRU3RPEzB43UPKbPxmYP1zfyPhc63LB9g7C4leU3GXWieslGxNPnhtXdPQHpRD01sFjI8N8Plcmq/nAXL5je1idkFtJsjla43MT9GcYpQZ0yYnKXy8A0yUfl/8vQtOcB4H3/GvCP74I56RccqwMUxZeyU1WfIfPNXPNVozqrfrvHKP/+MKVcTzTi8FXerCTaU/Xcad9FRjcALBtsCXULH4+UFD9sN123Hpe0DhIisjlE6P3hrTOM5wvSeMbdfT+PVqMbIm61EbY8YSAHzmMe/baB2xUHvcOA9Djzi4CtYJlIxy6m6iHSFbVtL+2j79dAmyvcBpLPPcF07kdNk/pMlB0mU1vIv+So90xUdnOhrTs+ooN/KNdAPmWJGYDpG1F86dred8OnlKm1JpyqWtbkC/iDj4rMqWLFRSiFOg1rHceDgA/txYN87tk38mhyENk7sDtFd8+nqv+voHuzEZR95VFa6z69Tg2JnvoLTCvpXkdgVntB7Cvq9c1Gn6cT8xu86KuVpi22K9aZa12rAAPPlKxEOdZ7zjqMdWq/5NPD6fnyvlsHOaPNNVU0z6JcHqZ4MrqNAqLwL/ji1LQcbrkIp+Ya2rkDc8EWpW4qxye8YPDgD/nmq15cBfuANoJ+I/hKAvwvgd4QFf8jMf5uIvgPwnwP4KwD+DwB/jZn/nEbJfxvAvw7gRwB/nZn/3itl4HrZ0Hsz5jjDBsN7E8MvwJVoLNBSAAnIIj9AFhLJoi5dFBcEUMEdWf6qUJTTwNN4+1WFMFgeXOIwtj3ciQ5pfPDc4qCxpWcLQ8f6ShQW+w8pchGFjCqthQzYcHZRwATQQ3mLK2HKwJP0iRXgHXUnjEN0iCgdFFWt8plh8QpRmr/oyA2uoPeu6MSL3dO9uSsdk0yJw9RADIXTLlnSeAQn5uKVVbsSKUfXObYVUoQ0K8Bf6sdGfzASVknPLwFXHvFP1YcYnWFAhtyjEatTGeJ82ZKGg2P20nMdV3K1rF7Uo/nV5Tv+cn5X6OZlYk1HMbnJjUMc4VeV4+RlC8Fz9mMRrPa+oNISQQzZ3Zhbbl0Od5xG435yGPqnjid+joO4OnxEYIS6hmx2UZOjj8V5Hx4+4fe/+WNc2o4Lfca+H2ZjRlS428FbvXfcXj4PQHd7GQdv9QN83GBAnBngMbWkG8BntG3Y+X0fi3wbjQjb9XrBu3fv8IKf4o/3PwDjEbh8xEO7gAg4+uG2PXK4sjTIqzWltmMF2MZHyYPztgpZNilv9pLkTuwjx3b0MuwV67AAWXHDB/kJwV5QAVFupcy5MLqs1Rj17Hygc8Of8hXfv/wzeNx+xM+un0C0Z1AifstHvZvxLvsAZ4rbT0wXyXx/xgDDt9uOz7fPeLxe8OnTJ2wb4XLZ0Gis6xikuM0h9Q/qX7WlWTu6PkoT11g4y0d6j7D7+1qRalfz+0jP8sjtbODG8zbl5aDV38sdh7l8E8U7tjPSssQ4xeusOmfrfGcwugL59R0NnFVcYlPCwNiIxgFvoXLuAnm6F6qSsF/quI2P6artbH4v0kWat9vZWH+WMlXL/N1a/4br9fIKeD9/dhcnhestkf4dwL/PzH+PiL4B8L8Q0X8H4K8D+O+Z+W8R0d8E8DcB/AcA/jUA/7z8/UsA/mP5vHsNwM7W6BX0K+jQKR6tkS0o5BLpBzBOd28DdETfazuFAMl5I6RRAxSdZ+q1aWKCRHEJRCPKZUiPIEabY/J0xSYyl6u9OSlZo6s1Snc+/LO+B1SlE2e9GF5bXZE+AB5BCflHPtfvZ1czsJzpN/fH8zzGOTpQ61qNaaEgGojpEmil5RouD4B/EYmIMmTtV3hP5ghn8vI8yFjWSKSjNVa7e0zVnGJZ7DQoXlkEh169zPDxKnJceMP++yzaGUem7ulHZAv7l/xb7nmerwPszPX01vJSR+MjigsaAGMwp0aAGH8fscx5n5U8y3C9Q/Zb/6+yktdb6NQyLm+XN4OzopCO0jsW+GAA6CDquLYd76+fcWn72Kef63aOuuhTDtySheb9GNt1Mh926JIu3LW9/INj1/rZjiDSOWG6oF0ewP0JL8dHMD3goV3yiduIYhV4v9KtiqCCP9AFr5Odsk8V1DA1jHIx8zkMTpdAygnF5NG2UqqRmSXFMQyHz/BnciEBNZLdSXh09F/2DS98xXHZ8dMLQXdKdokIckZCSAGR03f1eQb8Fwtmhdyx+FIi/ccORrNTl8ns2xgdit6gw6dyjGrL7k7NN7eo/Iz+aLjJtR9Su5rtfRQR4QzlPKc2sU7IdvI8cG7qRKz8//n7ns86T7kD0/wA3Fc8WF3K13ugP/n84J8s7wT6RcfDmQumJeF39TlRZVVPqxrMPndVRwlYyBTCCNwpvnwXtLu21YsI6XT7u0Hbv8D1Kuhn5n8A4B/I998Q0d8H8M8C+KsA/hVJ9ncA/A8YoP+vAvi7PDj1PxHRt0T0e5LP8iIiPFwuts1XLh+Do+HgiwiO49CT3Uv7dwPRrCtYnYBXiOSk3UTGR+qEpPdSFtUoa/pkboYxtW2rhrHJw0K6GGQYC42KrQUlKP/4skgFE0ZzAVGJA5AzPgR+xPTDmOfpV4GaN0vlUvlDHSw6ZfUJvfHQg97aJuKxVbxsEZgzUKl5nFjVUrU4tzoYCMm3jrLogh5zpxq9UCNWiUggwKMu4xWe2m2STYk4qLynenHIhwcQ4IA8KH7a7eI4JlBbmbhIA9jQuZ3cSG7gdaRApwLMMBgTz3P95HtoYAUbkZeV3FU9kv4WXmR6skOxbII+aMRTbdM0PE5eRu3AxK8pWqSkBVsHkEEZ/fMcyD6zCw9luIGSgEVljoZON4yO+QXUrhhzvsfuPToFVjuB3z59wrdPv8aFntFwoB9dtlvs2A8/WZd5fL/dXgaQu73IlJ4dI6IvQB8d4N2cPtinfWiZzGM6T2fCP3n+BT7tH/ChfcA320dge4/rwzsQjT36xy47uod/7qzDmz9dVo6xhZzF1vFZg5p4OegIZaYEpz+C3MV7OdlS0mnR+gVUVRgywH6Qc+ogukClzPbIDx0vagSqI5k8fJnm7X67QTeEIADcOw65f9mc/tFRHCNE1Bo2jF2hXl5uuN12HIecCtyGre3snUTusl1r6uS5Huq2ouqHEx8TwHUwikUb5Hvrtp8i56fGSN/XdW4pl2WeRPlZLmvt+VKgbhKXYEXc+AKRRQv7mj8oYSb93/hPfs/o13sBe3npJrBCy1gIG68VeI9YBlisLyNyrWAsdaywV18LiuyMYUBOIR/7BTX1+YB0FnrSNF23YzohZTPYg9OtjPoEPGDEaqcStf3X1xfN6SeivwLgXwTwPwP4nQDk/yHG9B9gdAj+r/DaH8m9BPqJ6G8A+BsA8N1PvsO2bWjRaOr3wPUaVbZvhrdonaaAknmOWHbijXx/81TuK/xMQEtAbKTLHAyHqFdwJpquleG9zvEwkvnKShwNVgQyZ4Yh1z0NW53Wc4kQTu6dX7WcKdJg2gXYPLxFEQTfPcMUMHRyXqPQeFXTrhToJN+Ud2hvorEWxSLklk/NF0WOM21qwKJh9I7h+JEiJWbwYIBfC8oGUg1uWPdB2YBEUlmNHCN3Nhb80HynCBQAhXSap0UIk9M50deTe2aIS2fR8w6ElSuOXGgnyFKf6VR8vrJBibQg55EnBhpZfetULpT25Iz8n00pCzVLepW+BZ0y2nznFEe+5OmJMBbtbqC2YSyubC7P5oQY76/P+OWHX6P3Ay83j+IfvePYd1u4y33sznN7GQtD++0m22/KLj0ctvPUnXt0+oWiZzhoGzK74Yf9G/zq5TvcXj7guH3EAz3gm8vD2Mln03ZsGJFgUzLjRG0ra79qI6KchueU7FloL3IZXFobiq0XC777M7+zBHBknQNK57pADQNqjXWKRNpZSmxNF2QyQD9cPGbKAw2a8dBFHaEnktNY2aPJRDp676NBYLdL3Bn7MeToODq2bXRMqZF0Gl1+OGgEA7YBQPZxjK4bTUgd8+iy8+uOS0S2q7nt5+j4/XwU9EtOEy/v2bF719lIwF1qGPARtrN8VjSeZ372/lvyIZJp0wfedlUfEu6noEpMU+pKXGgL+VjgWS6T5d7T1L6Kq7yzqot+m+FCAGPkKnQIcuFBGIPdqPj37Hoz6CeijwD+SwD/HjP/ujhnJt989k0XM/8hgD8EgD/4vb/M3Hs5vjsbIme0ghTNyEFokx4/BUUPBco99nfMAFhGWlnTiFEuzYqSLLrT4i/lhtHTQ9VRg8YuGLHXlnrGxcE3Qby1NxoNwORkAvZhzkLhJMdEsOkIZ1MNOH2LihCQx+qdavgW95TuV9PEjh4UpMb3ZgB1Qpq/U4xCMqwc8nXCItFGU474IrSvDweqs9Hq5TaMckbobegF5ca1DlAyRUEpIolpSk7ByIk3C8C/6iB2dYqZ+HVHKMqb0U1joeJJ2ljPlbOJ3ycZiWVoHsBp2ysfR7vk4ejZ4SSbt8wvA4Zandcd4pI+zG2ltR+2IubH/l7RAQZP00hsn3AMIA94FF/n7it4YpZFhsS20HPIAuOnj9/j6fKMD9cfxp7tx4F933H0A7fbi4N+3WvfpvXcRmTs2MEyZ5/Q7ZPAwfapPKhgy7oAvuCH/ae48SPo+hN8uL7Hu3dPeHx8kNNNpfamD934QcoX25HnNbsXublox8kMVv1B0dvwoMrFF3nUOYtUFs8ydPZbv1PwB/VqGIPvDSPgMqbJxMWabv/u0atfmGGdVwdIMc3476dPP2JrHZfHDb3/FMchnYQeM6y1C7Uk9cE9L6lgn0v+JfqZcp9N4hdcwbMm/fQ61ekv1Qef5ynWItQx0uzlrjsnFCQ9vn+PZ/f4uKZjto3r98uOjcsSYmqvSAT8AMboUWsJ8CvuNLtb/UnIc1iiAMS0XurHRQwj1lSidRSJJArAbaTpEoxg1oPLhgxU36OYVXGd8uufGugnoisG4P9Pmfm/ktv/iGTaDhH9HoB/LPf/bwB/Kbz+z8m904sBdFnoNffEAx0n79q1hUNxUqLQ6LE3F8rKmtZSIwPa+GM4OwnoQEiBPgoNHQX4QbltAAAgAElEQVQC0qvzd3WB5tIwVsUkXdDEZsxXShMvCraPKR6dHcuIYHImYyIrJiP7L4Hd1TsI/B73XjeucSQmlhGjMmUiluWtRaYSUnnKRC2rvyHNGqxrb5yCbIzRmW65xPpM0z3g+czXNhtjJaC8dw9UMnzXkW7bnLqORSPtEYYFyGYG6eLcV9rvXuSGW0OLU9ZqROasQ7io4zLyHj/vEgloO9uJo3fAfrwirWf0Vr7ey6+SReW3fed47z4ypAh2kT81uDEWS+oC3SYdAJnXLZ+AHs7FYHSAfGrPho6fv/81vnv3Kxz7jn3fsR8HXl5eRsT/5XlM79l323dfp2Acu0T6jxs0mm/dDILM0/aauu5olL/jdmz4k8+/xAt/xDfffIOfPD3h8fERT0+PslZI01cOeGfYwGpltvz0ftXCPsS0yb7Wr7Ehsr387WDmfCUxJJGVbATtxluAvxlR+SRIV5DGFM9GZPPihzhlYHPSZ3BaA4DVYMLkmxXgEeO797/Bzz/8Bj/gAb/uB+jY0A8OJ9th4nvWo1GJJmeCxLH2vwjgdz94L83MiVkm6/P5dy6Dp+eJqmDfcnn5fbdlla5x0nW7YwOjnYs8rPx8Ha+8ZneFRjug742g3wlI97bWwNt2ml7zrgG3sxGBARWyjzr1Z0RgPkaEnzidsM4YIxkr/xGzOes0vSbDb9m9hwD8JwD+PjP/R+HRfwPg3wTwt+Tzvw73/10i+s8wFvD+iu/M5xfqpSE9EjoBcawbJKWgsajqrIzxER21lB2Bj2Se8yHB7WwYkLRzkUB/3C4UVgdqvitRjSifAcD0rJHloaD/FBSt6qw/e/eFbKuOxsjkVJGieWqtZYuqxqjcY8APtRF+GI+WRtZfnsaOrJMSP5G++/9UjH2kzSwboBGUkzqn7KP3p2AUAtXptQIASGVnxgrxpeBwx3919IMmy++jPN75yvUfR+yMKuuUZEk22ilGNAiIJ0VaOtAYPg/g+/SS9I6V4vSsUWinDSYkCLqJWTc9GzIarWEsOuN1jzS/6sYFmaQTUhGlK4yiBYemn9VeNe2gq3ybzM/Af9VxSM5GAReEINmaMJI+ySHlWttITxDUYd9o7MdOBMYG26VHEuoU7S5V6wTbzYWZ0dDx7vqM67Zjw/M4WOsQ0L/vY2eeQ8F+lwO35ORdm+YzPtF18eWwcU5q3EDUagTmjv3Y8OPtHV74HWh7wpUe8PAw/q6Xi+0MFvmQNcmYGhiK+dJm+ItAc1avYDUYbWS2QEsgez6Rusz2JJ3KXQEU+RK5Dn4iyr3emV2F+7vh/ij9AcpryuUrKBIgX4M6SrOahNhCzh2P9I55+d3kmwxwMcrCnslGmFyo3ovOmGm1Osd87jREzHN5BV9DOOHp/fy/7FK78lreMyidgH/g5coeryL38Vkq7QvTLuk9CbIYkatmKFhIv7M72lc4JBmb7AIRwxhWozY1bizD8iGGnkExghvFn5vfd19nIrsgNPuV+3bqLZH+fxnAvwHgfyOi/1Xu/YcYYP+/IKJ/G8D/CeCvybP/FmO7zv8dY8vOf+u1ApgZx+2WHH3tIbk+zaBrKCrZ4gm7WcqonzGikMpqGzYF9fp++bRroegaO9ApS9Qa2pa3puSFslWhdXrk2EEB/eB4gMcsAW58ClhMz+p7arQF8M02095qrQHb5gBMy6JMv4JWDpFl77gowCkgtQCW+WKxQdrpykAvtXttGyKk+Q2mjA7YkOqkz7PLN14a5+Su5l14R/XbG6JJ2Q2XZ8WGT0A/8NCj3WP7QA4Oxx1CeE+MRhyRUtoJQG/Noiyra57mFYF/rWOSMKPJ5EPBcqhra9EQxnpUttJsM5ZX1MPsTJIotTCmRMEehB1pNFqsu29YnoGK1TB4rDet+KW6okgoqD6FzkYc2TAcScGWygMWsD92nRm63nlsx9kZQB9A/5D1ruN0XQCNwQ3gPnY+eXd5we99/Id4f30GH5/x/Lzj5eUFLy8vOI4Dz8+fJcJ/s734mXnM5z/y4twxSXdULnawwkZ3BgjH6bwHfnj5gD/6ze8C2xO++fYneHh4xE8+fsTT09PYwndrgKwpcIZF5oetHauITCITOuMniVZqnaaRrmx11dOQyW8bdR46E4V3kSgZs2EUtH7RP7mtVDlT+zbm0Tc0ifg3tBYCXFpGb/CJUKM9I2nqg42oExvh+5eN/4+DcTt2EDUcvQO0jTZPIf8vANLsrHCz+wb+B+W+115uo4bxGCyfA4G/ZZO/kchMS3y2iki7z1/7ofreW+V1BdjXIH6VxkcBnfp8vZWFzDxk5yQnmgpZ8YpTkrhJb5oOHIjSE89JD64zsZ997upa24jZfpxdb9m95388LR34VxfpGcC/82rJ83vDyauBzMjkROyK58/WxL/m/zwtu1FOjV7fjXTOhE9U6aSFdPrk2PDcsKHPO+dQuQqYpAib/xw6KjY14o6wLgFjQuT+DsgWj7Smu1u40KsjMResaxRYTLoYsWRnjd2c/qwecKOuIycUwywnIxcgNf9en9SZEdrTQV5CY1gVUeomCthyTz3RU3lpjlJRIBviumvC3vqwyuWZExP5sREAoyVGT2Y5nzsmdCqGJO/fNyn5/WLp5rTJx4eFjkqq0h+zCdFE889G7wwaXp9C5uQxDJaUe563RhMt+tyabQusO4zpNrT6vs0d1mhoKl/0YggzQOISrKnZmUIB+Msj35KiAH5owQTbKYVUx4FOTXS+CQ/bOOAIngEjmMoAzBp1XFrHdXvBlV6w4Rm3PqL7Y4HlYfP6uWtUP9hCZjmNecrcZILIZS5W2A66IwJoA7cnUHvC5XLF9XLB5XLBZdvG6CjB6ms2wUDr0FvVYV1zla7oXrQpYttV0O/NIHZ+RLl1KuMU3byjTW8FUGlkgJxGRsw/2tRQB1M4mP2+C5PZeRc/YdHFopurzuhd21doTfT7M8cIPZw6G7aWFD2Kcmw4op76vaqm/Jddiry/AqcsvF6DlEXmv/21xsa/baZve+9tkhhyDZ2Z33661JQrIr3a5uPyhhqmMngVyl8qNVxsT36m92q5+p4HpbRjFOYxONn6aQpT+K5mbrITa97l6T73066ur+JEXjCD92NiaMY76tl1yNxvyVExY8uwe5MIAXcaagMjxgoAQO5MGOxsCGr+H+b41VGPaM84Nn6AdnH4Uj09lMMW/arhYpa9qzU9S4ci0BiAmg7djzxDbYJwJWEHAPKTkHnTnXCi15NIMfOItOkefwuAqHLN4T2Y02e7r3wYxY9pBjpP1KPWarlD7MlDEEam8yrcC54p5RVfFoXV0QgEhVInQveOPmdXc1N+kr2W9QCR+GYVa0Rz5lOaLE2K2Dlt/pPsmU2LCXU0VtGsFr4OAS6rWiaHdwX9KXihslOS1yUSn2s2XUS+ck9HF6KBtqw48GzOqxkIX5WxLjonCTSwrzGwKuiHyUPVDQZvZEBkPMqLvvy3j6DolQIckm9d0BghD6U2wZDboA8JeOpJo1AHRSInhC4jJl1OWyU9aIt57B3SAaY+Iv48Iv0koO7jwzN+5/2fYKMb+Pgen243vLw8Y9933G433GQu/22/JYDv8hH325c5/CKHGzUhWwF+t9EUBexb29Dahg/bB/zi8edo2xO++eYjLpcL3j094nq5jveYx9oR2U2+NUr80Z2FiAjbtsF7B8rSvDNHtFvjxkK/o9NXmZB3GreY0/RmtVEU/rO79XnNrYAAH+4n020Sn2K9UTlNOPoyay0m+67uxgxZyFdtsOkKCyjRtEascGkx5cjsj25f2BjMm9gj7SSOtGO71x2tXWSKj9IiMm7ljP/MvqPD50brqLOXb9OuCCngsI6EB707A7mU3/GX60+Xu7NY190M/oKX8iRHkaVN6lpAzHV60zqlRZq3RPjl7QAFXA4oyeKaf7/ddS8Tnn4ZxjG9n9MNvFQ7netyZr4EXBLwnadf07a6vg7QDwd/HpgsYMeiDGQRzbigzebOLupcjaMD/6jAno6CcZmYv/itLjWWYeW6B7fnOhUgDfkSAeTzpT064tMEFDizGrHkgBwrreeM50UldahZJkcJEPd5apaNRuR42G2dB3n3Mt6480ugn323B2o8wDVR4kFsO3+PSzuQrnMOtxy0A7QwOI6exC+kPLXj1ZoAoskSZ8DGZdEuNoC42T2Kz1T+Qr3sd5TJkD4BfusASw6qH/DFulXeXLj9XYcskboir6yRtSGvrbXSCVpdATyljkBIIaPwcRZz7KRl1Kz0qGGPtuF1MVyVf0Y3za2VdHFWK7ImWBGkMqiAeXKe8s/7Hg76dV9nt0vB0AfHwmGqXxINcs5atFl1wb43qxkRQdC9nGSuYM/ltRHjuu345vFHEN/w+fNNwP6Yw69/nbtszym5iAymo7HUrmGYSeVPk730GaMTrPuvm07LwtHrdsW76zvQ9ojHh7FTz2Xbxp79HQP4g200MM7xN4DJHUQNm05XDOBL+aY3qmu6B8ZU53wE2+lAkd/sNJw+/RLlb5VmZSeyVuT0eQSgpq3vjH8+CWK0malpkDOVdY/0ZrNp0dAwPzHb7FhX2VaVvPPhNm3IfO/hoCSllgBm1zNvM323cC3w3gB/uVZTg6d3F52CqW2njBf37AyVSsObM/BvJ4Yx2aqQ/yq9eM9gt9g7B9ZbKjJ7t8x6n84qNxMCCs3melqB/7rMRbtKBq6W0TeeXW5rFTKkO4YL1u/6SHLm56ots0dW3WEL1mndjQaxp691pL4O0B+4l0BmSkDeruTAdvRGteZZCOtlsoHwhf1ZBmXh+Ww/w9dokEUQA8Ci8k6AwagNrVFlO6VWTmer0QgKZaQqx0iLAYTsKLRKVSzM4ZKW7wZYhahh9GjJOiGhbhWsJicZeR2HkD36R2CQrH8oLAvMk7STUM+Lfq3jwwxdXJMdgWlK/ozGWyNClIf+s3IHlWd3bASAest8Dk4rO5s5jTWbJtA2CQZ4GTmJoMOqNPhq89KVD6ZE2oGThfA8hs4ZkOFztmjrtm3YLpdJrheEOJ/Tb7lozLnWyJyRlVGCdXhjMMDyEX60Vnp8saAJGZ1fQ7e8PVfZRcikTDA9owqvpA0iEl9EzDi0OYM8Qm+7JIU8tWevKqiRfpE9E/tAn00EpEHL+Gv2CQJ0zxydqicIX4gc+vPtux/xs/efcaVPOPaxcPf582fsx46X5+exf/p+2LSeNIXHyUEjoG0tBAIU9AOb2B/vaHbp1DCu2zhR98f+M3y6fYvt8Wf46Tffom0XPFyvaK3hoju4NcLYgpXAsrNMay2LSRsjHkSErW1Y2kjVoSDAwUxMYlWOghp2J+Yh95KUrZx+8PgJ9BdZi1336UX4Imy9T2AQt/GWjbiEwyxhTTL0X3ZwIjR0Hmc1cNtsJzj/a1AjbF1nUv0dDtu697qWooJGO5+mdpI5dTqIx04/h5z/0NUV6YYXUl3VZ7YyqmHg5KOjXU22VephHRqEzmCgy0b6VMqif6zXwh6pjE3xpaXtmjy40J7b/9wwlrdpao4qSqmkyWdlo+j3DJm+hZSV4b53UalmxD+YaZqKUx31JLHqSr5T5z51roMiwNCApTrZX6ufzeWtsuZSLwX9NTUDIQB0fn0doB84t6J2T4aA2dk7sSqGYJbA35v07GkFZImmRY9WsJiZ1CiHa9jA4V8pXEAPNQfgBCC2oy5TIqlFPGZ9vC5GM3QAErGBAz4dwQWyaaQxpI1KbuVzF4CIBDos/xBpnlgATPy3rfmSFkQFOp9vSiV/0gyMUd2tGlFp5+B8YrddXjaHmTpAOuICfw9IbdoPMgPMMY12KJMxOeFNcOz6W3fZIejQeWxTL2NUy+lpPJy9OT8zlsFBW3XYdsUYewWH0RWZv34WuQlVDXXO9Gm51MNx84uOTIqSpoyDSjYFbPnBmazcuxpcn5MBrrKsZWs9wp/xt3hqBR62S5LkO0VliNC7gyN913VZxhs48Kcbg6FctiaI7aq/qQ1QTKPSY2Ev2We0RWijDGLGx8dn/O7HP8e+3/Dp01ise7u9YN93vMingn22w7TMMhrXGiDrHzr4EEBIchJ6jLJp24vuD1B/wUv/Fr86fh8f20f87P3HcbBjM85IMQpC1cYR0rT90SC2Nqm1lh+Vz2oisq3TpiPEIhIcr+/p74Qq3I5UwKWjRVFPKkjIFnvcG4uwOTyRY9UEjHsAJ9tunZCl27cSN8i+z7JOooX2IuvPxhFiVsMSPFZaYxR5FTsP4V5m4KC1s0zNkj/LUrfaboNWits6Esa97L1B2hkJga4a59XO1gT4i5Hh0H6rWHG9VzsOdncWibsXBQeo0erhe+o6lRmZzPnk5DrSM6WtuZgABsG1Zufkf+fi13zINC8IKITfC4bdu6KLj3oUqZqndc/kWMBk2WhUPv2tRMfynfC9dkjxhcKCrwj0+1R8PpFJVYZg+JoCVz3CWI28OJKRKjTkWZN6Ga+JS8JZnD7sh0bhFThZdJaiKBN8flIADiFHN5qhbHnXH3n9qtAvB6lC79adq5EhXo1QnQDAtjBZwY1Ok/KKlwwZ5/wUgwKL7JPfi5QXQXZARtlInQi880wN8QyQEoeLblYAMr6qo6x0kbW9lpdGOUw+53fXJo6SE9J2G68rc89NRYwCjt3Xg+BqZlonCm+zTsnw3bAsH+10sN/1+bns9eH4m2EnKhvPqeTBnoPWTwBtBEuJP0TQOcfVCb3R/lmVrQax42n0eMfDo3lwkNDGiEVrZWSn2jIF0l7tCfjHDniqMxXNUDRvHaO50lyTkoL6jg4CZMs4EHDIs86Mg8d2nZ3ZP/uIrN72MI1HD+A6djkJ1eU7tVNFMcS2fay2s/JCIg7WoSGM6D8R4Xq54Hp9wFN7wLvtCY/XB5HFIM+TfTdGo/ewM1B1uL1Mzwu1WLDWy0o2TiW75uRXUtkU6HIeZFdP+RurnXb7b/9HOVadaNFOC4y3IAjET+Y2yMB7gH4I6B8jRLovfwD+odObcV5PtmDodBwBIqQlQgTbvrB2kCr3vbMFCZKNw5aG4HdZmB6mVjGLFSxtb3gq+KBiUOzMlUWAq96PQZq5HWs95pq5rEUfvHw9y4D5/1CfVO6C5vQ75unJzSadBD9cdp0WwBfVjs/qG9Y0ldpZPoh5h7aZME/ES6+A/2h786LYOd36/lwLrnTeK9+08nw6kEqO7ZqqMkZh0TBrXc5pjddXA/pXANEBU3TCYmyVEwAg809DiNHkQof73B1Ex1AI+AuRX0ALMw45dXJEmcZiMo3iu3EJwkoUNE4dolRR/neflYcYCbPQr6qo9NVUCdx2P6Je50/qs2HNYfO6CUVoFyC9XnkYdUlm+RLyIQWezseR1rff4+m9CAsp55foyvzLU3cUXJXorIKxqQcuDjTwJQKZKm20+E7w6Ccg8/VjNHC1c2agByHyqGA9ygDCoHktXd3FGNlR2eSRTw8CxALqYz6pAVlEJuvdmGbATg9gwMvWu7Bvg+nVC+BC/mrn+O2Lw1KVLQrvZseBkO0HrgBT3tHTSEFjSonqNMGdyjTPN7KqPgd8Nlnw2abf+mmIXv+KA0fgqwxh2NQeyEJe4rFovwGdBqA7WKLDHeMwrs7Y+2iHl9uOl5dn3G43PL884zgOvOwv6IfO3+9OR3BSXlmPvJoNKB1o7ixTc7rZKT386fHxEY8Pj/jQ32PvH8eUHpKubRgOTaBLAxbMTl8EqnJoRT1ITzNQH+6QpXI5yLQZ17UNdn6I4462QT6jfY8l2ky8UGy6V0pyHpB3+jAAfkvbFqdlugautPSmC70xzm9g2nBgrJvYdMvO5lF6HXlurU599HYA52dAmCpUALeqW1XpCHS07G2TtRkyEZXg8qWd0mbbfnhjJNAfmR7aq4J+qVUhytj/+pUAY9HdVNnZp8VrDXYx3asdibR27MxvirB9WeQ8IC1RBf3UsladmlIre+7vZ/8d6/elgD+mjzZ+OV32ji+JFsd/3+s8ZD64gX6lLOtwqW7keSLRz7zF9X01oH+hZ0H35VsSFhcCh6cwR+FyE821NnYsbMGl4E+r8U3gQhbd+FyvBH1Cfi5kOoxcpzWAdGePCB7d0XudFGZn55bqp/RFGrjwJ9cqmHmkCKy/zplX1fClZzyVkSNsnm7lIO1O4KllEoTDFDUpUI0yjvdS2lh++G4m5U66yFvS8gKg1sgLBx4GHzbTcHKtDFDKh2sLeZoEqmo+4uTX0RZCFUtb+GkdJz2dkQ0QqUzFLHOdgTCUIE1COWU0vomidf2AsGtXqUql5d4VqUgn3daAg+qN8j36H5W5AKYYbowTyFl0DCfAHm1YiHpSIMfpivoU7RTS/WWl42PRtXEq8bjXZWqILpjs3Mcc6jS1QsB0AI5UGuDEKkKdutKtnW4iOeBMDsvcCKC2YccH9P4OB95ha9uIQveOTlB4jvEt2oAAOGXHNJLOTyMy/vXYAS1M9Ht1/vxC0mLEkGf5NZqAZJPjPUCj327vxvafZs7Gu6RRfDJSTCSDD+PwUMGytZeUncUlg6vVdfSG718esQHY+2fXI7UNU3OfgZIYAxdbw1msATX9ZHp33XZ8fPiE62UDhYZz3K7WKmQw39XEgfbwWMqK0Xub3kOZcksf379TU+HIlOZLAL/l6+Ag+VkHmHrf27WC3ZUr1kBNkg1W9+hrHBZeUWipNDm9HJ1HKTXXa+HLeMiClpZo0YALTpshvOflKQ9nWs9BvI2kWwADZl+A3G6hiVJd2Bga+cJTOg8qRvmtIOBtnu+rBP1OeqhEta1cBJKq0/bXI8Pvm7JSxgo4USAllMFwxx7nUGqUqsnuEG3bMAExLafuijKQA5pEVEa979CLzCaLDPPKvNypI5AldhFmqbvVnJewuCLfODaaUbVup8DfCLRP6S734nzqcTvAkZDm7LJdnzDL6/gUb7XCAohO5e1SaClD5zX6lmjcYhS8RWMBMVxdDkBiTrmTIC6Cbu0+jJ+NRJGZN6FFaxvajjO4cHRS6mx2m5Rjyz9N7O2RjV+q6yQtzqU7LsU+9J5NanChHtXgMR1lTG9AYnoywxW8d99uknsACtHBrNSmw+2ZrwIVVZZoudwj0ukKsHxjPVl45tIj4IcoybrFe3nsyHt0xn50HDwOQTp6t+04j+OGY99x9MNP1JXplESJZGcVI7S4A0/dNGCzNh07ZrXLkOGtNTw8XMB4wJ+8/GX8+PlbPDx+wMPjIwiM47ZjzFPPbekV805JHMoHwc4lsaHx0vxTBy3Kc+JyuRN80fnF5jdyoaPcJvPPZwjoBdVpJCm6L5+6JevwW2N0zTpp0ga6hDs60zGtRw5lA4Ex1s0MHnb8+HLBP/n+52j8gl88fsJTexaboe+7OrB0HFl2ZFIaxwfJaHwENSutHffV7n/79CO++/D/4Nh+hmf6JTo/2HuahiDTE5nHaBf7KDGrsBPCxhuVjwIoq63DefovmdpTLw70K9/sGWfprDGEGiiMudY8cr7n1FiC+J52oNUXp0NCs37MoD9530ITTtNWjOL6HH2h4EEOU7nO/Gzw+9R02+rFOR01Pef2iQE+7fs021N5ZYxKtuSjfSz5pxEAK4usrHxFvvh0qteurwL0F1EJmHA1W9fT+ZSWxdNyM8cT5msuoShvAC0EpMgxa7qMgdzBk09HidNAsp1/G1UnVKbf9lYEtfr7JOKYiy3GYYqI5zY5k7OVsZtMUrE6vq7B83g9IlLMSXrk9c1rEGJanr6fXSR5LQga0kqBAJ7TftlQaSLSPiP3XTyzYdTvzk2PeEYGWYSDk4ivxN7JmejzNBPrF+/rjfG4zGkH4HE1LvyLOpQfTecblPupgEJPtAxWbvBlpstaocCgqM+WT2wvRb7SITSbRp7rdEXwhQAMA0C00YAQoov2UG2StUnscCbGRRnRTlj4xx2NDrS2gzAAvh86GIGjlBeazGgMtFR7rvredIcdItvBTLffvF4fwHgA7084jndguo5R0Q7o2QqzVYLRFumMTB5Rtgw65vdFIizzIpNFvpjgduZ1852NVWQcr+1eKpfCdwgP1CeFTxabpJ92ECHH6X2c8wwyN+SHoVttMhhHB55vFxA6jitBDnYu0d/FFB+xiWElGlSvoZ0w5UFRDrVnBODSDlwvjFu74Zl9FIFhqlX4VeTuPnflnTspzI4Eu1vuTb8XZFlRmk6zMT4GrKE84+xzTfdKCZMMBrLu1d0AptiWu9NS7xiw+6D/pOyUrOYTPgM9yYou/OBpWbHj+QV+eaIHq5m2byh/akeVymoT7tBXdeTVUr8S0K+Xu55oaEXwSnVyxG/ci3Z97gHXUgAz4I6KZ6EWOtJ8Q9dvMOuiNEbfWGzn+OyyiCnucuCEBirUIFtFUNK5o562piz0suYHPwsAPA+rns2HU9rB6vaDb7ASKO12EacGRa19TZGMRvAYzic3ntq2w4iH4fDwp+QQAZctToQu/JV376nEYJPvVhPlq8W52jS/M74L9NA56CkqSKnoBMyTkXawaVPFenScnqUbHOfXdD/WTw4iGs/Y65JOYXWwag5e8YF1FtXoRi4HMBpqbdgWCKMsZPXqLAfVaR0k7QYEfSh6715Rc1o751OvRp6AKI0ONnLpqb5SHXEaraHIu8SGUSv27+qB9f2m8CVsozr5Rpm/NBYzuzysqkMClu07wSL541A9BH6qLMsWic236myA7JDGIOq4tgO/+PCn+HD9EVf8APAB8AFCB3EHEaM5xrPaj1KEk8IIW5/C3Xbr0i02L9tYFLptQ98u24aH69h7//3TEzoe8MP2EXh5J2khW9A24/VwF3FKVfemguyGprJDZPoWpwOpGkQus8jmPCrJk6DkbjbUSETxCOkpl5uyDqnL+1zTpiwppevUwYgQd4B+X7wru/lofiZPQ/g6xnqVTizbd44RAD6GPWk4hoOQ9RKqtno4FxBGUjjmHQD4mS+Hu8QmNkfXDSi2vw8AACAASURBVDAYt9uOW9uxYwf6gX2Xg9ZonDjjeTHk4IawbkfXn0QdzPw1X77guY0WqSyFCG1cIzDUYo7U1tkD3u6uxyAnkRfBtnip/Kd7Xg357VJm96i+kH0cAFsPwSIzDDY7pJHt6LuqPUu+STujljkbZqnEpw5VILa1hlai7qZ5cXOUJQc8jY5AATg/e4Z5HFQI2Hu5o6eR/td90JQiyJcXN9Mhbjr9zvmdh8ZX11cD+ueYlytiCGb504WhSIjDFIlWXEqXBwHkC8OO62ajhNz7R9CmvU7pidtwIDOoxw02Q3n2Jc7jRFGGnH5MaUGg56RK7I4vLogMnJNaalQIZlQCWa7cFQFB9TYPn5HyQhNE/tQsQlm2QKqeVJdAlRiKRWcp4FQv1gxLSR/aIrZIzFZ5NsC+TByRobpotDTHmZ5gYFSu4qc/Tfyx7EhBCFnnLQ0rhnx09CgCv5h3clqRfwSbHud5aXUkShiAaoyi+Xaus1LVaKlVuxp6Saw788T8lnxZwZzqmHheR7K8oqCUUPSZ01Q+qYybHNSsB5oQULEgP+RbR/1cd2Ii/66k+vzlmiGyvhS7qLKv/B7Te2C89+IZZDufDeD/zeMnfPv4G+y3G24vHQzfjtO1W/6k8hFIGwuJbPoYwDZ9R6P6rZEtEL1eLnh8uOJyueDp8RFMD3h4ueKRLwgiP3hoOsbzX2i/uCjea8tG9nSpH+CgdrqzGS1ixZqP8lL4zss2K44t1Kk03Pi26DhMU4PIo8PjNoHRrXU8oW56MKb7WLdAaSCXEwZ816dYvoHmbrxW+VSxyqfdi/1JYEzJ1qBYZk/GxSND69BKp65zx9E6gD6mEHWWNR6jAWwSqh5YoHXjMfVuyEMzY2VFsvOsqrIHoyD2Wmjk9CLG7lirplbLqA9LvUOtY/lqo13cs193CvNFi7vTZJZih5Jb0vpq/UFyWrLPpbdgTNWBkG/CB2qT5P2zabVzUHK8vxU/mBVIsUn1CNnZDZsafOJUulixFrADjfIsCAjIYaXO4dmTRH8w+8tFrReUwG0cvC2s3e75vHJ9FaCfIQdBFro9iqm/imMMLgeA99jlLqfE0RjK/wa6EZRXnKMJxID+LTjeHHnhtYFguCGzDgHAFm1dX6vGUzpiGatUVjRlgYhpmlseA3LuO0K9VHNNkYNzorGrQ4wqLWmJ2q8lcG6Htl1gDUDh8K/esWq7UT9XOMu9NR/G1uhBoUgVNZIoGZpVbtsGZs6Hz+ioRjQ84kNU2b1aI80AGPk9SinmNoyg3aaBNMghWno/v7wCFDzVfNBA2zb4IHpCFGbDW37lVU5foJGtGGHRKnpfSHmiI07SGtEfksoimadTDY9FlpZP+jXfDeA1yD7PrxQnNvJYnWuyGsqt0aq0e4Lmnny/8znZBIq0hcXAWncBZjGSRDYipvXNhyS53LMcWiTbbgLo/ZDj4gewHsI11nns+w233nF0xssxANRx28G04+XTb/D5+BX6fuDY99ExPkaEl+T9NN1HFMTmiZtfVUMz0pGA/m1reP/0hOtlw8PDFdfrBZdtw/WyjTn91ysOvuKhjSiu7tRFgKxtkF2eBAjGDmDqvEeG6/No26KMMLu9T5f6BMmv+qygRxoZjUGdaAtsVBNRzlJurpdR3ovN4cjX8O7owDVvgmzsoUIa7ShZFSXgo/OO5QC/hmF/qXfg2AEcaGBshNG9ED0YI6bO/+Mg+z320Q/+ddERUDotmGa+JHh1Gge8ff70GWgbPjw9gi5kcscyxMWs8sqidpKGeXTqBHw0Fxrjp8XXVYaFHu/4RyGJRpTNbpvfpZV/p/SVAbAMOZo9CQGsCh5LVylnWWyUPhxmdy3Zsf42mtHjzngua8YujsvoPTOXJSG84IH4baamEBVAT5bnaDs9TQoCKmYyIh33VXonF8D6jEL5Iq/hfZ9noNJlnmDct9eb2W4baUwBSuV99M0eAASRH04aesYeyn39+ipAv14cGk0vjWaqs8svqBKMquruNxUt1Aik714Q7bF5Jqj0KPDX7UBHrzbmFJVpvsy5W9oeBDUIEiGOSsW3/d00r4f9/ciM8C1NF5KK0hgTT+/0GAGOuQTwVCP4pNsUQvU5Op2cNtVhKiNH3mI0S0/hDEmNHlcM/SsL3pjrUQNQpBQj4/GRvtC2LZSD4aAKjQrC3CjX/ByM1cuMxamVC+lo7GKS5rxzABTlWssiW73rdKU4/MkrhRFK0lOVK+10BX6aLAgvGT5ygu6jFgxgaw3XyzU5mEma1QkW/Y2/6tQnH/3IzkUla9VeKrUdGq1EartVO2oWWr+xp31PeWtUMgLznEe0OWZ1LI/Oi5mi1hENdrGAzzElDDjQEY/H6tyx9xHdbZcLiBiQxZXHfsNtv2E/Om7HMfbr3w8w3fDy/Bu89N+gHx18cNIBYo/0cmisoDHZUQXuEYYcXLYL3j094vHhYXw+Poz7elouAXvfcGmEDcJn28p1yFrvRzgrAEnmW22/0v5R8lyGM7DIeHBIyRxTCSjAHLn8RbCUAhYqI7NZSngw2fJBYxdaT1Y9ASA0tvBBBj4c07GR76+z+CUdARjpRlljahf3A4wx1atRWBBsUwkJ1LYBgm7jqdrrGnvxqUCFBcpv6WhbehCABu7A86dnYNvAx0+0ZaANyBL9P/YB+hshBb6oOzOohYYgBLkOeEK33DZXlxR+wVt/VqPPNQmAEVVvapEXNq7wRnGAQ0aSbP3d+X0qfi10DmIy3e6825neS5oRarV0azHzRYKVfY0vL9lZyDApD+2SgD9rTlzoz3qszV7rGuWudrTINAy2qYRqSk2pnWClWW1phDvqo0HxZB0PLKnvTZ2zQOU9TAp8JaB/OFmNimY460Y2CnR4V3ttCtJJAQN5+8bxWQaScq6iqJ65zOfX5EXMFtIYKA8fC5Qx1yRIXBZpnt4RPthpgl52OSfJBEL98bTrThEQiv8paFEgZfllELzOh71OifRgkCtLznQ/CIPVPshFKltAZQywETAvmCl0WS+6gsVgNA0MqDNwsqBuPM2rXtVFhDQuBLfySueKwWM/9mi4RJ7IFtWdsyvmZTSpc411hBs6X4SnohvlkEFomE4vDQJqnaEQ3Vc6hhwNmuNIij+feeXaoHqKZErNASPq3nzFaGgyBSUvQgE/q7yYpz8Fdmz5ODA3OrUCXuKCzuxAi4VInSyW+sy0qZPwHLvWtgFN9zOX01VHH62PHXmOA/t+Q6MDP7n+gGu74YE+j52fmAHt2JjQiHsLCmejErFSgdYBxA4czNhvN4A79tsjNiL0hwsgQLZRw9E3/PrlCS/7Bbd9bM84os0wvTVAsrB96hydlmirx/+Tk1T6U4cy2oUACCi0UtQV5YfyLPJB9Z4iYIgtLwlXw9/Gaxj/J1qNyoAkYhp5TyONZhHMpgptgaTRwdPoNVs76DoYy8NkwuWT5f3RWSNzC+OIBBJ2OK06dScF4kj5JvxRNRB7zH2MLhzHOHis6YHM8poC/YHrle/OF9NTtYOg4DTl0xxJKL+0nL4dxTHjDber2a9r/YLjqvZ9oesqOzZaIpjAJJ6G7k86OeVXOgdENtq+sjM5n6Di9kbwIYk5nPjmmCdll+hTaY3PlXfepc2EkeCXmKNv9sCW5nS2QvDv6ndJ5bXY7YhHfKvcMEpjakzSHu7TNHjCnIMYbAST3IpBRvczJpOmp6vK5OurAP0AYZMIK3MUH3l61hMURka5YeZ1I06989m1VifrvX41oC5Eq97URCUt8qxXlKxq9PVXEH6nH2NYzebCz6BC59up8Pc+DgwbyQpwMhsRwJgZyny2gANF1fZsPM7MYZz/x66BJ+1Vf/uNaVfMQEOPvJrydPcUchO+el2VTh3WHAcPzQdFNZmPDDuhMvTij36ugRX437vIqdXIAbFG31+RrhTCiDXObZjXDqjTjh0DnRksDlTrqO8tDtWaOoEt8BeDT1sZRUn8kUtXxSTfuKpn9UIpuzmSZTzQV0mmrOnDCuDCp9YVGPIWRzCAuUPzahuXa4ZvWk135JpQgZ2fXBz/ZLSFXca3bcO2XfDwcAW1hoNZtvY9cNyecdt3fH7+jPfXz/i9b/4Rni7POPYX9H7IvGjJXKZOkDq14OS0AhUMmVXoHcd+AxPhcz9w2TZ8vl6AfuDp4QI8PoCYcGnA5/2CP/rzn+Hz7TowMFimYQwws9eF7hEE6d9beN7nUZVIc7xTgVOMymqbeKe3Sq+DzATCm2pk8d5mzzj85GWaUiOkHWtiWo6jEDE/IAbBzCewNDcY4D6mwDNjawQ9CsvBqtioNoJwOpKsh9t1iRo3ItDWDOeqT50Av/KsNUnYpV4EmVCEo3cwj9Ohb7cDvBEu3EAY045AJCf1snVS1Gck4J8cS5Btdv5QCUoCQUaC7Ee2ErPP/4jGd9l2osuu9OUxl3ckQ9KPeSqRjs6M1wUPTB2IzHOG2hvHQFN9K11Kv3wq8KYq07m6WUxNzjMt8VnvHnB1H6Vf7tBZytBpyjGxwZI76Lnacx1NJBC6m2bPJ4J0uH+wacjFX6odtQ6Jpg2gX+vqLuFsqvV8fR2gP+haZGdkXASwc5oYLdBMZrUcuF8XSXq5lheXV8OPxGy/MZWB0AiTsY9pal5yz4RYo72nhj1yjPMtrPi5HMtIQF5568bCCRxDZ2xKNdmdSBYY6fjtJehZAda1e053U17sbZaukm+qo9lHlx1z2m6cokJ6ysDTM1DBnk8KnETKpK2tE7Qy7LTmEBBkIjrrmDJGrYrBjhKjzswB/3xphKIa1QR0Ak3n+TgAToBY/zcGcTh0SF8eBE/tbPqZdU/l+J4RTPJucj9ftV6vDZ2m+r0RcN6jkhCikOJEA3VCE4KsRlo0lySWUICF7odt7bcd++2GfR+fB92A/gLqLxg79ojziljRqPSosY40+P2aNtLNdrhWPw506VynQphwdMLeCbp42PMpeZvNzW0QL6Mn2d9z+c+2I+QVggtVF7QkHwGaGDD/tAZye7/IUR6d6P2yChyyXPmShZFCHvEEwXeiCn52NRc/P8PEW/Wjq4WbDvpDPnpgpfgRlXVtlY0Y767PYGpodIhMYQTDSGRiIC4zhUENUv1Hvh6BT6MPWMjcpIpqtIMfr+/SiQwq74IdROwYoug4lxKKrUmj81qz4mvM+quYJoelfBPq47sWdFjQL3lS4EXyP8UpOq9DPkXOud5fPKvX0v6b2kSe8pw4mYb79j6WWEcj7P0Fn1IdFvZn9bv6oDtk372+DtAvV6pElGnABbYI0WnjLjfrjeADQQgWhODkmbdmSp8ULjlp9oUuwWCuetunV3S0xpeFsY9eHtngqNPahFgD9kGRIxBKVSyeXg+1qczJNjTyn+d08+10TcbyjVdLIiJ1tR62O3D9S0rDYxvJYYS696w1vSwITJ/R2DL7Kv57TWt2NAP/ZJQjBuAAK4JxXhqkFeOigYwdt1Dv+E4csbDDbAQ8EFE+kh5+CNyKrhrdaCG6ErSkskb8tI8MNfVBUbglEmVTloLgWj7BQCY2kU43Uj2NT2dj/JbOjBba2jbASgRuCxB37xrypQP1EYSNzy46aaqpvwcx6Z04/QhHR2fg9vwMJuD55Yb9OPD9b36NX3///Yj0vzwDD8/4/P5HtIebZc+6Q4BEWnWed3DFVg6zn3IbKR9AsBv43/cbeifcbi9oBBz7bvJIggr60WVOtizGbD4srzLU5DApXQBXO5epDctnjEAbrfLuvdE4rX0cnl+NVHurAVHeZ5ELNrZ2NiPdy3xXpYYbE1jkVeqRp9lM0u26ZGQivEFj1KjBR+h9e+GGtrWxjkc7cpGkCnIIYNBYcK6HeAnf7eg50nnQutfQoPHdww1/8O6PwfSET+1b7McjhpfjMZIgCyfHd4yIvrRZHNyJkhyhMvuN9H0yGSGN2elii3lu8OnKo4ZF9kQvfCQJIBnpb8Guz4GVE9AtvxljzITzAwUNUMCfbHPJT0dyNBMi9gNFS41XNtHFU2s+215vI5+cNXGx9/X91U3dJIOdR/cwxz3/1pGn8KWObsB8VJ8h68Nka7SXypk3gNvHhCXfgCm/DtBf6VQmKIATDVuCIyw6C1UyDSfMaDhG/pN+paTKUKdvon8lKQIobNQwgTot8H4j2QhHLcJRzagZwaIhCMY5QHhzhoifwXql6TusZi9X3emIOeuXaMjJ2nBVxZyfA9qZAbG+YoBO0nifkFKbkD4UqjMfY9uyGa6VY9JlNS0YVZdDjXDG0YcKZ8vP0Ik9Bf4ReC5AwcyK8G6UZ6lrlKf4kMFTP9lHMoRrNEcoEg9X9EQ9teirgr/Cj/Ke8UQq4+ocGlx/x3YwgJK1IJuEbByoMMujjpnn85SdyrRASjDGZ5Gpe1N/aHpebB47rfeuYRvGd+2gHcc4I+F2u2E/9nHa7u2G47gBxzPQn9GPfUTfFQByaOqMEEp1tc5lYTOUWy6HA+A12W5RoAdnwbB2EEDY0PTo6JS56va98ZUV8I/D5iwVmex1zQcRmLDp0II5LmnFZwFYzMU/AyyvtDF84WDyhQj29Q1XHB3RwAmLPc0BDuG32lpmB6xhLvKZfztvoSVRUqZjAr3fGuPx8gKmhmc+sJvuIiY0CxBdrq96CKCBYd85Uh/Navj+2hVnDCUs4cXk3zXf1OlDTsDB9ogcr2TfgjaioNFfmz0/kcNgVeUwKZpkdrKVgYfRx2naWkeP7Iff2hSxEzC9t6Z1ea0aSzMMOPD09Xv6J3ykhWBMnSxJX/kR0+dp2ZzzKxiAKCrE266vA/SDh3MBUgVMCMLiFMYa+Es26UpPpx4UzHBNxvKf8hWN/uQWkjZ7uvwZHlaLXkGeyEqsj36OeZSbvVNFvNofnsrypxMWKUmyATgpR/0CladBzqNds6JoVk+lZw34w/eQeXT2GjntYT9nBV0K8nW+v/42h8FaX7a51fPA9+Li3GhJ4S1JABaJefNVAfZUnJapchWNbMnHHbznM3BXx3HsqQxbJBcW+FY6vINElpeh1txA87tYL7JXoJdoRBBHc+7lfuRD6HTZmg1W+T+f9uH1qruKRX5pJzJG7/L796+FhgbZHXcWtkPXJmi7bBc8EOF2HHi5vWDfd7zsO/bjwA+fPuG27/j+h+/xw4+f8OHhe/zy/Z/h8dKBfceNWXb6GFFTyJoMSFtaVPiQ7XbhOmWgX2jVBWxEY441y9qURrKjVLO47ugM9LF1aO997M4j2y4yMxpLPTffAm9payKg52pYjKuT4/QOZ/4dec4hz/Q65ZbTwAoZzxa2gdPrXhZFUT2RxdRxzeAo2lpFrANLqN0pO1YJnTqtRtOPkRRylYVOnxk2YT/G4Vj73oG2gWiTAwHHNrDKv23bcLFRv0FaF7mm1mVe/Sb5EzQRC+1MY4WukjH+xuLIzqNT29vw6L4zHaOjy5kEXQ5a6yYTbl+bA0AqNkedqsnAoh0cIc8PyEcnLFFFqhRbE55OkzP7rlXRv1JM7XWKI33xvqWLpBaZjJ0/H3fIvhnRtlVbybJmW+iu05Tqd6fFO2JVhmt7TKwrVw3a+dfqk/x5KzlFf1z1b5ruFMpSn7WanXLvWmLak1ffgDCW11cC+jEtkszXGhTc631FhswDqlkAM/B/HVy9dp1HiNwsuzBEukJKCnAmOjVSGhcir7IljyPYiVHRBZQYz5JPZAM+ixqe1t2TrEEJGGEURQyLW5ESoQm+KSqPPn8lShq/2FCYUl8iff8vde/aZEmOZIcdR8TNrOru2Z3ZXVuRZjJ9EP//b6KWEiWR3OHM9KMy894IuD4A7n4cQGRmk5RZMbqz7isCcDj8cdzxcuNFw/wMWIv0HU8ktgBUxF7oIxi7om3eGYbgqMxZeKftg4YmeR8MmbWT2x5A2pzPItexACcMjn0KBAVC7wUeLnupH9o/Fqyl6RgEnmaZvfoFHcuMOr6wn5p5zqDwXdsytpXAABS+W0Z2slHmmLR4NwBwXun8Xac32raSAem79ew+BH+eJ95eX/E4T7x8+4b744GXl1e8vb7iD9tv+PvbX7FvCtQbThSUqoDUtv1ib6vYgUbuQOE7Vroddb0KGu1m6WBStQH+UiyAiAYa/6pW1Fq8PGibBlK2kAHHsbiwXQ7O1bss/XbBeltbMgXjWI/ABTVZdn0Mgvt6rJZsR/JesiDRjfZItaT5940PQl3VJSUW/CTx9SDObLP3d+tz24s/7gubYH+C4v1uozlG8FYKbrdbNIB+byB/hF3RFuaPgUSb6gON+f7Rz9ZnCjtEjHea4jy/9SRP82hVzTqe1iOwTqdu4E8j4O/f0T3sr2JcsvXdJCiarZ91q2X6Y5ZEGNopkeQtH/SS221tUiX5y+WMwL/R1NqmbngHPZRckvVbYK9su3OtmHzr6LNSn4xA3e3VDPhtVDuKuvDH+MBmk02c6NWB56unh+gxxy4L3/47r+8G9F9eg4O9im6WjHnn/hxuZuOtF7cNhPmv07w7EMBYCMdCjfPvYwSp3WwYNhwMUyvTPSZlpNpz79Vl9Dj24/IwGDiWt1F4B4fIr/RDAD3HubK8V5UeMAPGMhA4OYzSaGAM6DPSZNrdWJEy94OrbC67gROgOadmoMIRM92C5tQSB63N7/a6N5JKsofXT2exyiAjFTv8cAU61GQMkgLw2ttRhx16uCxBGNER+LeyB3lQa1o2znOQsOZY0jAG1dyYsYEX5dncWOqo5TWOWFxmeRByNcrZVXn8SoXQ+yh3+CqX15FdcthoWdrYMaLtoX5/azv1vL2+4n488Ljfcdp0nvNEheIUQRWB7+hVKspmO+PYd/2cABhgbH+lSAdipiiRUU7bofeTeO0wrtKBx7e3J/yX3/4Or/cNx2kjF6B6hHhsKRsknq8M+dIbDDKrVknqjnUBUz9Mrz2YCXg2X9roTr1rNKm1LmyCjs/K8Nm/Wm7d4PoKDKGzu5DMSyjyEa5mM0HBVcazXTbQzj0pBdKz/U/Pz/jy/IRa2xaxbScn2/UrNSFIcL8jbRRBe8pCg0/qbRIi30abFGqL0WFTfLrcOOAMfnlPUdCz7DrqM+6G0exWKOKItPGu8XnxPlAPUuA6xJeB1ESitsQVy2/O7keboyCignmYSLURs8Geja+ZPTC/GUXGJirhDkimLwLwT19DcPO5ZzIdHMza62jDR3+VR9tABmAQHAcOMy6bfKdiWAfyP+b6rkG/OS8fDiUQHFeGXauO8GdW+jYAhIWf+JjG1aXdJDLgQn7/Xvk5008ZUnow474ZPJhZd8NspF3VuSgvHWxD7L+e+rAAeKtrcFZhh80K61xGOuB2zBrnLTIV1P8jfnpHmbfSs/mY+WnTFVZNckdKMmrOMBI6FyGY+j+rH1IdK5B5fYWhhixgh9kflv3O/1PPCFoSn7p7LCRnXUcNWC4p6eUmZ0Hde/Xcu3pyARQ+ulYZYKtrGaSPiYdVYOOv3aCzk17oyarM6aohp8E7kiB/PlC0f46afHtU6QHdeR54e3vD4/HA6+sr7o8HHo9726f/OKDnAVXgVKJLBGXbsakButbXG3aiXRzwa0U7B4BQld3VDodr03q20qb63LYd+7Z3OoFf357wf/7t73FWQT1PeNJjsPFaa09MDKOEE7IhUNXbk37zLSHH++kiBJqAynBxpv8935WADukhFL6Im7Gi20hkrzf6BfZ8S2ABE5cY75sb3P0XK1iqw/g7yLiLY7Oh27a17T239uPz8xO+fv2C4zjwpi2w1ONoazoGWnV8I2jBJgraFj3VQbklvbKV0764uALnCaA2+RxggQJDcitwR0Sy9AxhhhVYZXvKwL+NlRCfBj/ubs5lZSh/TLYw6Id4hRNAJZ/MKpIuifEFMQFhHnX5dF8wHp4Jlrq4bNpsU1+JYok5Kx5eX4sCFs/zCOv45HiPkG4ar0bgP773MiVazaMIjv0ZE3QaU3sp4bX0KYtm/vde3w3oX80HBgj4xxft1YEb37wu28Vk6LT1XK0sLCueR99kgD1ePO2jZSN0mket3rNxn9E0Dgc64JoqC8ecygB8QWPLjF3T+t41OklT+vfGEJzaAbWtnNElsBtumqbGyEohO48QU7ZA9I91edvIsXIGm4mJKghQdOfJyju2lX3n5aXDB1k7PTMU6zIM5LPBb/+OJwvPdeZLSM94mNONk9iZBheA1UmaAyt3XtSs9cPZgV6TLksZsm/ZqFcgki1jKWx4Bz1cjV4YX0yFfdh8RlqNj1g4AZC8sW0zx8GFcSNTAFIc/MSNvShBy+CrtkW7x4GjH8J1nmc/i8JO1QXejg1//u0HPO0nfvrywFYia9jyjn0Hpj7VDaARnogi+91GioRuDRS2qT0FZWsBQIysJZzTn+lGgJylyTtn+iPQmEHS6hITCOEdgT6+ZpkbnrzU03jj+kp+QUY6On3a349zp3kGCFl+OAxx88ZZfiBW7mf/p0A/T8xz+YBUt6mpzdLn6W83VKnQUiHbDdvt1ti/bclc7ntADptOeZ4naj197r9i0BFpQFiBvvuXtEYraH1VITtL3DM16qIzdol0Bs1cCN/AIPi95NnV3G8gZMzWo/E0sxZLZp+T6HkHbFrwNtLA9LENzbiDKmJBofv4XrblnABqT8qk3IZ/ljhhYPiAzOClG0lMl1qN0S7u1rEfoqlC5xrN97ebwlkzFntvtDa0KKZX5dkpV+3M5axoyljFFmRfFPTJ67sA/YI4nOv6JmIMGf2rW97BIb2ItWDwe379rCPIlVwIfKoszOgIrj5XMTs0GW2lQ+DmTJb24xOlj/S3ecFer+OkAczA9XOww+F8/ImR6Z+iw37ImYfAPu87ec6KavcIa8BvRZPyk9EU9Cw3E/V7GX3VtpVgjiaSZFmH7+wqQF/EPV9jgCSjIhHALaWtbTDQ3/xzGdST6BkdoTKYMRlY91M4KAZFMwdMBgcxA1LZdI/aMHe72+pZjVSsWfjEpwAAIABJREFUph2N7bMFg95GOom31xzA2OSrxIF3k9FnUKa5Xb6IXXh0pQd05ISYi29vdxznide3V7y8vOB+f+Dtfu/g/2jbKvZRhZ9fvuDnl3/Ej7c3/O//+J/x5faIxMtZIXJ0kL5BpGDfa6Nj22hUMMBmZPfE9cNei6ADxoLbvmHftwb8rVdSADHLvCr80Lgk9xp93HQzMsGJv87u6AMd+vdTl7QeWp3kPH210tFFMko7QFz5In9dJb4YfCUSbdto1jYyMN1XRTY3eNFkr03X8dlwvZ4iBc9Pz/h6+4K9ArcKyLZD9icAwJmOQpe2ELWvLTnOA+dxtlGm8+wLcft9bls6vV2+StmwbS3TL1raVLECAAV2MhKbSQfG/c8P5+pkVUhXMwLOxhkTmXdA2eqzr3kiPhkfPbU52DO2sVf2MNgYBwmubJMnH1j6JOycqh3VxY1F6CVKSopY29jOxQmyxKsF3WFnAxSnhg920uV7uG18z6QPzfDP8/10fgB9N+IxpmnZr6skkNff63gHu0X/vPM741K7kQ54c3yI6KdO3EWpcX0XoN+U+7PXe6Y4gUhZGcWsaGOBzssBYIWMztt7TrQPmZiONMjpgBxT3JMARjf6UPf9CxmSdf0TGQy4RiSZ7kjltjKGbaEku9+kyJmqWIjJxDsLLlqzwMtjIONMWxgMLnUEsQaWvC+uFHPoYF7gbMo2BXOebezBlRuTGWBcXVMQq1FOspGTwyB6dKIs05jqHwweBY0rOvmk2Tw1Je5fAaYr8JSAsYOutTNl4zwe7OPyhqxiVLjfmeU5HOHYpmnod3GNGSCfzuVCnuWTg8qPys4NnMat4llHNEOjiY1tx6WzZ1T7Tjha0wnKRuOpgrNueCsbvt13qFY83RR7aVlZlL6BiAiKKGptIw0CoHrgy//CLYRx3L5VyaO7FoOvkgcOrLFYXMevC91MYaWza+A92V0HX2NiKfUnyVuXJTJOM30pA0uyTN/L8MblKgzZZBwZHIhQJlMMjPl4l4uJy1NS/wHwj4mE9iViZQY8kCpbwbbvqCegRYEehLZRISS5rX1NicuiVtKjuHfU32x3epKhAiIW3Clu5Q7gDYINtW7QTbiIthZAMp+pJe/iis9c42gm7wnYwLxx2qvnRiaZi1Ezkg/yYzJ8/sijX9Lc/2llZJkfQb+//+9gVApqXHf6b5y0GPxYhjL5mdGKfoq8T5je3+fD1BVVYzpHsmWr0W4eFbiya9d1LnDIJ67vA/Qjhu9ARux3XwOIyzy8KHHx9ahEnwItfL9k9ZbFPVNdDBwsC+ib3H3+UiovDHcotM95HH0eTIAM1FKZtabPy8Wcwyu31w/AIEQ2ctRBgTl3EcxsH4hO/jiGO+NzgNL2NIOxDOwtCKg+b9+mJwhgB7zYvaXPzNQ40sSGO4Nmq38IihZGypqyUvxFbLEEwlH+ovD0fEKD+TkJ8NsAfn5O1bZXHLepnHXkKlvKfRFOiyvq//SmjQ5ohGvLTPnisqeK8ZiCv09ndId2WZbfZKZq7cAiZGsMJmLnp3WZjVbmhTc0t7ULu2euSKfs1XYROo4D9/sbHn27zqPP3a99WgXvrmILJF8fG/79n/+Ep+3E//YPf8Xff33tNqVP86gnqvT59iI4S/FDs/xAJA62w/J4PVspOEXaVor1RK2720HpO/ooBKg83577Dmv5NwyuwbMi4rtvSafmasg+ga/RRiB43TB+lyE2+Ubb4uLMJzEn1SFoWVVBtGN1/4i/OJPpozNS4NJv5FuQAjpQrPetHVIWIynWnLPv014A52MD/M/Pz/j65cReFUcFzgo8qhMFqOLsPuPt9RX319cuk3fU88Rxni2LjNxOKTGCtO9720Ftb5l+0QqUtji31gNFDvzzD/8Z2/Y3/Pnbn/DX17+DoOBWtjai1O3ZBhvxjhGMUmzB+UWfDa6idZOB87iqT5MLW2V1tLJzYmK+mlzXs3tx6uBkKSfdugL+Tqw/7TjgIjmkGv66Uja//TZaGBbHaxucZjCMtv7CpS8B/zvXRx4gB0mBDf5bQLOXab5QzV8F2AcyoLfPAFzHVuUtkw3WAGRco5yNbD9+iu7vBvQDa8H9jENOgPvdaGnJ6lSGZxokgMdIj3TNu3IK4bRJORYdIgJfi5TjE3NsUdh7Q35xWxDsytOV2yNs9rxOCL2xwkhw+ZXCikV7ZuCf6h2q7DB5Km7pcOlJ8UaTUSSv5olP/m5JMT+L7mADdwaASDnWuM+yaAOvuH1saJmOHK33+4c2r2T/M1MPJDXq4nKjHwLD/df+xnLbEP/gmz9N45ip4u9CBrrekbyRD12Wx7SsMrMfOoSF3I5tGb8LwJiDEnYieTQk2wl2usyvKxw7EEyO3zWfAlCn1MuNEzPjz0eRusAzibUW/HY84a2cuB9bz+g3wKiivjiipSUa1QGy85aOHnyTFetwvjnAIomX3uoU5IRGpWBNTNck65ABfwqyXa6t/A98y1IevD8RdFgvWHkcmOWumOzzpAfJLtjWuoQ6iWSFjhxj4kM+mB4OeAHP3PKUHth78x32Xa2QjbLinb9la9O9Nmnn5VZoX0Ab5dp2nsdx9EPgzh50zgCIA+UiPZjs09hKKR1ooSctzj7Fq+J5e8XTfuKv8mOvj0alTS47R01+Qk4X2X4NdiX6ELbduizplvcTyUMKBJdWMzAIR3MGlhd2hGcFfHSJSMjT5f0hY8k7LOw545GRP0uUZTo5XoRxVteEv/zNFT7gmxe+wMCBfW369d9zkT6FiXrHd9N77tcR8I/ymJOHcJ+d7vkE8P9uQL85Hh9OxPvA5lNl0r+/51o53jzU05Lxy2FogLSgeEmjA1QDM2O0xsSP/fcJ5TCBmv6gULFBBBb8IZwg3zoKcDIE0p24zH9O01XUetEl2ZB8rIxGTQaR45v3Kg2QFJnYEs6R2hHGPzL33qMSDtpjGJNnZODPdUW7g+ZkWPk+AhTmrLJNa31qmWSbM55BRNDEZQZYbJvLWcZaMezeFIU44R/Y7Kkt5l7DzXLRDEBaRQYJwsGKt9UcyRhkUM+FHDXvHvfY1Jb+XqTtbDNmZa5GMK7a1z9Mv41BH9u4HETQc/w8rD/i+RR01JinG5ih/bs/3fDDvqHsG07tduBlx6baAFW1PtG2sNb2PNd2INN//u2P+Pn+B/zD11/xp6+/dYDbt69tc31QexkM1Is7WO77Rpagb95QK85zw/3+jCLA+eULTKdL3w409FwS/6qiZZCZn4MDjlEr8R2HiEGT8132LwFyak4C7j56dG3cur1fYDQJvq3oGMG8GyMG7/1O20LVDjqzjH8GszF1tD1r4F5zENDvDXrUeZr1VCBFoGcD9vf7gd9e3lBrxeOoOFVxv99xHCfO44HzcXc6IBLbHHs/bZCytfVD+962dN13P8StFIGeivNsgcjxeOAU4O1NcB4HXl9f8fr6Cnna8bx3evfwu0CfZlS119nXD0Dn7hszDmaG2faaHxwfAcl71+E8AS73sPlKPWtKAI3JmPn5gWwTUpdtuL/ONQ7PjGD4wgaaz/OyV+VROU7jCuvI/FEXr6tr/L3x2hU73/tBkMAjyWOg9btGglcyRGWkJOwQwI3JzhEL2I5e/jtsahv54f9pQL87bpqSgt/LbCysab8+hUqm0t6VuLDxAcbaCws5wkhiBjmpbq5nQlIjOJqoSXT51AMHNgagKnjjV5EkLjM9RBdnlZTaeQX47bcR+Ds4/ogPg5FaKhJBm4KWyekVT7wZge4VneP0iwSs1GiaDUgEKc1oRDUM/Jk04x+TqkvgnwxEzxip5ky8Zea9Lwzg9JuqZ6KYcwZW4n1FRdHi/eS0uI6aUKeX5TUHNwu3wwDV6yDa6FYPFgj0K+AAHgtaAowhOQSl91zXytGtvnPeqmGvtVOZsv2DfVv9Ccmgq6LYeyHWDRlZD/A7H7oObduG/dYO53q733HWswFhOgFX0Kc+dWDVtvpuSOBvrz/i5zvwvD/wD19/m3kGQGxbJOspkb6uMoMU5tAmbSEmtGWAj23r042aYLXpPcVhv83JdlvrbY02iwI+K0HMLsw26rPBXEI3o5mkstzGTUCcH+g/jXJiskT6Oo5YyXi/1cE/EJMjOC7+U1gyLEFRqDrpCd+/QJrW9mYr2ufzOPD29orjrLg/Dpyn4vXtFcfjgG21KR3siwjKvofNKiVA/7Zh77/t++YHuBURnPUE0KbXnecBgeL+ENR69mlsdxwbUOsNtQigbfMB90JmA9QAuc12nJMiQxfG1wzMAd9Yiu/NNi/u835Efi8ATo2CljZloE+nHyXRNnYc+xIBWgC4csldzkZsxSMc/Nkvtrn2k/nOZT1+i3+MdUCL0U/iP2OR0ab/t10ZD63swhLvMFaivhuTOZzU5vLG96vkaQTxVuXkTadnV9d3AfoVfWX0+7ROz8SH2QBeAsvVNfRdZSDiP2ch9gwoGWp/hAS9kceAN/+2HLabQH64f/VnSZDGRqDxomV9XEMQp2gG6BCjT+YygqAOsuyj8rDpTInTOmSNuAoztAmscaeysnGxxh1huKL54SEQm8obvnMwKwqVslRCqnlRTC5bRHwY3ABQ98QA+sFFZDjfA5hrMCKD2K0NxRhA1x4AMpDntonYyahzO2M0gJ6VoWsGGlZlxNClbb0XhLT4KpzM7MzolUrlhkwOwu4ZvrT7hPR4PNSmkXGRhe/yJ6v1Df11XPhs5QGxLobXx3DZXFqbK8+HYbHfU+rfnPX2oeuuu2Xf8eXrV2z7jkMrjseB/WnH4/HA29sd98e979DR5/gnEyfYRLBtBXbAVwrSSoDLRr7SwWc94C0ZAikU9TxwQHF/3FGKtDMDjgPHeXb1DINq8hPZrpCb2gMg1MiSCiT5hBjlaaCqLvp10jfhut4HA9wfKy1QY+Z4dWXW8bvxWYQuJ6lnX2Rb83JAPBOZ5LraVplKsiiASIkkiGwwQeLsvp3FYGtbzn6wW8h9QdkUT09P2La9zcXvoN/+yr71+zYPpm0LzlrbmpF6AqqC21ZaUGp9QGuwjscDep74cf8Vt58EKD9B8QzF1vlGdowY23gUxixsWfHRKvuu2i5xVICN8LZ1iV3nlMqxv4VfGqXBbd+YYBju+QjdTICU2mx2luvj3zlJZw+w3W6Niw1NJnoogPkfdSVXZ/50uon84CIJw8nXSNKZLaffLmiwbeU5K68WoGn2bwAigcNB1sDbK/9SaSQaaCNTxQP4BSYRYPQ1V9d3AfoBxdmV+wpwAUhMmDJ19s8EDj6A/4sfzbDyTeb47Jmwsws0Qto1CoLd6UOCXYCnjhqdESiLR5kAhjuZvizErPApe8vVCSt2bp9wo+NWN3CWdWzPZGHmyNfbbQqk5sgHoLrMsgzZbKdHoXpO92NQruXvZLwVgGzBw+Df3DfvjUK1EYOS+hfUzyud9FNwh/bz6bhjxnIE/dxW1Zrk2LdbGyCAiKCgZ9xGvjp7cmZ8UA1/uTKyU1DTgZvvvKCY7lteGQu7zE04DcitdOOwKI7ae9bqhnllnKfnpc1n9lGVfp3nCYVNb8m6bTJ+nudaPzhAiIrgexP6jjekd0AHXbl31e1ASzfs+45t33DWituXJxzHgdvzDW9vb/jll19w/nr63Gs3pSJefdkK9q2gnuojRwwGXD97O1l2gZbZh83H7lQdZzsn4O2tTfl4u7/1qSBHl1kJZOF8ih408FtP2olIbdQuB2S19kXIBhRHf8L2J6qIchbyzLIAxNp4BUa1jL4cfyLAz32e7DbR6XrNYB+IszgIaLQF0rSgkOxLgP5KgF+9LBEByuYg3LbTVNWmu6WglCaBtZ44z9qmW9VGW9vaVYGqeH5+jh7TaFXToZbNb1N5Cs7ayqm14vF4WO+hVMFte+p2Ch3wK4AWSDweJ04o/v6Hv+KHLy/45aj48/2PqFpCTrTRoOrUOOi3iaLG1iJZd6Hap7Mh+lABlArRJiecoIs2tmf5a1nJQa9j/mq22e8Bfy+ZwX6nIfl/CoAyxifZQsiKDE81Gzn4s/8fAD9fke0urq/JHbEuRAMuy2Kw7HRrtJnLXSVoa60T3uNnUj9RHaNvGaeWJtAvaKPvKfAa2iyI7bQ/uL4T0J+ZatcyA4pZCUiTvKz+xVDmCJTtrvmzApArydW40aI5A7+r29571oyMR4VABqtLwhY4RojmQdhIJi8AVoAMNlfma/0DMq9WWWMGS5fDeVzCOyD/oyvbJtvthxrp910p/fA5GfjFDfTT6r1woWM/qIUVi/IWAZJ9b/zkYb2ZwOg51bFfKBNsDsudWvHPKSPhpTaZTvQbjfaMzmCf6X/vs1E+vru6TF+MKNEMYtho5nKDvmwb/EuoauwgRrQazzx7TDaGM/n8jIOrhT17DzD6AYUWDAkaEGFngL5TEAKwpXMC7MEkjKzTbTRn70Dr6ekJIuKLK8tWcPYpNsfZg6Be98t9w19+e8ZeDjyXEyKagnbRNr/frGxh+9EMXh9N6bZBw563nWMi6PBRKWqF2/5en2fqR6De2+m7CTGAGZyyf0/bl+ZaJXYf633Dfc3lKEz3wGLqfWoUCMIujNvPgmQoQ7PsA2Gi78E/jRT0ABDgYB+RabbvqvHY5NKMOJaX0eT2RCuqNLA/Bg5FBFr6CefFNnOQdiYEJWhU4YBHjwdESgSw2hfaoo0ylXSGg8lLO2AOPDplp/X23YhEejAiQHF43/WqOcy5rc7gzHvuI9Mz6fN4FaH72SZGH6WkJlf4O/xfYI787GBts/3R6U2+FSFXIz3h0832mcxnsPxuhtnd11oXV/e3l0WZFhAbr6efr+lYYRK22x6bLXzyqly3fZB8SB75iTHp8yGNyc/A5arYOp2+sMtGUj3xqnOiZXV9F6BfEIdzjdledroN0y2MtkU6zqxgmF2GB0dDakY40SMSC+aSXMaHlunKdBCciPolA2EvKaQLJOHJ7i7gAeIURQzCS7wwGp3qlVGYiwYQe+sP9yvfpgb+Rudnr9nZpq2/zO/AHM/7QvreyI+B3FXLVOO3oHFttGTFx15sytwsjevFsxRINT9Yk8zlViDJ/FQqA36xJ9gQq7dzAq32ep44u3M1o4FCBoabzYZOR/ra3trjqIPT+c7FAGh551rooz3SsrQGGAWSZNBsBU/bYGebbUPWITOqVk41QD1mq/sUhL1nJRUBUOrZtnD1HUY6AaMDUap/DCIApIO7WlxjgVtFPftIQc9y2jQHBqQ+jaawDFqfFRTZ8PRcHDwcx4F93/Hlyxe8vr7itt9wHAdeXl/i5N6z4r/87Qv+6883/OOPL/h3/3RgL7EjkGVnAfgIw7ZtvUu7Hahtxxabu202pAI4zgPlEBzngUc9cNazy25sXWkb5Naz1wPmqQbw6Lxs9c9BGfuLIgXneeJxHA5kw1q0ZyvNi19tdchg3Edbkpk2LrBlfT9bqx4cEFAfb3KbHaMCdmhS7bi6BTMIO0s2N2f3yY7D9CQ7JAtWmn4Aj3pCzwOPxx33csdxtMWxig72YQM7ZnMEj7c3PM4jfJJW1OPR5EBpalbvw/12QymC223DVgq2AgAVej7wuL9Bz7b9rGhF7TuLNZk98DgO3O8HRNpWnaUI9iKxINi3IgvjyjbabQsH6xwXdZ6Y9y89+5zxgIa9i3+u+50wxXv21JMc7/mkUcDeA/6Xz/RF9ch2XnqbPrL5H1ewvq71YnCFxIPlcyt/asBfAzijdJ52f8dnmDBQT0m4q3KRbTjbnxUWTGX0e7dtc58nZM+4kSf67lcE+D/TH98F6LdrzHKmAADk3MZrAJuX5ftrlNnmpyshVnuhOWsfReFKzyMMtpeDQUEd8MOF1oXJy1i0QyJ4wUU7M1BXCnT43/ysJC3q9wh/gCv/DFetvcA81Idu80zogTgwrRtTjsSGtjKd16NAkwt2wD/HAwuDQ/3uvNfxfjb4yZsTuQN99GYG9J8D/R8Z/YySNZdDDbkKJNZTl7i0TKrzdchWvGf8x7pl8S6x+D2blfQk7+6UuHAVOA3vfYTud16XbXXtCueQ7JgDB53KGW2XAX4vW9UDEcuMKwz4ggKpQTZXtBJYMUfydLv5gUlPT08opeA4jpZIAVBFoLXgUTc86on7+QTgwCZHMp0BmN9x7a77cEClluGnP9tNymxnSjKw2RBpdrwnREweRSbpvnTYHJAl+SL7zMCbpSZlwFfNNdtCJvUzUCmA8VqP8whG/1etIntmKId9qtoojZIPza9el31JNsz6I/6sjrBpVr/WJhFVa0wN6zf6+pZeDo+gbaVPE7K+1Ao9WxKjnkfP9J9QaFt8Xlp5Zz2B+sCGVwA3nOczVAsKSkt2KHpQ3P5Yd2JnHsIenZksUf40++4B8DMOmDt47U2ZzT4Ca7JjQBAkDwvg77Ix2vO5Qr6pYYxLf5xtfm7rXO5YZ8irznVILkf5h/kFA5PybyNfqd/88LqRZNf5+flPX5L7mW3QVOJA+4qeXuTHl+m0XHVevr4L0K/oc1wZuJBB8csspwRosfewv1RuXHFc+6xoAwSeDZ4D/2Hqyiyaw3Oh8pyxYeL4e3P0HDFmJ7OGKGOL/Jk0/NOFAoOCDICfWzLVqfAhYlsinAKomQPtf42yoPApCjbEDHOuRN372I8djwGocHJB+0DL2FhGK0IKr1b2RUmjcqcyg0YfbVADbXQYTipvBqRD4cvL9IUVvV4ovWeSe5YLIvPCyprXASQSXB4Jbb1jXyZgQWjCNOdTBu2qXALY6CfCOm0E1DhrmLP94XiszHPI6nPG3ui3z2koVZB+k5Rh17iX7dmYNZPI9Dt7e3NqbZn9WivOo9tJm3dfwvb5dJaB5jSSY4V2wHPbd+zbjgLB0+0JX56f8bTfcJwHfvjyBWc9cTyOXveB8zgBfMX/9beveN7e8G9++k943t4g0D6wEMFKrWf7HL2XZK7pRAs07o8Hqipe397w9PKKl/MVL8cbgBO3Prrii57NBpW++LPzwYCXBV1Jlxig2ohQ502aIvWeUEdRH//ipmZG0R9l41KyRtn+mq27ft5GR8z222nJJoOqCj0rwnooNksA9N1xbETI+jLDD9e0oLfTWLuMHueJ+/2BsypeTXbOxuPioJZHHFpp21ZQtoKn260v/C14erq1oLO2aUH3+71ty/nyDa8vvzU9qEc74K30tSeo0LpjKyf+l6cXvNWv+NeXf4NDn/DD8xP2fcPTk60laLsFJdTpC5tbcM289z7sIwYmzZzBDU6t+mm22clndZxhPik/OTzwzuVlSTy3TpIMNHDZq++ApFsTUHf/uaLpnZ37+JkPHQTp1Ae8YH/hduc9Oq5q5DaPCRp/nXU8aw2S/VrRep5nopvXi42vWgMnu534nybTr3FKmRu8VfTa/3GGFxs2oyGUuWhn8pVBn+qw9y5T4oZKkqDJ9JAsv5vrGStv88FsgSNopb+Ba7p3WVLe/SGBLlhGRxz3J51ayMnIfw7ELLO1bI4u5I54ZrT7tK0x6PFas1q+P9rCAH3FnayMwjI0/J5kb1Fn639Q10t+D0Qbun5PGV+QLNH7aehQsuSwDFg7E4XvAH4n2QAiBc3e1jHIttJ7m9u0mo8dTpCja17KmKdPT8W/4w3E52udzTxkUJ2HWs0Mz7ReGvfR6JpT1fz7kgcTb2fauD2sd5zhtykQkeWLJMUlrRJyO9owW6SqfWtEoE2fOY4DqGigfz+g59m21XwcOI4Nv70VHLXgODfc+omm2u1Lm8tvCRzaP5P1rtu7CLhOSBU8jhP3x4lHPXEcZwtSO39i0ZxJfpvrbQVyvjY5XQIv3Bc+GmMgD3P/eBmYxRHp+8WvC2A0jVhenNPiAIFerazL0Qp7TbLWDDLbWbVMRFNqp6vxzU7iFgpYhkZM9fb+N1tXtWfb20Lcs1YcRwvu9q30fflXoH/zk5Nvtx1bKbjtW2/P0UaDzgPH447jccd5PJp89e07Szdy5yF4iOLppviyn9B64Dj+hHsVPO0WQMJB0rjgOxIcgC5mn7rtRPZ1GRssGZXejP3bRLvrCQNbZBlz+7AUucFnKH96lxyYz2rv8oMrmZtE4j2/mSm/pCkAv/lZBkjthhaPrrYDf//6GOxf+09+v0oo8LOz/17XtPp1SnQzjhvaa99PkdsHwP+7AP0KxVHjKPgRpNmrgzUJsG+3+zD3EnV+LBB+ny6GnsYShuJHoO+fKUuTMqTp2WWRi2qVsi5YGhedHgnA7/Xxqna7LaFresv0kxNpvM/ljAGEEo0eePjUhNkwpKDKChiDE4zPMVAj4g3LunIaMJoNdS8lcEQCqvk++bCzqEzPFoXCXgUuPFIVwLxXRAZtNJefht/Shsk94hNqgoaB5+ybtdMc2QpEpgwyct/UwaGnqQhdR2cw9d67ldsYm9nuKWUG/GWQe8viOaBG9JPN2189N7VVEaNz1nYa0fG/Ba2j89Chr4/z9K0QbVtFfhadvrbnfozkjAI+TzeqLtulZ96LSNsf/fbUeFwrvjw9+/1Q4DwOHMeB++sbfvn1V+B8wr++vEK+tb3/a1X88es3/OmHbxBUnOApgRqw3OgvBWJZ91rxOE7833/Z8fjbD9AiqPvPENlwu93SIXEWBNxue/DRyk392/k1mF777ez8tWcLB/Ad2LWRkwGAUQLDe+wzyri0Z/lNtt3Zjjov3wkQEwgwKhVhhxI9DPS7vCef6kV0HVFU18O2fSuk4M+v/4RfHgd+vP2MH55/hZQDhwrKeeJ+VsgZ8ssyX4b1MV+/PON227HvO263vcnpeUDrifvLC87zgfvbK47HA8f9FXo+0iLes+OAO9o6geO+4bjf8XJU/PLLr3joAQHw9PQElA2y7SgF2PqObbbuwBhmI0BQHjlBS8iVJi9Nfkz+hr7NHZyC4Am4Ud/G1tpDgcty2xdjAolF0ksXTDLF9I30+HfGA/P9nU6W5QimB9pWtKcbcALyAAAgAElEQVTa5t/4SlZfPCLwem1ke8ITV/UPfPsUEcj2erLbndlTUJHwH2IkfVF2KWW5CLdNcZRYoIno69rtsgeJ7/grvr4T0I9hqJz2Yu4AwxfpjohNFmWMUell5NMVZVTWS3DGzw0dPAL+1L4hYND0yCyhU+Ciw8tAn8aPppbmMnKGdWzQSGkGIAaEnCaujpxjOCXx36XTMGW5/T3VKrF+gi1JGlVYKjcZVMKG4ZbWSjq1h8u+DPqGawB6WdnblAxW4hH0j1lj+oFA/9BM+vApwE91GDBMpfTdO6BmQBbZaCrHHBGPGF1lt/nV3o9ZCoyGcy5peL+oK7FKwCaCwUw4RWSZHHe/IVpbGbnOq+CNgf8U5E0B7oVM2rP99eyLr+N7kp8+7LttG504O/Qv1wfJ+ui2sviuEKVPWWh78Su+PkeQAQDn0Rbifvv2rU3Jedvx17/+CffHowcoFfsG/OOPL806LoIdXLT9rO0U6P/y24b/en/G8xPw49dvKKXg1kGhtdPmeCu0BQT229h2NWc889gy0efZtoq+9d2MUkALTLQqMMsx/4YmC0lUR9Nz8SkBMgb9i6IUDXyqxKhXhpfBAowlkTpzMi2SGrm9pjO114euV5tsUAh+vv8RCuC2V/z97Q5Fwe0EIAX7dgA4Uco56FU7mG3bCp77lJsff/gBz8/Wn+103bfj3rL797e2YPj+6qf66nl04mK6UhXg8aioIjhEcDwKXg7Bt5dveFTFfnuCQrDtN2y3E5sCir5dOB0EZyDXk2ZKHBEXrd7nDQsU5l3yl+GLRzuzkoLV2R8gP8sJB+tHTghYUmUtC/SgWlC+9qlWF9sx/3X0zRd2kS9VmjdvhKe2I/M5Whftv/I3g1/hp5f30/VZG39ltwnS5XIWZab7hrImOugfXuQ+Nsz8zrTF7MX1XYB+QZufqQz4EQZ4lb1qdwIWYcXn97Y5JGM24HWO0iaA1v9pMmdGK+oVSotwNLwGMpKaYqo5Du97e9atTgoYX5uCUPmu/IuAhHEU8XH0D63oC4Dbf+NjyRWgQ2EiS+KgOj0a/OQCbMHNONTlPU385uczFwdnnamenKU/JwMfAkVS2VSmxpqR6B5NRdjzQq+csY1ofaCRncQF/VE8y9YkZFFef1h5qgj7NeF+sUzqekjb5GY0kh85gNW9Kyc4HmiT1dnAbDQzv7dyo5zaUUzVGjLand84F97A4WTk6Xc1ugkYTHo/9Lu/DjxgPrAztfZYNgcClNJOGLVTTVNgQ/94OejgSNs2m1b/5rII56XVY+0oPcLbdoGWDfql4vHDj7jvNzwed9zud7y8veHxeODl8QX/6de/g4Uo/kptK1tBKW3axnEcvY42SvHLseN+HE6yiGDvGeFSNg9KtlJwHA8I2rQQW3xsU0QssLEEgyCcogUORhePWtlUj8TTDjhM39MoD4Gj8FODLVfqF/MPihi5HWRH0eWVjBaPkkTdcPngf9mOaN9NBzXraIyORL2+56CBe2iAW7WDp4iGZGu0Zb+LoGxtdEZKwRetOM6KbdvblrDSdsYrRbCVDdtW8OX5qffhre1aUg8c93ay7svLN5zHA4/7a59ydsLWj1hiXjRsg/2ZDp3nicd54P44cNcDb/d7l+UbynbvU4naSFLZevDbeeOmh4Lp0pVFhGw44pqtnvm80APut3SZIvLTI+65AP5wmjUFCN63A31JbhOtF7SNDlQz1kn3vWP6lfHJ6j7+jQIY4XYRLWNCkX3rSFbiCel9JKTme66uMREApUQ1NS3Z9NGXkS0q/ZC7fd9zu5IbH9uU9XkMIq6u7wL0QwTbvrmTMKOYwBCQd7PoAsoZMI5kLbO1AlLj5ca8l2O7R5jwKIypcEdk5DEt8HK4ZPgPAZoGpwBcfl4T7BZ//bQabYNxXgnEAFSChwsaCfQ6OLDfR2DZgZX10Vwq3EJPVC34mkQ80TwI/gDIFULvJ7uVXr1uJb7J3Gdcygho2iugEQYYcRnog/dlz833disdgoThmiNHAsaL35ANpAHaiQEd8JQ+t1eGMnNg0am1/tCxL96/xpGA0VAaaSF1rT89o0bgO+4dDOMQwKdpR4Mhtmk93J+WCWYDPZVf4zRSIJ/EC8Cz8quM0kjn5CTYkXG2e7NF2WWycWZHFeYk29QMrerBj8li39QStuAT5vzsJjQgLABkb+Dotm/YpOB+v6MdrPUG/PwzoIpf7j/hL6/PjWbbArXLyHEeOM8T27Zhv92cv1xZKTuKtAO6Xl5ewVNOGqBvB4Tt24bnpyccjwO32w0//fQTbre93du3uzttHcR5QiDY960dRFe4rd35l9y/44FrDvztD2sfNE+fnDom+icE3kEUfyVTEWHfs8sfaiS6bXFtezrrsLm00d4yODVpibroLAm3t12GSoFsBbsInqRgqwrZbz6qUvtJyALFVtoi3a000N/43jL2by93vL284H5/xa+//K1NK7u/QuvZwb4ARaFbSzYJe13Sm7NWnNoWib/c33CvBfv+hPNUqBScCtxuO5617Rh0q30Eo2wxcmSgvp+wbrJov/uuQlBac8JeKHCwavcKS8AfoE0lEiyrawT8DmgdkKwlIyVHMUhQGPGMYTQ9QE/2g+6srdf4eEXICJTaNTppBvr8ykUNvix56Qu84zZWNNY0qaZ2/J6kldV11WerJLLPXhlGMEfQb+exJLr7b5wYf2/0eLy+C9Af4Lo3RAFOHY/fzyBtUSIxAzAct1KKa8CQCaT3yysMZnrU8WMGj9E5n1hJ7sDLslbBq+BGlOKYdcjIZKy2Ck0yLDajF2RkB6aIIb7Q03kYc90mkOOY6eMALl0XRa5AuRtDek77z+I/UYEi6RgE+y6XakAznl1lqkdaLAhjIN3oyO5hAr4MBO3+KdO2kisu24YHozxzQnxvo40znVYflnyP53P7OXuyNEKLLAk/z98JQCf3NqPvnxfXOOycgXX/LpHCQIjsxZXj9KxQ56OfYLu+nzOCXN97gN+fhaRTfadgjPmQHGkIu3j51R240WNuSoCUSZucOPWzFc9Oyrb5PGvF4xDUw6qSHvxrl8HSg9gCnK2FVQ0kd/6oQQpAe+LlRLRDpEC1QGs7AOrtfm8Av28vWm+KrVNqI1AGyrUW1KI92xwg37P5Q58NHZ/7SHsWXKMe56UESA6bMUgI27cJVOVLaA6b8K2aS+XgL/uGobwOWG3HMxaiji9SqTbG0Wzn0hBAAbw9dvz89gUFJ4rcIWLra9qRWCI+VoC9FGz73kaaevRR+5axj+PAcdxxHDFn356z8YYGuM1udeG3F8fePbBS+OLi4zxRjhP744Ft29FGnhrIhzZZ0A0o2kYTXH8BQMTXgFgGmu2N1dlsFjGRwawiAGwv0/0sJzKEHxg7cPZdAsuKj30zfpzLW2b9B9GIppCD1AEvfAInB07I33lzmFfDM/GewC+3Q2mTggvwy239DEAGMo5c/s7/Wv+x7Rnt+uBzxu/4Kmj+T0fF7HwyDDbK6XvXdwH6gZ4l8MNCyPH3RlaZGeKgaYhwA1TJhwzQ8VMXOM5oehRHIO2zF8sfZ62iLYvtPKN5Lv/NsAiKVrdvFu2lYTam21SEcdsEgsc6jQHhRGIouL3Wqm0fZMAzZEYn7y5SbfGT8VCGcjHw83dG195KF/ruXCcQOStdgFwyWrhQPgZqmsu/AvwipTs88SK8zGEaSYDenIleAU/rS/F/FnqxuNoOGkemEUZOB/ql76whdFrvwENbBKrIACja3QyUDVdeGTPFvAhrDCKMyjzFpwMQlunhWvEwiqARF87AXwW39JnLi73k4/TT8XK55MO6rIWDDM193aa1ALGo2DLSrjydVS1DO7tzu6XS3HWTfc/eO9PIowz9qvZWOl9rxSYFuu344esPeLo9ASJ4/vIFb29veHl7wXlWvD7u/fCwmI9a+rkAvD1qiHKzIycUoO05bXpgKQUFbURmLwX3xwOPxwNPT0+43W74Uk/cbjfc9nBrVUPuRaSDudYnth7C2mT39DfOA84mmt31vkPuu01KC0yoN9TB0RBwvtNn8VnSKz8w6l9aUD76qi7jdiBZY7c9X11+fJQREp/l/fMsWkAn+E+//oT/95ev+OPXX/Bv//DnPo1ngxRAvA/76brbhtveD2/Ttlbk9ds33O93vL227TjreaCeD6BWbIJ+gFIFakWBdjMagMfY4/11So8tBUdVPI6Kl9c7HseJx3ni9f7A09MNR63t4K69rRW53W7Yy9blrE8tI7srCDnSvnie5YI7s/V62C3pB/p5VEBBvfsZ4myWCNLHXA1yYnSUD3ppDB9KXAcDXj4DSowyOgD/izKUyvFvAt5dAv9leT3ZskowXgL/la8e2UuEjImrNAq48refxIZjeeyDEhaRwFUtyFu3len5bBDznYD+LMQZUFw74d9X/gJAkVPrPqeVT9LGgD3q/3y9BvZY4LmTfJgmSXtWBrjKdQNMnR3Ps9AM/OLS2WlcKLrT1/9lMLy6LMul9HliQi9wKaBK9+n45Ugcv5Xle6ZrVdIIFoOUkX9rq2PBU1LA8Um56I8FH0eHkZSbDSXx0Xtn4KfR1t7PZaZrkElxPJmYTFhwAOUadbjT1ciEX8mMOa1VwJQzl3b37Aw5k6n5x1RmlB0gLgVL7yQGVvR/CNaHMpdZ44syp2Koj20rRUtypB42wHahdxqonYALSSUlVwAEGCXGqnWawHemErQ1BdrnRSs6yD4PiJwo5wH0bH2o+GK7X5Nn+42C68Tjqu22Wlv2/zzxOJrzPI8DZx914NM0DVhI548OI8UGECaaVJ2e5HBTn60siyVdotwEaMYnBuDj1Y/sGX4fAzOmeUmT+4eQgewZRn9A37u6a66PblUAj3PDUQvejhsedccmFSI1qVgE28H71l8njvPAcTzaQt2j7doD4rN0YiwYZHPI722iR0XB4xQ86g7bUrRNwxMc5wl5HJAieBwHShGoRqJGt17P1sq2aTymO5sWVCnYjD4l3hAtLi8ORJltkQgbGaqG9lbdOdk6+1qn30eAGyacrel8yfhOhu81y01IltE4E2m20CyRPTdpn2KWY9NHDqBXdnP4PN6xfmbASxJ+rH0mbgx0mR1893K5YHs++52lzxw/uk2PXZoSXZ/wN98F6FdVPB4PN6TMI2tYdEDsQsIm6wpAuKEmgBIvMS/Kuk4EKUPb6vlIlPpdCdsNIwVuNAYBs9IuMC7fZ0ZARGIOm5WncddE6UXZIyXND0i09z2gz7wkR56G3DpIsW0BfVRg9rATUdGuD1UqyKCSdHgPIK3PHZIASzCSnLDCF8Wlfb0HpXNltu0TF0ZmKasDsLBXl3Eq37Lwa4dB5RnhQ11W1ma72xSb5jDTCI1sZvyNc4SxlJWr0Qr7bTyrgYPtdC+9U4VPRTGdSFUM7R6vMbvP1RlYXA27Ms2q6qfX2uFYRYqvCTB0MD7rr6ppx6Cxb6J/KMuPQRVM9BxsrIaRvWEwPGAHChXr3noGFnHHHJk9k0VoOyDp7LsdnWfbjWXf9j5Hf++Ha73i5evXtmDyF8HjPKFvr21aRdexBrzy9nQBIZh4G43T7gP6/FsRVKBt83y/A6p4eX1FrRW32w4gn4HBW3GqtixhNb4asKd+sqDV7rV1B+diNMB9FIDY436BzToPm6/Ka2lWKizj+1xY+17Hb9BGSCA+nbX1OU3ZA8vlIC8diC2I71vH9jYmjnWbhOY3CwS/PX7Ev//LDV9vd/ybP/wFT+XRs/Q06gTg6GtCjscdtZ54+fYrHvc3nI87zqP1a4H2hlYAFbW2k3h96s3CqBv5v7z9gP/4tz/gfux46A0igrMqFBX6OHBWdXluwL6VedvbGQH7vmHfdwqbmu0ToM37l7a2ZN83X2NiOw9BgIJsA5jjvmbaP/NGIvjdl+sPKVIEvcQjwj7TJcBKGu0wR7c1akXN6y+XtNGuimZzJzA+PdQbkgLZAP6qfQpgZ1Yawb2wvQEE4M8sWUC/pVFWKjfjzEXTF0G547/+N+IA9gWx3i/brrHulPiUWd5W1/cB+rE4iQzNuJfSPxiwkNxZGZjljkgCjzXTzJtK9HarhhDjpQ6OWJVAhIH+JDz0W6KDjfcgmAwepCvlR1nUizdUrKRP/tsiolUSuDyIGu/kwkpdKY4x1WyQxAMLqj5z9X711/EXr3IC8kYfA+xGg7gMcVlKgA1A6gsHkgTUPCAaQfjYAs1CwL/Lgi+y0AUedQiwFpkxf7bT5cOMo5FkJzEB/hmk8jVmIvh1bK8HTrA+0L6mIvNOjCb1dytckvm4oHFlvE3mFHmL1bFtLlsd+MfpsNEXPj/cmcxsDLoceC5kiOu2LTRZa83ZesGKLC8cLJp8d9zk8QjRo31xpct9f9jU1Mvp7Taw70mH0gOeEnvmQ1og+e31Bojg/igoHlkAqIKamkv2UOg7o8EDtMiim3yfPQA5Ho++o087S2B1mjL35VUw6nQg6/oUwBLIMHqXozr0nGAhnysyBHMAPAZ03pb4rCPAY1qzuF9ePII2NMPlAMoju9RPnY77ecO344aj7vjnn34G5ERbTN6m9NUO+ttU0IrHvW3L+bjfcdzvqOejb6Rhc/njT/szSrLgwND7TQAF7ueOv77+hLOWNnutfd3et38AHJBHcrdtfUhp5wcE6O986KMPuy0q33c87Xs72dqnlXUFKqF3iZf2KoCI6WvmO+8BOFp/HV7t1+zyu49d+ZvxOxamSU5MrnlrWLJlCOC5ynpnv4b15SI72GzuV/Ir1nOjjzR9jIQh8ZOAlYnNeH2EO1ZZfrbdrHvufzHjDrYbIyZNPsjle0GMVSWKQovrP3N9F6Af3RAArS2+eA3RiYX33AbLNQ3jMhjDYNzJIGYnO2TkF8DWaIxvZwDl74lmA1RsvyPTvTas+Rqd1TvXhIJy+005ZZQ+Ninpx9l5RGa7Z8/Gu9kn9n+57zIQ0mWD2MBeBQHTY4ruCEZjRk546AOMvLDnbO96i8j9R9uNaAQAjbO+MNCyvf2ZqXxdudTBOFKbnR8uUwEywxhn42agUo0vXd5v++a0Bs1I7dRqztV0JTjqGZZqW1x2UN9HNVyGCNdEJgbptdHYnbmQYXzXcAVN2ZlkA+o8pP7n0bvJLjiN5Fh02K5T/HZI6XuUa6+j0DB95yer4xQwEZgcA21BpptqHQB/dv2SvlIkB0Sgcwx6YiqPRjsl036e1bPzZ21rA7a9zXsYRzdUANnaIs22c0qfQvE48Pa44ziPniFt5deub0pnRhghAXzDJrs8anP8gtZPtqD36emGWhVPtxuenm5dJ2N3DM50r0aixj6znWcsAADy7kzSR91s9M1222LfxP7Jy6b+WWYcky+ysoIV5L2S/iefCPhuQsY229E+yuj0Mq1+f8umtn4u2KS0Ecyy9fMBFIoT9dQ++tP/FDgq8Nt54F/+9Rl72Z2Hf3j6BX93ewHQdpJSre1k3Xr27TgroCfq8QC04jgf/d5GuUD7OQ3Idovs1Z+//YC/vX7Fb/dnWHDgNq+0A8VKkT5K12RQRD0jXfsc/7O27UaF9fY8oFWxbX3+/77j6ekJz09PuD0/t2BA24jPpnF+RE7ORJ/a4qRmC+wG6+TQ+/CECer65xFYguQiSfjs1hcPTxAVZtFcPyqXYPIUa60cj9G9sg379BMvZtqMqEyc47qhDWkUi2y12Vq7OXyp1T8mkTqnxUtA76BYxE3tq9oSVSXpsOkS+SrX5+HcIaNhSAI4zSNm6veL2Q0B0GdScHD03vVdgH5FW7nvjgMCQV7gYEabjZ4zn6ZbWCcCSN+ZMeTLs84BUdfR3hCNsbiNYGUE/EICxgI1RuAfAf7pV1kcEEM2gR0O+VFypAR+V032N2PbiToGQp2/POTMO2REuSurE2VmYH7hEDH2pXTwwMQN5cQXc8VGGylfzcX038j5mxFxvCO0EFbonIJo7gpkXF1j+x1PIgN+gBx/q6SBvhqgBVBs+xYnzSJnJRNtBnZiCwwiKrdhGuWg+xxL9BoMILuBVR2EngzWhfFKOJ+DkgVfOZPvTncACc0hxeYB+zbskaxJmCnpQFOhKACzQHEM+qwf+HW8lvTm1k9tH42GA/+hj8Z6Eug3OyKYdt8wHpz17AeFNblo++GXvnvPzcETEIB/23eotGmbtVbc7/c+3//0BZ6NthacnmgZ3NwaA/7s+XK/qMDL11rx8nJzHmx9se72ZIsxKVWhozcwXgRrVZvzPQd5CDsVQNL4Wevp/oZ5uJQp4rPV79fVwZqEQ4JTof8GMuxU6KsF5BE0jPAJ/o3/oh3kbhsgG1RKn2zT29QPkTvP2kB/bcD/8VD8+ttz52GT+//1p1/w9aeXCGFVgfOEaoXo0UB/PaHn0Q7letwBVNgMk30r2Er2WWa/GjAD/vLyBf/x5z96/1hwFq/Fp+VBBLY5gc02kB7YnueJrZzdnrZzPY4+DXnrUyJv+47HcaDWih9+/BEKYINNo+vBBFhmGNQigD/MnlqPzt2+9lxr4D9gyPRh6YEY+ZJzz8EnOXzWQfvV7D7RkP3F0IiFGct4aG61QnOWv2NGWSQWDfNxlt/ts8TvZgsGM9NxGno/tsXbNpYx6nOl5wPwh25pdHOwsL+vGgGnyavLgrbvLKlJRaIUPstIvF9WmImv7wL0C+KQGXSQ2D6XdGCGNYpBSoCw2BrOS+0gNwuDKSGBpwTMkTWGBDLUi9+xOoeQeCeLdbaV2YUGlYRu5AbT0g9+GhQqnJb692O0uApy5iFvEmIvawVKgh6g7WZgPKYq0cOs1BqtNRWw2tqLzRyDWa+Cm2aSr2Qc7FWA6YhlvghQhp3TxDPVftCG5jY2PrRpF4ZR21/p2d5eJgPnXuUVb2X8JCMvEvGtvXbYWb8jZRD7exth2qQdQmS7UYSF1cxx4YH0yCo6gDEDOGZMe+AYhjsD3qkVCt9lxHcIEnVH42BK5y4UayO31Y3ryD/1z41lNfHV/ZaBVcQ6GQbmirxgKppj/R3MqV3OfTSSnA5nd6fsvsQIDgNyhWWXqX96OZYZt+1CrS6hci2AMP2QIuQ4ek+bw4O4U7J99c96QqvicZ6o9WxBrexpx66znhCNrOLRt0WsvgizyeJWCvay4db30K99JEq60AnUca51i8dBLKv2nWqy26HR2S8I7VxUJctAuozn5sQrBfl+WryNrJlMdb9z1nD4tn0ryWbO8GcwYNTHdAb0w6aqy11k+BILslp5fSY3QQ+KOFPF+prbTva0nW7LUznaQ1UrUKUvhG6gvwWBiuNxtH4/TjzOiqrx2+NsPDw6sP+rHij3AiN2kxM/3V6xy4HzeKDWo2f+D0Cr+5nA6K0FL8cNv92/DPqvUBW8nV97UBlMykAovLj7EGeB5tfay628w1EzwVoVclbg8YCUgpeX17aL1JfndlZEYm2zDUVsdKj1dRvAUBd4ZTo6gTy7gfvPkoeam2U3pfabgLplSf7eueQi5bZRNXBMzQmvUQgX8WzX0a2/b6MsSZAZXZPlHroK5vscOAv66dDBj+Z7rVzrUvG2w+8LXbHsvdU148CcIDGS289eK2X6s67aPeFCWlBswWBTOTsXSpwnXcx7Oywwrd4uQFD6tPRSASnaNlf7APAD3wvol3YMeumnKdrJihYAsJOvlsHUvEtDc4DtVUrpWZ3IwtjiXxYoy3ABJG5sj1dCPL0za89ZzCZetUuRZbQAMyKOlZKTnyFe+zf0jIxb/xjAMkAQk8iReiltmNYACzqtUzaKnZzEdBBzxD1X7E4wsWFwumN2y9pqSqL+jxUT5keQOeKKZPOQve/DMTotipGdVM5wL1225ajbXITs2EKvTQL0ho6512+ZrXr29q9pMP0mAQwAI2x8NcmBba/ni5g0sgoMGltWv2fFPJBusniepzswa5cRoIK2d3rn7Um64OVvBpBGg8/aMfYeXdp+L5vdG9Kd+sYcwlhMl9FxC8V0UJUILLpsTnp2Vm7MOyiy+epjNlZV+1QmQMpGgJS26iN+uk6bvJJRCQeS701/VK+mutT166iHgykLaHLfxwFeJoStPzuY5cNsTM8hqOiLNmvFcbQs/ePRMplfv3zB89cvnUcN3B7n0fhb2xQge/Y8z7bPvir2rUB1w/PtBlHF43jg7TgacO+82xDdoyQTTiP3XO/XIm2aYRto6EPvVX3xrdHgYCnZWfG2Ax1MaF/YaX6Fgzhpc7whraba5fA8Y8pfuzpfGegTAGjykkcBZZRFAFLHscbrK8sr2VXRPvIA94EC9IXN4QDCjnQkBA0Q0+WxnqFvFdIB/YlaFW/3O46z4nEe7Tttmf1atWfBFY/HgbOeeKkV/4/uXt/XveLf/cMv+OH2itoDA9ubv/UxPNEiCL/xt9cf8C9/+Seoe4ro31MLNrdR5Dk1bII7CAXq2UC4sbH2aYetb42rLI+CU1sfn/WB+71tA7qVDbfbE8q24blsqNp4XWtFPc82LWnfITRVueJE1bPR1u0QJxysXbEY25J2YS+192O0KttntyvFQGuTc6glFRSxh6Alu4hvwovbiQuOTI2j5IsQOld8hBlOj2enRcPOq8HZuCbdAYCty6/rrhi6QieXaELX2fji1LAVFhy7uCtjNoUFB42GyMbbM2HPbYvrPFrpyRzni7Spar25zaXHKKeX43AiMJltk24/2rTFtkNW673VSOJ4fRegH+h7MA+ZLhNQ2CuDyKFxQkCWyxmHfAwP+ge/lIC7AaxM43rYhL6blEU6GAjAMXWJPUNKwd8rmj3gbIZVaxnTKxAbUwbIEFj73DCwUcx8lVRWcpWN5BFYj42bfdF0Sfptvonisvhi9Tohg9F4DEAOyc5AROa+oXJdee2/BPiDDl6cmYY1EeBtai8bjxUNydiyg0aSLXu+IHaOmEayVJFmewaqHJvcAU/nnWRaDUhcMSy7yNwwdhPpHoTxT30xyhkGYGznwpkAACAASURBVH31G6ife9upaXC/w4B6JQVCDzFZZrT9s9Jv5sCM27FTGNuqnOkf6ks2Yw6kJ71PCYTedgIFPNow8VkVJ5pjs+FmG0aXIm2xWMl8yqOsdG4B7bGP7mB9d5e+wHazcxwcCBM9HuxFCoD1xgB1gWDvoCLm2cPr9ZGXnum3dhP8COfav+GFyjmQLg0MSg8iLP2Z+tvsJy3DHPRUO4+TaRTxA7ikBm1ssy/e5L7uz2lvmipaZl5aH0rtwE668wiCyKY0Oa3duEvptkeM/p7t78FVC75PaN9Vp/YgtPYTeM8+9aWe7RWn9nVTjTebKn57LajHhlpbRvMmB27lxKmC+3kDEKDf+vjlccNR20FtrEtXjoaBbHy2b+rQR+EHdeJ5KGfYFMV2VjyOEyIHjvPEfp6wkzCMT6rAtmk7Z8BOq675PBuAfXIQWTuw00L+ut/LJ6uzicouL5CPAfNsQ5TuyQao7doUgB4I+0mxY6O43yPSg0sHorxFZ24jP8t9pOmEsyaydos/w72i1oLsFMjb9XuUeIB8TZgtEqxECWx0IVwWC1Tw0t4J0KcHxXkK3nYNHkWBzp3Wx0v+2PsKoIQN+uD6LkC/SD+IhjNd5uD6e88eA6lx7OA3GwP0SCwDs+Sgs0dlsUDt2Rshp2MGZc7ucifAI9JWUJ26gNUpPT0IFdPo05bIprlLsOPC2blMdYabs+3SBm1142U/BV+7wTVnabdZXTbVRE1AByWjqviyakuR6Tsrb35ouDGBuAClWeXnx1d1kAkKmiVGOvjV+BnGSn3417JE1fqTAD1AkT8EsmLMQGtzmLS1pRve2E2pjT6IrymQvpWcZ8hE0EYIau5nJQPs6ZFeZgnZZ741mku3S/TM5GD8gf5iI0z9VE7KNttanYI4Et3WaIzHqxsAg7Rt8xQ6baXIAO/qqtZmhZ051XkKn0/dQHrX+8LtmK8QSfXtKBmMlJ6JETsUSxjEWDDArBMfCbc2Mhi1ESkRwWYHCNlWZ6am5wkFjYBKZAx94Wkv7+jZSMvUO69Lwc0ydUV6Zl99cV7tINm2PrSdjfyv01hKk0nc2nzoWx/BNRtv86rd4ZL8BPDP/bRJwa1sjcbbrSeOWrvOs+K4PyAiOEusF/N+HeTDgvU0tasPn0tfKHf4AWexcN2DS3bAynuvhHAELhgsEfkwSZOckJ5b+YhcDNlSe78h2u4xDkU6ZEsZOFmbTT6VHoOUBuz7NK76uOPs8+8fx6MfBNhk6ehg/+yjAqLi9UAVb0fF//Gvf4DgR894/vOPP+Pf/uEFv759wX/465/wqNuw7Shw4tZdT7f2jlcJrCUWWTu7TttOYDqMAloZ/CT7VQvYiHcCxR0HXl/b1rTP377hPE/c9lsbHWqVtPVe6EnJzt96nn16mPiia08aAw6gTWrtHqvbd5JzksV9qpn65gMiS812JEB6TrZ2DhIvNfE0j9izDzf/EqeJbwBEasZG1Ibgb+6zhL1If9viekuIslwP8h2tyJd1IPHMR/PHW3V4DGQ/+qtjOQqieAMNw1vFkhD9UfYZqv2k8G3L1LuPDhvllPTRwNYXMePjo+u7AP1AFyIZhQcwQZij0uQf0TquJMPHF7Niypr3QthAw94TmGx0pkrB0D2NSgT1QLpzDBq4ypkuVwYuZ2hjAvFjUUSpK5nI1E6O4FlpGKSO5Y3RfZpqM5Qzw3Bdfmf6GFz9+Ap2xlzHVA2VtVSKQPDxmQLQBDgTJyI7ZgDWlF1H+RA2FWRgEzoYZWc0JOGge+0JPJozySNmWaeUZCzrBNHay7PkQ+oliS/aKFN/ftI7Sf0CC3hgowcLPb3G6CEt7JxEOqicdSPpiPOLS+vqjdz1oedGM7kRKtuDXHp+NOKewbcaKRixPmNnO1gpJ8bB8PBnhBlgcEBANIRemu7biIO1AR5c+fQcmi4EoE+XNJBUky7xXwCJmHYpHUzavH7tTs144jR4m0jehz4dughbKbj1rUI5yG33ZAfsUzvEMo6S5GKciqhDVygAsd2cLAsuMousjpsJRmEZQGSZ1W5b+n45UTHW8pX4kWS2f6EKNSxggMlVt9/nE//bP9LfiwgKzS7SriiqVkdPHij1t2Wzz9qy/tWm6pwt+dUBfQP9xe1mVcXL0c5WMPl5fd5wnAX3c8Nvjyc8zi2mmHZ5byNGQErZt0xE77CR52HXQvFhwh+IYvLFM88zyA4ZOlVRfEFzm84jZyQxUXtQKW3kzHaesl3CzGUWWtgb9qXVU4KI3oVkC3qQ6mtCCRuGCnVdtfnhOme7o2mhP+yD8vSczCvHUFSf1E6XBwRzZTxN2a5mpxRiewX2PnYALH29I1UnC+Qwwf4wnfFmwAnp9gVmMOusgG9iwvcnW9LvtSmBPkJNZauq+9BR1ia7ZD5FTdXX22JfXd8N6G/X6JxDUNhBpTt6sCAUWUIj16y9QwLq5GsEiNI8VNov3EEv4wgaEvSIOc0x1mGrym50UxkLzzL81lvfHJWiT8A2qZVpik1zHLncDGrE5621n93c5XtgGdgR6HpF/riiKx+4j7zJ3kepIqPbBN0Mby8wkzzE1qvAbgX2JmCr6dUfs6F1AHHAjn3XgzSjk4hzhax5aoPzUILqEeTN7FA3wia/qtqcqG0Vys1FbB2YFr73ee0pc6LNcLtzI9/mPA/mUrsNiJgDysJ2pVN8peDG2dFBJ1rm3w1o6h82/g14+isDf7b4wOcMn160H8hlMyinvrTnfGSrO2Wr22TBT/c0YC5UJk1XyLRF4JvoI5YIYkG+b2Xc98sPLYQH93YoFoA+j7Wi6pFojaC/rwlwnnOSAtQtfcSG6G6MtUx3y2yqCJ5vN6i2vc0ZbMB4CNIl6MSD7J0Nv7Yg4mnbPeAFaJG5yQnxmKcHYKA9b0EYW7ya7iepV3ou8Ub7YWfqqmQvCyubwZXY1NJCt5Gj769ZN0IWTecD1EqSmQSCc/SB1pdMsOQ/xKJlLW2kQ6FAVUhtgV0BULSBUkUbYKgQ7H2LzE1s2pj26T02VcxGtKRnuBW/3v8O//K3ZzzqjlJuuJkfddDfmmA7/pm9FtTMO6U2dTvR+saSQ9KD3EHQBhMSGWpK5bh8tLGZrR/kte1bnwY3yHR//uyBj41O6hmgv6gm0J4A/dXltFkPRtY6pG1KVXng4i2Xi3tg4Nvq0iQ/vOYreNUl0vxIsXMZLBmCoa7un4hn/LytTSqlTTG0HbUgSCHyAhV8eIVpaX1ZPfjKssAmyJIG1hZWMdtgQae+o+3bmdcE505afxR8oaTKRIuEbSJf/b5H/o5Av662dCFnys5seTEPXUBDePn5ZTaQHjbnbF+lYVM3xBx9RfScOru0KQjRmFzvlD3A3F2hZF2VzJAtHbE1g2Ztk0RmhzAa/gzsHZwkRAVXSLePSjyJorigBICtb0YNNQHHoCycvbJHvdzh8jqIExk9AaMR9fineQFfOObPS5hUc+aGGRzwk2IyeLLnpj+Zmt/LjfbHnwH+sZO7ASnic6WjzxqBSm3mbE1qv90L8X7xLK/1f+/yJDJWtttGgx5jq+CBb2p3Z4Zx9Mq3rQB43oawHeC3bNtFoXpxzyz/US/foYtnR1tgiQDO6hhIyP20pllJbMP5dt2m0zuNH1xmcoQuh+JyyifqBoiMUQkOdEKnmmw2GthWqf/Z/HxrlwUb0nfsaZsyhH4wHz1gWmT80iWR4NlKwW3bgxdxE4Yv0i+r/jOGc7tXfmJseVo0qDYVT82cOM3x9ExUdvS0w5BkeZhBv9ny3LAJ+FP7zMZy5VG3xi55eRYJLKvfFpyaDQyZMB/Fdq4AHiBI2VC6j6ziq0XSqwH7t/MZb+czzM9spTGDkyU2dQydpJY8kDxL0Qz15WVJEbpHgpGhg3PCBUAsLjYb3Lc1NRlS9F3DyEa23WI0+49a6ZT1qCBPNXuvHUGViMQUqkTtovUk88o73g2+spQS39H3sy+dv2/0hE77qMbgv7PdzFtBb9jCXqjEVrG0Aw7Tfc2di98GnXf9WT2XzlCw2+KujAVySKISMuywZsBX4wGRMRIz+//RRoUdea+13xPorx1wsDBI+8c6wbaGW0EX1e4w1PY0JUGi8mwYJNeTM8ljZjuEyiLdYQRCLeNXcwcZ2IF4HVJYHWlK0QCqEgssqwAzCkxhdiSucNxuKti37ExtC40OgEZ3JPBoTXOEkByp+yCmMyScbmptHhe+rkBYAv7Gp+7UpGIpEVxGwNHglWfFqHzOwDpXtBv9AfAbX82JWhmegbVREgarEv2Y2E7BYuWdiagRhTKAVgfP5eZAUgHffz4HIup9sgYyWSfcfY/gY+J4LivCjhl3uAwDvmtOBDvM3HajHW7jO0CkdpphDho/M8z5+aHQ0XjSVog8PI6FoxOaZmW7ibHNGdjNTsLtifGMnpsCccl1O1eMF4l8WhNAhyECAVw4qLJyLMtbBpYIBt2RlvVUW2dETfV2haVweuM30oVeN99r2dUi9tfXroDAt4TsjQRUkrOx37bSgTptacx2Z2AjvSego4KymxzCy7E2JOwP0CgB3zPYylRH9AnbryjbgjWyMkK87DaTg0iz+daX0svyudoGWDV40eSqbRFYAewigBQcEBxoGX8xQK7V6zFWNrWPdQJtgbREUJNNdVgTNg1Q5CMISCvYmQ96Zh3AI5AC9KkV1liyXUrZfYmRtXZuQTuwbNvaboNPz0/Ytq3tqkJnVxgJDnoRPszsdAVtsGC/ke1e2asMnFstnDxs/TknVPjjxBq+z8syuwrvM03dMSaYQr6abe8y41MDNfWL93u3XqaXDhP6/KQW3LUgUhMNhFHeac/Ms9xO+iLknMSxPW/9MVs4xoDX/mUpkOs7F0VI54HpO7eJYpV3r+8C9DfArokVDhbZeGpnGAk2C6Z5ZIuWEojsaIMBkpdr9QEx7G4VgJyEztn8FVilRlgvBdCacAQ5NlGSLuKEhGFOv3mVM8C/MhKpHBNoN07qDoOBmwUQtn1UK8f23m0GXEZDfeEwiRgCewGeE90j2BmEu013Yj5cVOWkCaODJegvXaGcHtB7Q2FD2SON45/V5Xpqlt0MVQ0e6GK6xfjH03os69lL9GfP43Ano6o+IpAy5Svg372d0e2/958sy5L7KDLPI3Pc4dG7AAD9nPrTpkaZfLWHyxZttTnb3kZoTMkgIPw5MJ/xwPqJhXNA8DfpP9+jMTUkFoDnncmM7XmkIAdpzdZYeSX1fdBDMpQANaniBFjVtxAE4IeOte18N99dB+g72QDQ82xgxef2z1zyqZUSSRX+LnOR5S7bcrOxQNMLtiNWnu30VkSwIScxZpk2/UWy3WoLxR2twAM0AD6djMtJ77tPyHOjFRF8GjlC+jSzweFR1zvIDExG4BegaLZf5i+4opVttR2QhGxT+AeyVQNfOegGGujfpEClYhNxcyzdVorZzX4VwBdfehxSQo+8z7C68oGBZSJyca1+dufeecX2w+4xG002TARxKN1tx7a1oHPf9gb6n57o4Dqh/o1CHZvYBhi+aL6vo+l8+wjwp+YIS2pOaDBGmpjKcjmKJ/Wb9wmZ7+grzfcq/0L/0E48BqTnurKMqj/b5FRrB93s7xD3fM7yR9uXCFmj/HS7/zxbhbHtOsh8qy5wB5OwujjIH0me8cBc5kfy8l2A/tVlo02JL+SpNSRqcsDBfLghBsT3hG5lDYoCjQgcoxCH40hBRKclMqe5Y+0QG8f67v/Mkljd0ZYckCC+M6OrfHd2/JlVK8EN4xattzmOsZVUMMIMPNwQmfMXJdolyp/OxVKdFnk6OGF+Wpucr0OAsmhNK+kDw5gChdg2sX1HvBgds1s29b4noUiASoC0iNI+p0xcaiTLVAZ6U1AhSPPYHeR7IInEg1pzefaXoLkJpKNP+4eMaY+qVGOY2kchmDgN+TFd0NTY3k+9jnYOV5/XKUN5c7dlMCKDQ3Pg4l9Mv+UyJ8+WjP9oTIVuG23OdR2AbVZnIFkG2dKu+0JluK0aA4r+/ZyhIgtwIfp+BwWSggbQ930PggV+rskojxOPvQEUBHddcWn3AKVbcLdfYatGmkNGCZN1e8R20IIJPl1XhDRsBa6Bxm+N36WYCSYdFcB35iFnumSv2shy8XNDRASytRMHwqa0ylZ2LJWrXW+STcp8YtDvl/k2/zwkF3xPcJLzYMmkX24TR4wiuY6qik2bL9i3AuiG276jasXZ5V4RO0epdz2NYtm+/7U6P0c/6231z9H6lghc8XLwKVffkb8eR6Bsi8roS+NT66J2qnTIufkXDwRPG+1V344VkJ7Rh/PEadNYWO/6NdAdDY8eZx+zvITtb/5+emIEwv0j7xozBaBjv8wwiN5kfxvVWr0ytdd1cmyiYmoy50zT9/ws4xvnAY+QjdQmqi8ukm8GRKA6UjuoZOKRqf/Sz7ENoaAn++6L5PNwfbegHwDmjeARQuXCFY7StracBNE6QoadG8xo0CE+sRPBx8wzZ2lkjdltz+wT8EztoPYkQN5vdHBngkPGkA1ktLEVyEaKvskgl+62ITi2oEpvDOydfYeP0ukNZ27vs87r0B8j8zwroNmYW3HONJHEPMfeAXcX5S9qtPmlItwtKahyBWbQUwOQOf/cQPT+oS3urEzH1Ep8JSDli+MmPoWjscyrZYzhYCoudzaLBcWeNWXAz2DMC6EXbQvOrO8V8EOLAIIYHnyw86HarF0gW65tGLt4BwRfdehzHtWIPtKJj17rsH1s9Ds5mPgyPZtHkkYDHzJRqY7xeXv1xbWD3psxNx+nCLlqrzwtMb8GKVxvjHaEA0i/tr47jrZVr2XI+xaXKbIicHYeR2pjEelbA6sDXOdJf24VOLWDAMPZ2X1sq6XXYw5bnDHE2/63SeiBj3ho7ucUXPV/+6GqDYh2u6+k8wKJzL59n1hOgIbe1CpdPyrO3pa9HzBpBoZtAmMBxdCvyAmUQbqGNqWvroEOAJwn7MCgcDlNZ4vRB6OVZN8Ltbb3oLvT3Ubmt2Zzbjef1uLAv48S2eJET8ShWQdOULDN8tEY1mWl0R8LXqWPyjA4GvU/+UvyNaqDiGWdCiaq4TYHY4XWUG2W1e+HJKlWnKf6vRtN6/MNFuygq5gn2Kuq/YwGBc8Fz0lAktdLW0VNSAGBZudsv4/+VeIm6zE7lC1zx3hNxdk/BlBH6Eb6OUKC7NIWeGls28V3UxMXtxt+LGijm5nGoPWdEjC233YRygUN/eRB40XZ0rbsBAJzhX9knmR7wAnDdQotX98F6Geliku9c9KlrCzr3ra3DmgNmI3FqSasG19nQOHOINEs6ftkMN9TSC+vQyMLPoayrZxVGSOQZlB5DfTDmDNbEyD1703pHbUGQO/1V4Boj+kdSuVOwdfVFR1GlI3ZUXXHFCBsBkSrTH5ExjrxZZQvVSvf/jKJVFwA/qGfLAM/Ng9jnw0yzCMutrB9lYUbL6c1lZZ5kIEzEo/MiSYg0tvui+VsmpDRyOCAmKMSa2+IoQn0u/MX+MiV00rgYwJwFCCN7YeVqn73dI3c47b77y5jF+BnVS7zGENfrXwy0zjoVoBnxIFNF/3+vloFLxwoqfqoUYCQfrfYbmTz4kG3baTTfNiRq60i9V3m5zXZrv4G+OmesbykCyNyuGQF+4lFX4ukU6mZqFUNbqFEID1dLr3oNLIjIRMA0k4/1uas/XFPqNTgG4Zy8r0jjeqdwzAjQH/sG888WV58j5cDB7cAfDvWqoqtL95O5zBYm7vdtlGA06b3adupTCnJ4ucn8LRaA/0Sa+LCPoBAf2TrI8HSPjdRW9tMa6CJowA+am9T4Latg35LyiAwwSinIb9mFygh1OlufaiB8RDrk64SEqvvmp+cm6OTpFG/Dn3uIw7+LIbPrKTqPFLXp/5PgIyoi/ibL/aZMt3u5ma14Qs9tYKMK5E2fV3ZVpHV+65RH9ocpp1971hXHO71+y6hsgc/+MkSvgvQD6BFXA5cusIDPudtvLiBzb4KfKUZGeu004XdTCVk3NUNzNmy/QyUShfi2MaOBfyCNte/BljHYfrJKU6GtbeFjR9lcHko1ASrvS8Z4JLATocdMc2aFTwWrYwgqx1+IyR3cpF9VlWMR5QZMF8Zs3CRmQfWZgYy1nZuR3qOyk2tHRtP9/BpopaJtHIsG2hNnRZnMh0J5MI8XfrOjZQET8CH84ikOdZO4ygLwzoAAHHIh49AIEC1O57gUQoia4Vnfbtjblm52jPvTI/C53R5RoLKMgBZw+FCa1uI1fdvNtCw0TaLRlec+Nr6wnduIHptesDI+pVujhcDfhmmYUQXssO0PmODHos/R7lmy57pJnng2qj9+76FTVg45pl+oTqk2QhoPz21GSPLku99q8tOGU7YabSYspApDcdgX2MHYU1thwPgTHT22/yrL80R+f/a+7qQbbetrGvcz7d2RUVWiohKSQlhB+0kwijCjEo92QUSelASgh0oFHRinVTQQR2UEJRQJFpUJpYkIZWY0FH+lJZ/SLsyUszdj9ofWN9zjw7m+LnGmPN+3m/t5V7f+y7mWOv9nr/7nnPMMcfPNcec95zxrM5oBT2LcvNMv8Ta8AlP0AAwZ0ooc+q+2/8csDY/UpZa1I3OAVsK5TNWpyB2/fI1386U90tKLXk8wTrSgra4PxDyQsmgtju0vYra4NsORTqo7YcQ6Kc4Vk+pdZ11jed46bN1Vt7xTgGKsWafynLbv6sfNOezALl5QY1piHoViGcw3C+77w/99lfr7/6sRbnW39N3LPO+DGNgC5OZPVvEz7/cWn/f7OyIvEbMt9AA0IHHST5B3deO5234+cMZK3iVzcaK+x0WVEH6eDm4LKJIHhXfZIVy5Ta4UCqzlNddhrXvelDpr0I6KXnfBdie437j5UEMEJlj69Ognq9t9dIA3/1gjbPl7mU5vrsRP+OV9/ZY8OZ78zM9C9AvSKFB06ABIEbxq5to1LMC1CU4T/diqUgl6zZVWUftHgvZ9fpAu7hj5T2Uqf6CQWU2nM4XySWzHlaFh0hBAfwsl5g2pXo51BUlDoPuxh8MIVbhCiaRdWebmIaen7DP7H6uHFF9X0EfVDPLgATQZRrNcelF31JRRQfcQTrvAvdLnLlxH9jA0oL/AvgF6K43daG2QSbZNxkHsKkgUOSo+zZHsOgtb1rbAmaAKUXumtFsrrc9QICBL7hcnX+uPQBEOxOR9R0MA6gS9hfcSMzyvaQHQbDwMl1Xs/rzDEVdu59l1kDGMS/4OXJAUXhZ+K0+eO7Z+tX1EqN2sYqrjsW17phakCMjjnJKlr/wk/fNfm6xxzwS98YDvME3V9l9hxKfj9vuALhrrCAwzSxz9wHgh3Uzhq0TGbXtsMHZNTBJ21fM+pT3tHiXBkd96/yNxFXnM3kkUKfEo8fXaVjRfNNhsglhyHSHFtDPp0y7rhLopxaP3zhLTxl9830e2xSwg8H6dZwgsbqsLK+/nLrNwJN0mmfKHJTfbKc2J3/Q3AeADC79GZKMMelf2a/F7FwbOBZ/G/rXgD3340R8/wPf6KFdJJCJ2vehWSvfwv4vQUSt8wqorgD/A/5Tw9L/LuDVGlRMADqxEidmVg/ujmtRv2/4wzFCiQ/UrEv5ocVduK5IFYnJcfA78/eIngXoH6SlsX3ro9W0FsAdS87btHJ16GcXTb/Esz95oM4QdjzoZk6t3qcFeLj5RpZ6ipr+OZ3wtERBbabDnFmdnqTrpAGbcCpeL3D3I5ppXfYh3sYWMFhQ5vDZiGyXxQRtPvCg5yIYlK5kza+TgU5iZcBJdfBAgqRZAxk5H5cZt08x9vrVXFOMCMZZRsSxyPTXK4ijlEfhldppzkGxyIQur/caUga+PnUEqzoAEgu4sRbesqQdC+mMvKpoPOhYoZeZ7SviPiN5oPFasq5eD8nubDrEcvBXH1jOg8c3hvyjjOgbL/tRfKKgQaC/MUsyuM7yC+oD8O4VjpaJikAguee+M7piU8S2er1ZZo+y2nffvceDUPgFgdpa6bP1oakWPOHBB0mtBhfS35viH374IV1xC/3UlMFCP0a76muxtKkcRED2IBwZVJOJqD3DgmzjcfDzFwSoAPjJvofFgziPQKRkUPtrRoHkbZKaXTweAjXdmO6/uLe0d9jDSRjL7W1k+NO3lbbNrOSn+CI5iH/dDKRd0Xz2AUBuRwFYenhcszX6AbKnQBsxgfUhZiZPjzs8eJACqvvhSf5+yKfadOFB/OF8izQxwOHEj5pMD9OhI2QNwwKcQBGAdm4bz0Hwc1mvaDZhykh7r1Csmwf840o5D7JPyfgAid0KhxyGap9ln387J4H6FYoyA1sGxAz6zaf6A9ucPOskXRFbgAr/EZ9d2TS+D5ugr5ubKV8chySeMVv3mJpynBNbj7LrZcATA5jLi/PFmuv1x3MUIVuNAbXjEE+Sy+HtfbPM/7MA/QmWaNTuQY0CZwmwmgEIwBAGN1j6LiIUZ1kuiw4pO7GYEruDTz+0AiPuSFDuz0rZZZsv0VaKakz5xUEPtCOLt6MAW44AEn6THkY27nyaH4Ae8zr8ibweSfkLJNZp5nW+f7nSV8kQK37rkujH/lv83ABTZshqQCizMIsBYnl2Q4k/CyLFwLwGSddSAGpvg7tNReoxXcCg7gq4jKsz+9e1i9/3qT8SQgRfB/u85zoHYRPmuu+LI09tLcGQHaHSG+WPVo5y3bXGAClcJgUNEM8d8Pv7lLYFXfTA4v3zlLPWqnfUDOdrya9VMWQs6bNAutt02KCSgbp8cJt9w0F1BECi8py5y2y+tft2HDQ9M+hup5lmI+OfBLHe+ABFo8xDcjlLARqkT0UHUkRFhk/RCvBPOhvur2bopP0O1Aes2cczvChdOul5ynz6zR7Ac38BVPH6525xxXXTjWOfdwvqdI0WW1paU+iVJ5vcJvgy9m29nJRdxod4Om6KZ9mvrr+52m8OuJ5EvuSHJAAAIABJREFUU7e3os/Vv6z8uQvhMEA8Pro/rD6GuqvUVWIpqk/q2dmsn+I/d9RCfn6/7zIVs5Sq4/A2xzI24AEQg3ARGdstA3EAXYB+srU1xqB4F+0EcIB2qRp9lRskZAMGS4KjKYMcUpbv+uyIqo499BuxH1fVOOV2js1UyUKK5TPfV+qpuhEuVOu1081eJMEI153uT3PGq7izUiZZwkMcsmAjvuBBaE92pQ/mpGZaoceHOlOxpmcB+oH25D4HMu88OlRqUiApl0aZJX2m1w6Os0rh3goYbSCkVZP11c6svkGyLv+qYLkEc2fsW346ZprtIeoY5fXzBwqL7nTCcYMYFY8tq8Knevx+3+6Nt/NyAL3k0QCDtHq9cdPghR0znbuQfCXAg8yBoetGKZrAY8yYOOA5ahY7RMWxH2gncWo4jBKd4z7PACVwLjwyXciw1MNle6z08tk5g9cIUvnu3MJJ2T/NUbqdAYDYQWCcfSvjh/iHPqiW71yiCo1dZHgQVUFxUjg0SOk7Pr2QM13cAC99/WQQkebsXGYCCxeI0fSjYpCDaTQdyddqK0IgOx136n3MrJDsvetPmr2zi3MGaWEXDMbTxRI/9lr6IA0Vrirx8KK9nqSbT2X9H4UktueeGewDVuetJkQ67+nX3Q+ZoGtZUVxBAXk580h8hayj/nHarMRdpN+tnbp4D7IHP+E42RyfzpWddP9k79ysGYh0HxeAu/sVe8/iKrOKAD286bKllgvPUmTszKJX8ZR8fNcj+s6zx+MW2iFoEgnFHAJEK99fb0xfN14l9JJjmCLbLGVgnYOteDbRfbd6cTlT5njgEIG+egVVxatXr+yh4VtJ3kDzAeke/9je/VmnYhPRhrrDmM82eBf47I2LveiXAr7d8nnkAVYwGdQBeg4QcqtpULvNP7NOlwGZy5ti/eSbyGT9g7bviFwXC2byOEq2H3pKbX8I/i/oEpssruNZp2Jri0FET37x6yN6HqBf7SGyPqXh1EeKrrhAApD4x+9JQ6Jq+Gd7rSdnxrU1TZDf6axEjdngi3aSjl8krmgdrzoy/GdO8/muBtMDJyQPkFxK1piyCz0LV2QUZVwEEQpCbKh+6EpkHeJ9V9R6WNGSovOaZ/EBIE25rWRwlRHqWfSoi4BNBwm3WzOurO5psnbUKVx2nlXPen8FqCVAGCwTrx2A5FrUOqgA6YBr35AnP1ot8ZCaufo4LnyUaWtYLfAoQA++OV8oIBLTAKiKyW3g5g8bkwwus9YN+J1tqZqbVM2E1E576BANUDDgrZdr6hwm6631eNubDwm9YJ/iuzQpASX1qeZzPCzrOimtTTqW6YwHcDNY3Ohhww78XcYO0uOMzCu5u2yQII19Zvgl33Od29nkWzJUHFTpGvcRR9dla+88eJLJPph5HmxXf4DiY2qbZQLL3Jdi/N1kPg37fve2u801v+btp9eUAdlxld48qGEdKu+I99CJbEfZArdWEDYQsmv+s8pJzHVQH3nCofEfQAwD3MUJzzYoqP4Ik41MfCL15xLsSPbjKiPsflq4THuf0WaOr0Jt9IoUA0D62RceFxGqMJJ3OAEx33kgH0oXkciGn6cA77wDAAH6y6xG27wBFEsmHW9ntoQdi+A4bvE+5BnPPVjTEwHb/ShlA7mhSOwE1UA/ANzVcYyEPVI3lWv0pAPMVKvsTUZTe7h3RTBpzsJWFFp5jYGC6YLZQrLascVlFUtaDcr6b97mVRx8hHP43jehZwH6FQ2IFKDZhZUj6GVZ0fDRi/06SQyWIHzqQUxO66mRFIM75p/b4WDHCoryWNl5rS5n8Xl6z39j0Mu8MtgLYB4P8HoGI/8iqLHTd2GB4HiA5XrqMTtpzo743vV+pHsYbTBLQFFQR/BRrwTf4Yolh08p/5miz8ADFI1XlmU2txkVAUAeGCXAtRqI9w701yeTpmATTxCoJ1kD+R3zyyzWrkuHmP3CQAetH1DlAQknDiF763YR5WgtPxgdA99kN49P9h1ZWBTl3VXMP3PPbpdFz1hRQ8LexNqyGgAnCKvOtxb0yOugC5NkgdpvDUAWt4H1mzpQM7DuQZ9k4O/nsw3mNnUwq3xQWvCL9Ftmn6LnFKSCxxawrrJWUzOdH/9PGKwh29B0OnwcibpnwxIsuB5QrZI9H30hqdPMZySb4AOSEIANDgZH86Hq1efFMEAoU8vSWOhxfydIUNIF6fxHfDgSXB6kbMUCWE2Liuc1A6yf2T+And1APJf7/LssnGXA5cfD1KzPVSrmfzSv67ZMNh0Wv7Itr9l9WfNpDCTj365HZJ+lTm0O3b6PP8mETzmhGwh99521YKA0ZtQ6f2zfhAX4Gp5JjKSBxeI4OA9unydUD8Q4gkMgXG/Nt5Pq8EGR3LPcw4eMczG8JRNm1REnVMZuU3LUJan+jITLfx6AImPU0QufsVv0WfjAZHgakHgM4T5n22xYzWdlpzOWFlSwkkhZ6VISV5I7BRZ+GYO0WPOIngXoh/oyhCMaeNADM1f3ULQezrY5gULd+ZMhZJntHqXvHRhNwSvLqJmFyiY7kVGM7WBwP3E/72UrMTce38Lw9uoVjturZInBMlKRIwiaHGJ50OmjcYm1ouXQEAo0kaXg0k2mrpTneeI1rUEMeaIeJrUa2WfAHu2M3ZsX6y9it46+o0vrHigiA+Pf3c/MfsbuEBx2nO+j9lk6w9rPSjKXhYEN/ODKCNyO2yirRqIQQQAL06vad3mYzOv7Hed5hxy32CUi17KmzsQDSFM7euBcyPHMh4RigNKdpwJY7BAERSxDEM/ohEwEr0IXXM8SJIXehQQQMcVtrR+4s8qA+FaOcbJnLIuR8kCkwLb8jPZkzQIZ0S76sdSS2xte6CLLiQE54OKU0OUECGmbfvN4RrRmdfQ88f/oAKPB+mlyHKfrCtl092vloV+WC4CbRbbwnapFfgBwM/lCT+C8wwd23M4Z8JNIis1n/ewXjiljSRDC3aZtRewP37MfAq/Xpz+XP3Vl0U//1Lcy9kSGQGOA+uqwLVQJ0eh5OjKZZMzlrYBOeBmP43QRH4i0BiKILUsT6yXI8BmT2yuJTYBBfRzxrDNlr24j/o3voX/IUXaw8XaHvcL7XkuZvnxD5AgQqGcC1sGeO9gHQInje9O5vGj2e3NijN9QjC56l8Cal8z11ikwMvhiKXKOD9bPr1y/6dkPb7NigN5Xcoz1969Gpl8Xe9KLMcknai9Uy+4f17I9hD+MmM+vPMuB3MKV8MTdT592mdmyT2+Tb6nshRzAGBw6FqDyo2xogGXceEWD+QpI9qnkojDGKu4v8vT6LP/sz0RyB9h7XwabPNkrleW/9/IEaQtH80Ohq6gYItqHgckOOYATeH1/PbAaPZPHg57sj5Z45Y5/gp4H6AeAGAGyw34A+oFE1G/QWC6mjHyRwCN7JL06B+SreqRr0OUnjWL4FML+oK7HomMCTL3ZOtXA11S3i3BinCGIv0h9LAqKulp5XQ4ccP2/q/5z/35RoLuR7rB7GZ5lLl8vRuJzgAPSl6RDWfRYZTAA7oIfkTKlngijljKt1SX+yr/hdD0gMZChB3dOKk9zTTigs3mo63kFVKUZpe1867XB9W95wOeZRneCDyx6Gvy409T4UOvg13V5vl+5lcdlB8jg1k4tCROZ2trkkQGp8Ym0uUw8nN6IbPmFYfUsegnMIV/eH35ZSKsvq0XxfbNcvf9GcyOaLvnzz10C5VPT4/59gWxPuH9/TXD9BOi/oMoHictseArkch1sswVUcTM5L2O8fyLORblPhzz3Ew4GpfeX3Vz9DRjh2Uv1Qemwe/woNRe9WHjPiU/OapbfV/LQ2tePKPQB3K91q1S133PZGt8vi++iIOKJ/L3bEmBJyPGRS/IIUzyMgcHQGgOakQcrAkyZXw+NmONm1xe3MAQIGQvz77wST24XpW1aVM35FOKWuZKLPk1eyWf6ZytFRcFpqIgzJTGjEFlkFIvbrQehdT663Gr31yVIR9/dyQYOOUCYcVts7tj8cGWU+ZqTvln20/QsQL+I4J13XhWgzyMboDqhRyElg0Z8Ed8XJV0GRn856T39QLUlazRY4XIoUPB0fJw+eL9b9gQB1PjUv5HB9AN0VnseX1GabRzSddgWabebZQVBy4UG1+eyrVZX06bVQ8P+2bc2DTupKb+sgREtSW+wRGFTirBL49WshUHQDO6LG0teJYstRhxXZqPn3m81SMsGEEoMvlYZqcbzFC4FsZ5TYomX1aEZxLq1l7rUnbGdK8H7DndwF4E7udHeZ6QzqwGIOzAG/N6FHGwB2hKy11VkRQ2TFsTNjjnjEvJBsIlTz/ZwfIJ0EcFNbgnKAeQx8tm+8iBdk1EJxFKPdh9ySb90+NZ/chstj4CgJTAAGFvsNnmEf7N+8IzQCgBoszGm0x4s5FkA78PjqLOAl3jU9JAEsgZ4HLwFkJjJzdaGnpRvAR6c5SF0Q2fO02a4yJajLOqzxL2P9IwCPHzJSTixIo/gR1rQhwA3RGZUkdnIBNeI/gt9RT2AayQyzKjDNtM35dlp1TM58Bm2nqCjWBKpbMlxWVx1O4/Bpc043HxtuWX6TZmzekoapTsS+heL9w6oatJiBaqdnyErLWV0rRP+zxxPydRrqu6BPJmYZcUC6/iitEwkMupxTcEOrcAMCHmRjw7I/gW25MUc+EXoSKVoeKVEPNZ/w7/qMi8uIu9SUDc4X97F1gxR+O61UdfRwQLyfAjHOuEpSsBT4nWUUQZecxiPuALw85OVwqdwuTQQ9scXAItjFDs4hnHxjOXcLxxHxhAQ52NWss4AlfbreBjan+cM3+HPqemJOLCT7IJVbvSJ7Zr14MRip2cB+iE+vZsClmb47Gzja4DWUK4zBuFlI/DWCNEziFNg4CKaFRWg1/lqXKiVedpDd7H8pOCGGmz99VR6up1YCHc0eSoyPHP8UwaMgEL6IQoPTXc8ILhRrB7KrXJovy8Cbr+qD/b4YKJ0QFifv9CDW5SuyEFEft2BYSmrvynR0r6S+dYCgqm0N5l56GHLChp6dyyWbbg3e2Tj5GTD6cJlWblPR4jIik88N4BUPjeQwmcZuN0V4OJ1ocqjZ42zqc3b03eRoZF2HZVXZtYoo1MHEai6QiCwtNL0YWq/NB0o9YD8iMRnnH5ty0aRHEoIZccvOZ3s/PKSsS7P7lNdHrz7D28YkGB2oavSkYigazZLtmbC/Lsq10fZ7jrb4UuWmKHGM/VD/rbw7w1jJjcrf8+vagPc2h/BLzDQubZnUCD1IEHx2a92wBLxMb5y+2m2qHl35yXcQwxCqDllZzstzwiEr1faOpDiEVYDwTD/eTav6J4XTrd1m+P7EH4mJVTlssrOouoAOc0OlrreibIGp3yYtyj1Qd+pAeL6JfWHt0+pfLuo8pgP9l/SFP+zTI5zgXWEeeHq2b+Dx3HjeZ68dQpDXteYSWn9AeTya+ItfmfddDX2uq/CtGDSBY8xfSa9hCaOaxAITmtn3TqZl5qzLlW/6u0+aiLUB5awE+XDtqQu2bLvfNDnyR+vxz3vUSNAvAiQYEhMePHDNT0P0A+xKRluALs42moLVccrNFgpRw3G0xWagDFHuzN/WdwcTNK7hhcNpyk6slF++mDwLwfEDlw4rP11OU/ydT9zi65i/VeeYHiyGJmrZRWPm5/O6tnxutQhgMcFkHTe3VGvJeQXZyFK3/Vg5UX1QckKmKY2FN9V6kj9YEtvnCwBv+8C0mVggMm+y/bT7YJlPa4D8efrsVda632GTgt9dWCn2dbroJAeniSOALQB7KgKCnynf2FtSQ1HvU8EflgTB9KehWYgcqLJYzG4SBFIf5vlduaDR1rPSYfypG/sOkdASQQRRoRKNLkPe1SqXiE63LPP1JUMvesiuSERoWebjyFtrbrD+zVPA3dUkM7tZj1hp+nxhwdDvJ7Vy+RMebHbqWMsmJHOE8MQ0HpXO6m09tlaccNNIMGRauU92h+8pk7HXykz+6/UEYBAEUspG1s8YMlZl/w9u2HwcN7vKfoOcsR55RlTiT6r8L4LBuTstLg4t7tMbo1r5nKeAgY2CCW/JseR2/Z2uVKx8aE6CtJrBSzzyXGk2HLRVfL000ATZmedewN/QB6WZjIpfWG/HWaEEcJ7G5A+zEsW+s6/PzVXCCSEaUNmB3YNa/AjwR4PY8BvIHIVmPs3aZEP+pj8e+BMcd3rpbnbEsMr473raZia1XccgpK/EJsQEtv/P+qiBkj6j0iehC2j6rPbRvBROCWbzLh7tpju2ELRDiAsAvRtxDWfw4o63Pea9tDOTSxjABA9cI7MDh0EOmKHmH74TJeA6iztQugzR/Fud6y6j+iZgH4AnNW1V43GMSh/N2VWh7KCVCWQzLfyN00JWzns5Ny5BGjPXXlimlIEsIeaYs/yvm85MKb4dRx+5WBpBdQ6rxwNXMml7QCk2h9y0UlrYoTbnCWXE6anKePeVS4PeBvsKneeZTeDVWDhkTIpeMF7U70C16KAZ92a6EMM+qqXLixzvb3+6S4a5DmAm/QMQB6iM77Jplcw32cMuKylNohfW/kKB7LSIw7QXn6rl4qOYBr3Iu0jMvwhdionyp/rmNuR9kuieZLUMq1l9iD60cusfzHwuhhFMej03lWMgbsPijw7NIIKZ3nzTSaFTDinu31U+QfAJNmKYLXEbtxUba3PmrjtpIzqQ8dch5d/uvMNVORFVUvQySJGQ3MHmf5sUtMlui9xrVaZRz9ahrc/97TwHS5SL8c/d7m5e1glHDIRkeX1asp9/iPpnLfZNyjIgSUV4IBMOISv+7mvr3YLCcDkJTwVOB1URp2jfo3vANADvIUNHQqlrhsStQbrosiZBIo1YYNNL0oAjMbSzFkZ2KN8VwbE5IcQdUnpPAlRSwBtSA0Bdcagyte7PMDzJFul5T7mL5xXrV3jZeVk2CjY2IMuprhZS/p3rI58zXI1g/MYgDNLSXb89OnsOz5A0K/Rg+IE/e4+seo84LMDvRy+v/qNHBbPvtr4Jl3rM7JDryMy15isXneLrJKle3X5sO1tWtLpfni4dz+gzXHh2UzSW5M+JAZTQpcUf9v6Xpz3tRoyPQvQ7847AJb/oCEKhOY7KLsI+hVQmeOTKgwWlrrBsjPxa0nxAF8zlQ9yTUyYMnnZpyKPCPdvfQsuC/a+U5GYtau3WXMHh7sq7s6aKaTBjOCBjYjf9ADWR7a8TZQJIpo2ngnw4jKIVaVSbzZ9WnQPe0d2mBFp6bqiuG64IONsenJF1HYPgQkmegv4vY4gsCoObIgU4CV7Y5Rd10xz1jadkNj/JACpry4uZfmaCWQxKbwJ7+h4kBUmQwHmcwIIIJTpS7t/simZeZUma2YjBlNW/tjhwWe+FoMg/lxskHgoF1k9pycHZodfMuKqbWatBpYEStJ0AxMIDdeE7NfzPMeZBjS4HXqc9Z/uS2ggXA6hYzDwxIA4m9UDHEJ5MpPVgvZxwAE0DyYKuDpzb3UPqP7cUwKHQE+jh4QH8lbm4cDK9TiDHbjJfkiQB8MSIRkYHLi9ukV9LquwduWy2cfN5JpbZqZk/t0YnO8X+s0rdVYokPMgqOtc7IIVsq/LBN01edEM1scOIF5m8tVUCcuEFRh2DPsaZ3J4H62f4wrbuHDEyr8RwIwlICszJr1L90Z9aw4xy0GJKWj3cPuYj3wvOM85w50zczxw4FvJMZM/4Ax4dL4FhdluOdtrtuM6YX1bYAkDF/d53Darry8HihOS44b+0GoWKkLybiW7vAoA9t8JH+Rni2+kc9ploChLXlgvCvCnshIHzDrk8cpnMRVK5/yYFNoOasx3yEatfOvT0RckF/YNUmcBRcZsR+27XP4ojGPNN53eZ+ED3O/TM5JVxCgeInzqLJJOzwL0A/A5IIAbYQbhD2xGxxUbL/CCgigZhMx+KXyRwMC2WxgVKXQNsuMuR1NSO8QPIgnnKJgCYD/MQoF42PdOWf7T7veDiMazVEMmwVeLUmk0+RBiz5jFkhM3VuQhGsDkS0MoihpAe8bCHY2XFD6wOxKvJJwElQ8y3nCqjRsPABCs1vqvKOPQrBXpTlIR4l8P2lS3888a6mX3v7NEwdYO+rcLXVWCs9Uyi+yrGRCGI1EFYmvOBh45QCge1pU2lbzy4WBRXPGnSnZhjljPkgWvDPvbRbkPqAyWG+9+EJiUQXfty26HqlUOQ4T2Pp6mhCUORhsd7BcA3mXhIIB/Y1BtH91uApATkF4Y5pKKTnrBSJnejhsOGwTJ4Q+l1UMKTz0pcGamlvvV64L41nUC3nYOSD0hZqKt8bkBPkRd9J3xftxueOeddzCslfrDdbj1A89SMbCnObZsSwGNamCAWOLypLar+Cm2Ndom2WVUIrnpY89oK0C7wWjzFaiDCG8H6VXBxAu9EWvjUiYua394N4p13vqwHVWn/SMLL8P4KNtbQz4lQLKDMJJnKbsB/rBtYiVkWnjM+wOYgQFd2hmDTi/T28QJBt9ktcQL5nsB/GOAIBRf/ARuCbVI8UUwTZ77u9wcIH8JOYi/rp7Jcr+YcZsEVn7zz+lHOXbl47E8COVn9KLUq0F48/2MZ1KWc1ncL4xxvA0QGaePHdl+lw/rqZ6AHDp2KRZb/sjYkGR13OhZJbVyDytKaAY0VktabeErzMfqkKOqxsIXB/3Bv/PrfpF4vsIWnZ4H6BdAbrn3eHyt1RmVIFlsytyWGyBdlyAlqysLPmxQIZx1WllVes1xzSrmKl+HBETxRDtlANyhtdsRQzUO7JmlLc9fjRInwEm+O0bWHkQydKcsIkvngSdOOJVSXvJJ4MSUdxVKotUy6omp1IXYNBqImAr27z3LGM81NJZUvE9Zjrj4rP5/8J5t6k1w3ZPJ6Qi/LigAYjifYrIzcHYAwI6tMd/Bxiht3UeLxlBwqToaPUqyXg2w4vI0hZDjMtCGTXaQcJa16ktuO+AvgJyMm2WgVTZclgfunI6uGVHuzwzkKHKIFkwKlortg9R2AcpNxWHnNf3BP86WT/02sdCy/G3w1EGPUh2RhOA191xmyNX5Jvm4DQV7DSyFrHkYzQOimukXZe6IxH01u2QBcBSxZPyjgWYrMy5nH+cB5UrOLeDzQDB5YeCBeGA3nzdw4Mz+I2deKocz8O9CqbM/tpc3I1MsrideoStJs13kzEGx7zfBGOUapQbkwIT1g2qM6zK2NB9H/ZnX2wWlc4lhj7UFHEQgiDpCv8RXWLMuZLZ23N4wB1Xt6iKFvbZEiQdpj3QPIKnQNxdqOsK55OfV/eSzpsGusxO6ZO0LAN+MofO6aoPMLQjGLgvK12nWoWGTyLCX7MCarwyxvR9IXkdNznIiVEUbPy5HwjvRB9nmwGrOc5kNsOSl2IP+ku2OelHbOipJf8P8P6JnAvoFtw99yJhPgxo0eTrShex4VdjOOCcBrJUCyGRXaQjjH75luv0RWGkHGvnUubeLX/3PAVa50w3vuOEGjJHq/T7AsA8WbOs/DyzBVUZEhGqSA/CtOUO6NoIVkXEwiAj6loVFGqIJaElaZJ/gUAYBTufjkCJr7u/TZeAOmkbqMU2nGsaUAAOEFmYPkm1lEECZXM0lFQLUdatqPEtmWkczikuMmhjY3tW2E1yBZ8/ktJNTlzIXWBmSbdD2Oze2kR85NPDR+gRNf17EZ6Z8gBXFR3CAdzBUNNQ9LTVXW54GDMszIyELLbNn2RbJ13C0ldjxRZ/FATMpAEEFReNkS8mDpkh4PuCsgHfY3d2X3DCPF4HZebrf7/FwLDepgugToAfMhn6lTHzKOLNjUuqZ/eQ19a0mQyNlZPoZ+EdjVWPpH9v6nD23OjywHRLb1/lpoixntzseXAKIpVl8KjfLDrAA7DIAbIlWhmsH9+zDfZaMqaWRekVZfvA8/jssVReH/ZEtOtt3apNAgOOwfk3gIMEz4roBcJ0rhacF1b22JY4cLE99V0Y+KIPq9MnVpsIaz9lHjT7M1/Os/cU31AELt4eEacDmACC3MUA5yA8uaaHaFfrp9O30ORWhFknt6GCpl6rIA87SZ84JNPez2uJndRdWW/xWB0EdGxReiStpn523MVPvPKKQ0JuawOr7c7X2X/kY4YTjvGuPF5LXAMtOXZbdmV78TIJ1HOBJzIJHSNbxSjbT/Q6kznjmUrdsp1o5B8bafnqOP8dT4yLE8DHS9yaJQ8NWD5shOLgvxO121OuTrWor4U+rLGRbRpjX9DxAP0aWKUfkGoF8asQF6IfaPadnU4YT7e6sZMCsvKR0vKXebnNLC6naGWWT4QoM3PaBANIwuKxQUlWAj6Jm4LEcVRcmRvkU9CvPVrM7Ag4gAmhpMMlGkQcedZn4/vlCd8hadNxudsgeustrXjDMqAH9R+rO/tOBR2Si4QEwM701M8kik8W36Rj5VVugkdZnNVO3AB5Kd/fyNNVrdKNUh9PkoZ6pWP0W/GLi2a8QCK3HJMcX/LjMEhz40hBol4ev6b3w6E/QtHymkdtekS9IxnnVeNf4UJ3rcKcq8+2oGjzbGbuBlAWdXkw4qmfopwxrXKv0fQ1YLAP/nTPRxGr8VdCYthHXC6Cn399nKRDPOwEsc288F73QMxoMsETT/lJv2S4zP0f2HWwJlYLyPvgq7Sb7sw4jd2O2xTJH9KXrRdqRTvoH0H7w3p6JZ/+Z+6Lynpw2/S56Qr5IMlO/tDbyh1l98hkxaIqkzB/FYmC6ktNSRTcw217w1AFv06Mo98KFkBV0VjmQlKu1y53hhd3H8XqSB99PMTSdrgPyhkHoDdfFvOYyJsM51UDs3kUfWUKj1ll5W/fBqrczWcNsZ7xc3yMLn7ik8Bn5Gfw5vtMi/K6hvhRnhMVZ1xg/Tct2wlZn28qBeW5furKrlK+WMlNd6+xeij9tg3fiFEjEezgP/oB4wSkU/B/QswD9IoC8GttKplUxGBsNd4VY5Fj4/FfJAAAUsklEQVQhyIf1ImCDsj/mPBNbhessBpdlWslhexXU5VVzkHU+Obh5mw77zA94ejFFOcWdr0Dud+B+r/yHOqxAWm1jCWj+anwcZCgctJ3fIr6o8aCDsQgElMpzZR+HA9dbvq4obV4Kz7GqG/pB/JuMsMiEMkWJwn2Ygc7XYWbWuAJ+De3i/EGWEzqitP2k0m5LUX86msxw0QBuQurJl/qWrdN2or6168pxz58zUNGgU/1hbmtrtCOdprPvpcafjrxK5E0p4x6g/+7nUZAlW9cdx7rPgngEE1/VGSD+NQ61s8O2yp1mi6ftksOzRd6+tPUztrKM7SxphBVWHmbSeRzrM31LN/fFsfTH+NCcAxuZIhGrwiU8jmDnWc8A3S1xwDx2XWC/eL/fI9hwRw/9pxk2aDy3kOBaQY8yBAldw/rsuuM9723n2YPu51nvwkcfPGijfhPBa/OL1SaTMxFEht4556l6l9Qh2Z+lL/lNmH/ymnZEf3Tp0Ed6cL7JpGTEUVmwmE5vxus0g2Xvc5AmgJ7ZL9OAblAsQzP75Ouq376mjKMNrMJjhTo6ij6cbZPk6b6C9Nt/K/UmAzNPT3Nd37a15glBUi59aUjGlZQvJ8t6eWIymNLvrc6w7Qk7AA7gRyS6mB3h+ssAn7Uy3z6aTe2fO/Ipkdt4Y6ty3Z7nEegqxkxUogp1LeOWwtAcH9Kej1hD7z67bGAhic/UQQnZEz9r6XH9vJ/eqqk9kwy7KhQ5V5/Hko0Hgu3mkI5ibHkKgR7n0ACRjD0NNzyiZwH6h2fOaaaRCbcARgoygVgAgAcrQHzXJAMDHry6HPp0D3dI9Y8EvDSBoddLJU7lQDAenGRODSSpKsR+42waD0jG3wHIgQOCG7oWmao9MYKWxbsKDCgTRHLJ4NFH9xGFwtBXblbL15kZXvIoXmK2h0HA0HkpN7jh1vpX7l7bC0NfF0fWWVxjCdBuXNXoa/aPMqR8T2FdiH+pDzfCnVG4PgPlGQi8cs4ORLnBR7MXYYBCLocAGGdeQy7mDH0Q1CJ1RLNczpAMjMHKWR6qTexS+zKY1rX8Wb4hZxo8FwmaTG/HLXWpgDJgzBDxaa35kCbLpetHzBh4P4XsqxnmYNBsJRARyYZ0Lqb1WwybfZFW/lj3qP1cUMlUKa17LYJF6F3898CvJOCpb8oMJDcZCHl2eyGBTeW5ECrgzzqy3EV7sgBwFtLhfgdx8dsCRKbtt8IXbeF+uJq1Sblo0ZuhVvPa88iUtz7tmciMPlloDAiQ9jVMd7YlqF4vtaFiWZ1JOvY9c9HWPq8Av1/b9CPeN9/kNG0VmZXUzyu60LPBh/OOdKQ0sE4fNu7XVlJXH78+/Fr3aXR/9gnbRuOdbDVsnS+zzpmstzhW51VK3/FlxfexknZfN9VUtYP9aPYXtVprkg2CevBlB/xUr+OFoouSz03EYN/xDQF5ERlJnWj7qLRvn+5tuBirIZNH1HqhMsFiL8gh2pH3ko3XG5FeIBTAcARa3z7UfADPBPQrMJafuBNsgQtABNkUSSqOZxM42+ROroNiD9g1w9+tgRytWg1uSA+CIYMsAXAKOVQfbXqb2cmpB/NezghRt1cIZ9ydjAOMS57o5+JI6fcO+r1cfz4irhcPmgdEbdTbsxFeJlKuQn8FCXi9zHBDT+I8l0b5rA/PSoyaJh/pAEysPUDsWCTaj7SX2D61y8NKSfsq9/Grsygks+RVIJm5PCpIqnhiKByDVcZGHoSw4LOUR+Jx/nNwQhl+X2c4yRhZiJdVMJDOTs/LhsauU3wBPxy1aLoLYGoKaIDSQW/JfsY++VxOB2hjnTTvDOZl3u9n2TGKZ8E+LlqCLJ34nqaTwy94X9XBCyxIlMBtfrPbzAwQk7mhD5n99uvpimhD8RzuD2gQG20EYp1sDljTxylx0cGblxWnOgvx1nQm/PIk88VgIBuX/jhwQUrRQZoFI/g0feiA+1CLU10PqSVgn1TBax3Epzy9bfNuOmq8975cNfMw/XdwHCcYK23T7PGtDCZ4JyAZsz3S6pjqcz5cT9zsyP8f1d77gGmKTQvAz4MTXZ1TUQDTbKu5KTjzTXp72TShQElNkBRMC2sUJ9r6cnsXbrXYQ632MqpHJWq4KBgN+a/LsRvZRwTWoeJbTHM8xoD6KinQB3qdep+VAWuLE1wel8uYZIrRStIwUCyH73hIB8BifC9tB7kRk/PzeM5t7F52njZrbXUeZCfMvndNtpH5G62qwT7+yapXIkznEP6rIrk3o2cB+gHgFEB5cTgZVI4EGdS5oSayKQ+9ubGR45CFUwhRhexaYCQlWmUcspN6MAUEJ5SWB6yAZHFsF1mN2/HKpnbilvLmUVau31RG3v63AriqOM/28B+1UXA4hCRnXBVfgFzW5o3iAIlerzuldFbD2K+oO4zqbnjc6NN4agFj7Is7Hu6sMqnZKGZvZJVzNoplVV753hJQ/e9Y6wIFkBHzcplQhzAxoCKw9UBEcEs51ffJd7C30B0PbgXAWCmTwTg2Gj027CTPpiiZDEmnejlQAYFGmJwZTC50ncE+HwAVwD9LLnXkVwb2A+j7a14SMb8F/kcUATIi+zxY6W2os21DlqD+GoMRus/tsgVof1Uqn18Pl0GUpfOWtwWUNJ4n8Ek6QkF5yuYDC41rNgLkwPAKQkT7aq4MQD4ztbyPWHVdjCIX/ijQGTLx4stiSO4BoEL/5sx+XLcWQtp01M7AX8JXY+Iz2Y1y7PoYOMGTamOZQpWa2D7/R/omLpfWKkp7Ti6uVI5L3CaEbSZYzBLm5BcqYrq4hn2Eywcun0YTliz6OhYoBgwT6h9J2Re9kanE0mi1Njh/jD8Ouz1477eX+PgI+GsryGPHuv3Vb8vi/l78ui9+IYB/qDRan7XvO+D3QSoJq/QTy9lxgxwHjtscb1V12IYe5b5MYGRbfJnn/X4f1/mAM2xy0cSHMSKCenwul0/3EvL1CkP2koryhnHp2YD+6gr8G2oPBXAplkKOl673r8f7dL5Dz5t0qFq1wQKNOeKi1T7wXdblOWARHDcbXV776HLm2GrwMJTLjgpX90uKJUNURjHYHoSRDhmggMeZlhVwEAegLnNyDpp8Fx9JNpoPMbPTK+giLp78oOQXzRXF7iF+kVK97qROBURGtvgGJDil8g5JmNF8UZTPQHT+PU2U4wYCnPfSknr/jNsEmaPS6DMRPxGw1t2BnNcdWf5oL8mXWERkLqTyjlrm7O/zke/yUwwGJEDz4XvmW+tP2kHpSWqgWUDrL0PtUydZl2WhZ5w9P+93KHytcw43JxDEsiBxJ+6uwSVC2Arso58cymWNyed1lr/XlbqlWUCQr98uWXXhdeDjRhGJJWclGQHu18XsBAXq3BGLRdW2qTWfmCpmAF9y/3pfZ0+YZhpgiwEXVnm3o5S3XWvbJzPP2bfUOtPZDl36wCn13cpXoYw23akIm0tx0Lx165Pye/xEoEVa2R0aCsdIK4PPOrGZzgBZDviPA7cbPyPVZ2YQwIs0tbR17ASkFEfzXIxDDpyw5X5tcLocxPhv6ocXSR1wEaf82mW6/m3omG1KlBIsTl/CJ7auCDlE/y9AsiBjj1B7Q7MWGCOrFrPHau/Kha+I648l0xd+1eHTZVGVH4/4ExBvVGagCKCyb6GrF2zpxBTbC5gv+1wvT18zR9xgEjDg3w8Mi6SFGOC/33NnOwA3jycicRKv+5DkifUoY2bB6xQznadpxsNuT1xpd3jxHRt52x7Q8wH9pePWaliDRnwz3ZWAdC7AXVQG6gYQMLafezhSfROS4fA6EPGA3Hn1e1Yf5LjZ9p8t6BH25ECTRlcDZH/v15YRLoGL4yQHDfN9hwNab48HvDTU7oQT9EdEnjIJla36XSp8Ate4zw6cOuKBjvRiOSBxPoaT8iyn4oA2wHm0Na3SmFNFOvAU4hS4TvWLU84eaC6N0hQzAIJ4pi4PfPIYVHglQOQPSxZEL2MnJT0kyl5m+Ysu5HrITmGrZEjdeQUdANSXTY2HbY/bLfQgB+w6OfvMxuhcLlXFWxf6favBQdgkMICPXfP6/nq8vr7Xe9oSgnTo7D/iq0sa/cY8ZdDKWYo5y+wAvwL+9PI+G7BSp8mvSW5Dx/Xc/UFr8h3ThgivtQ4mJfm+HfX4eVV6BuWs7fQgXORJ7QcQGWH+DsBYhuVbZcJtWyByM3xUB0W+VaxfPcq+FX12IDqoDoom0MjXCnDiTMGTn+KZpj6DO0MTX5c918f1jtfab3Umqup5AFXkqwLxjM2csRx+/XY7AsS4ToxZAWpkMk8v6YvDph2Y3QZPvBTC3aIvj+LssfPF7QQAcXu175agvg/KaHDW5WlCgoAeKof7CdNFyuiy8Q+1otlMt8s2yPSB7kjZHeXAyhIkGygpbbPfKgDHG9FBbUk/28ptxS0TL4Rf1f2oAVFxTLKQ9cSnXOs5s1X4XfATx1VNYD1tPap0IN2GqQBtZYy00fG7LSM9x8YHr1+P+ODbNx92nsntMHtRpQPAvKGzICT60SQpjicAjWTEWiYCUq8SbN89PR/Qv3jnn0IOy0xHjXqTkiykuJLXe5BhDGgnagFGm+EVXi+tmTOu5qa0ZoGk1ZPFzVNxq2BWpr56YObvS32UsVAPwHPTfcm02DVqIxUZAjAevczU6jAGuI6HdRR5VlBmAU7oMzvNZixdRlObiccEtws5XujgQwcXwqTvlkp4BULmK6+nWxGDzSf5KV9VHh8FhIcUepNByG97yu5K3yz5F4D190G5q/6IwavOd3kwu2riY3Em8HsjH92ACgP+p+kNOoGBTQOlTwXi4GeCCL+wxLM16fOdgcLNw3LeRGZv0uY3uWa6513f8d5oncVNkDGu4Rvm633Go3xHMeNNguMKcK14msqm7+pVHlfbtQ/skctpX5ayp5mYJ8qpKpjWvJZ9An7/5PFr5pzRtNavSPQd4EatTymbdJm/B7xIMiwzNagYYaKVvtFAlK95LxjsKXoUbyaZPKXKT9SSYniAS9t9KwyX/tlFtOi9j8PhyJsFlU8sich/AfC/AfzXt83LpvdMn4zdjy+ddh++fNp9+PJp9+EHg3Y/vnx6aX34a1T1U1Y/PAvQDwAi8n2q+lveNh+b3hvtfnz5tPvw5dPuw5dPuw8/GLT78eXTB6kPH2zKu2nTpk2bNm3atGnTpg8CbdC/adOmTZs2bdq0adMHnJ4T6P9rb5uBTb8gtPvx5dPuw5dPuw9fPu0+/GDQ7seXTx+YPnw2a/o3bdq0adOmTZs2bdr0iaHnlOnftGnTpk2bNm3atGnTJ4A26N+0adOmTZs2bdq06QNOzwL0i8gXisiPichHReRr3jY/m96MROTHReQHReQHROT77LtfJSLfISL/1l5/5dvmc1MlEfl6EfmYiPwQfbfsNxn0l802/42IfO7b43yT00Uf/hkR+Umzxx8QkS+m3/6k9eGPicjveztcb2ISkc8Uke8SkR8RkR8WkT9m329bfCH0oA+3Lb4QEpFfLCLfIyL/2vrwz9r3nyUi32199fdE5EP2/S+yzx+133/t2+T/3dJbB/0icgPwVwB8EYDPAfBlIvI5b5erTe+Cfpeqfpj2sP0aAN+pqp8N4Dvt86bnRd8A4Avbd1f99kUAPtv+vhLA171PPG56TN+AuQ8B4GvNHj+sqt8OAOZPvxTAb7R7/qr53U1vl14D+BOq+jkAPg/AV1lfbVt8OXTVh8C2xZdCPw/gC1T1NwH4MIAvFJHPA/AXMPrw1wP4GQBfYdd/BYCfse+/1q57MfTWQT+A3wrgo6r671X1/wL4JgAfecs8bfr46SMAvtHefyOA3/8Wedm0IFX95wD+e/v6qt8+AuBv6qB/AeCTROTT3h9ON13RRR9e0UcAfJOq/ryq/gcAH8Xwu5veIqnqT6nqv7L3/xPAjwL4dGxbfDH0oA+vaNviMyOzp/9lH9+xPwXwBQC+xb7vduj2+S0AfreIyPvE7num5wD6Px3Af6LPP4HHRrPp+ZAC+Kci8i9F5Cvtu09V1Z+y9/8ZwKe+HdY2vUu66rdtny+LvtqWfnw9La3bffjMyZYI/GYA341tiy+SWh8C2xZfDInITUR+AMDHAHwHgH8H4GdV9bVdwv0UfWi//xyAX/3+cvzx03MA/ZteLv0OVf1cjGnnrxKR38k/6tgPdu8J+8Jo99uLpa8D8Oswpqh/CsBffLvsbHoTEpFfBuDvA/jjqvo/+Ldtiy+DFn24bfEFkareVfXDAD4DY+blN7xllj5h9BxA/08C+Ez6/Bn23aZnTqr6k/b6MQDfimEsP+1Tzvb6sbfH4aZ3QVf9tu3zhZCq/rQFrxPAX0cuG9h9+ExJRN7BAIt/W1X/gX29bfEF0aoPty2+TFLVnwXwXQB+G8byuVf2E/dT9KH9/isA/Lf3mdWPm54D6P9eAJ9tT0p/COMhl297yzxteoJE5JeKyC/39wB+L4Afwui7L7fLvhzAP3w7HG56l3TVb98G4A/bziGfB+DnaOnBpmdEbX33H8CwR2D04ZfarhOfhfEg6Pe83/xtqmTrgP8GgB9V1b9EP21bfCF01YfbFl8OiciniMgn2ftfAuD3YDyb8V0AvsQu63bo9vklAP6ZvqBTbl89fcknllT1tYh8NYB/AuAG4OtV9YffMlubnqZPBfCt9vzKKwB/R1X/sYh8L4BvFpGvAPAfAfzBt8jjpgWJyN8F8PkAPllEfgLAnwbw57Hut28H8MUYD5z9HwB/5H1neNNEF334+SLyYYzlID8O4I8CgKr+sIh8M4Afwdht5KtU9f42+N5U6LcD+EMAftDWEwPAn8K2xZdEV334ZdsWXwx9GoBvtF2UDgDfrKr/SER+BMA3icifA/D9GIM72OvfEpGPYmym8KVvg+mPl+QFDVA2bdq0adOmTZs2bdr0cdBzWN6zadOmTZs2bdq0adOmTyBt0L9p06ZNmzZt2rRp0wecNujftGnTpk2bNm3atOkDThv0b9q0adOmTZs2bdr0AacN+jdt2rRp06ZNmzZt+oDTBv2bNm3atGnTpk2bNn3AaYP+TZs2bdq0adOmTZs+4PT/AZcligHaD3J+AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": [],
+ "needs_background": "light"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/FoodSeg103/demo/demo.png b/FoodSeg103/demo/demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e82d7a0773cea14b36f0021fea603de0961b5d8
Binary files /dev/null and b/FoodSeg103/demo/demo.png differ
diff --git a/FoodSeg103/demo/image_demo(original).py b/FoodSeg103/demo/image_demo(original).py
new file mode 100644
index 0000000000000000000000000000000000000000..a18ac67a9395d075fbc30ab2308590b66bd7728f
--- /dev/null
+++ b/FoodSeg103/demo/image_demo(original).py
@@ -0,0 +1,32 @@
+from argparse import ArgumentParser
+
+from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
+from mmseg.core.evaluation import get_palette
+
+
+def main():
+ parser = ArgumentParser()
+ parser.add_argument('img', help='Image file')
+ parser.add_argument('config', help='Config file')
+ parser.add_argument('checkpoint', help='Checkpoint file')
+ parser.add_argument(
+ '--device', default='cuda:0', help='Device used for inference')
+ parser.add_argument(
+ '--palette',
+ default='cityscapes',
+ help='Color palette used for segmentation map')
+ args = parser.parse_args()
+
+ # build the model from a config file and a checkpoint file
+ #model = init_segmentor(args.config, args.checkpoint, device=args.device)
+ #update to CPU
+ model = init_segmentor(args.config, args.checkpoint, device='cpu')
+
+ # test a single image
+ result = inference_segmentor(model, args.img)
+ # show the results
+ show_result_pyplot(model, args.img, result, get_palette(args.palette))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/FoodSeg103/demo/image_demo.py b/FoodSeg103/demo/image_demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..529266074659e33816563ac9e26bd9e4660d3d4b
--- /dev/null
+++ b/FoodSeg103/demo/image_demo.py
@@ -0,0 +1,84 @@
+import argparse
+import os.path as osp
+
+import mmcv
+import numpy as np
+import cv2
+from mmseg.apis import inference_segmentor, init_segmentor, show_result_pyplot
+
+
+palette = np.random.randint(0, 255, (104, 3))
+DEFAULT_PALETTE = palette
+
+
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='MMSeg Inference')
+ parser.add_argument('img', help='Image file')
+ parser.add_argument('config', help='Config file')
+ parser.add_argument('checkpoint', help='Checkpoint file')
+ parser.add_argument('--device', default='cpu', help='Device used for inference')
+ args = parser.parse_args()
+ return args
+
+def compute_all_segments_area(image):
+ """
+ Computes the pixel area for each segment in the image.
+ Args:
+ - image: A 2D numpy array representing the segmented image (grayscale).
+
+ Returns:
+ - A dictionary with segment values as keys and their corresponding areas (in pixels) as values.
+ """
+ # Ensure image is grayscale (single channel)
+ assert len(image.shape) == 2, "Image should be grayscale"
+
+ unique_values, counts = np.unique(image, return_counts=True)
+ return dict(zip(unique_values, counts))
+
+def main():
+ args = parse_args()
+
+ # build the model from a config file and a checkpoint file
+ model = init_segmentor(args.config, args.checkpoint, device=args.device)
+
+ # Load class names from the provided file
+ with open('../data/FoodSeg103/category_id.txt', 'r') as f:
+ class_names = [line.strip().split('\t')[1] for line in f.readlines()]
+
+ model.CLASSES = class_names
+
+
+ # test a single image
+ result = inference_segmentor(model, args.img)
+
+ # show the results
+ print("Inside image_demo DEFAULT_PALETTE.shape:", DEFAULT_PALETTE.shape)
+
+
+
+ # Calculate segment areas
+ segment_areas = compute_all_segments_area(result[0])
+
+ # Map segment values to their respective class names
+ segment_classes = {class_names[segment_value]: area for segment_value, area in segment_areas.items()}
+
+ # Print segment areas with their class names
+ for class_name, area in segment_classes.items():
+ print(f"Segment for class '{class_name}': Area = {area} pixels")
+
+ #show_result_pyplot(model, args.img, result, DEFAULT_PALETTE)
+ class_names = model.CLASSES if model.CLASSES is not None else ['class_{}'.format(i) for i in range(104)]
+ output_path = '../output_images/segmented_result.jpg'
+ show_result_pyplot(model, args.img, result, DEFAULT_PALETTE, out_file=output_path, class_names=class_names)
+
+ # Assuming you've already loaded the model and have the segmentation result
+ class_names = model.CLASSES if model.CLASSES is not None else ['class_{}'.format(i) for i in range(104)]
+
+
+
+if __name__ == '__main__':
+ main()
+
+
diff --git a/FoodSeg103/demo/inference_demo.ipynb b/FoodSeg103/demo/inference_demo.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..e47d964e3c41d1db5e348d22d8ec01641c8aa88b
--- /dev/null
+++ b/FoodSeg103/demo/inference_demo.ipynb
@@ -0,0 +1,150 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mkdir: cannot create directory ‘../checkpoints’: File exists\n",
+ "--2020-07-07 08:54:25-- https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth\n",
+ "Resolving open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)... 52.219.58.55\n",
+ "Connecting to open-mmlab.s3.ap-northeast-2.amazonaws.com (open-mmlab.s3.ap-northeast-2.amazonaws.com)|52.219.58.55|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 196205945 (187M) [application/x-www-form-urlencoded]\n",
+ "Saving to: ‘../checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth.1’\n",
+ "\n",
+ "pspnet_r50-d8_512x1 100%[===================>] 187.12M 16.5MB/s in 13s \n",
+ "\n",
+ "2020-07-07 08:54:38 (14.8 MB/s) - ‘../checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth.1’ saved [196205945/196205945]\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "!mkdir ../checkpoints\n",
+ "!wget https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmsegmentation/models/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth -P ../checkpoints"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "pycharm": {
+ "is_executing": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from mmseg.apis import init_segmentor, inference_segmentor, show_result_pyplot\n",
+ "from mmseg.core.evaluation import get_palette"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "pycharm": {
+ "is_executing": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "config_file = '../configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py'\n",
+ "checkpoint_file = '../checkpoints/pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# build the model from a config file and a checkpoint file\n",
+ "model = init_segmentor(config_file, checkpoint_file, device='cuda:0')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# test a single image\n",
+ "img = 'demo.png'\n",
+ "result = inference_segmentor(model, img)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/mnt/v-liubin/code/mmsegmentation/mmseg/models/segmentors/base.py:265: UserWarning: show==False and out_file is not specified, only result image will be returned\n",
+ " warnings.warn('show==False and out_file is not specified, only '\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# show the results\n",
+ "show_result_pyplot(model, img, result, get_palette('cityscapes'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "open-mmlab",
+ "language": "python",
+ "name": "open-mmlab"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.7"
+ },
+ "pycharm": {
+ "stem_cell": {
+ "cell_type": "raw",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": []
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/FoodSeg103/demo/mmcv/.DS_Store b/FoodSeg103/demo/mmcv/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..01f4eb5fbb2f72c9bc20411cbb67a6dfdd62000f
Binary files /dev/null and b/FoodSeg103/demo/mmcv/.DS_Store differ
diff --git a/FoodSeg103/demo/mmcv/.circleci/config.yml b/FoodSeg103/demo/mmcv/.circleci/config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4660422fa105ae4acae54c884fa09079a4a2bffd
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.circleci/config.yml
@@ -0,0 +1,32 @@
+version: 2.1
+
+# this allows you to use CircleCI's dynamic configuration feature
+setup: true
+
+# the path-filtering orb is required to continue a pipeline based on
+# the path of an updated fileset
+orbs:
+ path-filtering: circleci/path-filtering@0.1.2
+
+workflows:
+ # the always-run workflow is always triggered, regardless of the pipeline parameters.
+ always-run:
+ jobs:
+ # the path-filtering/filter job determines which pipeline
+ # parameters to update.
+ - path-filtering/filter:
+ name: check-updated-files
+ # 3-column, whitespace-delimited mapping. One mapping per
+ # line:
+ #
+ mapping: |
+ mmcv/.* lint_only false
+ requirements/.* lint_only false
+ tests/.* lint_only false
+ .circleci/.* lint_only false
+ base-revision: main
+ # this is the path of the configuration we should trigger once
+ # path filtering and pipeline parameter value updates are
+ # complete. In this case, we are using the parent dynamic
+ # configuration itself.
+ config-path: .circleci/test.yml
diff --git a/FoodSeg103/demo/mmcv/.circleci/docker/Dockerfile b/FoodSeg103/demo/mmcv/.circleci/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..db5ab86e3a01ce22ab354620ca76a728793957c4
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.circleci/docker/Dockerfile
@@ -0,0 +1,15 @@
+ARG PYTORCH="1.8.1"
+ARG CUDA="10.2"
+ARG CUDNN="7"
+
+FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
+
+# Set MKL_THREADING_LAYER=GNU to fix issue:
+# https://github.com/pytorch/pytorch/issues/37377
+ENV MKL_THREADING_LAYER GNU
+
+# To fix GPG key error when running apt-get update
+RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
+RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+
+RUN apt-get update && apt-get install -y ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx ffmpeg libturbojpeg git
diff --git a/FoodSeg103/demo/mmcv/.circleci/test.yml b/FoodSeg103/demo/mmcv/.circleci/test.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a5c72b55392131ed0b41c30ddf12c838c10839b0
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.circleci/test.yml
@@ -0,0 +1,292 @@
+version: 2.1
+
+# the default pipeline parameters, which will be updated according to
+# the results of the path-filtering orb
+parameters:
+ lint_only:
+ type: boolean
+ default: true
+
+jobs:
+ lint:
+ docker:
+ - image: cimg/python:3.7.4
+ steps:
+ - checkout
+ - run:
+ name: Install pre-commit hook
+ command: |
+ pip install pre-commit
+ pre-commit install
+ - run:
+ name: Linting
+ command: pre-commit run --all-files
+ build_without_torch:
+ parameters:
+ # The python version must match available image tags in
+ # https://circleci.com/developer/images/image/cimg/python
+ python:
+ type: string
+ default: "3.7.4"
+ docker:
+ - image: cimg/python:<< parameters.python >>
+ resource_class: large
+ steps:
+ - checkout
+ - run:
+ name: Install Libraries
+ command: |
+ sudo apt-get update
+ sudo apt-get install -y ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx libjpeg-dev zlib1g-dev libtinfo-dev libncurses5 ffmpeg libturbojpeg
+ - run:
+ name: Upgrade pip
+ command: |
+ pip install pip --upgrade
+ pip --version
+ - run:
+ name: Install MMEngine from main branch
+ command: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - run:
+ name: Build MMCV from source
+ command: pip install -e . -v
+ environment:
+ MMCV_WITH_OPS: 0
+ - run:
+ name: Install unit tests dependencies
+ command: pip install -r requirements/test.txt
+ - run:
+ name: Run unit tests
+ command: pytest tests/test_image tests/test_transforms tests/test_video tests/test_arraymisc.py tests/test_visualization.py tests/test_utils/test_env.py --ignore=tests/test_image/test_io.py
+ build_without_ops:
+ parameters:
+ # The python version must match available image tags in
+ # https://circleci.com/developer/images/image/cimg/python
+ python:
+ type: string
+ default: "3.7.4"
+ torch:
+ type: string
+ torchvision:
+ type: string
+ docker:
+ - image: cimg/python:<< parameters.python >>
+ resource_class: large
+ steps:
+ - checkout
+ - run:
+ name: Install Libraries
+ command: |
+ sudo apt-get update
+ sudo apt-get install -y ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx libjpeg-dev zlib1g-dev libtinfo-dev libncurses5 ffmpeg libturbojpeg
+ - run:
+ name: Configure Python & pip
+ command: |
+ pip install --upgrade pip
+ pip install wheel
+ - run:
+ name: Install PyTorch
+ command: pip install torch==<< parameters.torch >>+cpu torchvision==<< parameters.torchvision >>+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - run:
+ name: Install MMEngine from main branch
+ command: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - run:
+ name: Create sdist and untar
+ command: |
+ sed -i "s/os.getenv('MMCV_WITH_OPS', '1')/os.getenv('MMCV_WITH_OPS', '0')/g" setup.py
+ python setup.py sdist
+ tar zxvf dist/mmcv* -C /tmp
+ rm -r mmcv
+ - run:
+ name: Build and install from sdist
+ command: |
+ pushd /tmp/mmcv*
+ pip install -e . -v
+ popd
+ - run:
+ name: Install unit tests dependencies
+ command: pip install -r requirements/test.txt
+ - run:
+ name: Run unit tests
+ command: pytest tests --ignore=tests/test_ops
+ build_cpu:
+ parameters:
+ # The python version must match available image tags in
+ # https://circleci.com/developer/images/image/cimg/python
+ python:
+ type: string
+ torch:
+ type: string
+ torchvision:
+ type: string
+ docker:
+ - image: cimg/python:<< parameters.python >>
+ resource_class: large
+ steps:
+ - checkout
+ - run:
+ name: Install Libraries
+ command: |
+ sudo apt-get update
+ sudo apt-get install -y ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx libjpeg-dev zlib1g-dev libtinfo-dev libncurses5 ffmpeg libturbojpeg
+ - run:
+ name: Configure Python & pip
+ command: |
+ pip install --upgrade pip
+ pip install wheel
+ - run:
+ name: Install PyTorch
+ command: pip install torch==<< parameters.torch >>+cpu torchvision==<< parameters.torchvision >>+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - run:
+ name: Install MMEngine from main branch
+ command: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - run:
+ name: Install ninja to speed the compilation
+ command: pip install ninja
+ - run:
+ name: Create sdist and untar
+ command: |
+ python setup.py sdist
+ tar zxvf dist/mmcv* -C /tmp
+ rm -r mmcv
+ - run:
+ name: Build and install from sdist
+ command: |
+ pushd /tmp/mmcv*
+ pip install -e . -v
+ popd
+ - run:
+ name: Install unit tests dependencies
+ command: pip install -r requirements/test.txt
+ - run:
+ name: Run unit tests
+ command: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ build_cuda:
+ parameters:
+ torch:
+ type: string
+ cuda:
+ type: enum
+ enum: ["10.1", "10.2", "11.1", "11.7"]
+ cudnn:
+ type: integer
+ default: 7
+ machine:
+ image: ubuntu-2004-cuda-11.4:202110-01
+ docker_layer_caching: true
+ resource_class: gpu.nvidia.small
+ steps:
+ - checkout
+ - run:
+ name: Build Docker image
+ command: |
+ docker build .circleci/docker -t mmcv:gpu --build-arg PYTORCH=<< parameters.torch >> --build-arg CUDA=<< parameters.cuda >> --build-arg CUDNN=<< parameters.cudnn >>
+ docker run --gpus all -t -d -v /home/circleci/project:/mmcv -w /mmcv --name mmcv mmcv:gpu
+ - run:
+ name: Install MMEngine from main branch
+ command: docker exec mmcv pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - run:
+ name: Install ninja to speed the compilation
+ command: docker exec mmcv pip install ninja
+ - run:
+ name: Build MMCV from source
+ command: docker exec mmcv pip install -e . -v
+ - run:
+ name: Install unit tests dependencies
+ command: docker exec mmcv pip install -r requirements/test.txt
+ - run:
+ name: Run unit tests
+ command: docker exec mmcv python -m pytest tests/
+
+workflows:
+ pr_stage_lint:
+ when: << pipeline.parameters.lint_only >>
+ jobs:
+ - lint:
+ name: lint
+ filters:
+ branches:
+ ignore:
+ - main
+ pr_stage_test:
+ when:
+ not:
+ << pipeline.parameters.lint_only >>
+ jobs:
+ - lint:
+ name: lint
+ filters:
+ branches:
+ ignore:
+ - main
+ - build_without_torch:
+ name: build_without_torch
+ requires:
+ - lint
+ - build_without_ops:
+ name: build_without_ops
+ torch: 1.8.1
+ torchvision: 0.9.1
+ requires:
+ - build_without_torch
+ - build_cpu:
+ name: minimum_version_cpu
+ torch: 1.8.1
+ torchvision: 0.9.1
+ python: 3.7.4
+ requires:
+ - build_without_ops
+ - build_cpu:
+ name: maximum_version_cpu
+ torch: 2.0.0
+ torchvision: 0.15.1
+ python: 3.9.0
+ requires:
+ - minimum_version_cpu
+ - hold_cuda_test:
+ type: approval
+ - build_cuda:
+ name: minimum_version_gpu
+ torch: 1.8.1
+ # Use double quotation mark to explicitly specify its type
+ # as string instead of number
+ cuda: "10.2"
+ requires:
+ - hold_cuda_test
+ - build_cuda:
+ name: maximum_version_gpu
+ torch: 2.0.0
+ # Use double quotation mark to explicitly specify its type
+ # as string instead of number
+ cuda: "11.7"
+ cudnn: 8
+ requires:
+ - hold_cuda_test
+ merge_stage_test:
+ when:
+ not:
+ << pipeline.parameters.lint_only >>
+ jobs:
+ - build_cuda:
+ name: minimum_version_gpu
+ torch: 1.8.1
+ # Use double quotation mark to explicitly specify its type
+ # as string instead of number
+ cuda: "10.2"
+ filters:
+ branches:
+ only:
+ - main
+ - build_cuda:
+ name: maximum_version_gpu
+ torch: 2.0.0
+ # Use double quotation mark to explicitly specify its type
+ # as string instead of number
+ cuda: "11.7"
+ cudnn: 8
+ filters:
+ branches:
+ only:
+ - main
diff --git a/FoodSeg103/demo/mmcv/.dev_scripts/check_installation.py b/FoodSeg103/demo/mmcv/.dev_scripts/check_installation.py
new file mode 100644
index 0000000000000000000000000000000000000000..739c1e11028865b5230438b88b706f80e203576d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.dev_scripts/check_installation.py
@@ -0,0 +1,44 @@
+import numpy as np
+import torch
+
+from mmcv.ops import box_iou_rotated
+from mmcv.utils import collect_env
+
+
+def check_installation():
+ """Check whether mmcv has been installed successfully."""
+ np_boxes1 = np.asarray(
+ [[1.0, 1.0, 3.0, 4.0, 0.5], [2.0, 2.0, 3.0, 4.0, 0.6],
+ [7.0, 7.0, 8.0, 8.0, 0.4]],
+ dtype=np.float32)
+ np_boxes2 = np.asarray(
+ [[0.0, 2.0, 2.0, 5.0, 0.3], [2.0, 1.0, 3.0, 3.0, 0.5],
+ [5.0, 5.0, 6.0, 7.0, 0.4]],
+ dtype=np.float32)
+ boxes1 = torch.from_numpy(np_boxes1)
+ boxes2 = torch.from_numpy(np_boxes2)
+
+ # test mmcv with CPU ops
+ box_iou_rotated(boxes1, boxes2)
+ print('CPU ops were compiled successfully.')
+
+ # test mmcv with both CPU and CUDA ops
+ if torch.cuda.is_available():
+ boxes1 = boxes1.cuda()
+ boxes2 = boxes2.cuda()
+ box_iou_rotated(boxes1, boxes2)
+ print('CUDA ops were compiled successfully.')
+ else:
+ print('No CUDA runtime is found, skipping the checking of CUDA ops.')
+
+
+if __name__ == '__main__':
+ print('Start checking the installation of mmcv ...')
+ check_installation()
+ print('mmcv has been installed successfully.\n')
+
+ env_info_dict = collect_env()
+ env_info = '\n'.join([(f'{k}: {v}') for k, v in env_info_dict.items()])
+ dash_line = '-' * 60 + '\n'
+ print('Environment information:')
+ print(dash_line + env_info + '\n' + dash_line)
diff --git a/FoodSeg103/demo/mmcv/.dockerignore b/FoodSeg103/demo/mmcv/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..8c22f226d3e2d8a625515290691d2cfc6ed87f2e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.dockerignore
@@ -0,0 +1,6 @@
+.git
+.gitignore
+*.egg-info
+.eggs/
+.mypy-cache
+pip-wheel-metadata
diff --git a/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/1-bug-report.yml b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/1-bug-report.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d6d0a081b60f28a964d77ea5fdfbb713b14e9273
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/1-bug-report.yml
@@ -0,0 +1,94 @@
+name: "🐞 Bug report"
+description: "Create a report to help us reproduce and fix the bug"
+labels: bug
+title: "[Bug] "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ ## Note
+ For general usage questions or idea discussions, please post it to our [**Forum**](https://github.com/open-mmlab/mmcv/discussions)
+ Please fill in as **much** of the following form as you're able to. **The clearer the description, the shorter it will take to solve it.**
+
+ - type: checkboxes
+ attributes:
+ label: Prerequisite
+ description: Please check the following items before creating a new issue.
+ options:
+ - label: I have searched [Issues](https://github.com/open-mmlab/mmcv/issues) and [Discussions](https://github.com/open-mmlab/mmcv/discussions) but cannot get the expected help.
+ required: true
+ - label: The bug has not been fixed in the latest version(https://github.com/open-mmlab/mmcv).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Environment
+ description: |
+ Please run `python -c "from mmcv.utils import collect_env; print(collect_env())"` to collect necessary environment information and copy-paste it here.
+ You may add additional information that may be helpful for locating the problem, such as
+ - How you installed PyTorch \[e.g., pip, conda, source\]
+ - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.)
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Reproduces the problem - code sample
+ description: |
+ Please provide a code sample that reproduces the problem you ran into. It can be a Colab link or just a code snippet.
+ placeholder: |
+ ```python
+ # Sample code to reproduce the problem
+ ```
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Reproduces the problem - command or script
+ description: |
+ What command or script did you run?
+ placeholder: |
+ ```shell
+ The command or script you run.
+ ```
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Reproduces the problem - error message
+ description: |
+ Please provide the error message or logs you got, with the full traceback.
+
+ Tip: You can attach images or log files by dragging them into the text area..
+ placeholder: |
+ ```
+ The error message or logs you got, with the full traceback.
+ ```
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Additional information
+ description: |
+ Tell us anything else you think we should know.
+
+ Tip: You can attach images or log files by dragging them into the text area.
+ placeholder: |
+ 1. What's your expected result?
+ 2. What dataset did you use?
+ 3. What do you think might be the reason?
+
+ - type: markdown
+ attributes:
+ value: |
+ ## Acknowledgement
+ Thanks for taking the time to fill out this report.
+
+ If you have already identified the reason, we strongly appreciate you creating a new PR to fix it [**Here**](https://github.com/open-mmlab/mmcv/pulls)!
+ Please refer to [**Contribution Guide**](https://mmcv.readthedocs.io/en/latest/community/contributing.html) for contributing.
+
+ Welcome to join our [**Community (TODO)**](https://mmcv.readthedocs.io/en/latest/contact.html) to discuss together. 👬
diff --git a/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/2-feature_request.yml b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/2-feature_request.yml
new file mode 100644
index 0000000000000000000000000000000000000000..eb122cdb88aba478a14d283c6c9bb0cdb3cf4e7a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/2-feature_request.yml
@@ -0,0 +1,39 @@
+name: 🚀 Feature request
+description: Suggest an idea for this project
+labels: [feature-request]
+title: "[Feature] "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ ## Note
+ For general usage questions or idea discussions, please post it to our [**Forum**](https://github.com/open-mmlab/mmcv/discussions)
+
+ Please fill in as **much** of the following form as you're able to. **The clearer the description, the shorter it will take to solve it.**
+
+ - type: textarea
+ attributes:
+ label: What is the feature?
+ description: Tell us more about the feature and how this feature can help.
+ placeholder: |
+ E.g., It is inconvenient when \[....\].
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Any other context?
+ description: |
+ Have you considered any alternative solutions or features? If so, what are they? Also, feel free to add any other context or screenshots about the feature request here.
+
+ - type: markdown
+ attributes:
+ value: |
+ ## Acknowledgement
+ Thanks for taking the time to fill out this report.
+
+ We strongly appreciate you creating a new PR to implement it [**Here**](https://github.com/open-mmlab/mmcv/pulls)!
+ Please refer to [**Contribution Guide**](https://mmcv.readthedocs.io/en/latest/community/contributing.html) for contributing.
+
+ Welcome to join our [**Community (TODO)**](https://mmcv.readthedocs.io/en/latest/contact.html) to discuss together. 👬
diff --git a/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/3-documentation.yml b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/3-documentation.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e68fd841f1030eebd9ac2e5c709c6ded422e470e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/3-documentation.yml
@@ -0,0 +1,37 @@
+name: 📚 Documentation
+description: Report an issue related to the documentation.
+labels: "docs"
+title: "[Docs] "
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ ## Note
+ For general usage questions or idea discussions, please post it to our [**Forum**](https://github.com/open-mmlab/mmcv/discussions)
+ Please fill in as **much** of the following form as you're able to. **The clearer the description, the shorter it will take to solve it.**
+
+ - type: textarea
+ attributes:
+ label: 📚 The doc issue
+ description: >
+ A clear and concise description the issue.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Suggest a potential alternative/fix
+ description: >
+ Tell us how we could improve the documentation in this regard.
+
+ - type: markdown
+ attributes:
+ value: |
+ ## Acknowledgement
+ Thanks for taking the time to fill out this report.
+
+ If you have already identified the reason, we strongly appreciate you creating a new PR to fix it [**here**](https://github.com/open-mmlab/mmcv/pulls)!
+ Please refer to [**Contribution Guide**](https://mmcv.readthedocs.io/en/latest/community/contributing.html) for contributing.
+
+ Welcome to join our [**Community(TODO)**](https://mmcv.readthedocs.io/en/latest/contact.html) to discuss together. 👬
diff --git a/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/config.yml b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3338ac5a94a872444e152d8ce8064fb8f4dc6a29
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,12 @@
+blank_issues_enabled: false
+
+contact_links:
+ - name: 💬 Forum
+ url: https://github.com/open-mmlab/mmcv/discussions
+ about: Ask general usage questions and discuss with other mmcv community members
+ - name: MMCV Documentation
+ url: https://mmcv.readthedocs.io/en/latest/
+ about: Check if your question is answered in docs
+ - name: 🌐 Explore OpenMMLab
+ url: https://openmmlab.com/
+ about: Get know more about OpenMMLab
diff --git a/FoodSeg103/demo/mmcv/.github/pull_request_template.md b/FoodSeg103/demo/mmcv/.github/pull_request_template.md
new file mode 100644
index 0000000000000000000000000000000000000000..0980b85db1c5fc90b2a8c32aa5fbdf923b25bf32
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/pull_request_template.md
@@ -0,0 +1,33 @@
+Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
+
+## Motivation
+
+Please describe the motivation of this PR and the goal you want to achieve through this PR.
+
+## Modification
+
+Please briefly describe what modification is made in this PR.
+
+## BC-breaking (Optional)
+
+Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
+If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
+
+## Use cases (Optional)
+
+If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
+
+## Checklist
+
+**Before PR**:
+
+- [ ] I have read and followed the workflow indicated in the [CONTRIBUTING.md](https://github.com/open-mmlab/mmcv/blob/master/CONTRIBUTING.md) to create this PR.
+- [ ] Pre-commit or linting tools indicated in [CONTRIBUTING.md](https://github.com/open-mmlab/mmcv/blob/master/CONTRIBUTING.md) are used to fix the potential lint issues.
+- [ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
+- [ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
+- [ ] The documentation has been modified accordingly, including docstring or example tutorials.
+
+**After PR**:
+
+- [ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects, like MMDet or MMCls.
+- [ ] CLA has been signed and all committers have signed the CLA in this PR.
diff --git a/FoodSeg103/demo/mmcv/.github/workflows/build_macos_wheel.yml b/FoodSeg103/demo/mmcv/.github/workflows/build_macos_wheel.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a9410ab78d817421d0aa0e80f3f4697bb46a1c76
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/workflows/build_macos_wheel.yml
@@ -0,0 +1,72 @@
+name: build macos wheel
+
+on: push
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build_macos10_wheel:
+ runs-on: macos-10.15
+ if: contains(github.event.head_commit.message, 'Bump version to')
+ strategy:
+ matrix:
+ torch: [1.8.0, 1.9.0, 1.10.0, 1.11.0, 1.12.0, 1.13.0, 2.0.0]
+ python-version: [3.7, 3.8, 3.9, '3.10', '3.11']
+ include:
+ - torch: 1.8.0
+ torchvision: 0.9.0
+ - torch: 1.9.0
+ torchvision: 0.10.0
+ - torch: 1.10.0
+ torchvision: 0.11.0
+ - torch: 1.11.0
+ torchvision: 0.12.0
+ - torch: 1.12.0
+ torchvision: 0.13.0
+ - torch: 1.13.0
+ torchvision: 0.14.0
+ - torch: 2.0.0
+ torchvision: 0.15.1
+ exclude:
+ - torch: 1.8.0
+ python-version: '3.10'
+ - torch: 1.9.0
+ python-version: '3.10'
+ - torch: 1.10.0
+ python-version: '3.10'
+ - torch: 1.8.0
+ python-version: '3.11'
+ - torch: 1.9.0
+ python-version: '3.11'
+ - torch: 1.10.0
+ python-version: '3.11'
+ - torch: 1.10.0
+ python-version: '3.11'
+ - torch: 1.11.0
+ python-version: '3.11'
+ - torch: 1.12.0
+ python-version: '3.11'
+ - torch: 1.13.0
+ python-version: '3.11'
+ - torch: 2.0.0
+ python-version: 3.7
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install psutil
+ run: pip install psutil
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} --no-cache-dir
+ - name: Build and install
+ run: |
+ pip install wheel
+ python setup.py bdist_wheel
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{matrix.torch}}
+ path: dist/
diff --git a/FoodSeg103/demo/mmcv/.github/workflows/lint.yml b/FoodSeg103/demo/mmcv/.github/workflows/lint.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ac5afd597a9c1696c3f20699edebd30cde43314a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/workflows/lint.yml
@@ -0,0 +1,29 @@
+name: lint
+
+on: [push, pull_request]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ lint:
+ runs-on: ubuntu-22.04
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.7
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.7
+ - name: Install pre-commit hook
+ run: |
+ pip install pre-commit
+ pre-commit install
+ - name: Linting
+ run: pre-commit run --all-files
+ - name: Format c/cuda codes with clang-format
+ uses: DoozyX/clang-format-lint-action@v0.11
+ with:
+ source: mmcv/ops/csrc
+ extensions: h,c,cpp,hpp,cu,cuh
+ style: google
diff --git a/FoodSeg103/demo/mmcv/.github/workflows/merge_stage_test.yml b/FoodSeg103/demo/mmcv/.github/workflows/merge_stage_test.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a2a5dc1345db1e4cb344a18f9b0bf8fa1c96bb89
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/workflows/merge_stage_test.yml
@@ -0,0 +1,375 @@
+name: merge_stage_test
+
+on:
+ push:
+ paths-ignore:
+ - ".github/**.md"
+ - "docker/**"
+ - "docs/**"
+ - 'examples/**'
+ - '.dev_scripts/**'
+ - "README.md"
+ - "README_zh-CN.md"
+ - "CONTRIBUTING.md"
+ - ".pre-commit-config.yaml"
+ - ".pre-commit-config-zh-cn.yaml"
+ branches:
+ - main
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build_without_torch:
+ runs-on: ubuntu-22.04
+ env:
+ MMCV_WITH_OPS: 0
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install system dependencies
+ run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests/test_image tests/test_transforms tests/test_video tests/test_arraymisc.py tests/test_visualization.py tests/test_utils/test_env.py --ignore=tests/test_image/test_io.py
+ build_without_ops:
+ runs-on: ubuntu-22.04
+ env:
+ MMCV_WITH_OPS: 0
+ strategy:
+ matrix:
+ python-version: [3.7]
+ torch: [1.8.1, 1.9.1]
+ include:
+ - torch: 1.8.1
+ torchvision: 0.9.1
+ - torch: 1.9.1
+ torchvision: 0.10.1
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install system dependencies
+ run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests --ignore=tests/test_ops
+ build_cpu_py:
+ runs-on: ubuntu-22.04
+ strategy:
+ matrix:
+ python-version: [3.8, 3.9, '3.10']
+ torch: [1.13.0]
+ include:
+ - torch: 1.13.0
+ torchvision: 0.14.0
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install system dependencies
+ run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ build_cpu_pt:
+ runs-on: ubuntu-22.04
+ strategy:
+ matrix:
+ python-version: [3.7]
+ torch: [1.8.1, 1.9.1, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 2.0.0]
+ include:
+ - torch: 1.8.1
+ torchvision: 0.9.1
+ - torch: 1.9.1
+ torchvision: 0.10.1
+ - torch: 1.10.1
+ torchvision: 0.11.2
+ - torch: 1.11.0
+ torchvision: 0.12.0
+ - torch: 1.12.0
+ torchvision: 0.13.0
+ - torch: 1.13.0
+ torchvision: 0.14.0
+ - torch: 2.0.0
+ torchvision: 0.15.1
+ python-version: 3.8
+ exclude:
+ - torch: 2.0.0
+ python-version: 3.7
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install system dependencies
+ run: sudo apt-get update && sudo apt-get install -y ffmpeg libturbojpeg
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ # Only upload coverage report for python3.7 && pytorch1.8.1 cpu
+ - name: Upload coverage to Codecov
+ if: ${{matrix.torch == '1.8.1' && matrix.python-version == '3.8'}}
+ uses: codecov/codecov-action@v1.0.14
+ with:
+ file: ./coverage.xml
+ flags: unittests
+ env_vars: OS,PYTHON
+ name: codecov-umbrella
+ fail_ci_if_error: false
+ build_cu102:
+ runs-on: ubuntu-22.04
+ container:
+ image: pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel
+ env:
+ FORCE_CUDA: 1
+ MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Fetch GPG keys
+ run: |
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+ - name: Install system dependencies
+ run: apt-get update && apt-get install -y git ffmpeg libturbojpeg
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ build_cu111:
+ runs-on: ubuntu-22.04
+ container:
+ image: pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel
+ env:
+ FORCE_CUDA: 1
+ MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Fetch GPG keys
+ run: |
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+ - name: Install system dependencies
+ run: apt-get update && apt-get install -y git ffmpeg libturbojpeg
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ build_cu116:
+ runs-on: ubuntu-22.04
+ container:
+ image: pytorch/pytorch:1.13.0-cuda11.6-cudnn8-devel
+ env:
+ FORCE_CUDA: 1
+ MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Fetch GPG keys
+ run: |
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+ - name: Install system dependencies
+ run: apt-get update && apt-get install -y git ffmpeg libturbojpeg
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests
+ coverage xml
+ coverage report -m
+ build_windows_without_ops:
+ runs-on: windows-2019
+ env:
+ MMCV_WITH_OPS: 0
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: python -m pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==1.8.1+cpu torchvision==0.9.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests --ignore=tests/test_ops --ignore tests/test_image/test_io.py
+ build_windows:
+ runs-on: windows-2019
+ strategy:
+ matrix:
+ torch: [1.8.1, 2.0.0]
+ include:
+ - torch: 1.8.1
+ torchvision: 0.9.1
+ python-version: 3.7
+ - torch: 2.0.0
+ torchvision: 0.15.1
+ python-version: 3.8
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: python -m pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests/ --ignore tests/test_image/test_io.py
+ build_macos:
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ torch: [1.8.1, 2.0.0]
+ include:
+ - torch: 1.8.1
+ torchvision: 0.9.1
+ python-version: 3.7
+ - torch: 2.0.0
+ torchvision: 0.15.1
+ python-version: 3.8
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install system dependencies
+ run: brew install ffmpeg jpeg-turbo
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==${{ matrix.torch }} torchvision==${{ matrix.torchvision }}
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests/
diff --git a/FoodSeg103/demo/mmcv/.github/workflows/pr_stage_test.yml b/FoodSeg103/demo/mmcv/.github/workflows/pr_stage_test.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d790384f14416e8bb071cd86a2363933e072c880
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/workflows/pr_stage_test.yml
@@ -0,0 +1,196 @@
+name: pr_stage_test
+
+on:
+ pull_request:
+ paths-ignore:
+ - ".github/**.md"
+ - "docker/**"
+ - "docs/**"
+ - 'examples/**'
+ - '.dev_scripts/**'
+ - "README.md"
+ - "README_zh-CN.md"
+ - "CONTRIBUTING.md"
+ - ".pre-commit-config.yaml"
+ - ".pre-commit-config-zh-cn.yaml"
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build_cu102:
+ runs-on: ubuntu-22.04
+ container:
+ image: pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel
+ env:
+ FORCE_CUDA: 1
+ MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Fetch GPG keys
+ run: |
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+ - name: Install system dependencies
+ run: apt-get update && apt-get install -y git ffmpeg libturbojpeg
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v1.0.14
+ with:
+ file: ./coverage.xml
+ flags: unittests
+ env_vars: OS,PYTHON
+ name: codecov-umbrella
+ fail_ci_if_error: false
+ build_cu111:
+ runs-on: ubuntu-22.04
+ container:
+ image: pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel
+ env:
+ FORCE_CUDA: 1
+ MMCV_CUDA_ARGS: -gencode=arch=compute_61,code=sm_61
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Fetch GPG keys
+ run: |
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
+ apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+ - name: Install system dependencies
+ run: apt-get update && apt-get install -y git ffmpeg libturbojpeg
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests and generate coverage report
+ run: |
+ coverage run --branch --source mmcv -m pytest tests/
+ coverage xml
+ coverage report -m
+ build_windows_without_ops:
+ runs-on: windows-2019
+ env:
+ MMCV_WITH_OPS: 0
+ strategy:
+ matrix:
+ python-version: [3.7]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: python -m pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==1.8.1+cpu torchvision==0.9.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests --ignore=tests/test_ops --ignore tests/test_image/test_io.py
+ build_windows:
+ runs-on: windows-2019
+ strategy:
+ matrix:
+ torch: [1.8.1, 2.0.0]
+ include:
+ - torch: 1.8.1
+ torchvision: 0.9.1
+ python-version: 3.7
+ - torch: 2.0.0
+ torchvision: 0.15.1
+ python-version: 3.8
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Upgrade pip and wheel
+ run: python -m pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests/ --ignore tests/test_image/test_io.py
+ build_macos:
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ torch: [1.8.1, 2.0.0]
+ include:
+ - torch: 1.8.1
+ torchvision: 0.9.1
+ python-version: 3.7
+ - torch: 2.0.0
+ torchvision: 0.15.1
+ python-version: 3.8
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install system dependencies
+ run: brew install ffmpeg jpeg-turbo
+ - name: Upgrade pip and wheel
+ run: pip install pip wheel --upgrade
+ - name: Install PyTorch
+ run: pip install torch==${{ matrix.torch }} torchvision==${{ matrix.torchvision }}
+ - name: Install MMEngine from main branch
+ run: pip install git+https://github.com/open-mmlab/mmengine.git@main
+ - name: Install ninja to speed the compilation
+ run: pip install ninja psutil
+ - name: Build MMCV from source
+ run: pip install -e . -v
+ - name: Install unit tests dependencies
+ run: pip install -r requirements/test.txt
+ - name: Run unit tests
+ run: pytest tests/
diff --git a/FoodSeg103/demo/mmcv/.github/workflows/publish-to-pypi.yml b/FoodSeg103/demo/mmcv/.github/workflows/publish-to-pypi.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5ed8e7cd96b2d1ed06d9a1553676024ff60e0e2f
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.github/workflows/publish-to-pypi.yml
@@ -0,0 +1,46 @@
+name: deploy
+
+on: push
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build-n-publish_without_ops:
+ runs-on: ubuntu-22.04
+ if: startsWith(github.event.ref, 'refs/tags')
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.7
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7
+ - name: Upgrade Setuptools
+ run: pip install setuptools wheel --upgrade
+ - name: Build MMCV
+ run: |
+ sed -i "s/os.getenv('MMCV_WITH_OPS', '1')/os.getenv('MMCV_WITH_OPS', '0')/g" setup.py
+ python setup.py sdist bdist_wheel
+ - name: Publish distribution to PyPI
+ run: |
+ pip install twine
+ twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }}
+
+ build-n-publish_with_ops:
+ runs-on: ubuntu-22.04
+ if: startsWith(github.event.ref, 'refs/tags')
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.7
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.7
+ - name: Upgrade Setuptools
+ run: pip install setuptools --upgrade
+ - name: Build MMCV with ops
+ run: python setup.py sdist
+ - name: Publish distribution to PyPI
+ run: |
+ pip install twine
+ twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }}
diff --git a/FoodSeg103/demo/mmcv/.gitignore b/FoodSeg103/demo/mmcv/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..1769eff2de51a7d5b451afd1140850bd58c0f7b8
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.gitignore
@@ -0,0 +1,125 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# PyTorch checkpoint
+*.pth
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+mlu-ops/
+mlu-ops.*
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/en/_build/
+docs/en/api/generated/
+docs/zh_cn/_build/
+docs/zh_cn/api/generated/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+
+# editors and IDEs
+.idea/
+.vscode/
+
+# custom
+.DS_Store
+
+# datasets and logs and checkpoints
+data/
+work_dir/
+
+src/
diff --git a/FoodSeg103/demo/mmcv/.pre-commit-config-zh-cn.yaml b/FoodSeg103/demo/mmcv/.pre-commit-config-zh-cn.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..313c83c84be160867736215ee35232857f2a35d2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.pre-commit-config-zh-cn.yaml
@@ -0,0 +1,72 @@
+exclude: ^tests/data/
+repos:
+ - repo: https://gitee.com/openmmlab/mirrors-flake8
+ rev: 5.0.4
+ hooks:
+ - id: flake8
+ - repo: https://gitee.com/openmmlab/mirrors-isort
+ rev: 5.11.5
+ hooks:
+ - id: isort
+ - repo: https://gitee.com/openmmlab/mirrors-yapf
+ rev: v0.32.0
+ hooks:
+ - id: yapf
+ - repo: https://gitee.com/openmmlab/mirrors-pre-commit-hooks
+ rev: v4.3.0
+ hooks:
+ - id: trailing-whitespace
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: requirements-txt-fixer
+ - id: double-quote-string-fixer
+ - id: check-merge-conflict
+ - id: fix-encoding-pragma
+ args: ["--remove"]
+ - id: mixed-line-ending
+ args: ["--fix=lf"]
+ - repo: https://gitee.com/openmmlab/mirrors-codespell
+ rev: v2.2.1
+ hooks:
+ - id: codespell
+ - repo: https://gitee.com/openmmlab/mirrors-mdformat
+ rev: 0.7.9
+ hooks:
+ - id: mdformat
+ args: ["--number"]
+ additional_dependencies:
+ - mdformat-openmmlab
+ - mdformat_frontmatter
+ - linkify-it-py
+ - repo: https://gitee.com/openmmlab/mirrors-docformatter
+ rev: v1.3.1
+ hooks:
+ - id: docformatter
+ args: ["--in-place", "--wrap-descriptions", "79"]
+ - repo: https://github.com/asottile/pyupgrade
+ rev: v3.0.0
+ hooks:
+ - id: pyupgrade
+ args: ["--py36-plus"]
+ - repo: https://gitee.com/openmmlab/pre-commit-hooks
+ rev: v0.2.0 # Use the ref you want to point at
+ hooks:
+ - id: check-copyright
+ args: ["mmcv", "tests", "--excludes", "mmcv/ops"]
+ - repo: https://gitee.com/openmmlab/mirrors-mypy
+ rev: v0.812
+ hooks:
+ - id: mypy
+ exclude: |-
+ (?x)(
+ ^test
+ | ^docs
+ )
+ # - repo: local
+ # hooks:
+ # - id: clang-format
+ # name: clang-format
+ # description: Format files with ClangFormat
+ # entry: clang-format -style=google -i
+ # language: system
+ # files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|cuh|proto)$
diff --git a/FoodSeg103/demo/mmcv/.pre-commit-config.yaml b/FoodSeg103/demo/mmcv/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..76ded556f9fa40d49f2a773162a5483c091e1c9e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.pre-commit-config.yaml
@@ -0,0 +1,72 @@
+exclude: ^tests/data/
+repos:
+ - repo: https://github.com/PyCQA/flake8
+ rev: 5.0.4
+ hooks:
+ - id: flake8
+ - repo: https://github.com/PyCQA/isort
+ rev: 5.11.5
+ hooks:
+ - id: isort
+ - repo: https://github.com/pre-commit/mirrors-yapf
+ rev: v0.32.0
+ hooks:
+ - id: yapf
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v4.3.0
+ hooks:
+ - id: trailing-whitespace
+ - id: check-yaml
+ - id: end-of-file-fixer
+ - id: requirements-txt-fixer
+ - id: double-quote-string-fixer
+ - id: check-merge-conflict
+ - id: fix-encoding-pragma
+ args: ["--remove"]
+ - id: mixed-line-ending
+ args: ["--fix=lf"]
+ - repo: https://github.com/codespell-project/codespell
+ rev: v2.2.1
+ hooks:
+ - id: codespell
+ - repo: https://github.com/executablebooks/mdformat
+ rev: 0.7.9
+ hooks:
+ - id: mdformat
+ args: ["--number"]
+ additional_dependencies:
+ - mdformat-openmmlab
+ - mdformat_frontmatter
+ - linkify-it-py
+ - repo: https://github.com/myint/docformatter
+ rev: v1.3.1
+ hooks:
+ - id: docformatter
+ args: ["--in-place", "--wrap-descriptions", "79"]
+ - repo: https://github.com/asottile/pyupgrade
+ rev: v3.0.0
+ hooks:
+ - id: pyupgrade
+ args: ["--py36-plus"]
+ - repo: https://github.com/open-mmlab/pre-commit-hooks
+ rev: v0.2.0 # Use the ref you want to point at
+ hooks:
+ - id: check-copyright
+ args: ["mmcv", "tests", "--excludes", "mmcv/ops"]
+ - repo: https://github.com/pre-commit/mirrors-mypy
+ rev: v0.812
+ hooks:
+ - id: mypy
+ exclude: |-
+ (?x)(
+ ^test
+ | ^docs
+ )
+ # - repo: local
+ # hooks:
+ # - id: clang-format
+ # name: clang-format
+ # description: Format files with ClangFormat
+ # entry: clang-format -style=google -i
+ # language: system
+ # files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|cuh|proto)$
diff --git a/FoodSeg103/demo/mmcv/.readthedocs.yml b/FoodSeg103/demo/mmcv/.readthedocs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7d5f1c2060a64e5cf9c2bec433cd24532a283164
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/.readthedocs.yml
@@ -0,0 +1,9 @@
+version: 2
+
+formats: all
+
+python:
+ version: 3.7
+ install:
+ - requirements: requirements/runtime.txt
+ - requirements: requirements/docs.txt
diff --git a/FoodSeg103/demo/mmcv/CITATION.cff b/FoodSeg103/demo/mmcv/CITATION.cff
new file mode 100644
index 0000000000000000000000000000000000000000..786117aac3e063efc18ad1b55e163d570a09e379
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/CITATION.cff
@@ -0,0 +1,8 @@
+cff-version: 1.2.0
+message: "If you use this software, please cite it as below."
+authors:
+ - name: "MMCV Contributors"
+title: "OpenMMLab Computer Vision Foundation"
+date-released: 2018-08-22
+url: "https://github.com/open-mmlab/mmcv"
+license: Apache-2.0
diff --git a/FoodSeg103/demo/mmcv/CONTRIBUTING.md b/FoodSeg103/demo/mmcv/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..a60cd994305bc8b548c71951c9b57d544c1ec21d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/CONTRIBUTING.md
@@ -0,0 +1,258 @@
+## Contributing to OpenMMLab
+
+Welcome to the MMCV community, we are committed to building a cutting-edge computer vision foundational library and all kinds of contributions are welcomed, including but not limited to
+
+**Fix bug**
+
+You can directly post a Pull Request to fix typo in code or documents
+
+The steps to fix the bug of code implementation are as follows.
+
+1. If the modification involve significant changes, you should create an issue first and describe the error information and how to trigger the bug. Other developers will discuss with you and propose an proper solution.
+
+2. Posting a pull request after fixing the bug and adding corresponding unit test.
+
+**New Feature or Enhancement**
+
+1. If the modification involve significant changes, you should create an issue to discuss with our developers to propose an proper design.
+2. Post a Pull Request after implementing the new feature or enhancement and add corresponding unit test.
+
+**Document**
+
+You can directly post a pull request to fix documents. If you want to add a document, you should first create an issue to check if it is reasonable.
+
+### Pull Request Workflow
+
+If you're not familiar with Pull Request, don't worry! The following guidance will tell you how to create a Pull Request step by step. If you want to dive into the develop mode of Pull Request, you can refer to the [official documents](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)
+
+#### 1. Fork and clone
+
+If you are posting a pull request for the first time, you should fork the OpenMMLab repositories by clicking the **Fork** button in the top right corner of the GitHub page, and the forked repositories will appear under your GitHub profile.
+
+
+
+Then, you can clone the repositories to local:
+
+```shell
+git clone git@github.com:{username}/mmcv.git
+```
+
+After that, you should ddd official repository as the upstream repository
+
+```bash
+git remote add upstream git@github.com:open-mmlab/mmcv
+```
+
+Check whether remote repository has been added successfully by `git remote -v`
+
+```bash
+origin git@github.com:{username}/mmcv.git (fetch)
+origin git@github.com:{username}/mmcv.git (push)
+upstream git@github.com:open-mmlab/mmcv (fetch)
+upstream git@github.com:open-mmlab/mmcv (push)
+```
+
+> Here's a brief introduction to origin and upstream. When we use "git clone", we create an "origin" remote by default, which points to the repository cloned from. As for "upstream", we add it ourselves to point to the target repository. Of course, if you don't like the name "upstream", you could name it as you wish. Usually, we'll push the code to "origin". If the pushed code conflicts with the latest code in official("upstream"), we should pull the latest code from upstream to resolve the conflicts, and then push to "origin" again. The posted Pull Request will be updated automatically.
+
+#### 2. Configure pre-commit
+
+You should configure [pre-commit](https://pre-commit.com/#intro) in the local development environment to make sure the code style matches that of OpenMMLab. **Note**: The following code should be executed under the MMCV directory.
+
+```shell
+pip install -U pre-commit
+pre-commit install
+```
+
+Check that pre-commit is configured successfully, and install the hooks defined in `.pre-commit-config.yaml`.
+
+```shell
+pre-commit run --all-files
+```
+
+
+
+
+
+If the installation process is interrupted, you can repeatedly run `pre-commit run ... ` to continue the installation.
+
+If the code does not conform to the code style specification, pre-commit will raise a warning and fixes some of the errors automatically.
+
+
+
+If we want to commit our code bypassing the pre-commit hook, we can use the `--no-verify` option(**only for temporarily commit**).
+
+```shell
+git commit -m "xxx" --no-verify
+```
+
+#### 3. Create a development branch
+
+After configuring the pre-commit, we should create a branch based on the master branch to develop the new feature or fix the bug. The proposed branch name is `username/pr_name`
+
+```shell
+git checkout -b yhc/refactor_contributing_doc
+```
+
+In subsequent development, if the master branch of the local repository is behind the master branch of "upstream", we need to pull the upstream for synchronization, and then execute the above command:
+
+```shell
+git pull upstream master
+```
+
+#### 4. Commit the code and pass the unit test
+
+- MMCV introduces mypy to do static type checking to increase the robustness of the code. Therefore, we need to add Type Hints to our code and pass the mypy check. If you are not familiar with Type Hints, you can refer to [this tutorial](https://docs.python.org/3/library/typing.html).
+
+- The committed code should pass through the unit test
+
+ ```shell
+ # Pass all unit tests
+ pytest tests
+
+ # Pass the unit test of runner
+ pytest tests/test_runner/test_runner.py
+ ```
+
+ If the unit test fails for lack of dependencies, you can install the dependencies referring to the [guidance](#unit-test)
+
+- If the documents are modified/added, we should check the rendering result referring to [guidance](#document-rendering)
+
+#### 5. Push the code to remote
+
+We could push the local commits to remote after passing through the check of unit test and pre-commit. You can associate the local branch with remote branch by adding `-u` option.
+
+```shell
+git push -u origin {branch_name}
+```
+
+This will allow you to use the `git push` command to push code directly next time, without having to specify a branch or the remote repository.
+
+#### 6. Create a Pull Request
+
+(1) Create a pull request in GitHub's Pull request interface
+
+
+
+(2) Modify the PR description according to the guidelines so that other developers can better understand your changes
+
+
+
+Find more details about Pull Request description in [pull request guidelines](#pr-specs).
+
+**note**
+
+(a) The Pull Request description should contain the reason for the change, the content of the change, and the impact of the change, and be associated with the relevant Issue (see [documentation](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
+
+(b) If it is your first contribution, please sign the CLA
+
+
+
+(c) Check whether the Pull Request pass through the CI
+
+
+
+MMCV will run unit test for the posted Pull Request on different platforms (Linux, Window, Mac), based on different versions of Python, PyTorch, CUDA to make sure the code is correct. We can see the specific test information by clicking `Details` in the above image so that we can modify the code.
+
+(3) If the Pull Request passes the CI, then you can wait for the review from other developers. You'll modify the code based on the reviewer's comments, and repeat the steps [4](#4-commit-the-code-and-pass-the-unit-test)-[5](#5-push-the-code-to-remote) until all reviewers approve it. Then, we will merge it ASAP.
+
+
+
+#### 7. Resolve conflicts
+
+If your local branch conflicts with the latest master branch of "upstream", you'll need to resolove them. There are two ways to do this:
+
+```shell
+git fetch --all --prune
+git rebase upstream/master
+```
+
+or
+
+```shell
+git fetch --all --prune
+git merge upstream/master
+```
+
+If you are very good at handling conflicts, then you can use rebase to resolve conflicts, as this will keep your commit logs tidy. If you are not familiar with `rebase`, then you can use `merge` to resolve conflicts.
+
+### Guidance
+
+#### Unit test
+
+If you cannot run the unit test of some modules for lacking of some dependencies, such as [video](https://github.com/open-mmlab/mmcv/tree/master/mmcv/video) module, you can try to install the following dependencies:
+
+```shell
+# Linux
+sudo apt-get update -y
+sudo apt-get install -y libturbojpeg
+sudo apt-get install -y ffmpeg
+
+# Windows
+conda install ffmpeg
+```
+
+We should also make sure the committed code will not decrease the coverage of unit test, we could run the following command to check the coverage of unit test:
+
+```shell
+python -m coverage run -m pytest /path/to/test_file
+python -m coverage html
+# check file in htmlcov/index.html
+```
+
+#### Document rendering
+
+If the documents are modified/added, we should check the rendering result. We could install the dependencies and run the following command to render the documents and check the results:
+
+```shell
+pip install -r requirements/docs.txt
+cd docs/zh_cn/
+# or docs/en
+make html
+# check file in ./docs/zh_cn/_build/html/index.html
+```
+
+### Code style
+
+#### Python
+
+We adopt [PEP8](https://www.python.org/dev/peps/pep-0008/) as the preferred code style.
+
+We use the following tools for linting and formatting:
+
+- [flake8](https://github.com/PyCQA/flake8): A wrapper around some linter tools.
+- [isort](https://github.com/timothycrosley/isort): A Python utility to sort imports.
+- [yapf](https://github.com/google/yapf): A formatter for Python files.
+- [codespell](https://github.com/codespell-project/codespell): A Python utility to fix common misspellings in text files.
+- [mdformat](https://github.com/executablebooks/mdformat): Mdformat is an opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files.
+- [docformatter](https://github.com/myint/docformatter): A formatter to format docstring.
+
+Style configurations of yapf and isort can be found in [setup.cfg](./setup.cfg).
+
+We use [pre-commit hook](https://pre-commit.com/) that checks and formats for `flake8`, `yapf`, `isort`, `trailing whitespaces`, `markdown files`,
+fixes `end-of-files`, `double-quoted-strings`, `python-encoding-pragma`, `mixed-line-ending`, sorts `requirments.txt` automatically on every commit.
+The config for a pre-commit hook is stored in [.pre-commit-config](./.pre-commit-config.yaml).
+
+#### C++ and CUDA
+
+We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
+
+### PR Specs
+
+1. Use [pre-commit](https://pre-commit.com) hook to avoid issues of code style
+
+2. One short-time branch should be matched with only one PR
+
+3. Accomplish a detailed change in one PR. Avoid large PR
+
+ - Bad: Support Faster R-CNN
+ - Acceptable: Add a box head to Faster R-CNN
+ - Good: Add a parameter to box head to support custom conv-layer number
+
+4. Provide clear and significant commit message
+
+5. Provide clear and meaningful PR description
+
+ - Task name should be clarified in title. The general format is: \[Prefix\] Short description of the PR (Suffix)
+ - Prefix: add new feature \[Feature\], fix bug \[Fix\], related to documents \[Docs\], in developing \[WIP\] (which will not be reviewed temporarily)
+ - Introduce main changes, results and influences on other modules in short description
+ - Associate related issues and pull requests with a milestone
diff --git a/FoodSeg103/demo/mmcv/CONTRIBUTING_zh-CN.md b/FoodSeg103/demo/mmcv/CONTRIBUTING_zh-CN.md
new file mode 100644
index 0000000000000000000000000000000000000000..00622031dd567957829f38d0425d3d23741c8f2f
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/CONTRIBUTING_zh-CN.md
@@ -0,0 +1,274 @@
+## 贡献代码
+
+欢迎加入 MMCV 社区,我们致力于打造最前沿的计算机视觉基础库,我们欢迎任何类型的贡献,包括但不限于
+
+**修复错误**
+
+修复代码实现错误的步骤如下:
+
+1. 如果提交的代码改动较大,建议先提交 issue,并正确描述 issue 的现象、原因和复现方式,讨论后确认修复方案。
+2. 修复错误并补充相应的单元测试,提交拉取请求。
+
+**新增功能或组件**
+
+1. 如果新功能或模块涉及较大的代码改动,建议先提交 issue,确认功能的必要性。
+2. 实现新增功能并添单元测试,提交拉取请求。
+
+**文档补充**
+
+修复文档可以直接提交拉取请求
+
+添加文档或将文档翻译成其他语言步骤如下
+
+1. 提交 issue,确认添加文档的必要性。
+2. 添加文档,提交拉取请求。
+
+### 拉取请求工作流
+
+如果你对拉取请求不了解,没关系,接下来的内容将会从零开始,一步一步地指引你如何创建一个拉取请求。如果你想深入了解拉取请求的开发模式,可以参考 github [官方文档](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)
+
+#### 1. 复刻仓库
+
+当你第一次提交拉取请求时,先复刻 OpenMMLab 原代码库,点击 GitHub 页面右上角的 **Fork** 按钮,复刻后的代码库将会出现在你的 GitHub 个人主页下。
+
+
+
+将代码克隆到本地
+
+```shell
+git clone git@github.com:{username}/mmcv.git
+```
+
+添加原代码库为上游代码库
+
+```bash
+git remote add upstream git@github.com:open-mmlab/mmcv
+```
+
+检查 remote 是否添加成功,在终端输入 `git remote -v`
+
+```bash
+origin git@github.com:{username}/mmcv.git (fetch)
+origin git@github.com:{username}/mmcv.git (push)
+upstream git@github.com:open-mmlab/mmcv (fetch)
+upstream git@github.com:open-mmlab/mmcv (push)
+```
+
+> 这里对 origin 和 upstream 进行一个简单的介绍,当我们使用 git clone 来克隆代码时,会默认创建一个 origin 的 remote,它指向我们克隆的代码库地址,而 upstream 则是我们自己添加的,用来指向原始代码库地址。当然如果你不喜欢他叫 upstream,也可以自己修改,比如叫 open-mmlab。我们通常向 origin 提交代码(即 fork 下来的远程仓库),然后向 upstream 提交一个 pull request。如果提交的代码和最新的代码发生冲突,再从 upstream 拉取最新的代码,和本地分支解决冲突,再提交到 origin。
+
+#### 2. 配置 pre-commit
+
+在本地开发环境中,我们使用 [pre-commit](https://pre-commit.com/#intro) 来检查代码风格,以确保代码风格的统一。在提交代码,需要先安装 pre-commit(需要在 MMCV 目录下执行):
+
+```shell
+pip install -U pre-commit
+pre-commit install
+```
+
+检查 pre-commit 是否配置成功,并安装 `.pre-commit-config.yaml` 中的钩子:
+
+```shell
+pre-commit run --all-files
+```
+
+
+
+
+
+> 如果你是中国用户,由于网络原因,可能会出现安装失败的情况,这时可以使用国内源
+
+> pre-commit install -c .pre-commit-config-zh-cn.yaml
+
+> pre-commit run --all-files -c .pre-commit-config-zh-cn.yaml
+
+如果安装过程被中断,可以重复执行 `pre-commit run ...` 继续安装。
+
+如果提交的代码不符合代码风格规范,pre-commit 会发出警告,并自动修复部分错误。
+
+
+
+如果我们想临时绕开 pre-commit 的检查提交一次代码,可以在 `git commit` 时加上 `--no-verify`(需要保证最后推送至远程仓库的代码能够通过 pre-commit 检查)。
+
+```shell
+git commit -m "xxx" --no-verify
+```
+
+#### 3. 创建开发分支
+
+安装完 pre-commit 之后,我们需要基于 master 创建开发分支,建议的分支命名规则为 `username/pr_name`。
+
+```shell
+git checkout -b yhc/refactor_contributing_doc
+```
+
+在后续的开发中,如果本地仓库的 master 分支落后于 upstream 的 master 分支,我们需要先拉取 upstream 的代码进行同步,再执行上面的命令
+
+```shell
+git pull upstream master
+```
+
+#### 4. 提交代码并在本地通过单元测试
+
+- MMCV 引入了 mypy 来做静态类型检查,以增加代码的鲁棒性。因此我们在提交代码时,需要补充 Type Hints。具体规则可以参考[教程](https://zhuanlan.zhihu.com/p/519335398)。
+
+- 提交的代码同样需要通过单元测试
+
+ ```shell
+ # 通过全量单元测试
+ pytest tests
+
+ # 我们需要保证提交的代码能够通过修改模块的单元测试,以 runner 为例
+ pytest tests/test_runner/test_runner.py
+ ```
+
+ 如果你由于缺少依赖无法运行修改模块的单元测试,可以参考[指引-单元测试](#单元测试)
+
+- 如果修改/添加了文档,参考[指引](#文档渲染)确认文档渲染正常。
+
+#### 5. 推送代码到远程
+
+代码通过单元测试和 pre-commit 检查后,将代码推送到远程仓库,如果是第一次推送,可以在 `git push` 后加上 `-u` 参数以关联远程分支
+
+```shell
+git push -u origin {branch_name}
+```
+
+这样下次就可以直接使用 `git push` 命令推送代码了,而无需指定分支和远程仓库。
+
+#### 6. 提交拉取请求(PR)
+
+(1) 在 GitHub 的 Pull request 界面创建拉取请求
+
+
+(2) 根据指引修改 PR 描述,以便于其他开发者更好地理解你的修改
+
+
+
+描述规范详见[拉取请求规范](#拉取请求规范)
+
+
+
+**注意事项**
+
+(a) PR 描述应该包含修改理由、修改内容以及修改后带来的影响,并关联相关 Issue(具体方式见[文档](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue))
+
+(b) 如果是第一次为 OpenMMLab 做贡献,需要签署 CLA
+
+
+
+(c) 检查提交的 PR 是否通过 CI(集成测试)
+
+
+
+MMCV 会在不同的平台(Linux、Window、Mac),基于不同版本的 Python、PyTorch、CUDA 对提交的代码进行单元测试,以保证代码的正确性,如果有任何一个没有通过,我们可点击上图中的 `Details` 来查看具体的测试信息,以便于我们修改代码。
+
+(3) 如果 PR 通过了 CI,那么就可以等待其他开发者的 review,并根据 reviewer 的意见,修改代码,并重复 [4](#4-提交代码并本地通过单元测试)-[5](#5-推送代码到远程) 步骤,直到 reviewer 同意合入 PR。
+
+
+
+所有 reviewer 同意合入 PR 后,我们会尽快将 PR 合并到主分支。
+
+#### 7. 解决冲突
+
+随着时间的推移,我们的代码库会不断更新,这时候,如果你的 PR 与主分支存在冲突,你需要解决冲突,解决冲突的方式有两种:
+
+```shell
+git fetch --all --prune
+git rebase upstream/master
+```
+
+或者
+
+```shell
+git fetch --all --prune
+git merge upstream/master
+```
+
+如果你非常善于处理冲突,那么可以使用 rebase 的方式来解决冲突,因为这能够保证你的 commit log 的整洁。如果你不太熟悉 `rebase` 的使用,那么可以使用 `merge` 的方式来解决冲突。
+
+### 指引
+
+#### 单元测试
+
+如果你无法正常执行部分模块的单元测试,例如 [video](https://github.com/open-mmlab/mmcv/tree/master/mmcv/video) 模块,可能是你的当前环境没有安装以下依赖
+
+```shell
+# Linux
+sudo apt-get update -y
+sudo apt-get install -y libturbojpeg
+sudo apt-get install -y ffmpeg
+
+# Windows
+conda install ffmpeg
+```
+
+在提交修复代码错误或新增特性的拉取请求时,我们应该尽可能的让单元测试覆盖所有提交的代码,计算单元测试覆盖率的方法如下
+
+```shell
+python -m coverage run -m pytest /path/to/test_file
+python -m coverage html
+# check file in htmlcov/index.html
+```
+
+#### 文档渲染
+
+在提交修复代码错误或新增特性的拉取请求时,可能会需要修改/新增模块的 docstring。我们需要确认渲染后的文档样式是正确的。
+本地生成渲染后的文档的方法如下
+
+```shell
+pip install -r requirements/docs.txt
+cd docs/zh_cn/
+# or docs/en
+make html
+# check file in ./docs/zh_cn/_build/html/index.html
+```
+
+### 代码风格
+
+#### Python
+
+[PEP8](https://www.python.org/dev/peps/pep-0008/) 作为 OpenMMLab 算法库首选的代码规范,我们使用以下工具检查和格式化代码
+
+- [flake8](https://github.com/PyCQA/flake8): Python 官方发布的代码规范检查工具,是多个检查工具的封装
+- [isort](https://github.com/timothycrosley/isort): 自动调整模块导入顺序的工具
+- [yapf](https://github.com/google/yapf): Google 发布的代码规范检查工具
+- [codespell](https://github.com/codespell-project/codespell): 检查单词拼写是否有误
+- [mdformat](https://github.com/executablebooks/mdformat): 检查 markdown 文件的工具
+- [docformatter](https://github.com/myint/docformatter): 格式化 docstring 的工具
+
+yapf 和 isort 的配置可以在 [setup.cfg](./setup.cfg) 找到
+
+通过配置 [pre-commit hook](https://pre-commit.com/) ,我们可以在提交代码时自动检查和格式化 `flake8`、`yapf`、`isort`、`trailing whitespaces`、`markdown files`,
+修复 `end-of-files`、`double-quoted-strings`、`python-encoding-pragma`、`mixed-line-ending`,调整 `requirments.txt` 的包顺序。
+pre-commit 钩子的配置可以在 [.pre-commit-config](./.pre-commit-config.yaml) 找到。
+
+pre-commit 具体的安装使用方式见[拉取请求](#2-配置-pre-commit)。
+
+更具体的规范请参考 [OpenMMLab 代码规范](code_style.md)。
+
+#### C++ and CUDA
+
+C++ 和 CUDA 的代码规范遵从 [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
+
+### 拉取请求规范
+
+1. 使用 [pre-commit hook](https://pre-commit.com),尽量减少代码风格相关问题
+
+2. 一个`拉取请求`对应一个短期分支
+
+3. 粒度要细,一个`拉取请求`只做一件事情,避免超大的`拉取请求`
+
+ - Bad:实现 Faster R-CNN
+ - Acceptable:给 Faster R-CNN 添加一个 box head
+ - Good:给 box head 增加一个参数来支持自定义的 conv 层数
+
+4. 每次 Commit 时需要提供清晰且有意义 commit 信息
+
+5. 提供清晰且有意义的`拉取请求`描述
+
+ - 标题写明白任务名称,一般格式:\[Prefix\] Short description of the pull request (Suffix)
+ - prefix: 新增功能 \[Feature\], 修 bug \[Fix\], 文档相关 \[Docs\], 开发中 \[WIP\] (暂时不会被review)
+ - 描述里介绍`拉取请求`的主要修改内容,结果,以及对其他部分的影响, 参考`拉取请求`模板
+ - 关联相关的`议题` (issue) 和其他`拉取请求`
+
+6. 如果引入了其他三方库,或借鉴了三方库的代码,请确认他们的许可证和 mmcv 兼容,并在借鉴的代码上补充 `This code is inspired from http://`
diff --git a/FoodSeg103/demo/mmcv/LICENSE b/FoodSeg103/demo/mmcv/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..f02314255d824c0816b0bf1648aac8ab78976199
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/LICENSE
@@ -0,0 +1,203 @@
+Copyright (c) OpenMMLab. All rights reserved
+
+ 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 2018-2020 Open-MMLab. All rights reserved.
+
+ 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.
diff --git a/FoodSeg103/demo/mmcv/LICENSES.md b/FoodSeg103/demo/mmcv/LICENSES.md
new file mode 100644
index 0000000000000000000000000000000000000000..3cdeddf6ff1d09ed8e2d9042f2d930e20599a0b1
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/LICENSES.md
@@ -0,0 +1,11 @@
+# Licenses for special operations
+
+In this file, we list the operations with other licenses instead of Apache 2.0. Users should be careful about adopting these operations in any commercial matters.
+
+| Operation | Files | License |
+| :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------: |
+| upfirdn2d | [mmcv/ops/csrc/pytorch/cuda/upfirdn2d_kernel.cu](https://github.com/open-mmlab/mmcv/tree/2.x/mmcv/ops/csrc/pytorch/cuda/upfirdn2d_kernel.cu) | NVIDIA License |
+| fused_leaky_relu | [mmcv/ops/csrc/pytorch/cuda/fused_bias_leakyrelu_cuda.cu](https://github.com/open-mmlab/mmcv/tree/2.x/mmcv/ops/csrc/pytorch/cuda/fused_bias_leakyrelu_cuda.cu) | NVIDIA License |
+| bias_act | [mmcv/ops/csrc/pytorch/cuda/bias_act_cuda.cu](https://github.com/open-mmlab/mmcv/tree/2.x/mmcv/ops/csrc/pytorch/cuda/bias_act_cuda.cu) | NVIDIA License |
+| filtered_lrelu | [mmcv/ops/csrc/pytorch/cuda/filtered_lrelu.cu](https://github.com/open-mmlab/mmcv/tree/2.x/mmcv/ops/csrc/pytorch/cuda/filtered_lrelu.cu) | NVIDIA License |
+| conv2d_gradfix | [mmcv/ops/conv2d_gradfix.py](https://github.com/open-mmlab/mmcv/tree/2.x/mmcv/ops/conv2d_gradfix.py) | NVIDIA License |
diff --git a/FoodSeg103/demo/mmcv/MANIFEST.in b/FoodSeg103/demo/mmcv/MANIFEST.in
new file mode 100644
index 0000000000000000000000000000000000000000..622635caa1ec01f78d95c684b87658df87c63b38
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/MANIFEST.in
@@ -0,0 +1,6 @@
+include requirements/runtime.txt
+include mmcv/ops/csrc/common/cuda/*.cuh mmcv/ops/csrc/common/cuda/*.hpp mmcv/ops/csrc/common/*.hpp
+include mmcv/ops/csrc/pytorch/*.cpp mmcv/ops/csrc/pytorch/cuda/*.cu mmcv/ops/csrc/pytorch/cuda/*.cpp mmcv/ops/csrc/pytorch/cpu/*.cpp
+include mmcv/ops/csrc/parrots/*.h mmcv/ops/csrc/parrots/*.cpp
+include mmcv/ops/csrc/pytorch/mps/*.mm mmcv/ops/csrc/common/mps/*.h mmcv/ops/csrc/common/mps/*.mm
+recursive-include mmcv/ops/csrc/ *.h *.hpp *.cpp *.cuh *.cu *.mm
diff --git a/FoodSeg103/demo/mmcv/README.md b/FoodSeg103/demo/mmcv/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..f0ca668b1220e5124bb9c8aac63a095e62009a64
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/README.md
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+[![platform](https://img.shields.io/badge/platform-Linux%7CWindows%7CmacOS-blue)](https://mmcv.readthedocs.io/en/latest/get_started/installation.html)
+[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mmcv)](https://pypi.org/project/mmcv/)
+[![pytorch](https://img.shields.io/badge/pytorch-1.8~2.0-orange)](https://pytorch.org/get-started/previous-versions/)
+[![cuda](https://img.shields.io/badge/cuda-10.1~11.8-green)](https://developer.nvidia.com/cuda-downloads)
+[![PyPI](https://img.shields.io/pypi/v/mmcv)](https://pypi.org/project/mmcv)
+[![badge](https://github.com/open-mmlab/mmcv/workflows/build/badge.svg)](https://github.com/open-mmlab/mmcv/actions)
+[![codecov](https://codecov.io/gh/open-mmlab/mmcv/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmcv)
+[![license](https://img.shields.io/github/license/open-mmlab/mmcv.svg)](https://github.com/open-mmlab/mmcv/blob/master/LICENSE)
+
+[📘Documentation](https://mmcv.readthedocs.io/en/latest/) |
+[🛠️Installation](https://mmcv.readthedocs.io/en/latest/get_started/installation.html) |
+[🤔Reporting Issues](https://github.com/open-mmlab/mmcv/issues/new/choose)
+
+
+
+
+
+English | [简体中文](README_zh-CN.md)
+
+
+
+## Highlights
+
+The OpenMMLab team released a new generation of training engine [MMEngine](https://github.com/open-mmlab/mmengine) at the World Artificial Intelligence Conference on September 1, 2022. It is a foundational library for training deep learning models. Compared with MMCV, it provides a universal and powerful runner, an open architecture with a more unified interface, and a more customizable training process.
+
+MMCV v2.0.0 official version was released on April 6, 2023. In version 2.x, it removed components related to the training process and added a data transformation module. Also, starting from 2.x, it renamed the package names **mmcv** to **mmcv-lite** and **mmcv-full** to **mmcv**. For details, see [Compatibility Documentation](docs/en/compatibility.md).
+
+MMCV will maintain both [1.x](https://github.com/open-mmlab/mmcv/tree/1.x) (corresponding to the original [master](https://github.com/open-mmlab/mmcv/tree/master) branch) and **2.x** (corresponding to the **main** branch, now the default branch) versions simultaneously. For details, see [Branch Maintenance Plan](README.md#branch-maintenance-plan).
+
+## Introduction
+
+MMCV is a foundational library for computer vision research and it provides the following functionalities:
+
+- [Image/Video processing](https://mmcv.readthedocs.io/en/latest/understand_mmcv/data_process.html)
+- [Image and annotation visualization](https://mmcv.readthedocs.io/en/latest/understand_mmcv/visualization.html)
+- [Image transformation](https://mmcv.readthedocs.io/en/latest/understand_mmcv/data_transform.html)
+- [Various CNN architectures](https://mmcv.readthedocs.io/en/latest/understand_mmcv/cnn.html)
+- [High-quality implementation of common CPU and CUDA ops](https://mmcv.readthedocs.io/en/latest/understand_mmcv/ops.html)
+
+It supports the following systems:
+
+- Linux
+- Windows
+- macOS
+
+See the [documentation](http://mmcv.readthedocs.io/en/latest) for more features and usage.
+
+Note: MMCV requires Python 3.7+.
+
+## Installation
+
+There are two versions of MMCV:
+
+- **mmcv**: comprehensive, with full features and various CUDA ops out of the box. It takes longer time to build.
+- **mmcv-lite**: lite, without CUDA ops but all other features, similar to mmcv\<1.0.0. It is useful when you do not need those CUDA ops.
+
+**Note**: Do not install both versions in the same environment, otherwise you may encounter errors like `ModuleNotFound`. You need to uninstall one before installing the other. `Installing the full version is highly recommended if CUDA is available`.
+
+### Install mmcv
+
+Before installing mmcv, make sure that PyTorch has been successfully installed following the [PyTorch official installation guide](https://github.com/pytorch/pytorch#installation). For apple silicon users, please use PyTorch 1.13+.
+
+The command to install mmcv:
+
+```bash
+pip install -U openmim
+mim install mmcv
+```
+
+If you need to specify the version of mmcv, you can use the following command:
+
+```bash
+mim install mmcv==2.0.0
+```
+
+If you find that the above installation command does not use a pre-built package ending with `.whl` but a source package ending with `.tar.gz`, you may not have a pre-build package corresponding to the PyTorch or CUDA or mmcv version, in which case you can [build mmcv from source](https://mmcv.readthedocs.io/en/latest/get_started/build.html).
+
+
+Installation log using pre-built packages
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv
+Downloading https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/mmcv-2.0.0-cp38-cp38-manylinux1_x86_64.whl
+
+
+
+
+Installation log using source packages
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv==2.0.0
+Downloading mmcv-2.0.0.tar.gz
+
+
+
+For more installation methods, please refer to the [Installation documentation](https://mmcv.readthedocs.io/en/latest/get_started/installation.html).
+
+### Install mmcv-lite
+
+If you need to use PyTorch-related modules, make sure PyTorch has been successfully installed in your environment by referring to the [PyTorch official installation guide](https://github.com/pytorch/pytorch#installation).
+
+```bash
+pip install -U openmim
+mim install mmcv-lite
+```
+
+## FAQ
+
+If you face some installation issues, CUDA related issues or RuntimeErrors,
+you may first refer to this [Frequently Asked Questions](https://mmcv.readthedocs.io/en/latest/faq.html).
+
+If you face installation problems or runtime issues, you may first refer to this [Frequently Asked Questions](https://mmcv.readthedocs.io/en/latest/faq.html) to see if there is a solution. If the problem is still not solved, feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
+
+## Citation
+
+If you find this project useful in your research, please consider cite:
+
+```latex
+@misc{mmcv,
+ title={{MMCV: OpenMMLab} Computer Vision Foundation},
+ author={MMCV Contributors},
+ howpublished = {\url{https://github.com/open-mmlab/mmcv}},
+ year={2018}
+}
+```
+
+## Contributing
+
+We appreciate all contributions to improve MMCV. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for the contributing guideline.
+
+## License
+
+MMCV is released under the Apache 2.0 license, while some specific operations in this library are with other licenses. Please refer to [LICENSES.md](LICENSES.md) for the careful check, if you are using our code for commercial matters.
+
+## Branch Maintenance Plan
+
+MMCV currently has four branches, namely main, 1.x, master, and 2.x, where 2.x is an alias for the main branch, and master is an alias for the 1.x branch. The 2.x and master branches will be deleted in the future. MMCV's branches go through the following three stages:
+
+| Phase | Time | Branch | description |
+| -------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| RC Period | 2022.9.1 - 2023.4.5 | Release candidate code (2.x version) will be released on 2.x branch. Default master branch is still 1.x version | Master and 2.x branches iterate normally |
+| Compatibility Period | 2023.4.6 - 2023.12.31 | **The 2.x branch has been renamed to the main branch and set as the default branch**, and 1.x branch will correspond to 1.x version | We still maintain the old version 1.x, respond to user needs, but try not to introduce changes that break compatibility; main branch iterates normally |
+| Maintenance Period | From 2024/1/1 | Default main branch corresponds to 2.x version and 1.x branch is 1.x version | 1.x branch is in maintenance phase, no more new feature support; main branch is iterating normally |
+
+## Projects in OpenMMLab
+
+- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab foundational library for training deep learning models.
+- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab foundational library for computer vision.
+- [MIM](https://github.com/open-mmlab/mim): MIM installs OpenMMLab packages.
+- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark.
+- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark.
+- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection.
+- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab rotated object detection toolbox and benchmark.
+- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO series toolbox and benchmark.
+- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark.
+- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab text detection, recognition, and understanding toolbox.
+- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark.
+- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 3D human parametric model toolbox and benchmark.
+- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab self-supervised learning toolbox and benchmark.
+- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab model compression toolbox and benchmark.
+- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab fewshot learning toolbox and benchmark.
+- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab's next-generation action understanding toolbox and benchmark.
+- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab video perception toolbox and benchmark.
+- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab optical flow toolbox and benchmark.
+- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox.
+- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab image and video generative models toolbox.
+- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab model deployment framework.
diff --git a/FoodSeg103/demo/mmcv/README_zh-CN.md b/FoodSeg103/demo/mmcv/README_zh-CN.md
new file mode 100644
index 0000000000000000000000000000000000000000..e48f33bd7f402858e42c916cdc0186d13ec404f2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/README_zh-CN.md
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+[![platform](https://img.shields.io/badge/platform-Linux%7CWindows%7CmacOS-blue)](https://mmcv.readthedocs.io/zh_CN/latest/get_started/installation.html)
+[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mmcv)](https://pypi.org/project/mmcv/)
+[![pytorch](https://img.shields.io/badge/pytorch-1.8~2.0-orange)](https://pytorch.org/get-started/previous-versions/)
+[![cuda](https://img.shields.io/badge/cuda-10.1~11.8-green)](https://developer.nvidia.com/cuda-downloads)
+[![PyPI](https://img.shields.io/pypi/v/mmcv)](https://pypi.org/project/mmcv)
+[![badge](https://github.com/open-mmlab/mmcv/workflows/build/badge.svg)](https://github.com/open-mmlab/mmcv/actions)
+[![codecov](https://codecov.io/gh/open-mmlab/mmcv/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmcv)
+[![license](https://img.shields.io/github/license/open-mmlab/mmcv.svg)](https://github.com/open-mmlab/mmcv/blob/master/LICENSE)
+
+[📘使用文档](https://mmcv.readthedocs.io/zh_CN/latest/) |
+[🛠️安装教程](https://mmcv.readthedocs.io/zh_CN/latest/get_started/installation.html) |
+[🤔报告问题](https://github.com/open-mmlab/mmcv/issues/new/choose)
+
+
+
+
+
+[English](README.md) | 简体中文
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Highlights
+
+OpenMMLab 团队于 2022 年 9 月 1 日在世界人工智能大会发布了新一代训练引擎 [MMEngine](https://github.com/open-mmlab/mmengine),它是一个用于训练深度学习模型的基础库。相比于 MMCV,它提供了更高级且通用的训练器、接口更加统一的开放架构以及可定制化程度更高的训练流程。
+
+MMCV v2.0.0 正式版本于 2023 年 4 月 6 日发布。在 2.x 版本中,它删除了和训练流程相关的组件,并新增了数据变换模块。另外,从 2.x 版本开始,重命名包名 **mmcv** 为 **mmcv-lite** 以及 **mmcv-full** 为 **mmcv**。详情见[兼容性文档](docs/zh_cn/compatibility.md)。
+
+MMCV 会同时维护 [1.x](https://github.com/open-mmlab/mmcv/tree/1.x) (对应原 [master](https://github.com/open-mmlab/mmcv/tree/master) 分支) 和 **2.x**(对应 **main** 分支,现为默认分支)版本,详情见[分支维护计划](README_zh-CN.md#分支维护计划)。
+
+## 简介
+
+MMCV 是一个面向计算机视觉的基础库,它提供了以下功能:
+
+- [图像和视频处理](https://mmcv.readthedocs.io/zh_CN/latest/understand_mmcv/data_process.html)
+- [图像和标注结果可视化](https://mmcv.readthedocs.io/zh_CN/latest/understand_mmcv/visualization.html)
+- [图像变换](https://mmcv.readthedocs.io/zh_CN/latest/understand_mmcv/data_transform.html)
+- [多种 CNN 网络结构](https://mmcv.readthedocs.io/zh_CN/latest/understand_mmcv/cnn.html)
+- [高质量实现的常见 CUDA 算子](https://mmcv.readthedocs.io/zh_CN/latest/understand_mmcv/ops.html)
+
+MMCV 支持多种平台,包括:
+
+- Linux
+- Windows
+- macOS
+
+如想了解更多特性和使用,请参考[文档](http://mmcv.readthedocs.io/zh_CN/latest)。
+
+提示: MMCV 需要 Python 3.7 以上版本。
+
+## 安装
+
+MMCV 有两个版本:
+
+- **mmcv**: 完整版,包含所有的特性以及丰富的开箱即用的 CUDA 算子。注意完整版本可能需要更长时间来编译。
+- **mmcv-lite**: 精简版,不包含 CUDA 算子但包含其余所有特性和功能,类似 MMCV 1.0 之前的版本。如果你不需要使用 CUDA 算子的话,精简版可以作为一个考虑选项。
+
+**注意**: 请不要在同一个环境中安装两个版本,否则可能会遇到类似 `ModuleNotFound` 的错误。在安装一个版本之前,需要先卸载另一个。`如果 CUDA 可用,强烈推荐安装 mmcv`。
+
+### 安装 mmcv
+
+在安装 mmcv 之前,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://github.com/pytorch/pytorch#installation)。如果你使用的是搭载 apple silicon 的 mac 设备,请安装 PyTorch 1.13+ 的版本。
+
+安装 mmcv 的命令如下:
+
+```bash
+pip install -U openmim
+mim install mmcv
+```
+
+如果需要指定 mmcv 的版本,可以使用以下命令
+
+```bash
+mim install mmcv==2.0.0
+```
+
+如果发现上述的安装命令没有使用预编译包(以 `.whl` 结尾)而是使用源码包(以 `.tar.gz` 结尾)安装,则有可能是我们没有提供和当前环境的 PyTorch 版本、CUDA 版本相匹配的 mmcv 预编译包,此时,你可以[源码安装 mmcv](https://mmcv.readthedocs.io/zh_CN/latest/get_started/build.html)。
+
+
+使用预编译包的安装日志
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv
+Downloading https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/mmcv-2.0.0-cp38-cp38-manylinux1_x86_64.whl
+
+
+
+
+使用源码包的安装日志
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv==2.0.0
+Downloading mmcv-2.0.0.tar.gz
+
+
+
+更多安装方式请参考[安装文档](https://mmcv.readthedocs.io/zh_CN/latest/get_started/installation.html)。
+
+### 安装 mmcv-lite
+
+如果你需要使用和 PyTorch 相关的模块,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://github.com/pytorch/pytorch#installation)。
+
+```bash
+pip install -U openmim
+mim install mmcv-lite
+```
+
+## FAQ
+
+如果你遇到了安装问题或者运行时问题,请查看[问题解决页面](https://mmcv.readthedocs.io/zh_CN/latest/faq.html)是否已有解决方案。如果问题仍然没有解决,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)。
+
+## 贡献指南
+
+我们感谢所有的贡献者为改进和提升 MMCV 所作出的努力。请参考[贡献指南](CONTRIBUTING.md)来了解参与项目贡献的相关指引。
+
+## 许可证
+
+`MMCV` 目前以 Apache 2.0 的许可证发布,但是其中有一部分功能并不是使用的 Apache2.0 许可证,我们在 [许可证](LICENSES.md) 中详细地列出了这些功能以及他们对应的许可证,如果您正在从事盈利性活动,请谨慎参考此文档。
+
+## 分支维护计划
+
+MMCV 目前有四个分支,分别是 main、1.x、master 和 2.x,其中 2.x 为 main 分支的别名,master 为 1.x 分支的别名,2.x 和 master 这两个分支在将来会被删除。MMCV 的分支经历以下三个阶段:
+
+| 阶段 | 时间 | 分支 | 说明 |
+| ------ | --------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
+| 公测期 | 2022.9.1 - 2023.4.5 | 公测版代码发布在 2.x 分支;默认主分支 master 仍对应 1.x 版本 | master 和 2.x 分支正常进行迭代 |
+| 兼容期 | 2023.4.6 - 2023.12.31 | **2.x 分支重命名为 main 分支并设置为默认分支**;1.x 分支对应 1.x 版本 | 保持对旧版本 1.x 的维护和开发,响应用户需求,但尽量不引进破坏旧版本兼容性的改动;main 分支正常进行迭代 |
+| 维护期 | 2024.1.1 - 待定 | 默认主分支 main 为 2.x 版本;1.x 分支对应 1.x 版本 | 1.x 分支进入维护阶段,不再进行新功能支持;main 分支正常进行迭代 |
+
+## OpenMMLab 的其他项目
+
+- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab 深度学习模型训练基础库
+- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库
+- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMlab 项目、算法、模型的统一入口
+- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱
+- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱
+- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
+- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准
+- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO 系列工具箱与测试基准
+- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱
+- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具箱
+- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱
+- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 人体参数化模型工具箱与测试基准
+- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab 自监督学习工具箱与测试基准
+- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab 模型压缩工具箱与测试基准
+- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准
+- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱
+- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台
+- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准
+- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱
+- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱
+- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架
+
+## 欢迎加入 OpenMMLab 社区
+
+扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 OpenMMLab 团队的 [官方交流 QQ 群](https://jq.qq.com/?_wv=1027&k=K0QI8ByU),或添加微信小助手”OpenMMLabwx“加入官方交流微信群。
+
+
+
+我们会在 OpenMMLab 社区为大家
+
+- 📢 分享 AI 框架的前沿核心技术
+- 💻 解读 PyTorch 常用模块源码
+- 📰 发布 OpenMMLab 的相关新闻
+- 🚀 介绍 OpenMMLab 开发的前沿算法
+- 🏃 获取更高效的问题答疑和意见反馈
+- 🔥 提供与各行各业开发者充分交流的平台
+
+干货满满 📘,等你来撩 💗,OpenMMLab 社区期待您的加入 👬
diff --git a/FoodSeg103/demo/mmcv/TERMINOLOGY.md b/FoodSeg103/demo/mmcv/TERMINOLOGY.md
new file mode 100644
index 0000000000000000000000000000000000000000..07411b7774c2ed713f472c1287b98b871c7f4d02
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/TERMINOLOGY.md
@@ -0,0 +1,30 @@
+# English-Chinese terminology comparison (英汉术语对照)
+
+This document is used as a reference for English-Chinese terminology translation.
+
+该文档用作中英文翻译对照参考。
+
+| English | 中文 |
+| :---------------: | :----------: |
+| annotation | 标注 |
+| backbone | 主干网络 |
+| benchmark | 基准测试 |
+| checkpoint | 模型权重文件 |
+| classifier | 分类器 |
+| cls_head | 分类头 |
+| decoder | 解码器 |
+| detector | 检测器 |
+| encoder | 编码器 |
+| finetune | 微调 |
+| ground truth | 真实标签 |
+| hook | 钩子 |
+| localizer | 定位器 |
+| neck | 模型颈部 |
+| pipeline | 流水线 |
+| recognizer | 识别器 |
+| register | 注册器 |
+| schedule | 调整 |
+| scheduler | 调度器 |
+| segmentor | 分割器 |
+| tensor | 张量 |
+| training schedule | 训练策略 |
diff --git a/FoodSeg103/demo/mmcv/docker/README.md b/FoodSeg103/demo/mmcv/docker/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..60d5c9de5da8faa7e0ae7e0def19a4320a2a7a5e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docker/README.md
@@ -0,0 +1,70 @@
+# Docker images
+
+There are two `Dockerfile` files to build docker images, one to build an image with the mmcv pre-built package and the other with the mmcv development environment.
+
+```text
+.
+|-- README.md
+|-- dev # build with mmcv development environment
+| `-- Dockerfile
+`-- release # build with mmcv pre-built package
+ `-- Dockerfile
+```
+
+## Build docker images
+
+### Build with mmcv pre-built package
+
+Build with local repository
+
+```bash
+git clone https://github.com/open-mmlab/mmcv.git && cd mmcv
+docker build -t mmcv -f docker/release/Dockerfile .
+```
+
+Or build with remote repository
+
+```bash
+docker build -t mmcv https://github.com/open-mmlab/mmcv.git#master:docker/release
+```
+
+The [Dockerfile](release/Dockerfile) installs latest released version of mmcv by default, but you can specify mmcv versions to install expected versions.
+
+```bash
+docker image build -t mmcv -f docker/release/Dockerfile --build-arg MMCV=2.0.0rc1 .
+```
+
+If you also want to use other versions of PyTorch and CUDA, you can also pass them when building docker images.
+
+An example to build an image with PyTorch 1.11 and CUDA 11.3.
+
+```bash
+docker build -t mmcv -f docker/release/Dockerfile \
+ --build-arg PYTORCH=1.9.0 \
+ --build-arg CUDA=11.1 \
+ --build-arg CUDNN=8 \
+ --build-arg MMCV=2.0.0rc1 .
+```
+
+More available versions of PyTorch and CUDA can be found at [dockerhub/pytorch](https://hub.docker.com/r/pytorch/pytorch/tags).
+
+### Build with mmcv development environment
+
+If you want to build an docker image with the mmcv development environment, you can use the following command
+
+```bash
+git clone https://github.com/open-mmlab/mmcv.git && cd mmcv
+docker build -t mmcv -f docker/dev/Dockerfile --build-arg CUDA_ARCH=7.5 .
+```
+
+Note that `CUDA_ARCH` is the cumpute capability of your GPU and you can find it at [Compute Capability](https://developer.nvidia.com/cuda-gpus#compute).
+
+The building process may take 10 minutes or more.
+
+## Run images
+
+```bash
+docker run --gpus all --shm-size=8g -it mmcv
+```
+
+See [docker run](https://docs.docker.com/engine/reference/commandline/run/) for more usages.
diff --git a/FoodSeg103/demo/mmcv/docker/dev/Dockerfile b/FoodSeg103/demo/mmcv/docker/dev/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..a4d9e23fcfaa6e1af104aaa0e9cbb2a348b3cd34
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docker/dev/Dockerfile
@@ -0,0 +1,31 @@
+ARG PYTORCH="1.8.1"
+ARG CUDA="10.2"
+ARG CUDNN="7"
+
+FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
+
+# To fix GPG key error when running apt-get update
+RUN rm /etc/apt/sources.list.d/cuda.list \
+ && rm /etc/apt/sources.list.d/nvidia-ml.list \
+ && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub \
+ && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+
+# Install git and system dependencies for opencv-python
+RUN apt-get update && apt-get install -y git \
+ && apt-get update && apt-get install -y libgl1 libglib2.0-0
+
+# Install system dependencies for unit tests
+RUN apt-get install -y ffmpeg libturbojpeg \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+# build mmcv from source with develop mode
+ARG HTTPS_PROXY=""
+ENV https_proxy=${HTTPS_PROXY}
+ENV FORCE_CUDA="1"
+ARG CUDA_ARCH=""
+ENV TORCH_CUDA_ARCH_LIST=${CUDA_ARCH}
+RUN git clone https://github.com/open-mmlab/mmcv.git /mmcv
+WORKDIR /mmcv
+RUN git checkout 2.x && git rev-parse --short HEAD
+RUN pip install --no-cache-dir -e .[all] -v && pip install pre-commit && pre-commit install
diff --git a/FoodSeg103/demo/mmcv/docker/release/Dockerfile b/FoodSeg103/demo/mmcv/docker/release/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..d5e25e9eb70a87ab1c47a629cc6ed9706ade83c6
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docker/release/Dockerfile
@@ -0,0 +1,23 @@
+ARG PYTORCH="1.8.1"
+ARG CUDA="10.2"
+ARG CUDNN="7"
+
+FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
+
+# To fix GPG key error when running apt-get update
+RUN rm /etc/apt/sources.list.d/cuda.list \
+ && rm /etc/apt/sources.list.d/nvidia-ml.list \
+ && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub \
+ && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+
+# Install system dependencies for opencv-python
+RUN apt-get update && apt-get install -y libgl1 libglib2.0-0 \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+# Install mmcv
+ARG MMCV=""
+RUN if [ "${MMCV}" = "" ]; then pip install -U openmim && mim install 'mmcv>=2.0.0rc1'; else pip install -U openmim && mim install mmcv==${MMCV}; fi
+
+# Verify the installation
+RUN python -c 'import mmcv;print(mmcv.__version__)'
diff --git a/FoodSeg103/demo/mmcv/docs/en/Makefile b/FoodSeg103/demo/mmcv/docs/en/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..51285967a7d9722c5bdee4f6a81c154a56aa0846
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/Makefile
@@ -0,0 +1,19 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SOURCEDIR = .
+BUILDDIR = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/community/1.png b/FoodSeg103/demo/mmcv/docs/en/_static/community/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..1837fbc8ca1dd46fc169d3c16fd2aef73645af92
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/community/1.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/community/2.png b/FoodSeg103/demo/mmcv/docs/en/_static/community/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..76e21def858b2f9392a90999d741cb653e766ae5
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/community/2.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/community/3.png b/FoodSeg103/demo/mmcv/docs/en/_static/community/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c8ef1315f92933436f4be14eb43669a85e9e098
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/community/3.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/css/readthedocs.css b/FoodSeg103/demo/mmcv/docs/en/_static/css/readthedocs.css
new file mode 100644
index 0000000000000000000000000000000000000000..9e3a567d5f78aedb606600bb3111034a1003b362
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/_static/css/readthedocs.css
@@ -0,0 +1,10 @@
+.header-logo {
+ background-image: url("../image/mmcv-logo.png");
+ background-size: 85px 40px;
+ height: 40px;
+ width: 85px;
+}
+
+table.colwidths-auto td {
+ width: 50%
+}
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/flow_img2toimg1.png b/FoodSeg103/demo/mmcv/docs/en/_static/flow_img2toimg1.png
new file mode 100644
index 0000000000000000000000000000000000000000..12df0a17ddd3290f5f05072c2bcd38ae79d9f100
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/flow_img2toimg1.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/flow_raw_images.png b/FoodSeg103/demo/mmcv/docs/en/_static/flow_raw_images.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdf3cd98a392d110ef0c2a0c4cd9efe927f5daf7
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/_static/flow_raw_images.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:01c88e247d12d8bdbdcdfb7080572e4f6c9191c944381c8349e7232bcf2f1337
+size 1515531
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/flow_visualization.png b/FoodSeg103/demo/mmcv/docs/en/_static/flow_visualization.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b2e026a058f85d31c70d51cabd11c02d7b26c35
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/flow_visualization.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/flow_warp.png b/FoodSeg103/demo/mmcv/docs/en/_static/flow_warp.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3764118dde74517a83ad1098e6e4d767341f5cb
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/flow_warp.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/flow_warp_diff.png b/FoodSeg103/demo/mmcv/docs/en/_static/flow_warp_diff.png
new file mode 100644
index 0000000000000000000000000000000000000000..7989c9636bd852ce7512457c64192e630ea27cb7
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/_static/flow_warp_diff.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aa0e1308dca16a1c60e43e451b933221c43b857774523d1584ff6166b35b7603
+size 1379939
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/image/mmcv-logo.png b/FoodSeg103/demo/mmcv/docs/en/_static/image/mmcv-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcc5759f8fe3bc7d191d411c38a9e1d3c1c27a84
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/image/mmcv-logo.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/parallel_progress.gif b/FoodSeg103/demo/mmcv/docs/en/_static/parallel_progress.gif
new file mode 100644
index 0000000000000000000000000000000000000000..943603058e4d4c3652fa37875ec146609db1848a
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/parallel_progress.gif differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/parallel_progress.png b/FoodSeg103/demo/mmcv/docs/en/_static/parallel_progress.png
new file mode 100644
index 0000000000000000000000000000000000000000..3affeeb3cf59a07db44b0025b8e483f06d144c24
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/parallel_progress.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/progress.gif b/FoodSeg103/demo/mmcv/docs/en/_static/progress.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f2a6208a84c31c09c6448e495fbd4ca769ce833e
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/progress.gif differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/progress.png b/FoodSeg103/demo/mmcv/docs/en/_static/progress.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4070e0052427373c59967ed07bb9f936ca8df59
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/_static/progress.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/_static/version.json b/FoodSeg103/demo/mmcv/docs/en/_static/version.json
new file mode 100644
index 0000000000000000000000000000000000000000..522c371ce1b2846f5f488d442450f841926207db
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/_static/version.json
@@ -0,0 +1,738 @@
+{
+ "Linux": [
+ {
+ "cuda": "11.8",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.5",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.0",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "9.2",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "9.2",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ }
+ ],
+ "Windows": [
+ {
+ "cuda": "11.8",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.5",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ }
+ ],
+ "macOS": [
+ {
+ "cuda": "cpu",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "mps",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2"
+ ]
+ }
+ ]
+}
diff --git a/FoodSeg103/demo/mmcv/docs/en/_templates/classtemplate.rst b/FoodSeg103/demo/mmcv/docs/en/_templates/classtemplate.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4f74842394ec9807fb1ae2d8f05a8a57e9a2e24c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/_templates/classtemplate.rst
@@ -0,0 +1,14 @@
+.. role:: hidden
+ :class: hidden-section
+.. currentmodule:: {{ module }}
+
+
+{{ name | underline}}
+
+.. autoclass:: {{ name }}
+ :members:
+
+
+..
+ autogenerated from source/_templates/classtemplate.rst
+ note it does not have :inherited-members:
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/arraymisc.rst b/FoodSeg103/demo/mmcv/docs/en/api/arraymisc.rst
new file mode 100644
index 0000000000000000000000000000000000000000..28975eb76e94994c50d2fe52b8f34c7ce533e788
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/arraymisc.rst
@@ -0,0 +1,19 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.arraymisc
+===================================
+
+.. contents:: mmcv.arraymisc
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.arraymisc
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ quantize
+ dequantize
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/cnn.rst b/FoodSeg103/demo/mmcv/docs/en/api/cnn.rst
new file mode 100644
index 0000000000000000000000000000000000000000..022191f179fdbe3b1644abbb96ffdc92e4e37e06
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/cnn.rst
@@ -0,0 +1,71 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.cnn
+===================================
+
+.. contents:: mmcv.cnn
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.cnn
+
+Module
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ ContextBlock
+ Conv2d
+ Conv3d
+ ConvAWS2d
+ ConvModule
+ ConvTranspose2d
+ ConvTranspose3d
+ ConvWS2d
+ DepthwiseSeparableConvModule
+ GeneralizedAttention
+ HSigmoid
+ HSwish
+ LayerScale
+ Linear
+ MaxPool2d
+ MaxPool3d
+ NonLocal1d
+ NonLocal2d
+ NonLocal3d
+ Scale
+ Swish
+ Conv2dRFSearchOp
+
+Build Function
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ build_activation_layer
+ build_conv_layer
+ build_norm_layer
+ build_padding_layer
+ build_plugin_layer
+ build_upsample_layer
+
+Miscellaneous
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ fuse_conv_bn
+ conv_ws_2d
+ is_norm
+ make_res_layer
+ make_vgg_layer
+ get_model_complexity_info
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/image.rst b/FoodSeg103/demo/mmcv/docs/en/api/image.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3b93484952cd0c45b9d103088b0677f93fe5615d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/image.rst
@@ -0,0 +1,100 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.image
+===================================
+
+.. contents:: mmcv.image
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.image
+
+IO
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ imfrombytes
+ imread
+ imwrite
+ use_backend
+
+Color Space
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ bgr2gray
+ bgr2hls
+ bgr2hsv
+ bgr2rgb
+ bgr2ycbcr
+ gray2bgr
+ gray2rgb
+ hls2bgr
+ hsv2bgr
+ imconvert
+ rgb2bgr
+ rgb2gray
+ rgb2ycbcr
+ ycbcr2bgr
+ ycbcr2rgb
+
+Geometric
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ cutout
+ imcrop
+ imflip
+ impad
+ impad_to_multiple
+ imrescale
+ imresize
+ imresize_like
+ imresize_to_multiple
+ imrotate
+ imshear
+ imtranslate
+ rescale_size
+
+Photometric
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ adjust_brightness
+ adjust_color
+ adjust_contrast
+ adjust_hue
+ adjust_lighting
+ adjust_sharpness
+ auto_contrast
+ clahe
+ imdenormalize
+ imequalize
+ iminvert
+ imnormalize
+ lut_transform
+ posterize
+ solarize
+
+Miscellaneous
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ tensor2imgs
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/ops.rst b/FoodSeg103/demo/mmcv/docs/en/api/ops.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b0290457bfa0c08f14d7fe346efccb33f388bdae
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/ops.rst
@@ -0,0 +1,135 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.ops
+===================================
+
+.. contents:: mmcv.ops
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.ops
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ BorderAlign
+ CARAFE
+ CARAFENaive
+ CARAFEPack
+ Conv2d
+ ConvTranspose2d
+ CornerPool
+ Correlation
+ CrissCrossAttention
+ DeformConv2d
+ DeformConv2dPack
+ DeformRoIPool
+ DeformRoIPoolPack
+ DynamicScatter
+ FusedBiasLeakyReLU
+ GroupAll
+ Linear
+ MaskedConv2d
+ MaxPool2d
+ ModulatedDeformConv2d
+ ModulatedDeformConv2dPack
+ ModulatedDeformRoIPoolPack
+ MultiScaleDeformableAttention
+ PSAMask
+ PointsSampler
+ PrRoIPool
+ QueryAndGroup
+ RiRoIAlignRotated
+ RoIAlign
+ RoIAlignRotated
+ RoIAwarePool3d
+ RoIPointPool3d
+ RoIPool
+ SAConv2d
+ SigmoidFocalLoss
+ SimpleRoIAlign
+ SoftmaxFocalLoss
+ SparseConv2d
+ SparseConv3d
+ SparseConvTensor
+ SparseConvTranspose2d
+ SparseConvTranspose3d
+ SparseInverseConv2d
+ SparseInverseConv3d
+ SparseMaxPool2d
+ SparseMaxPool3d
+ SparseModule
+ SparseSequential
+ SubMConv2d
+ SubMConv3d
+ SyncBatchNorm
+ TINShift
+ Voxelization
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ active_rotated_filter
+ assign_score_withk
+ ball_query
+ batched_nms
+ bbox_overlaps
+ border_align
+ box_iou_rotated
+ boxes_iou3d
+ boxes_iou_bev
+ boxes_overlap_bev
+ carafe
+ carafe_naive
+ chamfer_distance
+ contour_expand
+ convex_giou
+ convex_iou
+ deform_conv2d
+ deform_roi_pool
+ diff_iou_rotated_2d
+ diff_iou_rotated_3d
+ dynamic_scatter
+ furthest_point_sample
+ furthest_point_sample_with_dist
+ fused_bias_leakyrelu
+ gather_points
+ grouping_operation
+ knn
+ masked_conv2d
+ min_area_polygons
+ modulated_deform_conv2d
+ nms
+ nms3d
+ nms3d_normal
+ nms_bev
+ nms_match
+ nms_normal_bev
+ nms_rotated
+ pixel_group
+ point_sample
+ points_in_boxes_all
+ points_in_boxes_cpu
+ points_in_boxes_part
+ points_in_polygons
+ prroi_pool
+ rel_roi_point_to_rel_img_point
+ riroi_align_rotated
+ roi_align
+ roi_align_rotated
+ roi_pool
+ rotated_feature_align
+ scatter_nd
+ sigmoid_focal_loss
+ soft_nms
+ softmax_focal_loss
+ three_interpolate
+ three_nn
+ tin_shift
+ upfirdn2d
+ voxelization
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/transforms.rst b/FoodSeg103/demo/mmcv/docs/en/api/transforms.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b080133d6b7736398b855174c325169b8af92aae
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/transforms.rst
@@ -0,0 +1,60 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.transforms
+===================================
+
+.. currentmodule:: mmcv.transforms
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ BaseTransform
+ TestTimeAug
+
+Loading
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ LoadAnnotations
+ LoadImageFromFile
+
+Processing
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ CenterCrop
+ MultiScaleFlipAug
+ Normalize
+ Pad
+ RandomChoiceResize
+ RandomFlip
+ RandomGrayscale
+ RandomResize
+ Resize
+ ToTensor
+ ImageToTensor
+
+Wrapper
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ Compose
+ KeyMapper
+ RandomApply
+ RandomChoice
+ TransformBroadcaster
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/utils.rst b/FoodSeg103/demo/mmcv/docs/en/api/utils.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f2ff4c2a3872bc9ae0c2942debac5e5b523bd071
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/utils.rst
@@ -0,0 +1,23 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.utils
+===================================
+
+.. contents:: mmcv.utils
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.utils
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ IS_CUDA_AVAILABLE
+ IS_MLU_AVAILABLE
+ IS_MPS_AVAILABLE
+ collect_env
+ jit
+ skip_no_elena
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/video.rst b/FoodSeg103/demo/mmcv/docs/en/api/video.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a6ebca0eb73afcf3f3f11aae8520e2782a310f13
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/video.rst
@@ -0,0 +1,56 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.video
+===================================
+
+.. contents:: mmcv.video
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.video
+
+IO
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ VideoReader
+ Cache
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ frames2video
+
+Optical Flow
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ dequantize_flow
+ flow_from_bytes
+ flow_warp
+ flowread
+ flowwrite
+ quantize_flow
+ sparse_flow_from_bytes
+
+Video Processing
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ concat_video
+ convert_video
+ cut_video
+ resize_video
diff --git a/FoodSeg103/demo/mmcv/docs/en/api/visualization.rst b/FoodSeg103/demo/mmcv/docs/en/api/visualization.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8f43ef27a441dcd9001a352cf18e97f8e615676d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/api/visualization.rst
@@ -0,0 +1,50 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.visualization
+===================================
+
+.. contents:: mmcv.visualization
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.visualization
+
+Color
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ Color
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ color_val
+
+Image
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ imshow
+ imshow_bboxes
+ imshow_det_bboxes
+
+Optical Flow
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ flow2rgb
+ flowshow
+ make_color_wheel
diff --git a/FoodSeg103/demo/mmcv/docs/en/community/contributing.md b/FoodSeg103/demo/mmcv/docs/en/community/contributing.md
new file mode 100644
index 0000000000000000000000000000000000000000..303fd0d79431d8c317d8306049360732cc06404b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/community/contributing.md
@@ -0,0 +1,267 @@
+## Contributing to OpenMMLab
+
+Welcome to the MMCV community, we are committed to building a cutting-edge computer vision foundational library and all kinds of contributions are welcomed, including but not limited to
+
+**Fix bug**
+
+You can directly post a Pull Request to fix typo in code or documents
+
+The steps to fix the bug of code implementation are as follows.
+
+1. If the modification involve significant changes, you should create an issue first and describe the error information and how to trigger the bug. Other developers will discuss with you and propose an proper solution.
+
+2. Posting a pull request after fixing the bug and adding corresponding unit test.
+
+**New Feature or Enhancement**
+
+1. If the modification involve significant changes, you should create an issue to discuss with our developers to propose an proper design.
+2. Post a Pull Request after implementing the new feature or enhancement and add corresponding unit test.
+
+**Document**
+
+You can directly post a pull request to fix documents. If you want to add a document, you should first create an issue to check if it is reasonable.
+
+### Pull Request Workflow
+
+If you're not familiar with Pull Request, don't worry! The following guidance will tell you how to create a Pull Request step by step. If you want to dive into the develop mode of Pull Request, you can refer to the [official documents](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)
+
+#### 1. Fork and clone
+
+If you are posting a pull request for the first time, you should fork the OpenMMLab repositories by clicking the **Fork** button in the top right corner of the GitHub page, and the forked repositories will appear under your GitHub profile.
+
+
+
+Then, you can clone the repositories to local:
+
+```shell
+git clone git@github.com:{username}/mmcv.git
+```
+
+After that, you should ddd official repository as the upstream repository
+
+```bash
+git remote add upstream git@github.com:open-mmlab/mmcv
+```
+
+Check whether remote repository has been added successfully by `git remote -v`
+
+```bash
+origin git@github.com:{username}/mmcv.git (fetch)
+origin git@github.com:{username}/mmcv.git (push)
+upstream git@github.com:open-mmlab/mmcv (fetch)
+upstream git@github.com:open-mmlab/mmcv (push)
+```
+
+```{note}
+Here's a brief introduction to origin and upstream. When we use "git clone", we create an "origin" remote by default, which points to the repository cloned from. As for "upstream", we add it ourselves to point to the target repository. Of course, if you don't like the name "upstream", you could name it as you wish. Usually, we'll push the code to "origin". If the pushed code conflicts with the latest code in official("upstream"), we should pull the latest code from upstream to resolve the conflicts, and then push to "origin" again. The posted Pull Request will be updated automatically.
+```
+
+#### 2. Configure pre-commit
+
+You should configure [pre-commit](https://pre-commit.com/#intro) in the local development environment to make sure the code style matches that of OpenMMLab. **Note**: The following code should be executed under the MMCV directory.
+
+```shell
+pip install -U pre-commit
+pre-commit install
+```
+
+Check that pre-commit is configured successfully, and install the hooks defined in `.pre-commit-config.yaml`.
+
+```shell
+pre-commit run --all-files
+```
+
+
+
+
+
+```{note}
+Chinese users may fail to download the pre-commit hooks due to the network issue. In this case, you could download these hooks from gitee by setting the .pre-commit-config-zh-cn.yaml
+
+pre-commit install -c .pre-commit-config-zh-cn.yaml
+pre-commit run --all-files -c .pre-commit-config-zh-cn.yaml
+```
+
+If the installation process is interrupted, you can repeatedly run `pre-commit run ... ` to continue the installation.
+
+If the code does not conform to the code style specification, pre-commit will raise a warning and fixes some of the errors automatically.
+
+
+
+If we want to commit our code bypassing the pre-commit hook, we can use the `--no-verify` option(**only for temporarily commit**.
+
+```shell
+git commit -m "xxx" --no-verify
+```
+
+#### 3. Create a development branch
+
+After configuring the pre-commit, we should create a branch based on the main branch to develop the new feature or fix the bug. The proposed branch name is `username/pr_name`
+
+```shell
+git checkout -b yhc/refactor_contributing_doc
+```
+
+In subsequent development, if the main branch of the local repository is behind the main branch of "upstream", we need to pull the upstream for synchronization, and then execute the above command:
+
+```shell
+git pull upstream main
+```
+
+#### 4. Commit the code and pass the unit test
+
+- MMCV introduces mypy to do static type checking to increase the robustness of the code. Therefore, we need to add Type Hints to our code and pass the mypy check. If you are not familiar with Type Hints, you can refer to [this tutorial](https://docs.python.org/3/library/typing.html).
+
+- The committed code should pass through the unit test
+
+ ```shell
+ # Pass all unit tests
+ pytest tests
+
+ # Pass the unit test of runner
+ pytest tests/test_runner/test_runner.py
+ ```
+
+ If the unit test fails for lack of dependencies, you can install the dependencies referring to the [guidance](#unit-test)
+
+- If the documents are modified/added, we should check the rendering result referring to [guidance](#document-rendering)
+
+#### 5. Push the code to remote
+
+We could push the local commits to remote after passing through the check of unit test and pre-commit. You can associate the local branch with remote branch by adding `-u` option.
+
+```shell
+git push -u origin {branch_name}
+```
+
+This will allow you to use the `git push` command to push code directly next time, without having to specify a branch or the remote repository.
+
+#### 6. Create a Pull Request
+
+(1) Create a pull request in GitHub's Pull request interface
+
+
+
+(2) Modify the PR description according to the guidelines so that other developers can better understand your changes
+
+
+
+Find more details about Pull Request description in [pull request guidelines](#pr-specs).
+
+**note**
+
+(a) The Pull Request description should contain the reason for the change, the content of the change, and the impact of the change, and be associated with the relevant Issue (see [documentation](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
+
+(b) If it is your first contribution, please sign the CLA
+
+
+
+(c) Check whether the Pull Request pass through the CI
+
+
+
+MMCV will run unit test for the posted Pull Request on different platforms (Linux, Window, Mac), based on different versions of Python, PyTorch, CUDA to make sure the code is correct. We can see the specific test information by clicking `Details` in the above image so that we can modify the code.
+
+(3) If the Pull Request passes the CI, then you can wait for the review from other developers. You'll modify the code based on the reviewer's comments, and repeat the steps [4](#4-commit-the-code-and-pass-the-unit-test)-[5](#5-push-the-code-to-remote) until all reviewers approve it. Then, we will merge it ASAP.
+
+
+
+#### 7. Resolve conflicts
+
+If your local branch conflicts with the latest main branch of "upstream", you'll need to resolove them. There are two ways to do this:
+
+```shell
+git fetch --all --prune
+git rebase upstream/main
+```
+
+or
+
+```shell
+git fetch --all --prune
+git merge upstream/main
+```
+
+If you are very good at handling conflicts, then you can use rebase to resolve conflicts, as this will keep your commit logs tidy. If you are not familiar with `rebase`, then you can use `merge` to resolve conflicts.
+
+### Guidance
+
+#### Unit test
+
+If you cannot run the unit test of some modules for lacking of some dependencies, such as [video](https://github.com/open-mmlab/mmcv/tree/main/mmcv/video) module, you can try to install the following dependencies:
+
+```shell
+# Linux
+sudo apt-get update -y
+sudo apt-get install -y libturbojpeg
+sudo apt-get install -y ffmpeg
+
+# Windows
+conda install ffmpeg
+```
+
+We should also make sure the committed code will not decrease the coverage of unit test, we could run the following command to check the coverage of unit test:
+
+```shell
+python -m coverage run -m pytest /path/to/test_file
+python -m coverage html
+# check file in htmlcov/index.html
+```
+
+#### Document rendering
+
+If the documents are modified/added, we should check the rendering result. We could install the dependencies and run the following command to render the documents and check the results:
+
+```shell
+pip install -r requirements/docs.txt
+cd docs/zh_cn/
+# or docs/en
+make html
+# check file in ./docs/zh_cn/_build/html/index.html
+```
+
+### Code style
+
+#### Python
+
+We adopt [PEP8](https://www.python.org/dev/peps/pep-0008/) as the preferred code style.
+
+We use the following tools for linting and formatting:
+
+- [flake8](https://github.com/PyCQA/flake8): A wrapper around some linter tools.
+- [isort](https://github.com/timothycrosley/isort): A Python utility to sort imports.
+- [yapf](https://github.com/google/yapf): A formatter for Python files.
+- [codespell](https://github.com/codespell-project/codespell): A Python utility to fix common misspellings in text files.
+- [mdformat](https://github.com/executablebooks/mdformat): Mdformat is an opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files.
+- [docformatter](https://github.com/myint/docformatter): A formatter to format docstring.
+
+Style configurations of yapf and isort can be found in [setup.cfg](./setup.cfg).
+
+We use [pre-commit hook](https://pre-commit.com/) that checks and formats for `flake8`, `yapf`, `isort`, `trailing whitespaces`, `markdown files`,
+fixes `end-of-files`, `double-quoted-strings`, `python-encoding-pragma`, `mixed-line-ending`, sorts `requirments.txt` automatically on every commit.
+The config for a pre-commit hook is stored in [.pre-commit-config](./.pre-commit-config.yaml).
+
+#### C++ and CUDA
+
+We follow the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).
+
+### PR Specs
+
+1. Use [pre-commit](https://pre-commit.com) hook to avoid issues of code style
+
+2. One short-time branch should be matched with only one PR
+
+3. Accomplish a detailed change in one PR. Avoid large PR
+
+ - Bad: Support Faster R-CNN
+ - Acceptable: Add a box head to Faster R-CNN
+ - Good: Add a parameter to box head to support custom conv-layer number
+
+4. Provide clear and significant commit message
+
+5. Provide clear and meaningful PR description
+
+ - Task name should be clarified in title. The general format is: \[Prefix\] Short description of the PR (Suffix)
+ - Prefix: add new feature \[Feature\], fix bug \[Fix\], related to documents \[Docs\], in developing \[WIP\] (which will not be reviewed temporarily)
+ - Introduce main changes, results and influences on other modules in short description
+ - Associate related issues and pull requests with a milestone
diff --git a/FoodSeg103/demo/mmcv/docs/en/community/pr.md b/FoodSeg103/demo/mmcv/docs/en/community/pr.md
new file mode 100644
index 0000000000000000000000000000000000000000..1bdd90f2bc41867e5c17403690f6a35cfe2c07b7
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/community/pr.md
@@ -0,0 +1,3 @@
+## Pull Request (PR)
+
+Content has been migrated to [contributing guidance](contributing.md).
diff --git a/FoodSeg103/demo/mmcv/docs/en/compatibility.md b/FoodSeg103/demo/mmcv/docs/en/compatibility.md
new file mode 100644
index 0000000000000000000000000000000000000000..09d25e1629944190d92718b6c605fdb2e521296d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/compatibility.md
@@ -0,0 +1,231 @@
+### v2.0.0
+
+The OpenMMLab team released a new generation of training engine [MMEngine](https://github.com/open-mmlab/mmengine) at the World Artificial Intelligence Conference on September 1, 2022. It is a foundational library for training deep learning models. Compared with MMCV, it provides a universal and powerful runner, an open architecture with a more unified interface, and a more customizable training process.
+
+The OpenMMLab team released MMCV v2.0.0 on April 6, 2023. In the 2.x version, it has the following significant changes:
+
+(1) It removed the following components:
+
+- `mmcv.fileio` module, removed in PR [#2179](https://github.com/open-mmlab/mmcv/pull/2179). FileIO module from mmengine will be used wherever required.
+- `mmcv.runner`, `mmcv.parallel`, `mmcv. engine` and `mmcv.device`, removed in PR [#2216](https://github.com/open-mmlab/mmcv/pull/2216).
+- All classes in `mmcv.utils` (eg `Config` and `Registry`) and many functions, removed in PR [#2217](https://github.com/open-mmlab/mmcv/pull/2217). Only a few functions related to mmcv are reserved.
+- `mmcv.onnx`, `mmcv.tensorrt` modules and related functions, removed in PR [#2225](https://github.com/open-mmlab/mmcv/pull/2225).
+- Removed all root registrars in MMCV and registered classes or functions to the [root registrar](https://github.com/open-mmlab/mmengine/blob/main/mmengine/registry/root.py) in MMEngine.
+
+(2) It added the [`mmcv.transforms`](https://github.com/open-mmlab/mmcv/tree/main/mmcv/transforms) data transformation module.
+
+(3) It renamed the package name **mmcv** to **mmcv-lite** and **mmcv-full** to **mmcv** in PR [#2235](https://github.com/open-mmlab/mmcv/pull/2235). Also, change the default value of the environment variable `MMCV_WITH_OPS` from 0 to 1.
+
+
+
+
+ MMCV < 2.0
+ MMCV >= 2.0
+
+
+
+
+```bash
+# Contains ops, because the highest version of mmcv-full is less than 2.0.0, so there is no need to add version restrictions
+pip install openmim
+mim install mmcv-full
+
+# do not contain ops
+pip install openmim
+mim install "mmcv < 2.0.0"
+```
+
+
+
+
+```bash
+# Contains ops
+pip install openmim
+mim install mmcv
+
+# Ops are not included, because the starting version of mmcv-lite is 2.0.0rc1, so there is no need to add version restrictions
+pip install openmim
+mim install mmcv-lite
+```
+
+
+
+
+
+
+### v1.3.18
+
+Some ops have different implementations on different devices. Lots of macros and type checks are scattered in several files, which makes the code hard to maintain. For example:
+
+```c++
+ if (input.device().is_cuda()) {
+#ifdef MMCV_WITH_CUDA
+ CHECK_CUDA_INPUT(input);
+ CHECK_CUDA_INPUT(rois);
+ CHECK_CUDA_INPUT(output);
+ CHECK_CUDA_INPUT(argmax_y);
+ CHECK_CUDA_INPUT(argmax_x);
+
+ roi_align_forward_cuda(input, rois, output, argmax_y, argmax_x,
+ aligned_height, aligned_width, spatial_scale,
+ sampling_ratio, pool_mode, aligned);
+#else
+ AT_ERROR("RoIAlign is not compiled with GPU support");
+#endif
+ } else {
+ CHECK_CPU_INPUT(input);
+ CHECK_CPU_INPUT(rois);
+ CHECK_CPU_INPUT(output);
+ CHECK_CPU_INPUT(argmax_y);
+ CHECK_CPU_INPUT(argmax_x);
+ roi_align_forward_cpu(input, rois, output, argmax_y, argmax_x,
+ aligned_height, aligned_width, spatial_scale,
+ sampling_ratio, pool_mode, aligned);
+ }
+```
+
+Registry and dispatcher are added to manage these implementations.
+
+```c++
+
+void ROIAlignForwardCUDAKernelLauncher(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned);
+
+void roi_align_forward_cuda(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned) {
+ ROIAlignForwardCUDAKernelLauncher(
+ input, rois, output, argmax_y, argmax_x, aligned_height, aligned_width,
+ spatial_scale, sampling_ratio, pool_mode, aligned);
+}
+
+// register cuda implementation
+void roi_align_forward_impl(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned);
+REGISTER_DEVICE_IMPL(roi_align_forward_impl, CUDA, roi_align_forward_cuda);
+
+// roi_align.cpp
+// use the dispatcher to invoke different implementation depending on device type of input tensors.
+void roi_align_forward_impl(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned) {
+ DISPATCH_DEVICE_IMPL(roi_align_forward_impl, input, rois, output, argmax_y,
+ argmax_x, aligned_height, aligned_width, spatial_scale,
+ sampling_ratio, pool_mode, aligned);
+}
+
+```
+
+### v1.3.11
+
+In order to flexibly support more backends and hardwares like `NVIDIA GPUs` and `AMD GPUs`, the directory of `mmcv/ops/csrc` is refactored. Note that this refactoring will not affect the usage in API. For related information, please refer to [PR1206](https://github.com/open-mmlab/mmcv/pull/1206).
+
+The original directory was organized as follows.
+
+```
+.
+├── common_cuda_helper.hpp
+├── ops_cuda_kernel.cuh
+├── pytorch_cpp_helper.hpp
+├── pytorch_cuda_helper.hpp
+├── parrots_cpp_helper.hpp
+├── parrots_cuda_helper.hpp
+├── parrots_cudawarpfunction.cuh
+├── onnxruntime
+│ ├── onnxruntime_register.h
+│ ├── onnxruntime_session_options_config_keys.h
+│ ├── ort_mmcv_utils.h
+│ ├── ...
+│ ├── onnx_ops.h
+│ └── cpu
+│ ├── onnxruntime_register.cpp
+│ ├── ...
+│ └── onnx_ops_impl.cpp
+├── parrots
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_cuda.cu
+│ ├── ops_parrots.cpp
+│ └── ops_pytorch.h
+├── pytorch
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_cuda.cu
+│ ├── pybind.cpp
+└── tensorrt
+ ├── trt_cuda_helper.cuh
+ ├── trt_plugin_helper.hpp
+ ├── trt_plugin.hpp
+ ├── trt_serialize.hpp
+ ├── ...
+ ├── trt_ops.hpp
+ └── plugins
+ ├── trt_cuda_helper.cu
+ ├── trt_plugin.cpp
+ ├── ...
+ ├── trt_ops.cpp
+ └── trt_ops_kernel.cu
+```
+
+After refactored, it is organized as follows.
+
+```
+.
+├── common
+│ ├── box_iou_rotated_utils.hpp
+│ ├── parrots_cpp_helper.hpp
+│ ├── parrots_cuda_helper.hpp
+│ ├── pytorch_cpp_helper.hpp
+│ ├── pytorch_cuda_helper.hpp
+│ └── cuda
+│ ├── common_cuda_helper.hpp
+│ ├── parrots_cudawarpfunction.cuh
+│ ├── ...
+│ └── ops_cuda_kernel.cuh
+├── onnxruntime
+│ ├── onnxruntime_register.h
+│ ├── onnxruntime_session_options_config_keys.h
+│ ├── ort_mmcv_utils.h
+│ ├── ...
+│ ├── onnx_ops.h
+│ └── cpu
+│ ├── onnxruntime_register.cpp
+│ ├── ...
+│ └── onnx_ops_impl.cpp
+├── parrots
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_parrots.cpp
+│ └── ops_pytorch.h
+├── pytorch
+│ ├── info.cpp
+│ ├── pybind.cpp
+│ ├── ...
+│ ├── ops.cpp
+│ └── cuda
+│ ├── ...
+│ └── ops_cuda.cu
+└── tensorrt
+ ├── trt_cuda_helper.cuh
+ ├── trt_plugin_helper.hpp
+ ├── trt_plugin.hpp
+ ├── trt_serialize.hpp
+ ├── ...
+ ├── trt_ops.hpp
+ └── plugins
+ ├── trt_cuda_helper.cu
+ ├── trt_plugin.cpp
+ ├── ...
+ ├── trt_ops.cpp
+ └── trt_ops_kernel.cu
+```
diff --git a/FoodSeg103/demo/mmcv/docs/en/conf.py b/FoodSeg103/demo/mmcv/docs/en/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..471bd225adeede01787a236ac0d370d0056b960a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/conf.py
@@ -0,0 +1,215 @@
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+
+import pytorch_sphinx_theme
+from sphinx.builders.html import StandaloneHTMLBuilder
+
+sys.path.insert(0, os.path.abspath('../..'))
+
+version_file = '../../mmcv/version.py'
+with open(version_file) as f:
+ exec(compile(f.read(), version_file, 'exec'))
+__version__ = locals()['__version__']
+
+# -- Project information -----------------------------------------------------
+
+project = 'mmcv'
+copyright = '2018-2022, OpenMMLab'
+author = 'MMCV Authors'
+
+# The short X.Y version
+version = __version__
+# The full version, including alpha/beta/rc tags
+release = __version__
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.autosummary',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.viewcode',
+ 'sphinx_markdown_tables',
+ 'myst_parser',
+ 'sphinx_copybutton',
+] # yapf: disable
+
+myst_heading_anchors = 4
+
+myst_enable_extensions = ['colon_fence']
+
+# Configuration for intersphinx
+intersphinx_mapping = {
+ 'python': ('https://docs.python.org/3', None),
+ 'numpy': ('https://numpy.org/doc/stable', None),
+ 'torch': ('https://pytorch.org/docs/stable/', None),
+ 'mmengine': ('https://mmengine.readthedocs.io/en/latest', None),
+}
+
+autodoc_mock_imports = ['mmcv._ext', 'mmcv.utils.ext_loader', 'torchvision']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+source_suffix = {
+ '.rst': 'restructuredtext',
+ '.md': 'markdown',
+}
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+# html_theme = 'sphinx_rtd_theme'
+html_theme = 'pytorch_sphinx_theme'
+html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()]
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#
+html_theme_options = {
+ 'menu': [
+ {
+ 'name': 'GitHub',
+ 'url': 'https://github.com/open-mmlab/mmcv'
+ },
+ ],
+ # Specify the language of shared menu
+ 'menu_lang': 'en',
+}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+html_css_files = ['css/readthedocs.css']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself. Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'mmcvdoc'
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+ # The paper size ('letterpaper' or 'a4paper').
+ #
+ # 'papersize': 'letterpaper',
+
+ # The font size ('10pt', '11pt' or '12pt').
+ #
+ # 'pointsize': '10pt',
+
+ # Additional stuff for the LaTeX preamble.
+ #
+ # 'preamble': '',
+
+ # Latex figure (float) alignment
+ #
+ # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (master_doc, 'mmcv.tex', 'mmcv Documentation', 'MMCV Contributors',
+ 'manual'),
+]
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [(master_doc, 'mmcv', 'mmcv Documentation', [author], 1)]
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (master_doc, 'mmcv', 'mmcv Documentation', author, 'mmcv',
+ 'One line description of project.', 'Miscellaneous'),
+]
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+# set priority when building html
+StandaloneHTMLBuilder.supported_image_types = [
+ 'image/svg+xml', 'image/gif', 'image/png', 'image/jpeg'
+]
+# -- Extension configuration -------------------------------------------------
+# Ignore >>> when copying code
+copybutton_prompt_text = r'>>> |\.\.\. '
+copybutton_prompt_is_regexp = True
diff --git a/FoodSeg103/demo/mmcv/docs/en/deployment/mmcv_ops_definition.md b/FoodSeg103/demo/mmcv/docs/en/deployment/mmcv_ops_definition.md
new file mode 100644
index 0000000000000000000000000000000000000000..37097259bdba7ed10fcef03ec227a453bcdc95c4
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/deployment/mmcv_ops_definition.md
@@ -0,0 +1,686 @@
+# MMCV Operators
+
+To make custom operators in MMCV more standard, precise definitions of each operator are listed in this document.
+
+
+
+- [MMCV Operators](#mmcv-operators)
+ - [MMCVBorderAlign](#mmcvborderalign)
+ - [Description](#description)
+ - [Parameters](#parameters)
+ - [Inputs](#inputs)
+ - [Outputs](#outputs)
+ - [Type Constraints](#type-constraints)
+ - [MMCVCARAFE](#mmcvcarafe)
+ - [Description](#description-1)
+ - [Parameters](#parameters-1)
+ - [Inputs](#inputs-1)
+ - [Outputs](#outputs-1)
+ - [Type Constraints](#type-constraints-1)
+ - [MMCVCAWeight](#mmcvcaweight)
+ - [Description](#description-2)
+ - [Parameters](#parameters-2)
+ - [Inputs](#inputs-2)
+ - [Outputs](#outputs-2)
+ - [Type Constraints](#type-constraints-2)
+ - [MMCVCAMap](#mmcvcamap)
+ - [Description](#description-3)
+ - [Parameters](#parameters-3)
+ - [Inputs](#inputs-3)
+ - [Outputs](#outputs-3)
+ - [Type Constraints](#type-constraints-3)
+ - [MMCVCornerPool](#mmcvcornerpool)
+ - [Description](#description-4)
+ - [Parameters](#parameters-4)
+ - [Inputs](#inputs-4)
+ - [Outputs](#outputs-4)
+ - [Type Constraints](#type-constraints-4)
+ - [MMCVDeformConv2d](#mmcvdeformconv2d)
+ - [Description](#description-5)
+ - [Parameters](#parameters-5)
+ - [Inputs](#inputs-5)
+ - [Outputs](#outputs-5)
+ - [Type Constraints](#type-constraints-5)
+ - [MMCVModulatedDeformConv2d](#mmcvmodulateddeformconv2d)
+ - [Description](#description-6)
+ - [Parameters](#parameters-6)
+ - [Inputs](#inputs-6)
+ - [Outputs](#outputs-6)
+ - [Type Constraints](#type-constraints-6)
+ - [MMCVDeformRoIPool](#mmcvdeformroipool)
+ - [Description](#description-7)
+ - [Parameters](#parameters-7)
+ - [Inputs](#inputs-7)
+ - [Outputs](#outputs-7)
+ - [Type Constraints](#type-constraints-7)
+ - [MMCVMaskedConv2d](#mmcvmaskedconv2d)
+ - [Description](#description-8)
+ - [Parameters](#parameters-8)
+ - [Inputs](#inputs-8)
+ - [Outputs](#outputs-8)
+ - [Type Constraints](#type-constraints-8)
+ - [MMCVPSAMask](#mmcvpsamask)
+ - [Description](#description-9)
+ - [Parameters](#parameters-9)
+ - [Inputs](#inputs-9)
+ - [Outputs](#outputs-9)
+ - [Type Constraints](#type-constraints-9)
+ - [NonMaxSuppression](#nonmaxsuppression)
+ - [Description](#description-10)
+ - [Parameters](#parameters-10)
+ - [Inputs](#inputs-10)
+ - [Outputs](#outputs-10)
+ - [Type Constraints](#type-constraints-10)
+ - [MMCVRoIAlign](#mmcvroialign)
+ - [Description](#description-11)
+ - [Parameters](#parameters-11)
+ - [Inputs](#inputs-11)
+ - [Outputs](#outputs-11)
+ - [Type Constraints](#type-constraints-11)
+ - [MMCVRoIAlignRotated](#mmcvroialignrotated)
+ - [Description](#description-12)
+ - [Parameters](#parameters-12)
+ - [Inputs](#inputs-12)
+ - [Outputs](#outputs-12)
+ - [Type Constraints](#type-constraints-12)
+ - [grid_sampler\*](#grid_sampler)
+ - [Description](#description-13)
+ - [Parameters](#parameters-13)
+ - [Inputs](#inputs-13)
+ - [Outputs](#outputs-13)
+ - [Type Constraints](#type-constraints-13)
+ - [cummax\*](#cummax)
+ - [Description](#description-14)
+ - [Parameters](#parameters-14)
+ - [Inputs](#inputs-14)
+ - [Outputs](#outputs-14)
+ - [Type Constraints](#type-constraints-14)
+ - [cummin\*](#cummin)
+ - [Description](#description-15)
+ - [Parameters](#parameters-15)
+ - [Inputs](#inputs-15)
+ - [Outputs](#outputs-15)
+ - [Type Constraints](#type-constraints-15)
+ - [Reminders](#reminders)
+
+
+
+## MMCVBorderAlign
+
+### Description
+
+Applies `border_align` over the input feature based on predicted bboxes.
+
+For each border line (e.g. top, left, bottom or right) of each box,
+border_align does the following:
+
+- uniformly samples `pool_size`+1 positions on this line, involving the start and end points.
+- the corresponding features on these points are computed by bilinear interpolation.
+- max pooling over all the `pool_size`+1 positions are used for computing pooled feature.
+
+Read [BorderDet: Border Feature for Dense Object Detection](ttps://arxiv.org/abs/2007.11056) for more detailed information.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ----- | ----------- | ----------------------------------------------------------------------------------- |
+| `int` | `pool_size` | number of positions sampled over the boxes' borders(e.g. top, bottom, left, right). |
+
+### Inputs
+
+
+input : T
+Features with shape [N,4C,H,W]. Channels ranged in [0,C), [C,2C), [2C,3C), [3C,4C) represent the top, left, bottom, right features respectively
+boxes : T
+Boxes with shape [N,H*W,4]. Coordinate format (x1,y1,x2,y2).
+
+
+### Outputs
+
+
+output : T
+Pooled features with shape [N,C,H*W,4]. The order is(top,left,bottom,right) for the last dimension.
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVCARAFE
+
+### Description
+
+CARAFE operator performs feature upsampling.
+
+Read [CARAFE: Content-Aware ReAssembly of FEatures](https://arxiv.org/abs/1905.02188) for more detailed information.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ------- | -------------- | --------------------------------------------- |
+| `int` | `kernel_size` | reassemble kernel size, should be odd integer |
+| `int` | `group_size` | reassemble group size |
+| `float` | `scale_factor` | upsample ratio(>=1) |
+
+### Inputs
+
+
+features : T
+Input features. 4-D tensor of shape (N, C, H, W). N is the batch size.
+masks : T
+The input mask
+
+
+### Outputs
+
+
+output : T
+The upsampled features. 4-D tensor of shape (N, C, H * scale_factor, W * scale_factor). N is the batch size.
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVCAWeight
+
+### Description
+
+Operator for Criss-Cross Attention
+Read [CCNet: Criss-Cross Attention for SemanticSegmentation](https://arxiv.org/pdf/1811.11721.pdf) for more detailed information.
+
+### Parameters
+
+None
+
+### Inputs
+
+
+t : T
+The query matrix of shape (N, C', H, W).
+f : T
+The key matrix of shape (N, C', H, W).
+
+
+### Outputs
+
+
+weight : T
+The attention map of shape (N, H+W-1, H, W).
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVCAMap
+
+### Description
+
+Operator for Criss-Cross Attention
+Read [CCNet: Criss-Cross Attention for SemanticSegmentation](https://arxiv.org/pdf/1811.11721.pdf) for more detailed information.
+
+### Parameters
+
+None
+
+### Inputs
+
+
+weight : T
+Output from the operator MMCVCAWeight.
+value : T
+The value matrix of shape (N, C, H, W).
+
+
+### Outputs
+
+
+output : T
+Output tensor of aggregated contextual information
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVCornerPool
+
+### Description
+
+Perform CornerPool on `input` features. Read [CornerNet -- Detecting Objects as Paired Keypoints](https://arxiv.org/abs/1808.01244) for more details.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ----- | --------- | ---------------------------------------------------------------- |
+| `int` | `mode` | corner pool mode, (0: `top`, 1: `bottom`, 2: `left`, 3: `right`) |
+
+### Inputs
+
+
+input : T
+Input features. 4-D tensor of shape (N, C, H, W). N is the batch size.
+
+
+### Outputs
+
+
+output : T
+The pooled features. 4-D tensor of shape (N, C, H, W).
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVDeformConv2d
+
+### Description
+
+Applies a deformable 2D convolution over an input signal composed of several input planes.
+
+Read [Deformable Convolutional Networks](https://arxiv.org/pdf/1703.06211.pdf) for detail.
+
+### Parameters
+
+| Type | Parameter | Description |
+| -------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| `list of ints` | `stride` | The stride of the convolving kernel, (sH, sW). Defaults to `(1, 1)`. |
+| `list of ints` | `padding` | Paddings on both sides of the input, (padH, padW). Defaults to `(0, 0)`. |
+| `list of ints` | `dilation` | The spacing between kernel elements (dH, dW). Defaults to `(1, 1)`. |
+| `int` | `groups` | Split input into groups. `input_channel` should be divisible by the number of groups. Defaults to `1`. |
+| `int` | `deformable_groups` | Groups of deformable offset. Defaults to `1`. |
+| `int` | `bias` | Whether to add a learnable bias to the output. `0` stands for `False` and `1` stands for `True`. Defaults to `0`. |
+| `int` | `im2col_step` | Groups of deformable offset. Defaults to `32`. |
+
+### Inputs
+
+
+input : T
+Input feature; 4-D tensor of shape (N, C, inH, inW), where N is the batch size, C is the number of channels, inH and inW are the height and width of the data.
+offset : T
+Input offset; 4-D tensor of shape (N, deformable_group* 2* kH* kW, outH, outW), where kH and kW are the height and width of weight, outH and outW is the height and width of offset and output.
+weight : T
+Input weight; 4-D tensor of shape (output_channel, input_channel, kH, kW).
+
+
+### Outputs
+
+
+output : T
+Output feature; 4-D tensor of shape (N, output_channel, outH, outW).
+
+
+### Type Constraints
+
+- T:tensor(float32, Linear)
+
+## MMCVModulatedDeformConv2d
+
+### Description
+
+Perform Modulated Deformable Convolution on input feature, read [Deformable ConvNets v2: More Deformable, Better Results](https://arxiv.org/abs/1811.11168?from=timeline) for detail.
+
+### Parameters
+
+| Type | Parameter | Description |
+| -------------- | ------------------- | ------------------------------------------------------------------------------------- |
+| `list of ints` | `stride` | The stride of the convolving kernel. (sH, sW) |
+| `list of ints` | `padding` | Paddings on both sides of the input. (padH, padW) |
+| `list of ints` | `dilation` | The spacing between kernel elements. (dH, dW) |
+| `int` | `deformable_groups` | Groups of deformable offset. |
+| `int` | `groups` | Split input into groups. `input_channel` should be divisible by the number of groups. |
+
+### Inputs
+
+
+feature : T
+Input feature; 4-D tensor of shape (N, C, inH, inW), where N is the batch size, C is the number of channels, inH and inW are the height and width of the data.
+offset : T
+Input offset; 4-D tensor of shape (N, deformable_group* 2* kH* kW, outH, outW), where kH and kW are the height and width of weight, outH and outW are the height and width of offset and output.
+mask : T
+Input mask; 4-D tensor of shape (N, deformable_group* kH* kW, outH, outW), where kH and kW are the height and width of weight, outH and outW are the height and width of offset and output.
+weight] : T
+Input weight; 4-D tensor of shape (output_channel, input_channel, kH, kW).
+bias : T, optional
+Input bias; 1-D tensor of shape (output_channel).
+
+
+### Outputs
+
+
+output : T
+Output feature; 4-D tensor of shape (N, output_channel, outH, outW).
+
+
+### Type Constraints
+
+- T:tensor(float32, Linear)
+
+## MMCVDeformRoIPool
+
+### Description
+
+Deformable roi pooling layer
+
+### Parameters
+
+| Type | Parameter | Description |
+| ------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
+| `int` | `output_height` | height of output roi |
+| `int` | `output_width` | width of output roi |
+| `float` | `spatial_scale` | used to scale the input boxes |
+| `int` | `sampling_ratio` | number of input samples to take for each output sample. `0` means to take samples densely for current models. |
+| `float` | `gamma` | gamma |
+
+### Inputs
+
+
+input : T
+Input feature map; 4D tensor of shape (N, C, H, W), where N is the batch size, C is the numbers of channels, H and W are the height and width of the data.
+rois : T
+RoIs (Regions of Interest) to pool over; 2-D tensor of shape (num_rois, 5) given as [[batch_index, x1, y1, x2, y2], ...]. The RoIs' coordinates are the coordinate system of input.
+offset : T
+offset of height and width. Defaults to a tensor of zero
+
+
+### Outputs
+
+
+feat : T
+RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element feat[r-1] is a pooled feature map corresponding to the r-th RoI RoIs[r-1].
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVMaskedConv2d
+
+### Description
+
+Performs a masked 2D convolution from PixelRNN
+Read [Pixel Recurrent Neural Networks](https://arxiv.org/abs/1601.06759) for more detailed information.
+
+### Parameters
+
+| Type | Parameter | Description |
+| -------------- | --------- | -------------------------------------------------------------------------------- |
+| `list of ints` | `stride` | The stride of the convolving kernel. (sH, sW). **Only support stride=1 in mmcv** |
+| `list of ints` | `padding` | Paddings on both sides of the input. (padH, padW). Defaults to `(0, 0)`. |
+
+### Inputs
+
+
+features : T
+Input features; 4D tensor of shape (N, C, H, W), where N is the batch size, C is the numbers of channels, H and W are the height and width of the data.
+mask : T
+Input mask; 3D tensor of shape (N, H, W)
+weight : T
+The learnable weights of the module
+bias : T
+The learnable bias of the module
+
+
+### Outputs
+
+
+output : T
+The output convolved feature
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVPSAMask
+
+### Description
+
+An operator from PSANet.
+
+Read [PSANet: Point-wise Spatial Attention Network for Scene Parsing](https://hszhao.github.io/papers/eccv18_psanet.pdf) for more detailed information.
+
+### Parameters
+
+| Type | Parameter | Description |
+| -------------- | ----------- | -------------------------------------------- |
+| `int` | `psa_type` | `0` means collect and `1` means `distribute` |
+| `list of ints` | `mask_size` | The size of mask |
+
+### Inputs
+
+
+input : T
+Input feature; 4D tensor of shape (N, C, H, W), where N is the batch size, C is the numbers of channels, H and W are the height and width of the data.
+
+
+### Outputs
+
+
+output : T
+Output tensor of shape (N, H * W, H, W)
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## NonMaxSuppression
+
+### Description
+
+Filter out boxes has high IoU overlap with previously selected boxes or low score. Output the indices of valid boxes.
+
+Note this definition is slightly different with [onnx: NonMaxSuppression](https://github.com/onnx/onnx/blob/main/docs/Operators.md#nonmaxsuppression)
+
+### Parameters
+
+| Type | Parameter | Description |
+| ------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
+| `int` | `center_point_box` | 0 - the box data is supplied as \[y1, x1, y2, x2\], 1-the box data is supplied as \[x_center, y_center, width, height\]. |
+| `int` | `max_output_boxes_per_class` | The maximum number of boxes to be selected per batch per class. Default to 0, number of output boxes equal to number of input boxes. |
+| `float` | `iou_threshold` | The threshold for deciding whether boxes overlap too much with respect to IoU. Value range \[0, 1\]. Default to 0. |
+| `float` | `score_threshold` | The threshold for deciding when to remove boxes based on score. |
+| `int` | `offset` | 0 or 1, boxes' width or height is (x2 - x1 + offset). |
+
+### Inputs
+
+
+boxes : T
+Input boxes. 3-D tensor of shape (num_batches, spatial_dimension, 4).
+scores : T
+Input scores. 3-D tensor of shape (num_batches, num_classes, spatial_dimension).
+
+
+### Outputs
+
+
+indices : tensor(int32, Linear)
+Selected indices. 2-D tensor of shape (num_selected_indices, 3) as [[batch_index, class_index, box_index], ...].
+num_selected_indices=num_batches* num_classes* min(max_output_boxes_per_class, spatial_dimension).
+All invalid indices will be filled with -1.
+
+
+### Type Constraints
+
+- T:tensor(float32, Linear)
+
+## MMCVRoIAlign
+
+### Description
+
+Perform RoIAlign on output feature, used in bbox_head of most two-stage detectors.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
+| `int` | `output_height` | height of output roi |
+| `int` | `output_width` | width of output roi |
+| `float` | `spatial_scale` | used to scale the input boxes |
+| `int` | `sampling_ratio` | number of input samples to take for each output sample. `0` means to take samples densely for current models. |
+| `str` | `mode` | pooling mode in each bin. `avg` or `max` |
+| `int` | `aligned` | If `aligned=0`, use the legacy implementation in MMDetection. Else, align the results more perfectly. |
+
+### Inputs
+
+
+input : T
+Input feature map; 4D tensor of shape (N, C, H, W), where N is the batch size, C is the numbers of channels, H and W are the height and width of the data.
+rois : T
+RoIs (Regions of Interest) to pool over; 2-D tensor of shape (num_rois, 5) given as [[batch_index, x1, y1, x2, y2], ...]. The RoIs' coordinates are the coordinate system of input.
+
+
+### Outputs
+
+
+feat : T
+RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element feat[r-1] is a pooled feature map corresponding to the r-th RoI RoIs[r-1].
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## MMCVRoIAlignRotated
+
+### Description
+
+Perform RoI align pooling for rotated proposals
+
+### Parameters
+
+| Type | Parameter | Description |
+| ------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
+| `int` | `output_height` | height of output roi |
+| `int` | `output_width` | width of output roi |
+| `float` | `spatial_scale` | used to scale the input boxes |
+| `int` | `sampling_ratio` | number of input samples to take for each output sample. `0` means to take samples densely for current models. |
+| `str` | `mode` | pooling mode in each bin. `avg` or `max` |
+| `int` | `aligned` | If `aligned=0`, use the legacy implementation in MMDetection. Else, align the results more perfectly. |
+| `int` | `clockwise` | If `aligned=0`, use the legacy implementation in MMDetection. Else, align the results more perfectly. |
+
+### Inputs
+
+
+features : T
+Input feature map; 4D tensor of shape (N, C, H, W)
+rois : T
+RoIs (Regions of Interest) to pool over; 2-D tensor of shape (num_rois, 5) given as [[batch_index, x1, y1, x2, y2], ...]. The RoIs' coordinates are the coordinate system of input.
+
+
+### Outputs
+
+
+RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element feat[r-1] is a pooled feature map corresponding to the r-th RoI RoIs[r-1].
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## grid_sampler\*
+
+### Description
+
+Perform sample from `input` with pixel locations from `grid`.
+
+Check [torch.nn.functional.grid_sample](https://pytorch.org/docs/stable/generated/torch.nn.functional.grid_sample.html?highlight=grid_sample#torch.nn.functional.grid_sample) for more information.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ----- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `int` | `interpolation_mode` | Interpolation mode to calculate output values. (0: `bilinear` , 1: `nearest`) |
+| `int` | `padding_mode` | Padding mode for outside grid values. (0: `zeros`, 1: `border`, 2: `reflection`) |
+| `int` | `align_corners` | If `align_corners=1`, the extrema (`-1` and `1`) are considered as referring to the center points of the input's corner pixels. If `align_corners=0`, they are instead considered as referring to the corner points of the input's corner pixels, making the sampling more resolution agnostic. |
+
+### Inputs
+
+
+input : T
+Input feature; 4-D tensor of shape (N, C, inH, inW), where N is the batch size, C is the numbers of channels, inH and inW are the height and width of the data.
+grid : T
+Input offset; 4-D tensor of shape (N, outH, outW, 2), where outH and outW are the height and width of offset and output.
+
+
+### Outputs
+
+
+output : T
+Output feature; 4-D tensor of shape (N, C, outH, outW).
+
+
+### Type Constraints
+
+- T:tensor(float32, Linear)
+
+## cummax\*
+
+### Description
+
+Returns a tuple (`values`, `indices`) where `values` is the cumulative maximum elements of `input` in the dimension `dim`. And `indices` is the index location of each maximum value found in the dimension `dim`. Read [torch.cummax](https://pytorch.org/docs/stable/generated/torch.cummax.html) for more details.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ----- | --------- | -------------------------------------- |
+| `int` | `dim` | the dimension to do the operation over |
+
+### Inputs
+
+
+input : T
+The input tensor with various shapes. Tensor with empty element is also supported.
+
+
+### Outputs
+
+
+output : T
+Output the cumulative maximum elements of `input` in the dimension `dim`, with the same shape and dtype as `input`.
+indices : tensor(int64)
+Output the index location of each cumulative maximum value found in the dimension `dim`, with the same shape as `input`.
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## cummin\*
+
+### Description
+
+Returns a tuple (`values`, `indices`) where `values` is the cumulative minimum elements of `input` in the dimension `dim`. And `indices` is the index location of each minimum value found in the dimension `dim`. Read [torch.cummin](https://pytorch.org/docs/stable/generated/torch.cummin.html) for more details.
+
+### Parameters
+
+| Type | Parameter | Description |
+| ----- | --------- | -------------------------------------- |
+| `int` | `dim` | the dimension to do the operation over |
+
+### Inputs
+
+
+input : T
+The input tensor with various shapes. Tensor with empty element is also supported.
+
+
+### Outputs
+
+
+output : T
+Output the cumulative minimum elements of `input` in the dimension `dim`, with the same shape and dtype as `input`.
+indices : tensor(int64)
+Output the index location of each cumulative minimum value found in the dimension `dim`, with the same shape as `input`.
+
+
+### Type Constraints
+
+- T:tensor(float32)
+
+## Reminders
+
+- Operators endwith `*` are defined in Torch and are included here for the conversion to ONNX.
diff --git a/FoodSeg103/demo/mmcv/docs/en/docutils.conf b/FoodSeg103/demo/mmcv/docs/en/docutils.conf
new file mode 100644
index 0000000000000000000000000000000000000000..0c00c84688701117f231fd0c8ec295fb747b7d8f
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/docutils.conf
@@ -0,0 +1,2 @@
+[html writers]
+table_style: colwidths-auto
diff --git a/FoodSeg103/demo/mmcv/docs/en/faq.md b/FoodSeg103/demo/mmcv/docs/en/faq.md
new file mode 100644
index 0000000000000000000000000000000000000000..02d31c233a9ff66d5e8f3f288b5d5f64e5c5298c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/faq.md
@@ -0,0 +1,93 @@
+## Frequently Asked Questions
+
+We list some common troubles faced by many users and their corresponding solutions here.
+Feel free to enrich the list if you find any frequent issues and have ways to help others to solve them.
+
+### Installation
+
+- KeyError: "xxx: 'yyy is not in the zzz registry'"
+
+ The registry mechanism will be triggered only when the file of the module is imported.
+ So you need to import that file somewhere. More details can be found at [KeyError: "MaskRCNN: 'RefineRoIHead is not in the models registry'"](https://github.com/open-mmlab/mmdetection/issues/5974).
+
+- "No module named 'mmcv.ops'"; "No module named 'mmcv.\_ext'"
+
+ 1. Uninstall existing mmcv in the environment using `pip uninstall mmcv`
+ 2. Install mmcv-full following the [installation instruction](https://mmcv.readthedocs.io/en/latest/get_started/installation.html) or [Build MMCV from source](https://mmcv.readthedocs.io/en/latest/get_started/build.html)
+
+- "invalid device function" or "no kernel image is available for execution"
+
+ 1. Check the CUDA compute capability of you GPU
+ 2. Run `python mmdet/utils/collect_env.py` to check whether PyTorch, torchvision, and MMCV are built for the correct GPU architecture. You may need to set `TORCH_CUDA_ARCH_LIST` to reinstall MMCV. The compatibility issue could happen when using old GPUS, e.g., Tesla K80 (3.7) on colab.
+ 3. Check whether the running environment is the same as that when mmcv/mmdet is compiled. For example, you may compile mmcv using CUDA 10.0 bug run it on CUDA9.0 environments
+
+- "undefined symbol" or "cannot open xxx.so"
+
+ 1. If those symbols are CUDA/C++ symbols (e.g., libcudart.so or GLIBCXX), check
+ whether the CUDA/GCC runtimes are the same as those used for compiling mmcv
+ 2. If those symbols are Pytorch symbols (e.g., symbols containing caffe, aten, and TH), check whether the Pytorch version is the same as that used for compiling mmcv
+ 3. Run `python mmdet/utils/collect_env.py` to check whether PyTorch, torchvision, and MMCV are built by and running on the same environment
+
+- "RuntimeError: CUDA error: invalid configuration argument"
+
+ This error may be caused by the poor performance of GPU. Try to decrease the value of [THREADS_PER_BLOCK](https://github.com/open-mmlab/mmcv/blob/cac22f8cf5a904477e3b5461b1cc36856c2793da/mmcv/ops/csrc/common_cuda_helper.hpp#L10)
+ and recompile mmcv.
+
+- "RuntimeError: nms is not compiled with GPU support"
+
+ This error is because your CUDA environment is not installed correctly.
+ You may try to re-install your CUDA environment and then delete the build/ folder before re-compile mmcv.
+
+- "Segmentation fault"
+
+ 1. Check your GCC version and use GCC >= 5.4. This usually caused by the incompatibility between PyTorch and the environment (e.g., GCC \< 4.9 for PyTorch). We also recommend the users to avoid using GCC 5.5 because many feedbacks report that GCC 5.5 will cause "segmentation fault" and simply changing it to GCC 5.4 could solve the problem
+ 2. Check whether PyTorch is correctly installed and could use CUDA op, e.g. type the following command in your terminal and see whether they could correctly output results
+ ```shell
+ python -c 'import torch; print(torch.cuda.is_available())'
+ ```
+ 3. If PyTorch is correctly installed, check whether MMCV is correctly installed. If MMCV is correctly installed, then there will be no issue of the command
+ ```shell
+ python -c 'import mmcv; import mmcv.ops'
+ ```
+ 4. If MMCV and PyTorch are correctly installed, you can use `ipdb` to set breakpoints or directly add `print` to debug and see which part leads the `segmentation fault`
+
+- "libtorch_cuda_cu.so: cannot open shared object file"
+
+ `mmcv-full` depends on the share object but it can not be found. We can check whether the object exists in `~/miniconda3/envs/{environment-name}/lib/python3.7/site-packages/torch/lib` or try to re-install the PyTorch.
+
+- "fatal error C1189: #error: -- unsupported Microsoft Visual Studio version!"
+
+ If you are building mmcv-full on Windows and the version of CUDA is 9.2, you will probably encounter the error `"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt/host_config.h(133): fatal error C1189: #error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!"`, in which case you can use a lower version of Microsoft Visual Studio like vs2017.
+
+- "error: member "torch::jit::detail::ModulePolicy::all_slots" may not be initialized"
+
+ If your version of PyTorch is 1.5.0 and you are building mmcv-full on Windows, you will probably encounter the error `- torch/csrc/jit/api/module.h(474): error: member "torch::jit::detail::ModulePolicy::all_slots" may not be initialized`. The way to solve the error is to replace all the `static constexpr bool all_slots = false;` with `static bool all_slots = false;` at this file `https://github.com/pytorch/pytorch/blob/v1.5.0/torch/csrc/jit/api/module.h`. More details can be found at [member "torch::jit::detail::AttributePolicy::all_slots" may not be initialized](https://github.com/pytorch/pytorch/issues/39394).
+
+- "error: a member with an in-class initializer must be const"
+
+ If your version of PyTorch is 1.6.0 and you are building mmcv-full on Windows, you will probably encounter the error `"- torch/include\torch/csrc/jit/api/module.h(483): error: a member with an in-class initializer must be const"`. The way to solve the error is to replace all the `CONSTEXPR_EXCEPT_WIN_CUDA ` with `const` at `torch/include\torch/csrc/jit/api/module.h`. More details can be found at [Ninja: build stopped: subcommand failed](https://github.com/open-mmlab/mmcv/issues/575).
+
+- "error: member "torch::jit::ProfileOptionalOp::Kind" may not be initialized"
+
+ If your version of PyTorch is 1.7.0 and you are building mmcv-full on Windows, you will probably encounter the error `torch/include\torch/csrc/jit/ir/ir.h(1347): error: member "torch::jit::ProfileOptionalOp::Kind" may not be initialized`. The way to solve the error needs to modify several local files of PyTorch:
+
+ - delete `static constexpr Symbol Kind = ::c10::prim::profile;` and `tatic constexpr Symbol Kind = ::c10::prim::profile_optional;` at `torch/include\torch/csrc/jit/ir/ir.h`
+ - replace `explicit operator type&() { return *(this->value); }` with `explicit operator type&() { return *((type*)this->value); }` at `torch\include\pybind11\cast.h`
+ - replace all the `CONSTEXPR_EXCEPT_WIN_CUDA` with `const` at `torch/include\torch/csrc/jit/api/module.h`
+
+ More details can be found at [Ensure default extra_compile_args](https://github.com/pytorch/pytorch/pull/45956).
+
+- Compatibility issue between MMCV and MMDetection; "ConvWS is already registered in conv layer"
+
+ Please install the correct version of MMCV for the version of your MMDetection following the [installation instruction](https://mmdetection.readthedocs.io/en/latest/get_started.html#installation).
+
+### Usage
+
+- "RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one"
+
+ 1. This error indicates that your module has parameters that were not used in producing loss. This phenomenon may be caused by running different branches in your code in DDP mode. More datails at [Expected to have finished reduction in the prior iteration before starting a new one](https://github.com/pytorch/pytorch/issues/55582).
+ 2. You can set ` find_unused_parameters = True` in the config to solve the above problems or find those unused parameters manually
+
+- "RuntimeError: Trying to backward through the graph a second time"
+
+ `GradientCumulativeOptimizerHook` and `OptimizerHook` are both set which causes the `loss.backward()` to be called twice so `RuntimeError` was raised. We can only use one of these. More datails at [Trying to backward through the graph a second time](https://github.com/open-mmlab/mmcv/issues/1379).
diff --git a/FoodSeg103/demo/mmcv/docs/en/get_started/build.md b/FoodSeg103/demo/mmcv/docs/en/get_started/build.md
new file mode 100644
index 0000000000000000000000000000000000000000..742e60c35650da5b9ce5ff4e37e9b0cf4d4bf18b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/get_started/build.md
@@ -0,0 +1,349 @@
+## Build MMCV from source
+
+### Build mmcv
+
+Before installing mmcv, make sure that PyTorch has been successfully installed following the [PyTorch official installation guide](https://pytorch.org/get-started/locally/#start-locally). This can be verified using the following command
+
+```bash
+python -c 'import torch;print(torch.__version__)'
+```
+
+If version information is output, then PyTorch is installed.
+
+```{note}
+If you would like to use `opencv-python-headless` instead of `opencv-python`,
+e.g., in a minimum container environment or servers without GUI,
+you can first install it before installing MMCV to skip the installation of `opencv-python`.
+```
+
+#### Build on Linux
+
+1. Clone the repo
+
+ ```bash
+ git clone https://github.com/open-mmlab/mmcv.git
+ cd mmcv
+ ```
+
+2. Install `ninja` and `psutil` to speed up the compilation
+
+ ```bash
+ pip install -r requirements/optional.txt
+ ```
+
+3. Check the nvcc version (requires 9.2+. Skip if no GPU available.)
+
+ ```bash
+ nvcc --version
+ ```
+
+ If the above command outputs the following message, it means that the nvcc setting is OK, otherwise you need to set CUDA_HOME.
+
+ ```
+ nvcc: NVIDIA (R) Cuda compiler driver
+ Copyright (c) 2005-2020 NVIDIA Corporation
+ Built on Mon_Nov_30_19:08:53_PST_2020
+ Cuda compilation tools, release 11.2, V11.2.67
+ Build cuda_11.2.r11.2/compiler.29373293_0
+ ```
+
+ :::{note}
+ If you want to support ROCm, you can refer to [AMD ROCm](https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html) to install ROCm.
+ :::
+
+4. Check the gcc version (requires 5.4+)
+
+ ```bash
+ gcc --version
+ ```
+
+5. Start building (takes 10+ min)
+
+ ```bash
+ pip install -e . -v
+ ```
+
+6. Validate the installation
+
+ ```bash
+ python .dev_scripts/check_installation.py
+ ```
+
+ If no error is reported by the above command, the installation is successful. If there is an error reported, please check [Frequently Asked Questions](../faq.md) to see if there is already a solution.
+
+ If no solution is found, please feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
+
+#### Build on macOS
+
+```{note}
+If you are using a mac with apple silicon chip, install the PyTorch 1.13+, otherwise you will encounter the problem in [issues#2218](https://github.com/open-mmlab/mmcv/issues/2218).
+```
+
+1. Clone the repo
+
+ ```bash
+ git clone https://github.com/open-mmlab/mmcv.git
+ cd mmcv
+ ```
+
+2. Install `ninja` and `psutil` to speed up the compilation
+
+ ```bash
+ pip install -r requirements/optional.txt
+ ```
+
+3. Start building
+
+ ```bash
+ MMCV_WITH_OPS=1 pip install -e .
+ ```
+
+4. Validate the installation
+
+ ```bash
+ python .dev_scripts/check_installation.py
+ ```
+
+ If no error is reported by the above command, the installation is successful. If there is an error reported, please check [Frequently Asked Questions](../faq.md) to see if there is already a solution.
+
+ If no solution is found, please feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
+
+#### Build on Windows
+
+Building MMCV on Windows is a bit more complicated than that on Linux.
+The following instructions show how to get this accomplished.
+
+##### Prerequisite
+
+The following software is required for building MMCV on windows.
+Install them first.
+
+- [Git](https://git-scm.com/download/win)
+ - During installation, tick **add git to Path**.
+- [Visual Studio Community 2019](https://visualstudio.microsoft.com)
+ - A compiler for C++ and CUDA codes.
+- [Miniconda](https://docs.conda.io/en/latest/miniconda.html)
+ - Official distributions of Python should work too.
+- [CUDA 10.2](https://developer.nvidia.com/cuda-10.2-download-archive)
+ - Not required for building CPU version.
+ - Customize the installation if necessary. As a recommendation, skip the driver installation if a newer version is already installed.
+
+```{note}
+You should know how to set up environment variables, especially `Path`, on Windows. The following instruction relies heavily on this skill.
+```
+
+##### Common steps
+
+1. Launch Anaconda prompt from Windows Start menu
+
+ Do not use raw `cmd.exe` s instruction is based on PowerShell syntax.
+
+2. Create a new conda environment
+
+ ```powershell
+ (base) PS C:\Users\xxx> conda create --name mmcv python=3.7
+ (base) PS C:\Users\xxx> conda activate mmcv # make sure to activate environment before any operation
+ ```
+
+3. Install PyTorch. Choose a version based on your need.
+
+ ```powershell
+ # CUDA version
+ (mmcv) PS C:\Users\xxx> conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
+ # CPU version
+ (mmcv) PS C:\Users\xxx> conda install install pytorch torchvision cpuonly -c pytorch
+ ```
+
+4. Clone the repo
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx> git clone https://github.com/open-mmlab/mmcv.git
+ (mmcv) PS C:\Users\xxx\mmcv> cd mmcv
+ ```
+
+5. Install `ninja` and `psutil` to speed up the compilation
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> pip install -r requirements/optional.txt
+ ```
+
+6. Set up MSVC compiler
+
+ Set Environment variable, add `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64` to `PATH`, so that `cl.exe` will be available in prompt, as shown below.
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> cl
+ Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
+ Copyright (C) Microsoft Corporation. All rights reserved.
+
+ usage: cl [ option... ] filename... [ / link linkoption... ]
+ ```
+
+ For compatibility, we use the x86-hosted and x64-targeted compiler. note `Hostx86\x64` in the path.
+
+ You may want to change the system language to English because pytorch will parse text output from `cl.exe` to check its version. However only utf-8 is recognized. Navigate to Control Panel -> Region -> Administrative -> Language for Non-Unicode programs and change it to English.
+
+##### Build and install MMCV
+
+mmcv can be built in two ways:
+
+1. Full version (CPU ops)
+
+ Module `ops` will be compiled as a pytorch extension, but only x86 code will be compiled. The compiled ops can be executed on CPU only.
+
+2. Full version (CUDA ops)
+
+ Both x86 and CUDA codes of `ops` module will be compiled. The compiled version can be run on both CPU and CUDA-enabled GPU (if implemented).
+
+###### CPU version
+
+Build and install
+
+```powershell
+(mmcv) PS C:\Users\xxx\mmcv> python setup.py build_ext
+(mmcv) PS C:\Users\xxx\mmcv> python setup.py develop
+```
+
+###### GPU version
+
+1. Make sure `CUDA_PATH` or `CUDA_HOME` is already set in `envs` via `ls env:`, desired output is shown as below:
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> ls env:
+
+ Name Value
+ ---- -----
+ CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
+ CUDA_PATH_V10_1 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
+ CUDA_PATH_V10_2 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
+ ```
+
+ This should already be done by CUDA installer. If not, or you have multiple version of CUDA toolkit installed, set it with
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
+ # OR
+ (mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = $env:CUDA_PATH_V10_2 # if CUDA_PATH_V10_2 is in envs:
+ ```
+
+2. Set CUDA target arch
+
+ ```shell
+ # Here you need to change to the target architecture corresponding to your GPU
+ (mmcv) PS C:\Users\xxx\mmcv> $env:TORCH_CUDA_ARCH_LIST="7.5"
+ ```
+
+ :::{note}
+ Check your the compute capability of your GPU from [here](https://developer.nvidia.com/cuda-gpus).
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> &"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite\deviceQuery.exe"
+ Device 0: "NVIDIA GeForce GTX 1660 SUPER"
+ CUDA Driver Version / Runtime Version 11.7 / 11.1
+ CUDA Capability Major/Minor version number: 7.5
+ ```
+
+ The 7.5 above indicates the target architecture. Note: You need to replace v10.2 with your CUDA version in the above command.
+ :::
+
+3. Build and install
+
+ ```powershell
+ # build
+ python setup.py build_ext # if success, cl will be launched to compile ops
+ # install
+ python setup.py develop
+ ```
+
+ ```{note}
+ If you are compiling against PyTorch 1.6.0, you might meet some errors from PyTorch as described in [this issue](https://github.com/pytorch/pytorch/issues/42467). Follow [this pull request](https://github.com/pytorch/pytorch/pull/43380/files) to modify the source code in your local PyTorch installation.
+ ```
+
+##### Validate installation
+
+```powershell
+(mmcv) PS C:\Users\xxx\mmcv> python .dev_scripts/check_installation.py
+```
+
+If no error is reported by the above command, the installation is successful. If there is an error reported, please check [Frequently Asked Questions](../faq.md) to see if there is already a solution.
+If no solution is found, please feel free to open an [issue](https://github.com/open-mmlab/mmcv/issues).
+
+### Build mmcv-lite
+
+If you need to use PyTorch-related modules, make sure PyTorch has been successfully installed in your environment by referring to the [PyTorch official installation guide](https://github.com/pytorch/pytorch#installation).
+
+1. Clone the repo
+
+ ```bash
+ git clone https://github.com/open-mmlab/mmcv.git
+ cd mmcv
+ ```
+
+2. Start building
+
+ ```bash
+ MMCV_WITH_OPS=0 pip install -e . -v
+ ```
+
+3. Validate installation
+
+ ```bash
+ python -c 'import mmcv;print(mmcv.__version__)'
+ ```
+
+### Build mmcv-full on Cambricon MLU Devices
+
+#### Install torch_mlu
+
+##### Option1: Install mmcv-full based on Cambricon docker image
+
+Firstly, install and pull Cambricon docker image (please email service@cambricon.com for the latest release docker):
+
+```bash
+docker pull ${docker image}
+```
+
+Run and attach to the docker, [Install mmcv-full on MLU device](#install-mmcv\-full-on-cambricon-mlu-device) and [make sure you've installed mmcv-full on MLU device successfully](#test-code)
+
+##### Option2: Install mmcv-full from compiling Cambricon PyTorch source code
+
+Please email service@cambricon.com or contact with Cambricon engineers for a suitable version of CATCH package. After you get the suitable version of CATCH package, please follow the steps in ${CATCH-path}/CONTRIBUTING.md to install Cambricon PyTorch.
+
+#### Install mmcv-full on Cambricon MLU device
+
+Clone the repo
+
+```bash
+git clone https://github.com/open-mmlab/mmcv.git
+```
+
+The mlu-ops library will be downloaded to the default directory (mmcv/mlu-ops) while building MMCV. You can also set `MMCV_MLU_OPS_PATH` to an existing mlu-ops library before building as follows:
+
+```bash
+export MMCV_MLU_OPS_PATH=/xxx/xxx/mlu-ops
+```
+
+Install mmcv-full
+
+```bash
+cd mmcv
+export MMCV_WITH_OPS=1
+export FORCE_MLU=1
+python setup.py install
+```
+
+#### Test Code
+
+After finishing previous steps, you can run the following python code to make sure that you've installed mmcv-full on MLU device successfully
+
+```python
+import torch
+import torch_mlu
+from mmcv.ops import sigmoid_focal_loss
+x = torch.randn(3, 10).mlu()
+x.requires_grad = True
+y = torch.tensor([1, 5, 3]).mlu()
+w = torch.ones(10).float().mlu()
+output = sigmoid_focal_loss(x, y, 2.0, 0.25, w, 'none')
+print(output)
+```
diff --git a/FoodSeg103/demo/mmcv/docs/en/get_started/installation.md b/FoodSeg103/demo/mmcv/docs/en/get_started/installation.md
new file mode 100644
index 0000000000000000000000000000000000000000..ce7d92d66e7eb0084c699fa53042832fe742747d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/get_started/installation.md
@@ -0,0 +1,348 @@
+## Installation
+
+There are two versions of MMCV:
+
+- **mmcv**: comprehensive, with full features and various CUDA ops out of box. It takes longer time to build.
+- **mmcv-lite**: lite, without CUDA ops but all other features, similar to mmcv\<1.0.0. It is useful when you do not need those CUDA ops.
+
+```{warning}
+Do not install both versions in the same environment, otherwise you may encounter errors like `ModuleNotFound`. You need to uninstall one before installing the other. `Installing the full version is highly recommended if CUDA is avaliable`.
+```
+
+### Install mmcv
+
+Before installing mmcv, make sure that PyTorch has been successfully installed following the [PyTorch official installation guide](https://pytorch.org/get-started/locally/#start-locally). This can be verified using the following command
+
+```bash
+python -c 'import torch;print(torch.__version__)'
+```
+
+If version information is output, then PyTorch is installed.
+
+#### Install with mim (recommended)
+
+[mim](https://github.com/open-mmlab/mim) is the package management tool for the OpenMMLab projects, which makes it easy to install mmcv
+
+```bash
+pip install -U openmim
+mim install mmcv
+```
+
+If you find that the above installation command does not use a pre-built package ending with `.whl` but a source package ending with `.tar.gz`, you may not have a pre-build package corresponding to the PyTorch or CUDA or mmcv version, in which case you can [build mmcv from source](build.md).
+
+
+Installation log using pre-built packages
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv
+Downloading https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/mmcv-2.0.0-cp38-cp38-manylinux1_x86_64.whl
+
+
+
+
+Installation log using source packages
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv==2.0.0
+Downloading mmcv-2.0.0.tar.gz
+
+
+
+To install a specific version of mmcv, for example, mmcv version 2.0.0, you can use the following command
+
+```bash
+mim install mmcv==2.0.0
+```
+
+:::{note}
+If you would like to use `opencv-python-headless` instead of `opencv-python`,
+e.g., in a minimum container environment or servers without GUI,
+you can first install it before installing MMCV to skip the installation of `opencv-python`.
+
+Alternatively, if it takes too long to install a dependency library, you can specify the pypi source
+
+```bash
+mim install mmcv -i https://pypi.tuna.tsinghua.edu.cn/simple
+```
+
+:::
+
+You can run [check_installation.py](https://github.com/open-mmlab/mmcv/blob/main/.dev_scripts/check_installation.py) to check the installation of mmcv-full after running the installation commands.
+
+#### Install with pip
+
+Use the following command to check the version of CUDA and PyTorch
+
+```bash
+python -c 'import torch;print(torch.__version__);print(torch.version.cuda)'
+```
+
+Select the appropriate installation command depending on the type of system, CUDA version, PyTorch version, and MMCV version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+If you do not find a corresponding version in the dropdown box above, you probably do not have a pre-built package corresponding to the PyTorch or CUDA or mmcv version, at which point you can [build mmcv from source](build.md).
+
+:::{note}
+mmcv is only compiled on PyTorch 1.x.0 because the compatibility
+usually holds between 1.x.0 and 1.x.1. If your PyTorch version is 1.x.1, you
+can install mmcv compiled with PyTorch 1.x.0 and it usually works well.
+For example, if your PyTorch version is 1.8.1, you can feel free to choose 1.8.x.
+:::
+
+:::{note}
+If you would like to use `opencv-python-headless` instead of `opencv-python`,
+e.g., in a minimum container environment or servers without GUI,
+you can first install it before installing MMCV to skip the installation of `opencv-python`.
+
+Alternatively, if it takes too long to install a dependency library, you can specify the pypi source
+
+```bash
+mim install mmcv -i https://pypi.tuna.tsinghua.edu.cn/simple
+```
+
+:::
+
+You can run [check_installation.py](https://github.com/open-mmlab/mmcv/blob/main/.dev_scripts/check_installation.py) to check the installation of mmcv after running the installation commands.
+
+#### Using mmcv with Docker
+
+Build with local repository
+
+```bash
+git clone https://github.com/open-mmlab/mmcv.git && cd mmcv
+docker build -t mmcv -f docker/release/Dockerfile .
+```
+
+Or build with remote repository
+
+```bash
+docker build -t mmcv https://github.com/open-mmlab/mmcv.git#main:docker/release
+```
+
+The [Dockerfile](release/Dockerfile) installs latest released version of mmcv-full by default, but you can specify mmcv versions to install expected versions.
+
+```bash
+docker image build -t mmcv -f docker/release/Dockerfile --build-arg MMCV=2.0.0 .
+```
+
+If you also want to use other versions of PyTorch and CUDA, you can also pass them when building docker images.
+
+An example to build an image with PyTorch 1.11 and CUDA 11.3.
+
+```bash
+docker build -t mmcv -f docker/release/Dockerfile \
+ --build-arg PYTORCH=1.11.0 \
+ --build-arg CUDA=11.3 \
+ --build-arg CUDNN=8 \
+ --build-arg MMCV=2.0.0 .
+```
+
+More available versions of PyTorch and CUDA can be found at [dockerhub/pytorch](https://hub.docker.com/r/pytorch/pytorch/tags).
+
+### Install mmcv-lite
+
+If you need to use PyTorch-related modules, make sure PyTorch has been successfully installed in your environment by referring to the [PyTorch official installation guide](https://github.com/pytorch/pytorch#installation).
+
+```python
+pip install mmcv-lite
+```
diff --git a/FoodSeg103/demo/mmcv/docs/en/get_started/introduction.md b/FoodSeg103/demo/mmcv/docs/en/get_started/introduction.md
new file mode 100644
index 0000000000000000000000000000000000000000..461fcc725bbcf4a84296e95789303b64e7b2e9c5
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/get_started/introduction.md
@@ -0,0 +1,36 @@
+## Introduction
+
+MMCV is a foundational library for computer vision research and provides the following functionalities.
+
+- [Image/Video processing](../understand_mmcv/data_process.md)
+- [Image and annotation visualization](../understand_mmcv/visualization.md)
+- [Image transformation](../understand_mmcv/data_transform.md)
+- [Various CNN architectures](../understand_mmcv/cnn.md)
+- [High-quality implementation of common CUDA ops](../understand_mmcv/ops.md)
+
+It supports the following systems:
+
+- Linux
+- Windows
+- macOS
+
+It supports many research projects as below:
+
+- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark.
+- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark.
+- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection.
+- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab rotated object detection toolbox and benchmark.
+- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO series toolbox and benchmark.
+- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark.
+- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab text detection, recognition, and understanding toolbox.
+- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark.
+- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 3D human parametric model toolbox and benchmark.
+- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab self-supervised learning toolbox and benchmark.
+- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab model compression toolbox and benchmark.
+- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab fewshot learning toolbox and benchmark.
+- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab's next-generation action understanding toolbox and benchmark.
+- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab video perception toolbox and benchmark.
+- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab optical flow toolbox and benchmark.
+- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox.
+- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab image and video generative models toolbox.
+- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab model deployment framework.
diff --git a/FoodSeg103/demo/mmcv/docs/en/get_started/previous_versions.md b/FoodSeg103/demo/mmcv/docs/en/get_started/previous_versions.md
new file mode 100644
index 0000000000000000000000000000000000000000..a9c3717667fec3e8f338c319413aa6ad639dc6d3
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/get_started/previous_versions.md
@@ -0,0 +1,47 @@
+## OTHER VERSIONS OF PYTORCH BUILT FOR MMCV-FULL
+
+We no longer provide `mmcv-full` packages compiled under lower versions of `PyTorch`, but for your convenience, you can find them below.
+
+### PyTorch 1.4
+
+| 1.0.0 \<= mmcv_version \<= 1.2.1
+
+#### CUDA 10.1
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.4.0/index.html
+```
+
+#### CUDA 9.2
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.4.0/index.html
+```
+
+#### CPU
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.4.0/index.html
+```
+
+### PyTorch v1.3
+
+| 1.0.0 \<= mmcv_version \<= 1.3.16
+
+#### CUDA 10.1
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.3.0/index.html
+```
+
+#### CUDA 9.2
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.3.0/index.html
+```
+
+#### CPU
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.3.0/index.html
+```
diff --git a/FoodSeg103/demo/mmcv/docs/en/index.rst b/FoodSeg103/demo/mmcv/docs/en/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dee2c37507fb77df42fef5e51fe501214c13d7ce
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/index.rst
@@ -0,0 +1,69 @@
+Welcome to MMCV's documentation!
+================================
+
+You can switch between Chinese and English documents in the lower-left corner of the layout.
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Get Started
+
+ get_started/introduction.md
+ get_started/installation.md
+ get_started/build.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Understand MMCV
+
+ understand_mmcv/data_process.md
+ understand_mmcv/data_transform.md
+ understand_mmcv/visualization.md
+ understand_mmcv/cnn.md
+ understand_mmcv/ops.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Deployment
+
+ deployment/mmcv_ops_definition.md
+
+.. toctree::
+ :caption: Switch Language
+
+ switch_language.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Compatibility
+
+ compatibility.md
+
+.. toctree::
+
+ faq.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Community
+
+ community/contributing.md
+ community/pr.md
+
+.. toctree::
+ :maxdepth: 1
+ :caption: API Reference
+
+ mmcv.image
+ mmcv.video
+ mmcv.visualization
+ mmcv.cnn
+ mmcv.ops
+ mmcv.transforms
+ mmcv.arraymisc
+ mmcv.utils
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/FoodSeg103/demo/mmcv/docs/en/make.bat b/FoodSeg103/demo/mmcv/docs/en/make.bat
new file mode 100644
index 0000000000000000000000000000000000000000..7893348a1b7dbb588983a48e6991282eae7e1b55
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=.
+set BUILDDIR=_build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+
+:end
+popd
diff --git a/FoodSeg103/demo/mmcv/docs/en/mmcv-logo.png b/FoodSeg103/demo/mmcv/docs/en/mmcv-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcc5759f8fe3bc7d191d411c38a9e1d3c1c27a84
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/en/mmcv-logo.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/en/switch_language.md b/FoodSeg103/demo/mmcv/docs/en/switch_language.md
new file mode 100644
index 0000000000000000000000000000000000000000..9dc7b34b4fac6a972abedd8c2b0b80d03441d2b9
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/switch_language.md
@@ -0,0 +1,3 @@
+## English
+
+## 简体中文
diff --git a/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/cnn.md b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/cnn.md
new file mode 100644
index 0000000000000000000000000000000000000000..12f5318bc727868488aebb63f7be4e9721cd66fa
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/cnn.md
@@ -0,0 +1,79 @@
+## CNN
+
+We provide some building bricks for CNNs, including layer building, module bundles and weight initialization.
+
+### Layer building
+
+We may need to try different layers of the same type when running experiments,
+but do not want to modify the code from time to time.
+Here we provide some layer building methods to construct layers from a dict,
+which can be written in configs or specified via command line arguments.
+
+#### Usage
+
+A simplest example is
+
+```python
+from mmcv.cnn import build_conv_layer
+
+cfg = dict(type='Conv3d')
+layer = build_conv_layer(cfg, in_channels=3, out_channels=8, kernel_size=3)
+```
+
+- `build_conv_layer`: Supported types are Conv1d, Conv2d, Conv3d, Conv (alias for Conv2d).
+- `build_norm_layer`: Supported types are BN1d, BN2d, BN3d, BN (alias for BN2d), SyncBN, GN, LN, IN1d, IN2d, IN3d, IN (alias for IN2d).
+- `build_activation_layer`: Supported types are ReLU, LeakyReLU, PReLU, RReLU, ReLU6, ELU, Sigmoid, Tanh, GELU.
+- `build_upsample_layer`: Supported types are nearest, bilinear, deconv, pixel_shuffle.
+- `build_padding_layer`: Supported types are zero, reflect, replicate.
+
+#### Extension
+
+We also allow extending the building methods with custom layers and operators.
+
+1. Write and register your own module.
+
+ ```python
+ from mmengine.registry import MODELS
+
+ @MODELS.register_module()
+ class MyUpsample:
+
+ def __init__(self, scale_factor):
+ pass
+
+ def forward(self, x):
+ pass
+ ```
+
+2. Import `MyUpsample` somewhere (e.g., in `__init__.py`) and then use it.
+
+ ```python
+ from mmcv.cnn import build_upsample_layer
+
+ cfg = dict(type='MyUpsample', scale_factor=2)
+ layer = build_upsample_layer(cfg)
+ ```
+
+### Module bundles
+
+We also provide common module bundles to facilitate the network construction.
+`ConvModule` is a bundle of convolution, normalization and activation layers,
+please refer to the [api](api.html#mmcv.cnn.ConvModule) for details.
+
+```python
+from mmcv.cnn import ConvModule
+
+# conv + bn + relu
+conv = ConvModule(3, 8, 2, norm_cfg=dict(type='BN'))
+# conv + gn + relu
+conv = ConvModule(3, 8, 2, norm_cfg=dict(type='GN', num_groups=2))
+# conv + relu
+conv = ConvModule(3, 8, 2)
+# conv
+conv = ConvModule(3, 8, 2, act_cfg=None)
+# conv + leaky relu
+conv = ConvModule(3, 8, 3, padding=1, act_cfg=dict(type='LeakyReLU'))
+# bn + conv + relu
+conv = ConvModule(
+ 3, 8, 2, norm_cfg=dict(type='BN'), order=('norm', 'conv', 'act'))
+```
diff --git a/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/data_process.md b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/data_process.md
new file mode 100644
index 0000000000000000000000000000000000000000..167928f88528ee6b682a559582a1584c369a5d39
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/data_process.md
@@ -0,0 +1,286 @@
+## Data Process
+
+### Image
+
+This module provides some image processing methods, which requires `opencv` to be installed first.
+
+#### Read/Write/Show
+
+To read or write images files, use `imread` or `imwrite`.
+
+```python
+import mmcv
+
+img = mmcv.imread('test.jpg')
+img = mmcv.imread('test.jpg', flag='grayscale')
+img_ = mmcv.imread(img) # nothing will happen, img_ = img
+mmcv.imwrite(img, 'out.jpg')
+```
+
+To read images from bytes
+
+```python
+with open('test.jpg', 'rb') as f:
+ data = f.read()
+img = mmcv.imfrombytes(data)
+```
+
+To show an image file or a loaded image
+
+```python
+mmcv.imshow('tests/data/color.jpg')
+# this is equivalent to
+
+for i in range(10):
+ img = np.random.randint(256, size=(100, 100, 3), dtype=np.uint8)
+ mmcv.imshow(img, win_name='test image', wait_time=200)
+```
+
+#### Color space conversion
+
+Supported conversion methods:
+
+- bgr2gray
+- gray2bgr
+- bgr2rgb
+- rgb2bgr
+- bgr2hsv
+- hsv2bgr
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+img1 = mmcv.bgr2rgb(img)
+img2 = mmcv.rgb2gray(img1)
+img3 = mmcv.bgr2hsv(img)
+```
+
+#### Resize
+
+There are three resize methods. All `imresize_*` methods have an argument `return_scale`,
+if this argument is `False`, then the return value is merely the resized image, otherwise
+is a tuple `(resized_img, scale)`.
+
+```python
+# resize to a given size
+mmcv.imresize(img, (1000, 600), return_scale=True)
+
+# resize to the same size of another image
+mmcv.imresize_like(img, dst_img, return_scale=False)
+
+# resize by a ratio
+mmcv.imrescale(img, 0.5)
+
+# resize so that the max edge no longer than 1000, short edge no longer than 800
+# without changing the aspect ratio
+mmcv.imrescale(img, (1000, 800))
+```
+
+#### Rotate
+
+To rotate an image by some angle, use `imrotate`. The center can be specified,
+which is the center of original image by default. There are two modes of rotating,
+one is to keep the image size unchanged so that some parts of the image will be
+cropped after rotating, the other is to extend the image size to fit the rotated
+image.
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+
+# rotate the image clockwise by 30 degrees.
+img_ = mmcv.imrotate(img, 30)
+
+# rotate the image counterclockwise by 90 degrees.
+img_ = mmcv.imrotate(img, -90)
+
+# rotate the image clockwise by 30 degrees, and rescale it by 1.5x at the same time.
+img_ = mmcv.imrotate(img, 30, scale=1.5)
+
+# rotate the image clockwise by 30 degrees, with (100, 100) as the center.
+img_ = mmcv.imrotate(img, 30, center=(100, 100))
+
+# rotate the image clockwise by 30 degrees, and extend the image size.
+img_ = mmcv.imrotate(img, 30, auto_bound=True)
+```
+
+#### Flip
+
+To flip an image, use `imflip`.
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+
+# flip the image horizontally
+mmcv.imflip(img)
+
+# flip the image vertically
+mmcv.imflip(img, direction='vertical')
+```
+
+#### Crop
+
+`imcrop` can crop the image with one or more regions. Each region is represented by the upper left and lower right coordinates as (x1, y1, x2, y2).
+
+```python
+import mmcv
+import numpy as np
+
+img = mmcv.imread('tests/data/color.jpg')
+
+# crop the region (10, 10, 100, 120)
+bboxes = np.array([10, 10, 100, 120])
+patch = mmcv.imcrop(img, bboxes)
+
+# crop two regions (10, 10, 100, 120) and (0, 0, 50, 50)
+bboxes = np.array([[10, 10, 100, 120], [0, 0, 50, 50]])
+patches = mmcv.imcrop(img, bboxes)
+
+# crop two regions, and rescale the patches by 1.2x
+patches = mmcv.imcrop(img, bboxes, scale=1.2)
+```
+
+#### Padding
+
+There are two methods, `impad` and `impad_to_multiple`, to pad an image to the
+specific size with given values.
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+
+# pad the image to (1000, 1200) with all zeros
+img_ = mmcv.impad(img, shape=(1000, 1200), pad_val=0)
+
+# pad the image to (1000, 1200) with different values for three channels.
+img_ = mmcv.impad(img, shape=(1000, 1200), pad_val=(100, 50, 200))
+
+# pad the image on left, right, top, bottom borders with all zeros
+img_ = mmcv.impad(img, padding=(10, 20, 30, 40), pad_val=0)
+
+# pad the image on left, right, top, bottom borders with different values
+# for three channels.
+img_ = mmcv.impad(img, padding=(10, 20, 30, 40), pad_val=(100, 50, 200))
+
+# pad an image so that each edge is a multiple of some value.
+img_ = mmcv.impad_to_multiple(img, 32)
+```
+
+### Video
+
+This module provides the following functionalities:
+
+- A `VideoReader` class with friendly apis to read and convert videos.
+- Some methods for editing (cut, concat, resize) videos.
+- Optical flow read/write/warp.
+
+#### VideoReader
+
+The `VideoReader` class provides sequence like apis to access video frames.
+It will internally cache the frames which have been visited.
+
+```python
+video = mmcv.VideoReader('test.mp4')
+
+# obtain basic information
+print(len(video))
+print(video.width, video.height, video.resolution, video.fps)
+
+# iterate over all frames
+for frame in video:
+ print(frame.shape)
+
+# read the next frame
+img = video.read()
+
+# read a frame by index
+img = video[100]
+
+# read some frames
+img = video[5:10]
+```
+
+To convert a video to images or generate a video from a image directory.
+
+```python
+# split a video into frames and save to a folder
+video = mmcv.VideoReader('test.mp4')
+video.cvt2frames('out_dir')
+
+# generate video from frames
+mmcv.frames2video('out_dir', 'test.avi')
+```
+
+#### Editing utils
+
+There are also some methods for editing videos, which wraps the commands of ffmpeg.
+
+```python
+# cut a video clip
+mmcv.cut_video('test.mp4', 'clip1.mp4', start=3, end=10, vcodec='h264')
+
+# join a list of video clips
+mmcv.concat_video(['clip1.mp4', 'clip2.mp4'], 'joined.mp4', log_level='quiet')
+
+# resize a video with the specified size
+mmcv.resize_video('test.mp4', 'resized1.mp4', (360, 240))
+
+# resize a video with a scaling ratio of 2
+mmcv.resize_video('test.mp4', 'resized2.mp4', ratio=2)
+```
+
+#### Optical flow
+
+`mmcv` provides the following methods to operate on optical flows.
+
+- IO
+- Visualization
+- Flow warping
+
+We provide two options to dump optical flow files: uncompressed and compressed.
+The uncompressed way just dumps the floating numbers to a binary file. It is
+lossless but the dumped file has a larger size.
+The compressed way quantizes the optical flow to 0-255 and dumps it as a
+jpeg image. The flow of x-dim and y-dim will be concatenated into a single image.
+
+1. IO
+
+```python
+flow = np.random.rand(800, 600, 2).astype(np.float32)
+# dump the flow to a flo file (~3.7M)
+mmcv.flowwrite(flow, 'uncompressed.flo')
+# dump the flow to a jpeg file (~230K)
+# the shape of the dumped image is (800, 1200)
+mmcv.flowwrite(flow, 'compressed.jpg', quantize=True, concat_axis=1)
+
+# read the flow file, the shape of loaded flow is (800, 600, 2) for both ways
+flow = mmcv.flowread('uncompressed.flo')
+flow = mmcv.flowread('compressed.jpg', quantize=True, concat_axis=1)
+```
+
+2. Visualization
+
+It is possible to visualize optical flows with `mmcv.flowshow()`.
+
+```python
+mmcv.flowshow(flow)
+```
+
+![progress](../_static/flow_visualization.png)
+
+3. Flow warping
+
+```python
+img1 = mmcv.imread('img1.jpg')
+flow = mmcv.flowread('flow.flo')
+warped_img2 = mmcv.flow_warp(img1, flow)
+```
+
+img1 (left) and img2 (right)
+
+![raw images](../_static/flow_raw_images.png)
+
+optical flow (img2 -> img1)
+
+![optical flow](../_static/flow_img2toimg1.png)
+
+warped image and difference with ground truth
+
+![warped image](../_static/flow_warp_diff.png)
diff --git a/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/data_transform.md b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/data_transform.md
new file mode 100644
index 0000000000000000000000000000000000000000..64c3af980eab0b07d7a298cee2c41465803911f8
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/data_transform.md
@@ -0,0 +1,341 @@
+# Data Transformation
+
+In the OpenMMLab algorithm library, dataset construction and data preparation are decoupled. Usually, the construction of the dataset only parses the dataset and records the basic information of each sample, while the data preparation is a series of data transformations including data loading, preprocessing, formatting, and other operations performed according to the basic information of the sample.
+
+## Design of data transformation
+
+In MMCV, we use various callable data transformation classes to manipulate data. These data transformation classes can accept several configuration parameters for the instantiation and then process the input data dictionary by `__call__` method. All data transformation methods accept a dictionary as the input and produce the output as a dictionary as well. A simple example is as follows:
+
+```python
+>>> import numpy as np
+>>> from mmcv.transforms import Resize
+>>>
+>>> transform = Resize(scale=(224, 224))
+>>> data_dict = {'img': np.random.rand(256, 256, 3)}
+>>> data_dict = transform(data_dict)
+>>> print(data_dict['img'].shape)
+(224, 224, 3)
+```
+
+The data transformation class reads some fields of the input dictionary and may add or update some fields. The keys of these fields are mostly fixed. For example, `Resize` will always read fields such as `"img"` in the input dictionary. More information about the conventions for input and output fields could be found in the documentation of the corresponding class.
+
+```{note}
+By convention, the order of image shape which is used as **initialization parameters** in data transformation (such as Resize, Pad) is (width, height). In the dictionary returned by the data transformation, the image related shape, such as `img_shape`, `ori_shape`, `pad_shape`, etc., is (height, width).
+```
+
+MMCV provides a unified base class called `BaseTransform` for all data transformation classes:
+
+```python
+class BaseTransform(metaclass=ABCMeta):
+
+ def __call__(self, results: dict) -> dict:
+
+ return self.transform(results)
+
+ @abstractmethod
+ def transform(self, results: dict) -> dict:
+ pass
+```
+
+All data transformation classes must inherit `BaseTransform` and implement the `transform` method. Both the input and output of the `transform` method are a dictionary. In the **Custom data transformation class** section, we will describe how to implement a data transformation class in more detail.
+
+## Data pipeline
+
+As mentioned above, the inputs and outputs of all data transformations are dictionaries. Moreover, according to the \[Convention on Datasets\] (TODO) in OpenMMLab, the basic information of each sample in the dataset is also a dictionary. This way, we can connect all data transformation operations end to end and combine them into a data pipeline. This pipeline inputs the information dictionary of the samples in the dataset and outputs the information dictionary after a series of processing.
+
+Taking the classification task as an example, we show a typical data pipeline in the figure below. For each sample, the information stored in the dataset is a dictionary, as shown on the far left in the figure. After each data transformation operation represented by the blue block, a new field (marked in green) will be added to the data dictionary or an existing field (marked in orange) will be updated.
+
+
+
+
+
+The data pipeline is a list of several data transformation configuration dictionaries in the configuration file. Each dataset needs to set the parameter `pipeline` to define the data preparation operations the dataset needs to perform. The configuration of the above data pipeline in the configuration file is as follows:
+
+```python
+pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='Resize', size=256, keep_ratio=True),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='Normalize', mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375]),
+ dict(type='ClsFormatBundle')
+]
+
+dataset = dict(
+ ...
+ pipeline=pipeline,
+ ...
+)
+```
+
+## Common data transformation classes
+
+The commonly used data transformation classes can be roughly divided into data loading, data preprocessing and augmentation, and data formatting. In MMCV, we provide some commonly used classes as follows:
+
+### Data loading
+
+To support the loading of large-scale datasets, data is usually not loaded when `Dataset` is initialized. Only the corresponding path is loaded. Therefore, it is necessary to load specific data in the data pipeline.
+
+| Class | Feature |
+| :-------------------------: | :--------------------------------------------: |
+| [`LoadImageFromFile`](TODO) | Load from file path |
+| [`LoadAnnotations`](TODO) | Load and organize the annotations (bbox, etc.) |
+
+### Data preprocessing and enhancement
+
+Data preprocessing and augmentation usually involve transforming the image itself, such as cropping, padding, scaling, etc.
+
+| Class | Feature |
+| :------------------------------: | :----------------------------------------------------: |
+| [`Pad`](TODO) | Padding |
+| [`CenterCrop`](TODO) | Center crop |
+| [`Normalize`](TODO) | Image normalization |
+| [`Resize`](TODO) | Resize to the specified size or ratio |
+| [`RandomResize`](TODO) | Scale the image randomly within the specified range |
+| [`RandomMultiscaleResize`](TODO) | Scale the image to a random size from multiple options |
+| [`RandomGrayscale`](TODO) | Random grayscale |
+| [`RandomFlip`](TODO) | Random flip |
+| [`MultiScaleFlipAug`](TODO) | Support scaling and flipping during the testing |
+
+### Data formatting
+
+Data formatting operations are type conversions performed on the data.
+
+| Class | Feature |
+| :---------------------: | :------------------------------------------: |
+| [`ToTensor`](TODO) | Convert the specified data to `torch.Tensor` |
+| [`ImageToTensor`](TODO) | Convert the image to `torch.Tensor` |
+
+## Customize data transformation classes
+
+To implement a new data transformation class, you must inherit `BaseTransform` and implement the `transform` method. Here, we use a simple flip transform (`MyFlip`) as an example:
+
+```python
+import random
+import mmcv
+from mmcv.transforms import BaseTransform, TRANSFORMS
+
+@TRANSFORMS.register_module()
+class MyFlip(BaseTransform):
+ def __init__(self, direction: str):
+ super().__init__()
+ self.direction = direction
+
+ def transform(self, results: dict) -> dict:
+ img = results['img']
+ results['img'] = mmcv.imflip(img, direction=self.direction)
+ return results
+```
+
+Now, we can instantiate `MyFlip` as a callable object to handle our data dictionary.
+
+```python
+import numpy as np
+
+transform = MyFlip(direction='horizontal')
+data_dict = {'img': np.random.rand(224, 224, 3)}
+data_dict = transform(data_dict)
+processed_img = data_dict['img']
+```
+
+Alternatively, use `MyFlip` transform in the `pipeline` of the config file.
+
+```python
+pipeline = [
+ ...
+ dict(type='MyFlip', direction='horizontal'),
+ ...
+]
+```
+
+It should be noted that if you want to use it in the configuration file, you must ensure that the file where the `MyFlip` class is located can be imported at the runtime.
+
+## Transform wrapper
+
+Transform wrappers are a special class of data transformations. They do not operate on images, labels or other information in the data dictionary by themselves. Instead, they enhance the behavior of data transformations defined in them.
+
+### KeyMapper
+
+`KeyMapper` is used to map fields in the data dictionary. For example, image processing transforms usually get their values from the `"img"` field in the data dictionary. But sometimes we want these transforms to handle images in other fields in the data dictionary, such as the `"gt_img"` field.
+
+When used with registry and configuration file, the field map wrapper should be used as follows:
+
+```python
+pipeline = [
+ ...
+ dict(type='KeyMapper',
+ mapping={
+ 'img': 'gt_img', # map "gt_img" to "img"
+ 'mask': ..., # The "mask" field in the raw data is not used. That is, for wrapped data transformations, the "mask" field is not included in the data
+ },
+ auto_remap=True, # remap "img" back to "gt_img" after the transformation
+ transforms=[
+ # only need to specify "img" in `RandomFlip`
+ dict(type='RandomFlip'),
+ ])
+ ...
+]
+```
+
+With `KeyMapper`, we don't need to consider various possible input field names in the `transform` method when we implement the data transformation class. We only need to deal with the default fields.
+
+### RandomChoice and RandomApply
+
+`RandomChoice` is used to randomly select a data transformation pipeline from the given choices. With this wrapper, we can easily implement some data augmentation functions, such as AutoAugment.
+
+In configuration file, you can use `RandomChoice` as follows:
+
+```python
+pipeline = [
+ ...
+ dict(type='RandomChoice',
+ transforms=[
+ [
+ dict(type='Posterize', bits=4),
+ dict(type='Rotate', angle=30.)
+ ], # the first combo option
+ [
+ dict(type='Equalize'),
+ dict(type='Rotate', angle=30)
+ ], # the second combo option
+ ],
+ prob=[0.4, 0.6] # the prob of each combo
+ )
+ ...
+]
+```
+
+`RandomApply` is used to randomly perform a combination of data transformations with a specified probability. For example:
+
+```python
+pipeline = [
+ ...
+ dict(type='RandomApply',
+ transforms=[dict(type='Rotate', angle=30.)],
+ prob=0.3) # perform the transformation with prob as 0.3
+ ...
+]
+```
+
+### TransformBroadcaster
+
+Usually, a data transformation class only reads the target of an operation from one field. While we can also use `KeyMapper` to change the fields read, there is no way to apply transformations to the data of multiple fields at once. To achieve this, we need to use the multi-target extension wrapper `TransformBroadcaster`.
+
+`TransformBroadcaster` has two uses, one is to apply data transformation to multiple specified fields, and the other is to apply data transformation to a group of targets under a field.
+
+1. Apply to multiple fields
+
+ Suppose we need to apply a data transformation to images in two fields `"lq"` (low-quality) and `"gt"` (ground-truth).
+
+ ```python
+ pipeline = [
+ dict(type='TransformBroadcaster',
+ # apply to the "lq" and "gt" fields respectively, and set the "img" field to both
+ mapping={'img': ['lq', 'gt']},
+ # remap the "img" field back to the original field after the transformation
+ auto_remap=True,
+ # whether to share random variables in the transformation of each target
+ # more introduction will be referred in the following chapters (random variable sharing)
+ share_random_params=True,
+ transforms=[
+ # only need to manipulate the "img" field in the `RandomFlip` class
+ dict(type='RandomFlip'),
+ ])
+ ]
+ ```
+
+ In the `mapping` setting of the multi-target extension, we can also use `...` to ignore the specified original field. As shown in the following example, the wrapped `RandomCrop` will crop the image in the field `"img"` and update the size of the cropped image if the field `"img_shape"` exists. If we want to do the same random cropping for both image fields `"lq"` and `"gt"` at the same time but update the `"img_shape"` field only once, we can do it as in the example:
+
+ ```python
+ pipeline = [
+ dict(type='TransformBroadcaster',
+ mapping={
+ 'img': ['lq', 'gt'],
+ 'img_shape': ['img_shape', ...],
+ },
+ # remap the "img" and "img_shape" fields back to their original fields after the transformation
+ auto_remap=True,
+ # whether to share random variables in the transformation of each target
+ # more introduction will be referred in the following chapters (random variable sharing)
+ share_random_params=True,
+ transforms=[
+ # "img" and "img_shape" fields are manipulated in the `RandomCrop` class
+ # if "img_shape" is missing, only operate on "img"
+ dict(type='RandomCrop'),
+ ])
+ ]
+ ```
+
+2. A set of targets applied to a field
+
+ Suppose we need to apply a data transformation to the `"images"` field, which is a list of images.
+
+ ```python
+ pipeline = [
+ dict(type='TransformBroadcaster',
+ # map each image under the "images" field to the "img" field
+ mapping={'img': 'images'},
+ # remap the images under the "img" field back to the list in the "images" field after the transformation
+ auto_remap=True,
+ # whether to share random variables in the transformation of each target
+ share_random_params=True,
+ transforms=[
+ # in the `RandomFlip` transformation class, we only need to manipulate the "img" field
+ dict(type='RandomFlip'),
+ ])
+ ]
+ ```
+
+#### Decorator `cache_randomness`
+
+In `TransformBroadcaster`, we provide the `share_random_params` option to support sharing random states across multiple data transformations. For example, in a super-resolution task, we want to apply **the same** random transformations **simultaneously** to the low-resolution image and the original image. If we use this function in a custom data transformation class, we need to mark which random variables support sharing in the class. This can be achieved with the decorator `cache_randomness`.
+
+Taking `MyFlip` from the above example, we want to perform flipping randomly with a certain probability:
+
+```python
+from mmcv.transforms.utils import cache_randomness
+
+@TRANSFORMS.register_module()
+class MyRandomFlip(BaseTransform):
+ def __init__(self, prob: float, direction: str):
+ super().__init__()
+ self.prob = prob
+ self.direction = direction
+
+ @cache_randomness # label the output of the method as a shareable random variable
+ def do_flip(self):
+ flip = True if random.random() > self.prob else False
+ return flip
+
+ def transform(self, results: dict) -> dict:
+ img = results['img']
+ if self.do_flip():
+ results['img'] = mmcv.imflip(img, direction=self.direction)
+ return results
+```
+
+In the above example, we decorate the `do_flip` method with `cache_randomness`, marking the method return value `flip` as a random variable that supports sharing. Therefore, in the transformation of `TransformBroadcaster` to multiple targets, the value of this variable will remain the same.
+
+#### Decorator `avoid_cache_randomness`
+
+In some cases, we cannot separate the process of generating random variables in data transformation into a class method. For example, modules from third-party libraries used in data transformation encapsulate the relevant parts of random variables inside, making them impossible to be extracted as class methods for data transformation. Such data transformations cannot support shared random variables through the decorator `cache_randomness` annotation, and thus cannot share random variables during multi-objective expansion.
+
+To avoid misuse of such data transformations in multi-object extensions, we provide another decorator, `avoid_cache_randomness`, to mark such data transformations:
+
+```python
+from mmcv.transforms.utils import avoid_cache_randomness
+
+@TRANSFORMS.register_module()
+@avoid_cache_randomness
+class MyRandomTransform(BaseTransform):
+
+ def transform(self, results: dict) -> dict:
+ ...
+```
+
+Data transformation classes marked with `avoid_cache_randomness` will throw an exception when their instance is wrapped by `TransformBroadcaster` and the parameter `share_random_params` is set to True. This reminds the user not to use it in this way.
+
+There are a few things to keep in mind when using `avoid_cache_randomness`:
+
+1. `avoid_cache_randomness` is only used to decorate data transformation classes (subclasses of `BaseTransfrom`) and cannot be used to decorate other general classes, class methods, or functions
+2. When a data transformation decorated with `avoid_cache_randomness` is used as a base class, its subclasses **will not inherit** its feature. If the subclass is still unable to share random variables, `avoid_cache_randomness` should be used again.
+3. A data transformation needs to be modified with `avoid_cache_randomness` only when a data transformation is random and cannot share its random parameters. Data transformations without randomness require no decoration
diff --git a/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/ops.md b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/ops.md
new file mode 100644
index 0000000000000000000000000000000000000000..265327bc5cca61fbecc833f14a9c752b8c09b670
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/ops.md
@@ -0,0 +1,66 @@
+## ops
+
+We implement common ops used in detection, segmentation, etc.
+
+| Device | CPU | CUDA | MLU | MPS | Ascend |
+| ---------------------------- | --- | ---- | --- | --- | ------ |
+| ActiveRotatedFilter | √ | √ | | | √ |
+| AssignScoreWithK | | √ | | | |
+| BallQuery | | √ | √ | | |
+| BBoxOverlaps | | √ | √ | √ | √ |
+| BorderAlign | | √ | | | |
+| BoxIouRotated | √ | √ | √ | | √ |
+| BoxIouQuadri | √ | √ | | | |
+| CARAFE | | √ | √ | | |
+| ChamferDistance | | √ | | | |
+| CrissCrossAttention | | √ | | | |
+| ContourExpand | √ | | | | |
+| ConvexIoU | | √ | | | |
+| CornerPool | | √ | | | |
+| Correlation | | √ | | | |
+| Deformable Convolution v1/v2 | √ | √ | √ | | √ |
+| Deformable RoIPool | | √ | √ | | √ |
+| DiffIoURotated | | √ | √ | | |
+| DynamicScatter | | √ | √ | | |
+| FurthestPointSample | | √ | | | |
+| FurthestPointSampleWithDist | | √ | | | |
+| FusedBiasLeakyrelu | | √ | | | √ |
+| GatherPoints | | √ | | | √ |
+| GroupPoints | | √ | | | |
+| Iou3d | | √ | √ | | |
+| KNN | | √ | | | |
+| MaskedConv | | √ | √ | | √ |
+| MergeCells | | √ | | | |
+| MinAreaPolygon | | √ | | | |
+| ModulatedDeformConv2d | √ | √ | √ | | √ |
+| MultiScaleDeformableAttn | | √ | √ | | |
+| NMS | √ | √ | √ | | √ |
+| NMSRotated | √ | √ | √ | | √ |
+| NMSQuadri | √ | √ | | | |
+| PixelGroup | √ | | | | |
+| PointsInBoxes | √ | √ | | | |
+| PointsInPolygons | | √ | | | √ |
+| PSAMask | √ | √ | √ | | √ |
+| RotatedFeatureAlign | √ | √ | √ | | |
+| RoIPointPool3d | | √ | √ | | |
+| RoIPool | | √ | √ | | √ |
+| RoIAlignRotated | √ | √ | √ | | |
+| RiRoIAlignRotated | | √ | | | |
+| RoIAlign | √ | √ | √ | | √ |
+| RoIAwarePool3d | | √ | √ | | |
+| SAConv2d | | √ | | | |
+| SigmoidFocalLoss | | √ | √ | | √ |
+| SoftmaxFocalLoss | | √ | | | √ |
+| SoftNMS | | √ | | | |
+| Sparse Convolution | | √ | √ | | |
+| Synchronized BatchNorm | | √ | | | |
+| ThreeInterpolate | | √ | | | |
+| ThreeNN | | √ | √ | | |
+| TINShift | | √ | √ | | |
+| UpFirDn2d | | √ | | | |
+| Voxelization | √ | √ | √ | | √ |
+| PrRoIPool | | √ | | | |
+| BezierAlign | √ | √ | | | |
+| BiasAct | | √ | | | |
+| FilteredLrelu | | √ | | | |
+| Conv2dGradfix | | √ | | | |
diff --git a/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/visualization.md b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/visualization.md
new file mode 100644
index 0000000000000000000000000000000000000000..968e350589aafdf79c32593a6b5968329d5afa2a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/en/understand_mmcv/visualization.md
@@ -0,0 +1,24 @@
+## Visualization
+
+`mmcv` can show images and annotations (currently supported types include bounding boxes).
+
+```python
+# show an image file
+mmcv.imshow('a.jpg')
+
+# show a loaded image
+img = np.random.rand(100, 100, 3)
+mmcv.imshow(img)
+
+# show image with bounding boxes
+img = np.random.rand(100, 100, 3)
+bboxes = np.array([[0, 0, 50, 50], [20, 20, 60, 60]])
+mmcv.imshow_bboxes(img, bboxes)
+```
+
+`mmcv` can also visualize special images such as optical flows.
+
+```python
+flow = mmcv.flowread('test.flo')
+mmcv.flowshow(flow)
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/Makefile b/FoodSeg103/demo/mmcv/docs/zh_cn/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..51285967a7d9722c5bdee4f6a81c154a56aa0846
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/Makefile
@@ -0,0 +1,19 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SOURCEDIR = .
+BUILDDIR = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/_static/css/readthedocs.css b/FoodSeg103/demo/mmcv/docs/zh_cn/_static/css/readthedocs.css
new file mode 100644
index 0000000000000000000000000000000000000000..9e3a567d5f78aedb606600bb3111034a1003b362
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/_static/css/readthedocs.css
@@ -0,0 +1,10 @@
+.header-logo {
+ background-image: url("../image/mmcv-logo.png");
+ background-size: 85px 40px;
+ height: 40px;
+ width: 85px;
+}
+
+table.colwidths-auto td {
+ width: 50%
+}
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/_static/image/mmcv-logo.png b/FoodSeg103/demo/mmcv/docs/zh_cn/_static/image/mmcv-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcc5759f8fe3bc7d191d411c38a9e1d3c1c27a84
Binary files /dev/null and b/FoodSeg103/demo/mmcv/docs/zh_cn/_static/image/mmcv-logo.png differ
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/_static/version.json b/FoodSeg103/demo/mmcv/docs/zh_cn/_static/version.json
new file mode 100644
index 0000000000000000000000000000000000000000..522c371ce1b2846f5f488d442450f841926207db
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/_static/version.json
@@ -0,0 +1,738 @@
+{
+ "Linux": [
+ {
+ "cuda": "11.8",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.5",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.0",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "9.2",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "9.2",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ }
+ ],
+ "Windows": [
+ {
+ "cuda": "11.8",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.7",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.6",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.5",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.3",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "11.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3"
+ ]
+ },
+ {
+ "cuda": "10.2",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3"
+ ]
+ },
+ {
+ "cuda": "10.1",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0rc1"
+ ]
+ }
+ ],
+ "macOS": [
+ {
+ "cuda": "cpu",
+ "torch": "2.0.x",
+ "mmcv": [
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "mps",
+ "torch": "1.13.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.12.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.11.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.10.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.9.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.8.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2",
+ "2.0.0"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.7.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2"
+ ]
+ },
+ {
+ "cuda": "cpu",
+ "torch": "1.6.x",
+ "mmcv": [
+ "2.0.0rc4",
+ "2.0.0rc3",
+ "2.0.0rc2"
+ ]
+ }
+ ]
+}
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/_templates/classtemplate.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/_templates/classtemplate.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4f74842394ec9807fb1ae2d8f05a8a57e9a2e24c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/_templates/classtemplate.rst
@@ -0,0 +1,14 @@
+.. role:: hidden
+ :class: hidden-section
+.. currentmodule:: {{ module }}
+
+
+{{ name | underline}}
+
+.. autoclass:: {{ name }}
+ :members:
+
+
+..
+ autogenerated from source/_templates/classtemplate.rst
+ note it does not have :inherited-members:
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/arraymisc.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/arraymisc.rst
new file mode 100644
index 0000000000000000000000000000000000000000..28975eb76e94994c50d2fe52b8f34c7ce533e788
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/arraymisc.rst
@@ -0,0 +1,19 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.arraymisc
+===================================
+
+.. contents:: mmcv.arraymisc
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.arraymisc
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ quantize
+ dequantize
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/cnn.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/cnn.rst
new file mode 100644
index 0000000000000000000000000000000000000000..022191f179fdbe3b1644abbb96ffdc92e4e37e06
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/cnn.rst
@@ -0,0 +1,71 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.cnn
+===================================
+
+.. contents:: mmcv.cnn
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.cnn
+
+Module
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ ContextBlock
+ Conv2d
+ Conv3d
+ ConvAWS2d
+ ConvModule
+ ConvTranspose2d
+ ConvTranspose3d
+ ConvWS2d
+ DepthwiseSeparableConvModule
+ GeneralizedAttention
+ HSigmoid
+ HSwish
+ LayerScale
+ Linear
+ MaxPool2d
+ MaxPool3d
+ NonLocal1d
+ NonLocal2d
+ NonLocal3d
+ Scale
+ Swish
+ Conv2dRFSearchOp
+
+Build Function
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ build_activation_layer
+ build_conv_layer
+ build_norm_layer
+ build_padding_layer
+ build_plugin_layer
+ build_upsample_layer
+
+Miscellaneous
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ fuse_conv_bn
+ conv_ws_2d
+ is_norm
+ make_res_layer
+ make_vgg_layer
+ get_model_complexity_info
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/image.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/image.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3b93484952cd0c45b9d103088b0677f93fe5615d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/image.rst
@@ -0,0 +1,100 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.image
+===================================
+
+.. contents:: mmcv.image
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.image
+
+IO
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ imfrombytes
+ imread
+ imwrite
+ use_backend
+
+Color Space
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ bgr2gray
+ bgr2hls
+ bgr2hsv
+ bgr2rgb
+ bgr2ycbcr
+ gray2bgr
+ gray2rgb
+ hls2bgr
+ hsv2bgr
+ imconvert
+ rgb2bgr
+ rgb2gray
+ rgb2ycbcr
+ ycbcr2bgr
+ ycbcr2rgb
+
+Geometric
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ cutout
+ imcrop
+ imflip
+ impad
+ impad_to_multiple
+ imrescale
+ imresize
+ imresize_like
+ imresize_to_multiple
+ imrotate
+ imshear
+ imtranslate
+ rescale_size
+
+Photometric
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ adjust_brightness
+ adjust_color
+ adjust_contrast
+ adjust_hue
+ adjust_lighting
+ adjust_sharpness
+ auto_contrast
+ clahe
+ imdenormalize
+ imequalize
+ iminvert
+ imnormalize
+ lut_transform
+ posterize
+ solarize
+
+Miscellaneous
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ tensor2imgs
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/ops.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/ops.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b0290457bfa0c08f14d7fe346efccb33f388bdae
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/ops.rst
@@ -0,0 +1,135 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.ops
+===================================
+
+.. contents:: mmcv.ops
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.ops
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ BorderAlign
+ CARAFE
+ CARAFENaive
+ CARAFEPack
+ Conv2d
+ ConvTranspose2d
+ CornerPool
+ Correlation
+ CrissCrossAttention
+ DeformConv2d
+ DeformConv2dPack
+ DeformRoIPool
+ DeformRoIPoolPack
+ DynamicScatter
+ FusedBiasLeakyReLU
+ GroupAll
+ Linear
+ MaskedConv2d
+ MaxPool2d
+ ModulatedDeformConv2d
+ ModulatedDeformConv2dPack
+ ModulatedDeformRoIPoolPack
+ MultiScaleDeformableAttention
+ PSAMask
+ PointsSampler
+ PrRoIPool
+ QueryAndGroup
+ RiRoIAlignRotated
+ RoIAlign
+ RoIAlignRotated
+ RoIAwarePool3d
+ RoIPointPool3d
+ RoIPool
+ SAConv2d
+ SigmoidFocalLoss
+ SimpleRoIAlign
+ SoftmaxFocalLoss
+ SparseConv2d
+ SparseConv3d
+ SparseConvTensor
+ SparseConvTranspose2d
+ SparseConvTranspose3d
+ SparseInverseConv2d
+ SparseInverseConv3d
+ SparseMaxPool2d
+ SparseMaxPool3d
+ SparseModule
+ SparseSequential
+ SubMConv2d
+ SubMConv3d
+ SyncBatchNorm
+ TINShift
+ Voxelization
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ active_rotated_filter
+ assign_score_withk
+ ball_query
+ batched_nms
+ bbox_overlaps
+ border_align
+ box_iou_rotated
+ boxes_iou3d
+ boxes_iou_bev
+ boxes_overlap_bev
+ carafe
+ carafe_naive
+ chamfer_distance
+ contour_expand
+ convex_giou
+ convex_iou
+ deform_conv2d
+ deform_roi_pool
+ diff_iou_rotated_2d
+ diff_iou_rotated_3d
+ dynamic_scatter
+ furthest_point_sample
+ furthest_point_sample_with_dist
+ fused_bias_leakyrelu
+ gather_points
+ grouping_operation
+ knn
+ masked_conv2d
+ min_area_polygons
+ modulated_deform_conv2d
+ nms
+ nms3d
+ nms3d_normal
+ nms_bev
+ nms_match
+ nms_normal_bev
+ nms_rotated
+ pixel_group
+ point_sample
+ points_in_boxes_all
+ points_in_boxes_cpu
+ points_in_boxes_part
+ points_in_polygons
+ prroi_pool
+ rel_roi_point_to_rel_img_point
+ riroi_align_rotated
+ roi_align
+ roi_align_rotated
+ roi_pool
+ rotated_feature_align
+ scatter_nd
+ sigmoid_focal_loss
+ soft_nms
+ softmax_focal_loss
+ three_interpolate
+ three_nn
+ tin_shift
+ upfirdn2d
+ voxelization
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/transforms.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/transforms.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b080133d6b7736398b855174c325169b8af92aae
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/transforms.rst
@@ -0,0 +1,60 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.transforms
+===================================
+
+.. currentmodule:: mmcv.transforms
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ BaseTransform
+ TestTimeAug
+
+Loading
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ LoadAnnotations
+ LoadImageFromFile
+
+Processing
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ CenterCrop
+ MultiScaleFlipAug
+ Normalize
+ Pad
+ RandomChoiceResize
+ RandomFlip
+ RandomGrayscale
+ RandomResize
+ Resize
+ ToTensor
+ ImageToTensor
+
+Wrapper
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ Compose
+ KeyMapper
+ RandomApply
+ RandomChoice
+ TransformBroadcaster
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/utils.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/utils.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f2ff4c2a3872bc9ae0c2942debac5e5b523bd071
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/utils.rst
@@ -0,0 +1,23 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.utils
+===================================
+
+.. contents:: mmcv.utils
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.utils
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ IS_CUDA_AVAILABLE
+ IS_MLU_AVAILABLE
+ IS_MPS_AVAILABLE
+ collect_env
+ jit
+ skip_no_elena
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/video.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/video.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a6ebca0eb73afcf3f3f11aae8520e2782a310f13
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/video.rst
@@ -0,0 +1,56 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.video
+===================================
+
+.. contents:: mmcv.video
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.video
+
+IO
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ VideoReader
+ Cache
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ frames2video
+
+Optical Flow
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ dequantize_flow
+ flow_from_bytes
+ flow_warp
+ flowread
+ flowwrite
+ quantize_flow
+ sparse_flow_from_bytes
+
+Video Processing
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ concat_video
+ convert_video
+ cut_video
+ resize_video
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/api/visualization.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/api/visualization.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8f43ef27a441dcd9001a352cf18e97f8e615676d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/api/visualization.rst
@@ -0,0 +1,50 @@
+.. role:: hidden
+ :class: hidden-section
+
+mmcv.visualization
+===================================
+
+.. contents:: mmcv.visualization
+ :depth: 2
+ :local:
+ :backlinks: top
+
+.. currentmodule:: mmcv.visualization
+
+Color
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+ :template: classtemplate.rst
+
+ Color
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ color_val
+
+Image
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ imshow
+ imshow_bboxes
+ imshow_det_bboxes
+
+Optical Flow
+----------------
+
+.. autosummary::
+ :toctree: generated
+ :nosignatures:
+
+ flow2rgb
+ flowshow
+ make_color_wheel
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/community/code_style.md b/FoodSeg103/demo/mmcv/docs/zh_cn/community/code_style.md
new file mode 100644
index 0000000000000000000000000000000000000000..8ddb87c2391e07b848aa073287cc2a230da8c3ec
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/community/code_style.md
@@ -0,0 +1,609 @@
+## 代码规范
+
+### 代码规范标准
+
+#### PEP 8 —— Python 官方代码规范
+
+[Python 官方的代码风格指南](https://www.python.org/dev/peps/pep-0008/),包含了以下几个方面的内容:
+
+- 代码布局,介绍了 Python 中空行、断行以及导入相关的代码风格规范。比如一个常见的问题:当我的代码较长,无法在一行写下时,何处可以断行?
+
+- 表达式,介绍了 Python 中表达式空格相关的一些风格规范。
+
+- 尾随逗号相关的规范。当列表较长,无法一行写下而写成如下逐行列表时,推荐在末项后加逗号,从而便于追加选项、版本控制等。
+
+ ```python
+ # Correct:
+ FILES = ['setup.cfg', 'tox.ini']
+ # Correct:
+ FILES = [
+ 'setup.cfg',
+ 'tox.ini',
+ ]
+ # Wrong:
+ FILES = ['setup.cfg', 'tox.ini',]
+ # Wrong:
+ FILES = [
+ 'setup.cfg',
+ 'tox.ini'
+ ]
+ ```
+
+- 命名相关规范、注释相关规范、类型注解相关规范,我们将在后续章节中做详细介绍。
+
+ "A style guide is about consistency. Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is the most important." PEP 8 -- Style Guide for Python Code
+
+:::{note}
+PEP 8 的代码规范并不是绝对的,项目内的一致性要优先于 PEP 8 的规范。OpenMMLab 各个项目都在 setup.cfg 设定了一些代码规范的设置,请遵照这些设置。一个例子是在 PEP 8 中有如下一个例子:
+
+```python
+# Correct:
+hypot2 = x*x + y*y
+# Wrong:
+hypot2 = x * x + y * y
+```
+
+这一规范是为了指示不同优先级,但 OpenMMLab 的设置中通常没有启用 yapf 的 `ARITHMETIC_PRECEDENCE_INDICATION` 选项,因而格式规范工具不会按照推荐样式格式化,以设置为准。
+:::
+
+#### Google 开源项目风格指南
+
+[Google 使用的编程风格指南](https://google.github.io/styleguide/pyguide.html),包括了 Python 相关的章节。相较于 PEP 8,该指南提供了更为详尽的代码指南。该指南包括了语言规范和风格规范两个部分。
+
+其中,语言规范对 Python 中很多语言特性进行了优缺点的分析,并给出了使用指导意见,如异常、Lambda 表达式、列表推导式、metaclass 等。
+
+风格规范的内容与 PEP 8 较为接近,大部分约定建立在 PEP 8 的基础上,也有一些更为详细的约定,如函数长度、TODO 注释、文件与 socket 对象的访问等。
+
+推荐将该指南作为参考进行开发,但不必严格遵照,一来该指南存在一些 Python 2 兼容需求,例如指南中要求所有无基类的类应当显式地继承 Object, 而在仅使用 Python 3 的环境中,这一要求是不必要的,依本项目中的惯例即可。二来 OpenMMLab 的项目作为框架级的开源软件,不必对一些高级技巧过于避讳,尤其是 MMCV。但尝试使用这些技巧前应当认真考虑是否真的有必要,并寻求其他开发人员的广泛评估。
+
+另外需要注意的一处规范是关于包的导入,在该指南中,要求导入本地包时必须使用路径全称,且导入的每一个模块都应当单独成行,通常这是不必要的,而且也不符合目前项目的开发惯例,此处进行如下约定:
+
+```python
+# Correct
+from mmcv.cnn.bricks import (Conv2d, build_norm_layer, DropPath, MaxPool2d,
+ Linear)
+from ..utils import ext_loader
+
+# Wrong
+from mmcv.cnn.bricks import Conv2d, build_norm_layer, DropPath, MaxPool2d, \
+ Linear # 使用括号进行连接,而不是反斜杠
+from ...utils import is_str # 最多向上回溯一层,过多的回溯容易导致结构混乱
+```
+
+OpenMMLab 项目使用 pre-commit 工具自动格式化代码,详情见[贡献代码](./contributing.md#代码风格)。
+
+### 命名规范
+
+#### 命名规范的重要性
+
+优秀的命名是良好代码可读的基础。基础的命名规范对各类变量的命名做了要求,使读者可以方便地根据代码名了解变量是一个类 / 局部变量 / 全局变量等。而优秀的命名则需要代码作者对于变量的功能有清晰的认识,以及良好的表达能力,从而使读者根据名称就能了解其含义,甚至帮助了解该段代码的功能。
+
+#### 基础命名规范
+
+| 类型 | 公有 | 私有 |
+| --------------- | ---------------- | ------------------ |
+| 模块 | lower_with_under | \_lower_with_under |
+| 包 | lower_with_under | |
+| 类 | CapWords | \_CapWords |
+| 异常 | CapWordsError | |
+| 函数(方法) | lower_with_under | \_lower_with_under |
+| 函数 / 方法参数 | lower_with_under | |
+| 全局 / 类内常量 | CAPS_WITH_UNDER | \_CAPS_WITH_UNDER |
+| 全局 / 类内变量 | lower_with_under | \_lower_with_under |
+| 变量 | lower_with_under | \_lower_with_under |
+| 局部变量 | lower_with_under | |
+
+注意:
+
+- 尽量避免变量名与保留字冲突,特殊情况下如不可避免,可使用一个后置下划线,如 class\_
+- 尽量不要使用过于简单的命名,除了约定俗成的循环变量 i,文件变量 f,错误变量 e 等。
+- 不会被用到的变量可以命名为 \_,逻辑检查器会将其忽略。
+
+#### 命名技巧
+
+良好的变量命名需要保证三点:
+
+1. 含义准确,没有歧义
+2. 长短适中
+3. 前后统一
+
+```python
+# Wrong
+class Masks(metaclass=ABCMeta): # 命名无法表现基类;Instance or Semantic?
+ pass
+
+# Correct
+class BaseInstanceMasks(metaclass=ABCMeta):
+ pass
+
+# Wrong,不同地方含义相同的变量尽量用统一的命名
+def __init__(self, inplanes, planes):
+ pass
+
+def __init__(self, in_channels, out_channels):
+ pass
+```
+
+常见的函数命名方法:
+
+- 动宾命名法:crop_img, init_weights
+- 动宾倒置命名法:imread, bbox_flip
+
+注意函数命名与参数的顺序,保证主语在前,符合语言习惯:
+
+- check_keys_exist(key, container)
+- check_keys_contain(container, key)
+
+注意避免非常规或统一约定的缩写,如 nb -> num_blocks,in_nc -> in_channels
+
+### docstring 规范
+
+#### 为什么要写 docstring
+
+docstring 是对一个类、一个函数功能与 API 接口的详细描述,有两个功能,一是帮助其他开发者了解代码功能,方便 debug 和复用代码;二是在 Readthedocs 文档中自动生成相关的 API reference 文档,帮助不了解源代码的社区用户使用相关功能。
+
+#### 如何写 docstring
+
+与注释不同,一份规范的 docstring 有着严格的格式要求,以便于 Python 解释器以及 sphinx 进行文档解析,详细的 docstring 约定参见 [PEP 257](https://www.python.org/dev/peps/pep-0257/)。此处以例子的形式介绍各种文档的标准格式,参考格式为 [Google 风格](https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/#comments)。
+
+1. 模块文档
+
+ 代码风格规范推荐为每一个模块(即 Python 文件)编写一个 docstring,但目前 OpenMMLab 项目大部分没有此类 docstring,因此不做硬性要求。
+
+ ```python
+ """A one line summary of the module or program, terminated by a period.
+
+ Leave one blank line. The rest of this docstring should contain an
+ overall description of the module or program. Optionally, it may also
+ contain a brief description of exported classes and functions and/or usage
+ examples.
+
+ Typical usage example:
+
+ foo = ClassFoo()
+ bar = foo.FunctionBar()
+ """
+ ```
+
+2. 类文档
+
+ 类文档是我们最常需要编写的,此处,按照 OpenMMLab 的惯例,我们使用了与 Google 风格不同的写法。如下例所示,文档中没有使用 Attributes 描述类属性,而是使用 Args 描述 __init__ 函数的参数。
+
+ 在 Args 中,遵照 `parameter (type): Description.` 的格式,描述每一个参数类型和功能。其中,多种类型可使用 `(float or str)` 的写法,可以为 None 的参数可以写为 `(int, optional)`。
+
+ ```python
+ class BaseRunner(metaclass=ABCMeta):
+ """The base class of Runner, a training helper for PyTorch.
+
+ All subclasses should implement the following APIs:
+
+ - ``run()``
+ - ``train()``
+ - ``val()``
+ - ``save_checkpoint()``
+
+ Args:
+ model (:obj:`torch.nn.Module`): The model to be run.
+ batch_processor (callable, optional): A callable method that process
+ a data batch. The interface of this method should be
+ ``batch_processor(model, data, train_mode) -> dict``.
+ Defaults to None.
+ optimizer (dict or :obj:`torch.optim.Optimizer`, optional): It can be
+ either an optimizer (in most cases) or a dict of optimizers
+ (in models that requires more than one optimizer, e.g., GAN).
+ Defaults to None.
+ work_dir (str, optional): The working directory to save checkpoints
+ and logs. Defaults to None.
+ logger (:obj:`logging.Logger`): Logger used during training.
+ Defaults to None. (The default value is just for backward
+ compatibility)
+ meta (dict, optional): A dict records some import information such as
+ environment info and seed, which will be logged in logger hook.
+ Defaults to None.
+ max_epochs (int, optional): Total training epochs. Defaults to None.
+ max_iters (int, optional): Total training iterations. Defaults to None.
+ """
+
+ def __init__(self,
+ model,
+ batch_processor=None,
+ optimizer=None,
+ work_dir=None,
+ logger=None,
+ meta=None,
+ max_iters=None,
+ max_epochs=None):
+ ...
+ ```
+
+ 另外,在一些算法实现的主体类中,建议加入原论文的链接;如果参考了其他开源代码的实现,则应加入 modified from,而如果是直接复制了其他代码库的实现,则应加入 copied from ,并注意源码的 License。如有必要,也可以通过 .. math:: 来加入数学公式
+
+ ```python
+ # 参考实现
+ # This func is modified from `detectron2
+ # `_.
+
+ # 复制代码
+ # This code was copied from the `ubelt
+ # library`_.
+
+ # 引用论文 & 添加公式
+ class LabelSmoothLoss(nn.Module):
+ r"""Initializer for the label smoothed cross entropy loss.
+
+ Refers to `Rethinking the Inception Architecture for Computer Vision
+ `_.
+
+ This decreases gap between output scores and encourages generalization.
+ Labels provided to forward can be one-hot like vectors (NxC) or class
+ indices (Nx1).
+ And this accepts linear combination of one-hot like labels from mixup or
+ cutmix except multi-label task.
+
+ Args:
+ label_smooth_val (float): The degree of label smoothing.
+ num_classes (int, optional): Number of classes. Defaults to None.
+ mode (str): Refers to notes, Options are "original", "classy_vision",
+ "multi_label". Defaults to "classy_vision".
+ reduction (str): The method used to reduce the loss.
+ Options are "none", "mean" and "sum". Defaults to 'mean'.
+ loss_weight (float): Weight of the loss. Defaults to 1.0.
+
+ Note:
+ if the ``mode`` is "original", this will use the same label smooth
+ method as the original paper as:
+
+ .. math::
+ (1-\epsilon)\delta_{k, y} + \frac{\epsilon}{K}
+
+ where :math:`\epsilon` is the ``label_smooth_val``, :math:`K` is
+ the ``num_classes`` and :math:`\delta_{k,y}` is Dirac delta,
+ which equals 1 for k=y and 0 otherwise.
+
+ if the ``mode`` is "classy_vision", this will use the same label
+ smooth method as the `facebookresearch/ClassyVision
+ `_ repo as:
+
+ .. math::
+ \frac{\delta_{k, y} + \epsilon/K}{1+\epsilon}
+
+ if the ``mode`` is "multi_label", this will accept labels from
+ multi-label task and smoothing them as:
+
+ .. math::
+ (1-2\epsilon)\delta_{k, y} + \epsilon
+ ```
+
+```{note}
+注意 \`\`here\`\`、\`here\`、"here" 三种引号功能是不同。
+
+在 reStructured 语法中,\`\`here\`\` 表示一段代码;\`here\` 表示斜体;"here" 无特殊含义,一般可用来表示字符串。其中 \`here\` 的用法与 Markdown 中不同,需要多加留意。
+另外还有 :obj:\`type\` 这种更规范的表示类的写法,但鉴于长度,不做特别要求,一般仅用于表示非常用类型。
+```
+
+3. 方法(函数)文档
+
+ 函数文档与类文档的结构基本一致,但需要加入返回值文档。对于较为复杂的函数和类,可以使用 Examples 字段加入示例;如果需要对参数加入一些较长的备注,可以加入 Note 字段进行说明。
+
+ 对于使用较为复杂的类或函数,比起看大段大段的说明文字和参数文档,添加合适的示例更能帮助用户迅速了解其用法。需要注意的是,这些示例最好是能够直接在 Python 交互式环境中运行的,并给出一些相对应的结果。如果存在多个示例,可以使用注释简单说明每段示例,也能起到分隔作用。
+
+ ```python
+ def import_modules_from_strings(imports, allow_failed_imports=False):
+ """Import modules from the given list of strings.
+
+ Args:
+ imports (list | str | None): The given module names to be imported.
+ allow_failed_imports (bool): If True, the failed imports will return
+ None. Otherwise, an ImportError is raise. Defaults to False.
+
+ Returns:
+ List[module] | module | None: The imported modules.
+ All these three lines in docstring will be compiled into the same
+ line in readthedocs.
+
+ Examples:
+ >>> osp, sys = import_modules_from_strings(
+ ... ['os.path', 'sys'])
+ >>> import os.path as osp_
+ >>> import sys as sys_
+ >>> assert osp == osp_
+ >>> assert sys == sys_
+ """
+ ...
+ ```
+
+ 如果函数接口在某个版本发生了变化,需要在 docstring 中加入相关的说明,必要时添加 Note 或者 Warning 进行说明,例如:
+
+ ```python
+ class CheckpointHook(Hook):
+ """Save checkpoints periodically.
+
+ Args:
+ out_dir (str, optional): The root directory to save checkpoints. If
+ not specified, ``runner.work_dir`` will be used by default. If
+ specified, the ``out_dir`` will be the concatenation of
+ ``out_dir`` and the last level directory of ``runner.work_dir``.
+ Defaults to None. `Changed in version 1.3.15.`
+ file_client_args (dict, optional): Arguments to instantiate a
+ FileClient. See :class:`mmcv.fileio.FileClient` for details.
+ Defaults to None. `New in version 1.3.15.`
+
+ Warning:
+ Before v1.3.15, the ``out_dir`` argument indicates the path where the
+ checkpoint is stored. However, in v1.3.15 and later, ``out_dir``
+ indicates the root directory and the final path to save checkpoint is
+ the concatenation of out_dir and the last level directory of
+ ``runner.work_dir``. Suppose the value of ``out_dir`` is
+ "/path/of/A" and the value of ``runner.work_dir`` is "/path/of/B",
+ then the final path will be "/path/of/A/B".
+ ```
+
+ 如果参数或返回值里带有需要展开描述字段的 dict,则应该采用如下格式:
+
+ ```python
+ def func(x):
+ r"""
+ Args:
+ x (None): A dict with 2 keys, ``padded_targets``, and ``targets``.
+
+ - ``targets`` (list[Tensor]): A list of tensors.
+ Each tensor has the shape of :math:`(T_i)`. Each
+ element is the index of a character.
+ - ``padded_targets`` (Tensor): A tensor of shape :math:`(N)`.
+ Each item is the length of a word.
+
+ Returns:
+ dict: A dict with 2 keys, ``padded_targets``, and ``targets``.
+
+ - ``targets`` (list[Tensor]): A list of tensors.
+ Each tensor has the shape of :math:`(T_i)`. Each
+ element is the index of a character.
+ - ``padded_targets`` (Tensor): A tensor of shape :math:`(N)`.
+ Each item is the length of a word.
+ """
+ return x
+ ```
+
+```{important}
+为了生成 readthedocs 文档,文档的编写需要按照 ReStructrued 文档格式,否则会产生文档渲染错误,在提交 PR 前,最好生成并预览一下文档效果。
+语法规范参考:
+
+- [reStructuredText Primer - Sphinx documentation](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#)
+- [Example Google Style Python Docstrings ‒ napoleon 0.7 documentation](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html#example-google)
+```
+
+### 注释规范
+
+#### 为什么要写注释
+
+对于一个开源项目,团队合作以及社区之间的合作是必不可少的,因而尤其要重视合理的注释。不写注释的代码,很有可能过几个月自己也难以理解,造成额外的阅读和修改成本。
+
+#### 如何写注释
+
+最需要写注释的是代码中那些技巧性的部分。如果你在下次代码审查的时候必须解释一下,那么你应该现在就给它写注释。对于复杂的操作,应该在其操作开始前写上若干行注释。对于不是一目了然的代码,应在其行尾添加注释。
+—— Google 开源项目风格指南
+
+```python
+# We use a weighted dictionary search to find out where i is in
+# the array. We extrapolate position based on the largest num
+# in the array and the array size and then do binary search to
+# get the exact number.
+if i & (i-1) == 0: # True if i is 0 or a power of 2.
+```
+
+为了提高可读性, 注释应该至少离开代码2个空格.
+另一方面, 绝不要描述代码. 假设阅读代码的人比你更懂Python, 他只是不知道你的代码要做什么.
+—— Google 开源项目风格指南
+
+```python
+# Wrong:
+# Now go through the b array and make sure whenever i occurs
+# the next element is i+1
+
+# Wrong:
+if i & (i-1) == 0: # True if i bitwise and i-1 is 0.
+```
+
+在注释中,可以使用 Markdown 语法,因为开发人员通常熟悉 Markdown 语法,这样可以便于交流理解,如可使用单反引号表示代码和变量(注意不要和 docstring 中的 ReStructured 语法混淆)
+
+```python
+# `_reversed_padding_repeated_twice` is the padding to be passed to
+# `F.pad` if needed (e.g., for non-zero padding types that are
+# implemented as two ops: padding + conv). `F.pad` accepts paddings in
+# reverse order than the dimension.
+self._reversed_padding_repeated_twice = _reverse_repeat_tuple(self.padding, 2)
+```
+
+#### 注释示例
+
+1. 出自 `mmcv/utils/registry.py`,对于较为复杂的逻辑结构,通过注释,明确了优先级关系。
+
+ ```python
+ # self.build_func will be set with the following priority:
+ # 1. build_func
+ # 2. parent.build_func
+ # 3. build_from_cfg
+ if build_func is None:
+ if parent is not None:
+ self.build_func = parent.build_func
+ else:
+ self.build_func = build_from_cfg
+ else:
+ self.build_func = build_func
+ ```
+
+2. 出自 `mmcv/runner/checkpoint.py`,对于 bug 修复中的一些特殊处理,可以附带相关的 issue 链接,帮助其他人了解 bug 背景。
+
+ ```python
+ def _save_ckpt(checkpoint, file):
+ # The 1.6 release of PyTorch switched torch.save to use a new
+ # zipfile-based file format. It will cause RuntimeError when a
+ # checkpoint was saved in high version (PyTorch version>=1.6.0) but
+ # loaded in low version (PyTorch version<1.6.0). More details at
+ # https://github.com/open-mmlab/mmpose/issues/904
+ if digit_version(TORCH_VERSION) >= digit_version('1.6.0'):
+ torch.save(checkpoint, file, _use_new_zipfile_serialization=False)
+ else:
+ torch.save(checkpoint, file)
+ ```
+
+### 类型注解
+
+#### 为什么要写类型注解
+
+类型注解是对函数中变量的类型做限定或提示,为代码的安全性提供保障、增强代码的可读性、避免出现类型相关的错误。
+Python 没有对类型做强制限制,类型注解只起到一个提示作用,通常你的 IDE 会解析这些类型注解,然后在你调用相关代码时对类型做提示。另外也有类型注解检查工具,这些工具会根据类型注解,对代码中可能出现的问题进行检查,减少 bug 的出现。
+需要注意的是,通常我们不需要注释模块中的所有函数:
+
+1. 公共的 API 需要注释
+2. 在代码的安全性,清晰性和灵活性上进行权衡是否注释
+3. 对于容易出现类型相关的错误的代码进行注释
+4. 难以理解的代码请进行注释
+5. 若代码中的类型已经稳定,可以进行注释. 对于一份成熟的代码,多数情况下,即使注释了所有的函数,也不会丧失太多的灵活性.
+
+#### 如何写类型注解
+
+1. 函数 / 方法类型注解,通常不对 self 和 cls 注释。
+
+ ```python
+ from typing import Optional, List, Tuple
+
+ # 全部位于一行
+ def my_method(self, first_var: int) -> int:
+ pass
+
+ # 另起一行
+ def my_method(
+ self, first_var: int,
+ second_var: float) -> Tuple[MyLongType1, MyLongType1, MyLongType1]:
+ pass
+
+ # 单独成行(具体的应用场合与行宽有关,建议结合 yapf 自动化格式使用)
+ def my_method(
+ self, first_var: int, second_var: float
+ ) -> Tuple[MyLongType1, MyLongType1, MyLongType1]:
+ pass
+
+ # 引用尚未被定义的类型
+ class MyClass:
+ def __init__(self,
+ stack: List["MyClass"]) -> None:
+ pass
+ ```
+
+ 注:类型注解中的类型可以是 Python 内置类型,也可以是自定义类,还可以使用 Python 提供的 wrapper 类对类型注解进行装饰,一些常见的注解如下:
+
+ ```python
+ # 数值类型
+ from numbers import Number
+
+ # 可选类型,指参数可以为 None
+ from typing import Optional
+ def foo(var: Optional[int] = None):
+ pass
+
+ # 联合类型,指同时接受多种类型
+ from typing import Union
+ def foo(var: Union[float, str]):
+ pass
+
+ from typing import Sequence # 序列类型
+ from typing import Iterable # 可迭代类型
+ from typing import Any # 任意类型
+ from typing import Callable # 可调用类型
+
+ from typing import List, Dict # 列表和字典的泛型类型
+ from typing import Tuple # 元组的特殊格式
+ # 虽然在 Python 3.9 中,list, tuple 和 dict 本身已支持泛型,但为了支持之前的版本
+ # 我们在进行类型注解时还是需要使用 List, Tuple, Dict 类型
+ # 另外,在对参数类型进行注解时,尽量使用 Sequence & Iterable & Mapping
+ # List, Tuple, Dict 主要用于返回值类型注解
+ # 参见 https://docs.python.org/3/library/typing.html#typing.List
+ ```
+
+2. 变量类型注解,一般用于难以直接推断其类型时
+
+ ```python
+ # Recommend: 带类型注解的赋值
+ a: Foo = SomeUndecoratedFunction()
+ a: List[int]: [1, 2, 3] # List 只支持单一类型泛型,可使用 Union
+ b: Tuple[int, int] = (1, 2) # 长度固定为 2
+ c: Tuple[int, ...] = (1, 2, 3) # 变长
+ d: Dict[str, int] = {'a': 1, 'b': 2}
+
+ # Not Recommend:行尾类型注释
+ # 虽然这种方式被写在了 Google 开源指南中,但这是一种为了支持 Python 2.7 版本
+ # 而补充的注释方式,鉴于我们只支持 Python 3, 为了风格统一,不推荐使用这种方式。
+ a = SomeUndecoratedFunction() # type: Foo
+ a = [1, 2, 3] # type: List[int]
+ b = (1, 2, 3) # type: Tuple[int, ...]
+ c = (1, "2", 3.5) # type: Tuple[int, Text, float]
+ ```
+
+3. 泛型
+
+ 上文中我们知道,typing 中提供了 list 和 dict 的泛型类型,那么我们自己是否可以定义类似的泛型呢?
+
+ ```python
+ from typing import TypeVar, Generic
+
+ KT = TypeVar('KT')
+ VT = TypeVar('VT')
+
+ class Mapping(Generic[KT, VT]):
+ def __init__(self, data: Dict[KT, VT]):
+ self._data = data
+
+ def __getitem__(self, key: KT) -> VT:
+ return self._data[key]
+ ```
+
+ 使用上述方法,我们定义了一个拥有泛型能力的映射类,实际用法如下:
+
+ ```python
+ mapping = Mapping[str, float]({'a': 0.5})
+ value: float = example['a']
+ ```
+
+ 另外,我们也可以利用 TypeVar 在函数签名中指定联动的多个类型:
+
+ ```python
+ from typing import TypeVar, List
+
+ T = TypeVar('T') # Can be anything
+ A = TypeVar('A', str, bytes) # Must be str or bytes
+
+
+ def repeat(x: T, n: int) -> List[T]:
+ """Return a list containing n references to x."""
+ return [x]*n
+
+
+ def longest(x: A, y: A) -> A:
+ """Return the longest of two strings."""
+ return x if len(x) >= len(y) else y
+ ```
+
+更多关于类型注解的写法请参考 [typing](https://docs.python.org/3/library/typing.html)。
+
+#### 类型注解检查工具
+
+[mypy](https://mypy.readthedocs.io/en/stable/) 是一个 Python 静态类型检查工具。根据你的类型注解,mypy 会检查传参、赋值等操作是否符合类型注解,从而避免可能出现的 bug。
+
+例如如下的一个 Python 脚本文件 test.py:
+
+```python
+def foo(var: int) -> float:
+ return float(var)
+
+a: str = foo('2.0')
+b: int = foo('3.0') # type: ignore
+```
+
+运行 mypy test.py 可以得到如下检查结果,分别指出了第 4 行在函数调用和返回值赋值两处类型错误。而第 5 行同样存在两个类型错误,由于使用了 type: ignore 而被忽略了,只有部分特殊情况可能需要此类忽略。
+
+```
+test.py:4: error: Incompatible types in assignment (expression has type "float", variable has type "int")
+test.py:4: error: Argument 1 to "foo" has incompatible type "str"; expected "int"
+Found 2 errors in 1 file (checked 1 source file)
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/community/contributing.md b/FoodSeg103/demo/mmcv/docs/zh_cn/community/contributing.md
new file mode 100644
index 0000000000000000000000000000000000000000..3805223a220aba26e9bed2776a610b7a0f055f8d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/community/contributing.md
@@ -0,0 +1,278 @@
+## 贡献代码
+
+欢迎加入 MMCV 社区,我们致力于打造最前沿的计算机视觉基础库,我们欢迎任何类型的贡献,包括但不限于
+
+**修复错误**
+
+修复代码实现错误的步骤如下:
+
+1. 如果提交的代码改动较大,建议先提交 issue,并正确描述 issue 的现象、原因和复现方式,讨论后确认修复方案。
+2. 修复错误并补充相应的单元测试,提交拉取请求。
+
+**新增功能或组件**
+
+1. 如果新功能或模块涉及较大的代码改动,建议先提交 issue,确认功能的必要性。
+2. 实现新增功能并添单元测试,提交拉取请求。
+
+**文档补充**
+
+修复文档可以直接提交拉取请求
+
+添加文档或将文档翻译成其他语言步骤如下
+
+1. 提交 issue,确认添加文档的必要性。
+2. 添加文档,提交拉取请求。
+
+### 拉取请求工作流
+
+如果你对拉取请求不了解,没关系,接下来的内容将会从零开始,一步一步地指引你如何创建一个拉取请求。如果你想深入了解拉取请求的开发模式,可以参考 github [官方文档](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests)
+
+#### 1. 复刻仓库
+
+当你第一次提交拉取请求时,先复刻 OpenMMLab 原代码库,点击 GitHub 页面右上角的 **Fork** 按钮,复刻后的代码库将会出现在你的 GitHub 个人主页下。
+
+
+
+将代码克隆到本地
+
+```shell
+git clone git@github.com:{username}/mmcv.git
+```
+
+添加原代码库为上游代码库
+
+```bash
+git remote add upstream git@github.com:open-mmlab/mmcv
+```
+
+检查 remote 是否添加成功,在终端输入 `git remote -v`
+
+```bash
+origin git@github.com:{username}/mmcv.git (fetch)
+origin git@github.com:{username}/mmcv.git (push)
+upstream git@github.com:open-mmlab/mmcv (fetch)
+upstream git@github.com:open-mmlab/mmcv (push)
+```
+
+```{note}
+这里对 origin 和 upstream 进行一个简单的介绍,当我们使用 git clone 来克隆代码时,会默认创建一个 origin 的 remote,它指向我们克隆的代码库地址,而 upstream 则是我们自己添加的,用来指向原始代码库地址。当然如果你不喜欢他叫 upstream,也可以自己修改,比如叫 open-mmlab。我们通常向 origin 提交代码(即 fork 下来的远程仓库),然后向 upstream 提交一个 pull request。如果提交的代码和最新的代码发生冲突,再从 upstream 拉取最新的代码,和本地分支解决冲突,再提交到 origin。
+```
+
+#### 2. 配置 pre-commit
+
+在本地开发环境中,我们使用 [pre-commit](https://pre-commit.com/#intro) 来检查代码风格,以确保代码风格的统一。在提交代码,需要先安装 pre-commit(需要在 MMCV 目录下执行):
+
+```shell
+pip install -U pre-commit
+pre-commit install
+```
+
+检查 pre-commit 是否配置成功,并安装 `.pre-commit-config.yaml` 中的钩子:
+
+```shell
+pre-commit run --all-files
+```
+
+
+
+
+
+```{note}
+如果你是中国用户,由于网络原因,可能会出现安装失败的情况,这时可以使用国内源
+
+pre-commit install -c .pre-commit-config-zh-cn.yaml
+
+pre-commit run --all-files -c .pre-commit-config-zh-cn.yaml
+```
+
+如果安装过程被中断,可以重复执行 `pre-commit run ...` 继续安装。
+
+如果提交的代码不符合代码风格规范,pre-commit 会发出警告,并自动修复部分错误。
+
+
+
+如果我们想临时绕开 pre-commit 的检查提交一次代码,可以在 `git commit` 时加上 `--no-verify`(需要保证最后推送至远程仓库的代码能够通过 pre-commit 检查)。
+
+```shell
+git commit -m "xxx" --no-verify
+```
+
+#### 3. 创建开发分支
+
+安装完 pre-commit 之后,我们需要基于 main 创建开发分支,建议的分支命名规则为 `username/pr_name`。
+
+```shell
+git checkout -b yhc/refactor_contributing_doc
+```
+
+在后续的开发中,如果本地仓库的 main 分支落后于 upstream 的 main 分支,我们需要先拉取 upstream 的代码进行同步,再执行上面的命令
+
+```shell
+git pull upstream main
+```
+
+#### 4. 提交代码并在本地通过单元测试
+
+- MMCV 引入了 mypy 来做静态类型检查,以增加代码的鲁棒性。因此我们在提交代码时,需要补充 Type Hints。具体规则可以参考[教程](https://zhuanlan.zhihu.com/p/519335398)。
+
+- 提交的代码同样需要通过单元测试
+
+ ```shell
+ # 通过全量单元测试
+ pytest tests
+
+ # 我们需要保证提交的代码能够通过修改模块的单元测试,以 runner 为例
+ pytest tests/test_runner/test_runner.py
+ ```
+
+ 如果你由于缺少依赖无法运行修改模块的单元测试,可以参考[指引-单元测试](#单元测试)
+
+- 如果修改/添加了文档,参考[指引](#文档渲染)确认文档渲染正常。
+
+#### 5. 推送代码到远程
+
+代码通过单元测试和 pre-commit 检查后,将代码推送到远程仓库,如果是第一次推送,可以在 `git push` 后加上 `-u` 参数以关联远程分支
+
+```shell
+git push -u origin {branch_name}
+```
+
+这样下次就可以直接使用 `git push` 命令推送代码了,而无需指定分支和远程仓库。
+
+#### 6. 提交拉取请求(PR)
+
+(1) 在 GitHub 的 Pull request 界面创建拉取请求
+
+
+(2) 根据指引修改 PR 描述,以便于其他开发者更好地理解你的修改
+
+
+
+描述规范详见[拉取请求规范](#拉取请求规范)
+
+
+
+**注意事项**
+
+(a) PR 描述应该包含修改理由、修改内容以及修改后带来的影响,并关联相关 Issue(具体方式见[文档](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue))
+
+(b) 如果是第一次为 OpenMMLab 做贡献,需要签署 CLA
+
+
+
+(c) 检查提交的 PR 是否通过 CI(集成测试)
+
+
+
+MMCV 会在不同的平台(Linux、Window、Mac),基于不同版本的 Python、PyTorch、CUDA 对提交的代码进行单元测试,以保证代码的正确性,如果有任何一个没有通过,我们可点击上图中的 `Details` 来查看具体的测试信息,以便于我们修改代码。
+
+(3) 如果 PR 通过了 CI,那么就可以等待其他开发者的 review,并根据 reviewer 的意见,修改代码,并重复 [4](#4-提交代码并本地通过单元测试)-[5](#5-推送代码到远程) 步骤,直到 reviewer 同意合入 PR。
+
+
+
+所有 reviewer 同意合入 PR 后,我们会尽快将 PR 合并到主分支。
+
+#### 7. 解决冲突
+
+随着时间的推移,我们的代码库会不断更新,这时候,如果你的 PR 与主分支存在冲突,你需要解决冲突,解决冲突的方式有两种:
+
+```shell
+git fetch --all --prune
+git rebase upstream/main
+```
+
+或者
+
+```shell
+git fetch --all --prune
+git merge upstream/main
+```
+
+如果你非常善于处理冲突,那么可以使用 rebase 的方式来解决冲突,因为这能够保证你的 commit log 的整洁。如果你不太熟悉 `rebase` 的使用,那么可以使用 `merge` 的方式来解决冲突。
+
+### 指引
+
+#### 单元测试
+
+如果你无法正常执行部分模块的单元测试,例如 [video](https://github.com/open-mmlab/mmcv/tree/main/mmcv/video) 模块,可能是你的当前环境没有安装以下依赖
+
+```shell
+# Linux
+sudo apt-get update -y
+sudo apt-get install -y libturbojpeg
+sudo apt-get install -y ffmpeg
+
+# Windows
+conda install ffmpeg
+```
+
+在提交修复代码错误或新增特性的拉取请求时,我们应该尽可能的让单元测试覆盖所有提交的代码,计算单元测试覆盖率的方法如下
+
+```shell
+python -m coverage run -m pytest /path/to/test_file
+python -m coverage html
+# check file in htmlcov/index.html
+```
+
+#### 文档渲染
+
+在提交修复代码错误或新增特性的拉取请求时,可能会需要修改/新增模块的 docstring。我们需要确认渲染后的文档样式是正确的。
+本地生成渲染后的文档的方法如下
+
+```shell
+pip install -r requirements/docs.txt
+cd docs/zh_cn/
+# or docs/en
+make html
+# check file in ./docs/zh_cn/_build/html/index.html
+```
+
+### 代码风格
+
+#### Python
+
+[PEP8](https://www.python.org/dev/peps/pep-0008/) 作为 OpenMMLab 算法库首选的代码规范,我们使用以下工具检查和格式化代码
+
+- [flake8](https://github.com/PyCQA/flake8): Python 官方发布的代码规范检查工具,是多个检查工具的封装
+- [isort](https://github.com/timothycrosley/isort): 自动调整模块导入顺序的工具
+- [yapf](https://github.com/google/yapf): Google 发布的代码规范检查工具
+- [codespell](https://github.com/codespell-project/codespell): 检查单词拼写是否有误
+- [mdformat](https://github.com/executablebooks/mdformat): 检查 markdown 文件的工具
+- [docformatter](https://github.com/myint/docformatter): 格式化 docstring 的工具
+
+yapf 和 isort 的配置可以在 [setup.cfg](./setup.cfg) 找到
+
+通过配置 [pre-commit hook](https://pre-commit.com/) ,我们可以在提交代码时自动检查和格式化 `flake8`、`yapf`、`isort`、`trailing whitespaces`、`markdown files`,
+修复 `end-of-files`、`double-quoted-strings`、`python-encoding-pragma`、`mixed-line-ending`,调整 `requirments.txt` 的包顺序。
+pre-commit 钩子的配置可以在 [.pre-commit-config](./.pre-commit-config.yaml) 找到。
+
+pre-commit 具体的安装使用方式见[拉取请求](#2-配置-pre-commit)。
+
+更具体的规范请参考 [OpenMMLab 代码规范](code_style.md)。
+
+#### C++ and CUDA
+
+C++ 和 CUDA 的代码规范遵从 [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
+
+### 拉取请求规范
+
+1. 使用 [pre-commit hook](https://pre-commit.com),尽量减少代码风格相关问题
+
+2. 一个`拉取请求`对应一个短期分支
+
+3. 粒度要细,一个`拉取请求`只做一件事情,避免超大的`拉取请求`
+
+ - Bad:实现 Faster R-CNN
+ - Acceptable:给 Faster R-CNN 添加一个 box head
+ - Good:给 box head 增加一个参数来支持自定义的 conv 层数
+
+4. 每次 Commit 时需要提供清晰且有意义 commit 信息
+
+5. 提供清晰且有意义的`拉取请求`描述
+
+ - 标题写明白任务名称,一般格式:\[Prefix\] Short description of the pull request (Suffix)
+ - prefix: 新增功能 \[Feature\], 修 bug \[Fix\], 文档相关 \[Docs\], 开发中 \[WIP\] (暂时不会被review)
+ - 描述里介绍`拉取请求`的主要修改内容,结果,以及对其他部分的影响, 参考`拉取请求`模板
+ - 关联相关的`议题` (issue) 和其他`拉取请求`
+
+6. 如果引入了其他三方库,或借鉴了三方库的代码,请确认他们的许可证和 mmcv 兼容,并在借鉴的代码上补充 `This code is inspired from http://`
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/community/pr.md b/FoodSeg103/demo/mmcv/docs/zh_cn/community/pr.md
new file mode 100644
index 0000000000000000000000000000000000000000..427fdf9e4965e404970c761676e7edd29e7b2e56
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/community/pr.md
@@ -0,0 +1,3 @@
+## 拉取请求
+
+本文档的内容已迁移到[贡献指南](contributing.md)。
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/compatibility.md b/FoodSeg103/demo/mmcv/docs/zh_cn/compatibility.md
new file mode 100644
index 0000000000000000000000000000000000000000..2729243f9fc8a5d82c6f7a9a90b9bbfa5accae1b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/compatibility.md
@@ -0,0 +1,231 @@
+### v2.0.0
+
+OpenMMLab 团队于 2022 年 9 月 1 日在世界人工智能大会发布了新一代训练引擎 [MMEngine](https://github.com/open-mmlab/mmengine),它是一个用于训练深度学习模型的基础库。相比于 MMCV,它提供了更高级且通用的训练器、接口更加统一的开放架构以及可定制化程度更高的训练流程。
+
+OpenMMLab 团队于 2023 年 4 月 6 日发布 MMCV [v2.0.0](https://github.com/open-mmlab/mmcv/releases/tag/v2.0.0)。在 2.x 版本中,它有以下重大变化:
+
+(1)删除了以下组件:
+
+- `mmcv.fileio` 模块,删除于 PR [#2179](https://github.com/open-mmlab/mmcv/pull/2179)。在需要使用 FileIO 的地方使用 mmengine 中的 FileIO 模块
+- `mmcv.runner`、`mmcv.parallel`、`mmcv.engine` 和 `mmcv.device`,删除于 PR [#2216](https://github.com/open-mmlab/mmcv/pull/2216)
+- `mmcv.utils` 的所有类(例如 `Config` 和 `Registry`)和大部分函数,删除于 PR [#2217](https://github.com/open-mmlab/mmcv/pull/2217),只保留少数和 mmcv 相关的函数
+- `mmcv.onnx`、`mmcv.tensorrt` 模块以及相关的函数,删除于 PR [#2225](https://github.com/open-mmlab/mmcv/pull/2225)
+- 删除 MMCV 所有的根注册器并将类或者函数注册到 MMEngine 的[根注册器](https://github.com/open-mmlab/mmengine/blob/main/mmengine/registry/root.py)
+
+(2)新增了 [`mmcv.transforms`](https://github.com/open-mmlab/mmcv/tree/main/mmcv/transforms) 数据变换模块
+
+(3)在 PR [#2235](https://github.com/open-mmlab/mmcv/pull/2235) 中将包名 **mmcv** 重命名为 **mmcv-lite**、 **mmcv-full** 重命名为 **mmcv**。此外,将环境变量 `MMCV_WITH_OPS` 的默认值从 0 改为 1
+
+
+
+
+ MMCV < 2.0
+ MMCV >= 2.0
+
+
+
+
+```bash
+# 包含算子,因为 mmcv-full 的最高版本小于 2.0.0,所以无需加版本限制
+pip install openmim
+mim install mmcv-full
+
+# 不包含算子
+pip install openmim
+mim install "mmcv < 2.0.0"
+```
+
+
+
+
+```bash
+# 包含算子
+pip install openmim
+mim install mmcv
+
+# 不包含算子,因为 mmcv-lite 的起始版本为 2.0.0,所以无需加版本限制
+pip install openmim
+mim install mmcv-lite
+```
+
+
+
+
+
+
+### v1.3.18
+
+部分自定义算子对于不同的设备有不同实现,为此添加的大量宏命令与类型检查使得代码变得难以维护。例如:
+
+```c++
+ if (input.device().is_cuda()) {
+#ifdef MMCV_WITH_CUDA
+ CHECK_CUDA_INPUT(input);
+ CHECK_CUDA_INPUT(rois);
+ CHECK_CUDA_INPUT(output);
+ CHECK_CUDA_INPUT(argmax_y);
+ CHECK_CUDA_INPUT(argmax_x);
+
+ roi_align_forward_cuda(input, rois, output, argmax_y, argmax_x,
+ aligned_height, aligned_width, spatial_scale,
+ sampling_ratio, pool_mode, aligned);
+#else
+ AT_ERROR("RoIAlign is not compiled with GPU support");
+#endif
+ } else {
+ CHECK_CPU_INPUT(input);
+ CHECK_CPU_INPUT(rois);
+ CHECK_CPU_INPUT(output);
+ CHECK_CPU_INPUT(argmax_y);
+ CHECK_CPU_INPUT(argmax_x);
+ roi_align_forward_cpu(input, rois, output, argmax_y, argmax_x,
+ aligned_height, aligned_width, spatial_scale,
+ sampling_ratio, pool_mode, aligned);
+ }
+```
+
+为此我们设计了注册与分发的机制以更好的管理这些算子实现。
+
+```c++
+
+void ROIAlignForwardCUDAKernelLauncher(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned);
+
+void roi_align_forward_cuda(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned) {
+ ROIAlignForwardCUDAKernelLauncher(
+ input, rois, output, argmax_y, argmax_x, aligned_height, aligned_width,
+ spatial_scale, sampling_ratio, pool_mode, aligned);
+}
+
+// 注册算子的cuda实现
+void roi_align_forward_impl(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned);
+REGISTER_DEVICE_IMPL(roi_align_forward_impl, CUDA, roi_align_forward_cuda);
+
+// roi_align.cpp
+// 使用dispatcher根据参数中的Tensor device类型对实现进行分发
+void roi_align_forward_impl(Tensor input, Tensor rois, Tensor output,
+ Tensor argmax_y, Tensor argmax_x,
+ int aligned_height, int aligned_width,
+ float spatial_scale, int sampling_ratio,
+ int pool_mode, bool aligned) {
+ DISPATCH_DEVICE_IMPL(roi_align_forward_impl, input, rois, output, argmax_y,
+ argmax_x, aligned_height, aligned_width, spatial_scale,
+ sampling_ratio, pool_mode, aligned);
+}
+
+```
+
+### v1.3.11
+
+为了灵活地支持更多的后端和硬件,例如 `NVIDIA GPUs` 、`AMD GPUs`,我们重构了 `mmcv/ops/csrc` 目录。注意,这次重构不会影响 API 的使用。更多相关信息,请参考 [PR1206](https://github.com/open-mmlab/mmcv/pull/1206)。
+
+原始的目录结构如下所示
+
+```
+.
+├── common_cuda_helper.hpp
+├── ops_cuda_kernel.cuh
+├── pytorch_cpp_helper.hpp
+├── pytorch_cuda_helper.hpp
+├── parrots_cpp_helper.hpp
+├── parrots_cuda_helper.hpp
+├── parrots_cudawarpfunction.cuh
+├── onnxruntime
+│ ├── onnxruntime_register.h
+│ ├── onnxruntime_session_options_config_keys.h
+│ ├── ort_mmcv_utils.h
+│ ├── ...
+│ ├── onnx_ops.h
+│ └── cpu
+│ ├── onnxruntime_register.cpp
+│ ├── ...
+│ └── onnx_ops_impl.cpp
+├── parrots
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_cuda.cu
+│ ├── ops_parrots.cpp
+│ └── ops_pytorch.h
+├── pytorch
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_cuda.cu
+│ ├── pybind.cpp
+└── tensorrt
+ ├── trt_cuda_helper.cuh
+ ├── trt_plugin_helper.hpp
+ ├── trt_plugin.hpp
+ ├── trt_serialize.hpp
+ ├── ...
+ ├── trt_ops.hpp
+ └── plugins
+ ├── trt_cuda_helper.cu
+ ├── trt_plugin.cpp
+ ├── ...
+ ├── trt_ops.cpp
+ └── trt_ops_kernel.cu
+```
+
+重构之后,它的结构如下所示
+
+```
+.
+├── common
+│ ├── box_iou_rotated_utils.hpp
+│ ├── parrots_cpp_helper.hpp
+│ ├── parrots_cuda_helper.hpp
+│ ├── pytorch_cpp_helper.hpp
+│ ├── pytorch_cuda_helper.hpp
+│ └── cuda
+│ ├── common_cuda_helper.hpp
+│ ├── parrots_cudawarpfunction.cuh
+│ ├── ...
+│ └── ops_cuda_kernel.cuh
+├── onnxruntime
+│ ├── onnxruntime_register.h
+│ ├── onnxruntime_session_options_config_keys.h
+│ ├── ort_mmcv_utils.h
+│ ├── ...
+│ ├── onnx_ops.h
+│ └── cpu
+│ ├── onnxruntime_register.cpp
+│ ├── ...
+│ └── onnx_ops_impl.cpp
+├── parrots
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_parrots.cpp
+│ └── ops_pytorch.h
+├── pytorch
+│ ├── info.cpp
+│ ├── pybind.cpp
+│ ├── ...
+│ ├── ops.cpp
+│ └── cuda
+│ ├── ...
+│ └── ops_cuda.cu
+└── tensorrt
+ ├── trt_cuda_helper.cuh
+ ├── trt_plugin_helper.hpp
+ ├── trt_plugin.hpp
+ ├── trt_serialize.hpp
+ ├── ...
+ ├── trt_ops.hpp
+ └── plugins
+ ├── trt_cuda_helper.cu
+ ├── trt_plugin.cpp
+ ├── ...
+ ├── trt_ops.cpp
+ └── trt_ops_kernel.cu
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/conf.py b/FoodSeg103/demo/mmcv/docs/zh_cn/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..7bfb9c23a726bb917761c725472d307e6d1d865a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/conf.py
@@ -0,0 +1,217 @@
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+
+import pytorch_sphinx_theme
+from sphinx.builders.html import StandaloneHTMLBuilder
+
+sys.path.insert(0, os.path.abspath('../..'))
+
+version_file = '../../mmcv/version.py'
+with open(version_file) as f:
+ exec(compile(f.read(), version_file, 'exec'))
+__version__ = locals()['__version__']
+
+# -- Project information -----------------------------------------------------
+
+project = 'mmcv'
+copyright = '2018-2022, OpenMMLab'
+author = 'MMCV Authors'
+
+# The short X.Y version
+version = __version__
+# The full version, including alpha/beta/rc tags
+release = __version__
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.autosummary',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.viewcode',
+ 'sphinx.ext.autosectionlabel',
+ 'sphinx_markdown_tables',
+ 'myst_parser',
+ 'sphinx_copybutton',
+] # yapf: disable
+
+myst_heading_anchors = 4
+
+myst_enable_extensions = ['colon_fence']
+
+# Configuration for intersphinx
+intersphinx_mapping = {
+ 'python': ('https://docs.python.org/3', None),
+ 'numpy': ('https://numpy.org/doc/stable', None),
+ 'torch': ('https://pytorch.org/docs/stable/', None),
+ 'mmengine': ('https://mmengine.readthedocs.io/en/latest', None),
+}
+
+autodoc_mock_imports = ['mmcv._ext', 'mmcv.utils.ext_loader', 'torchvision']
+autosectionlabel_prefix_document = True
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+source_suffix = {
+ '.rst': 'restructuredtext',
+ '.md': 'markdown',
+}
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = 'zh_CN'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+# html_theme = 'sphinx_rtd_theme'
+html_theme = 'pytorch_sphinx_theme'
+html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()]
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#
+html_theme_options = {
+ 'menu': [
+ {
+ 'name': 'GitHub',
+ 'url': 'https://github.com/open-mmlab/mmcv'
+ },
+ ],
+ # Specify the language of shared menu
+ 'menu_lang': 'cn',
+}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+html_css_files = ['css/readthedocs.css']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself. Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'mmcvdoc'
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+ # The paper size ('letterpaper' or 'a4paper').
+ #
+ # 'papersize': 'letterpaper',
+
+ # The font size ('10pt', '11pt' or '12pt').
+ #
+ # 'pointsize': '10pt',
+
+ # Additional stuff for the LaTeX preamble.
+ #
+ # 'preamble': '',
+
+ # Latex figure (float) alignment
+ #
+ # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (master_doc, 'mmcv.tex', 'mmcv Documentation', 'MMCV Contributors',
+ 'manual'),
+]
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [(master_doc, 'mmcv', 'mmcv Documentation', [author], 1)]
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (master_doc, 'mmcv', 'mmcv Documentation', author, 'mmcv',
+ 'One line description of project.', 'Miscellaneous'),
+]
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+# set priority when building html
+StandaloneHTMLBuilder.supported_image_types = [
+ 'image/svg+xml', 'image/gif', 'image/png', 'image/jpeg'
+]
+# -- Extension configuration -------------------------------------------------
+# Ignore >>> when copying code
+copybutton_prompt_text = r'>>> |\.\.\. '
+copybutton_prompt_is_regexp = True
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/docutils.conf b/FoodSeg103/demo/mmcv/docs/zh_cn/docutils.conf
new file mode 100644
index 0000000000000000000000000000000000000000..0c00c84688701117f231fd0c8ec295fb747b7d8f
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/docutils.conf
@@ -0,0 +1,2 @@
+[html writers]
+table_style: colwidths-auto
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/faq.md b/FoodSeg103/demo/mmcv/docs/zh_cn/faq.md
new file mode 100644
index 0000000000000000000000000000000000000000..6cfb100c631b101fa0cff0650105a3cc7d735e7b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/faq.md
@@ -0,0 +1,91 @@
+## 常见问题
+
+在这里我们列出了用户经常遇到的问题以及对应的解决方法。如果您遇到了其他常见的问题,并且知道可以帮到大家的解决办法,
+欢迎随时丰富这个列表。
+
+### 安装问题
+
+- KeyError: "xxx: 'yyy is not in the zzz registry'"
+
+ 只有模块所在的文件被导入时,注册机制才会被触发,所以您需要在某处导入该文件,更多详情请查看 [KeyError: "MaskRCNN: 'RefineRoIHead is not in the models registry'"](https://github.com/open-mmlab/mmdetection/issues/5974)。
+
+- "No module named 'mmcv.ops'"; "No module named 'mmcv.\_ext'"
+
+ 1. 使用 `pip uninstall mmcv` 卸载您环境中的 mmcv
+ 2. 参考 [installation instruction](https://mmcv.readthedocs.io/en/latest/get_started/installation.html) 或者 [Build MMCV from source](https://mmcv.readthedocs.io/en/latest/get_started/build.html) 安装 mmcv-full
+
+- "invalid device function" 或者 "no kernel image is available for execution"
+
+ 1. 检查 GPU 的 CUDA 计算能力
+ 2. 运行 `python mmdet/utils/collect_env.py` 来检查 PyTorch、torchvision 和 MMCV 是否是针对正确的 GPU 架构构建的,您可能需要去设置 `TORCH_CUDA_ARCH_LIST` 来重新安装 MMCV。兼容性问题可能会出现在使用旧版的 GPUs,如:colab 上的 Tesla K80 (3.7)
+ 3. 检查运行环境是否和 mmcv/mmdet 编译时的环境相同。例如,您可能使用 CUDA 10.0 编译 mmcv,但在 CUDA 9.0 的环境中运行它
+
+- "undefined symbol" 或者 "cannot open xxx.so"
+
+ 1. 如果符号和 CUDA/C++ 相关(例如:libcudart.so 或者 GLIBCXX),请检查 CUDA/GCC 运行时的版本是否和编译 mmcv 的一致
+ 2. 如果符号和 PyTorch 相关(例如:符号包含 caffe、aten 和 TH),请检查 PyTorch 运行时的版本是否和编译 mmcv 的一致
+ 3. 运行 `python mmdet/utils/collect_env.py` 以检查 PyTorch、torchvision 和 MMCV 构建和运行的环境是否相同
+
+- "RuntimeError: CUDA error: invalid configuration argument"
+
+ 这个错误可能是由于您的 GPU 性能不佳造成的。尝试降低 [THREADS_PER_BLOCK](https://github.com/open-mmlab/mmcv/blob/cac22f8cf5a904477e3b5461b1cc36856c2793da/mmcv/ops/csrc/common_cuda_helper.hpp#L10)
+ 的值并重新编译 mmcv。
+
+- "RuntimeError: nms is not compiled with GPU support"
+
+ 这个错误是由于您的 CUDA 环境没有正确安装。
+ 您可以尝试重新安装您的 CUDA 环境,然后删除 mmcv/build 文件夹并重新编译 mmcv。
+
+- "Segmentation fault"
+
+ 1. 检查 GCC 的版本,通常是因为 PyTorch 版本与 GCC 版本不匹配 (例如 GCC \< 4.9 ),我们推荐用户使用 GCC 5.4,我们也不推荐使用 GCC 5.5, 因为有反馈 GCC 5.5 会导致 "segmentation fault" 并且切换到 GCC 5.4 就可以解决问题
+ 2. 检查是否正确安装 CUDA 版本的 PyTorc。输入以下命令并检查是否返回 True
+ ```shell
+ python -c 'import torch; print(torch.cuda.is_available())'
+ ```
+ 3. 如果 `torch` 安装成功,那么检查 MMCV 是否安装成功。输入以下命令,如果没有报错说明 mmcv-full 安装成。
+ ```shell
+ python -c 'import mmcv; import mmcv.ops'
+ ```
+ 4. 如果 MMCV 与 PyTorch 都安装成功了,则可以使用 `ipdb` 设置断点或者使用 `print` 函数,分析是哪一部分的代码导致了 `segmentation fault`
+
+- "libtorch_cuda_cu.so: cannot open shared object file"
+
+ `mmcv-full` 依赖 `libtorch_cuda_cu.so` 文件,但程序运行时没能找到该文件。我们可以检查该文件是否存在 `~/miniconda3/envs/{environment-name}/lib/python3.7/site-packages/torch/lib` 也可以尝试重装 PyTorch。
+
+- "fatal error C1189: #error: -- unsupported Microsoft Visual Studio version!"
+
+ 如果您在 Windows 上编译 mmcv-full 并且 CUDA 的版本是 9.2,您很可能会遇到这个问题 `"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt/host_config.h(133): fatal error C1189: #error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!"`,您可以尝试使用低版本的 Microsoft Visual Studio,例如 vs2017。
+
+- "error: member "torch::jit::detail::ModulePolicy::all_slots" may not be initialized"
+
+ 如果您在 Windows 上编译 mmcv-full 并且 PyTorch 的版本是 1.5.0,您很可能会遇到这个问题 `- torch/csrc/jit/api/module.h(474): error: member "torch::jit::detail::ModulePolicy::all_slots" may not be initialized`。解决这个问题的方法是将 `torch/csrc/jit/api/module.h` 文件中所有 `static constexpr bool all_slots = false;` 替换为 `static bool all_slots = false;`。更多细节可以查看 [member "torch::jit::detail::AttributePolicy::all_slots" may not be initialized](https://github.com/pytorch/pytorch/issues/39394)。
+
+- "error: a member with an in-class initializer must be const"
+
+ 如果您在 Windows 上编译 mmcv-full 并且 PyTorch 的版本是 1.6.0,您很可能会遇到这个问题 `"- torch/include\torch/csrc/jit/api/module.h(483): error: a member with an in-class initializer must be const"`. 解决这个问题的方法是将 `torch/include\torch/csrc/jit/api/module.h` 文件中的所有 `CONSTEXPR_EXCEPT_WIN_CUDA ` 替换为 `const`。更多细节可以查看 [Ninja: build stopped: subcommand failed](https://github.com/open-mmlab/mmcv/issues/575)。
+
+- "error: member "torch::jit::ProfileOptionalOp::Kind" may not be initialized"
+
+ 如果您在 Windows 上编译 mmcv-full 并且 PyTorch 的版本是 1.7.0,您很可能会遇到这个问题 `torch/include\torch/csrc/jit/ir/ir.h(1347): error: member "torch::jit::ProfileOptionalOp::Kind" may not be initialized`. 解决这个问题的方法是修改 PyTorch 中的几个文件:
+
+ - 删除 `torch/include\torch/csrc/jit/ir/ir.h` 文件中的 `static constexpr Symbol Kind = ::c10::prim::profile;` 和 `tatic constexpr Symbol Kind = ::c10::prim::profile_optional;`
+ - 将 `torch\include\pybind11\cast.h` 文件中的 `explicit operator type&() { return *(this->value); }` 替换为 `explicit operator type&() { return *((type*)this->value); }`
+ - 将 `torch/include\torch/csrc/jit/api/module.h` 文件中的 所有 `CONSTEXPR_EXCEPT_WIN_CUDA` 替换为 `const`
+
+ 更多细节可以查看 [Ensure default extra_compile_args](https://github.com/pytorch/pytorch/pull/45956)。
+
+- MMCV 和 MMDetection 的兼容性问题;"ConvWS is already registered in conv layer"
+
+ 请参考 [installation instruction](https://mmdetection.readthedocs.io/en/latest/get_started.html#installation) 为您的 MMDetection 版本安装正确版本的 MMCV。
+
+### 使用问题
+
+- "RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one"
+
+ 1. 这个错误是因为有些参数没有参与 loss 的计算,可能是代码中存在多个分支,导致有些分支没有参与 loss 的计算。更多细节见 [Expected to have finished reduction in the prior iteration before starting a new one](https://github.com/pytorch/pytorch/issues/55582)。
+ 2. 你可以设置 DDP 中的 `find_unused_parameters` 为 `True`,或者手动查找哪些参数没有用到。
+
+- "RuntimeError: Trying to backward through the graph a second time"
+
+ 不能同时设置 `GradientCumulativeOptimizerHook` 和 `OptimizerHook`,这会导致 `loss.backward()` 被调用两次,于是程序抛出 `RuntimeError`。我们只需设置其中的一个。更多细节见 [Trying to backward through the graph a second time](https://github.com/open-mmlab/mmcv/issues/1379)。
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/article.md b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/article.md
new file mode 100644
index 0000000000000000000000000000000000000000..96768502cedb607d58ea2dc8d17b3dd8b9af20b2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/article.md
@@ -0,0 +1,63 @@
+## 解读文章汇总
+
+这篇文章汇总了 [OpenMMLab](https://www.zhihu.com/people/openmmlab) 解读的部分文章(更多文章和视频见 [OpenMMLabCourse](https://github.com/open-mmlab/OpenMMLabCourse)),如果您有推荐的文章(不一定是 OpenMMLab 发布的文章,可以是自己写的文章),非常欢迎提 [Pull Request](http://127.0.0.1:5501/mmcv/docs/zh_cn/_build/html/community/pr.html) 添加到这里。
+
+### MMCV 解读文章
+
+#### 框架解读
+
+- [MMCV 核心组件分析(一):整体概述](https://zhuanlan.zhihu.com/p/336081587)
+- [MMCV 核心组件分析(二):FileHandler](https://zhuanlan.zhihu.com/p/336097883)
+- [MMCV 核心组件分析(三): FileClient](https://zhuanlan.zhihu.com/p/339190576)
+- [MMCV 核心组件分析(四): Config](https://zhuanlan.zhihu.com/p/346203167)
+- [MMCV 核心组件分析(五): Registry](https://zhuanlan.zhihu.com/p/355271993)
+- [MMCV 核心组件分析(六): Hook](https://zhuanlan.zhihu.com/p/355272220)
+- [MMCV 核心组件分析(七): Runner](https://zhuanlan.zhihu.com/p/355272459)
+- [MMCV Hook 食用指南](https://zhuanlan.zhihu.com/p/448600739)
+- [PyTorch & MMCV Dispatcher 机制解析](https://zhuanlan.zhihu.com/p/451671838)
+
+#### 工具解读
+
+- [训练可视化工具哪款是你的菜?MMCV一行代码随你挑](https://zhuanlan.zhihu.com/p/387078211)
+
+#### 安装指南
+
+- [久等了!Windows 平台 MMCV 的预编译包终于来了!](https://zhuanlan.zhihu.com/p/441653536)
+- [Windows 环境从零安装 mmcv-full](https://zhuanlan.zhihu.com/p/434491590)
+
+#### 知乎问答
+
+- [深度学习科研,如何高效进行代码和实验管理?](https://www.zhihu.com/question/269707221/answer/2480772257)
+- [深度学习方面的科研工作中的实验代码有什么规范和写作技巧?如何妥善管理实验数据?](https://www.zhihu.com/question/268193800/answer/2586000037)
+
+### 下游算法库解读文章
+
+- [MMDetection](https://mmdetection.readthedocs.io/zh_CN/latest/article.html)
+
+### PyTorch 解读文章
+
+- [PyTorch1.11 亮点一览:TorchData、functorch、DDP 静态图](https://zhuanlan.zhihu.com/p/486222256)
+- [PyTorch1.12 亮点一览:DataPipe + TorchArrow 新的数据加载与处理范式](https://zhuanlan.zhihu.com/p/537868554)
+- [PyTorch 源码解读之 nn.Module:核心网络模块接口详解](https://zhuanlan.zhihu.com/p/340453841)
+- [PyTorch 源码解读之 torch.autograd:梯度计算详解](https://zhuanlan.zhihu.com/p/321449610)
+- [PyTorch 源码解读之 torch.utils.data:解析数据处理全流程](https://zhuanlan.zhihu.com/p/337850513)
+- [PyTorch 源码解读之 torch.optim:优化算法接口详解](https://zhuanlan.zhihu.com/p/346205754)
+- [PyTorch 源码解读之 DP & DDP:模型并行和分布式训练解析](https://zhuanlan.zhihu.com/p/343951042)
+- [PyTorch 源码解读之 BN & SyncBN:BN 与 多卡同步 BN 详解](https://zhuanlan.zhihu.com/p/337732517)
+- [PyTorch 源码解读之 torch.cuda.amp: 自动混合精度详解](https://zhuanlan.zhihu.com/p/348554267)
+- [PyTorch 源码解读之 cpp_extension:揭秘 C++/CUDA 算子实现和调用全流程](https://zhuanlan.zhihu.com/p/348555597)
+- [PyTorch 源码解读之即时编译篇](https://zhuanlan.zhihu.com/p/361101354)
+- [PyTorch 源码解读之分布式训练了解一下?](https://zhuanlan.zhihu.com/p/361314953)
+- [PyTorch 源码解读之 torch.serialization & torch.hub](https://zhuanlan.zhihu.com/p/364239544)
+
+### 其他
+
+- [困扰我 48 小时的深拷贝,今天终于...](https://zhuanlan.zhihu.com/p/470892209)
+- [拿什么拯救我的 4G 显卡](https://zhuanlan.zhihu.com/p/430123077)
+- [是谁偷偷动了我的 logger](https://zhuanlan.zhihu.com/p/481383590)
+- [三句话,让 logger 言听计从](https://zhuanlan.zhihu.com/p/487524917)
+- [Logging 不为人知的二三事](https://zhuanlan.zhihu.com/p/502610682)
+- [Type Hints 入门教程,让代码更加规范整洁](https://zhuanlan.zhihu.com/p/519335398)
+- [手把手教你如何高效地在 MMCV 中贡献算子](https://zhuanlan.zhihu.com/p/464492627)
+- [OpenMMLab 支持 IPU 训练芯片](https://zhuanlan.zhihu.com/p/517527926)
+- [基于 MMCV 走上开源大佬之路?](https://zhuanlan.zhihu.com/p/391144979)
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/build.md b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/build.md
new file mode 100644
index 0000000000000000000000000000000000000000..8c2ad15d641a4f910ace360e8580a5ec3d55560e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/build.md
@@ -0,0 +1,404 @@
+## 从源码编译 MMCV
+
+### 编译 mmcv
+
+在编译 mmcv 之前,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://pytorch.org/get-started/locally/#start-locally)。可使用以下命令验证
+
+```bash
+python -c 'import torch;print(torch.__version__)'
+```
+
+:::{note}
+
+- 如果克隆代码仓库的速度过慢,可以使用以下命令克隆(注意:gitee 的 mmcv 不一定和 github 的保持一致,因为每天只同步一次)
+
+```bash
+git clone https://gitee.com/open-mmlab/mmcv.git
+```
+
+- 如果打算使用 `opencv-python-headless` 而不是 `opencv-python`,例如在一个很小的容器环境或者没有图形用户界面的服务器中,你可以先安装 `opencv-python-headless`,这样在安装 mmcv 依赖的过程中会跳过 `opencv-python`。
+
+- 如果编译过程安装依赖库的时间过长,可以[设置 pypi 源](https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)
+
+```bash
+pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
+```
+
+:::
+
+#### 在 Linux 上编译 mmcv
+
+| TODO: 视频教程
+
+1. 克隆代码仓库
+
+ ```bash
+ git clone https://github.com/open-mmlab/mmcv.git
+ cd mmcv
+ ```
+
+2. 安装 `ninja` 和 `psutil` 以加快编译速度
+
+ ```bash
+ pip install -r requirements/optional.txt
+ ```
+
+3. 检查 nvcc 的版本(要求大于等于 9.2,如果没有 GPU,可以跳过)
+
+ ```bash
+ nvcc --version
+ ```
+
+ 上述命令如果输出以下信息,表示 nvcc 的设置没有问题,否则需要设置 CUDA_HOME
+
+ ```
+ nvcc: NVIDIA (R) Cuda compiler driver
+ Copyright (c) 2005-2020 NVIDIA Corporation
+ Built on Mon_Nov_30_19:08:53_PST_2020
+ Cuda compilation tools, release 11.2, V11.2.67
+ Build cuda_11.2.r11.2/compiler.29373293_0
+ ```
+
+ :::{note}
+ 如果想要支持 ROCm,可以参考 [AMD ROCm](https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html) 安装 ROCm。
+ :::
+
+4. 检查 gcc 的版本(要求大于等于**5.4**)
+
+ ```bash
+ gcc --version
+ ```
+
+5. 开始编译(预估耗时 10 分钟)
+
+ ```bash
+ pip install -e . -v
+ ```
+
+6. 验证安装
+
+ ```bash
+ python .dev_scripts/check_installation.py
+ ```
+
+ 如果上述命令没有报错,说明安装成功。如有报错,请查看[问题解决页面](../faq.html)是否已经有解决方案。
+
+ 如果没有找到解决方案,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)。
+
+#### 在 macOS 上编译 mmcv
+
+| TODO: 视频教程
+
+```{note}
+如果你使用的是搭载 apple silicon 的 mac 设备,请安装 PyTorch 1.13+ 的版本,否则会遇到 [issues#2218](https://github.com/open-mmlab/mmcv/issues/2218) 中的问题。
+```
+
+1. 克隆代码仓库
+
+ ```bash
+ git clone https://github.com/open-mmlab/mmcv.git
+ cd mmcv
+ ```
+
+2. 安装 `ninja` 和 `psutil` 以加快编译速度
+
+ ```bash
+ pip install -r requirements/optional.txt
+ ```
+
+3. 开始编译
+
+ ```bash
+ pip install -e .
+ ```
+
+4. 验证安装
+
+ ```bash
+ python .dev_scripts/check_installation.py
+ ```
+
+ 如果上述命令没有报错,说明安装成功。如有报错,请查看[问题解决页面](../faq.md)是否已经有解决方案。
+
+ 如果没有找到解决方案,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)。
+
+#### 在 Windows 上编译 mmcv
+
+| TODO: 视频教程
+
+在 Windows 上编译 mmcv 比 Linux 复杂,本节将一步步介绍如何在 Windows 上编译 mmcv。
+
+##### 依赖项
+
+请先安装以下的依赖项:
+
+- [Git](https://git-scm.com/download/win):安装期间,请选择 **add git to Path**
+- [Visual Studio Community 2019](https://visualstudio.microsoft.com):用于编译 C++ 和 CUDA 代码
+- [Miniconda](https://docs.conda.io/en/latest/miniconda.html):包管理工具
+- [CUDA 10.2](https://developer.nvidia.com/cuda-10.2-download-archive):如果只需要 CPU 版本可以不安装 CUDA,安装 CUDA 时,可根据需要进行自定义安装。如果已经安装新版本的显卡驱动,建议取消驱动程序的安装
+
+```{note}
+如果不清楚如何安装以上依赖,请参考[Windows 环境从零安装 mmcv](https://zhuanlan.zhihu.com/p/434491590)。
+另外,你需要知道如何在 Windows 上设置变量环境,尤其是 "PATH" 的设置,以下安装过程都会用到。
+```
+
+##### 通用步骤
+
+1. 从 Windows 菜单启动 Anaconda 命令行
+
+ 如 Miniconda 安装程序建议,不要使用原始的 `cmd.exe` 或是 `powershell.exe`。命令行有两个版本,一个基于 PowerShell,一个基于传统的 `cmd.exe`。请注意以下说明都是使用的基于 PowerShell
+
+2. 创建一个新的 Conda 环境
+
+ ```powershell
+ (base) PS C:\Users\xxx> conda create --name mmcv python=3.7
+ (base) PS C:\Users\xxx> conda activate mmcv # 确保做任何操作前先激活环境
+ ```
+
+3. 安装 PyTorch 时,可以根据需要安装支持 CUDA 或不支持 CUDA 的版本
+
+ ```powershell
+ # CUDA version
+ (mmcv) PS C:\Users\xxx> conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
+ # CPU version
+ (mmcv) PS C:\Users\xxx> conda install install pytorch torchvision cpuonly -c pytorch
+ ```
+
+4. 克隆代码仓库
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx> git clone https://github.com/open-mmlab/mmcv.git
+ (mmcv) PS C:\Users\xxx> cd mmcv
+ ```
+
+5. 安装 `ninja` 和 `psutil` 以加快编译速度
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> pip install -r requirements/optional.txt
+ ```
+
+6. 设置 MSVC 编译器
+
+ 设置环境变量。添加 `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64` 到 `PATH`,则 `cl.exe` 可以在命令行中运行,如下所示。
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> cl
+ Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
+ Copyright (C) Microsoft Corporation. All rights reserved.
+
+ usage: cl [ option... ] filename... [ / link linkoption... ]
+ ```
+
+ 为了兼容性,我们使用 x86-hosted 以及 x64-targeted 版本,即路径中的 `Hostx86\x64` 。
+
+ 因为 PyTorch 将解析 `cl.exe` 的输出以检查其版本,只有 utf-8 将会被识别,你可能需要将系统语言更改为英语。控制面板 -> 地区-> 管理-> 非 Unicode 来进行语言转换。
+
+##### 编译与安装 mmcv
+
+mmcv 有两个版本:
+
+- 只包含 CPU 算子的版本
+
+ 编译 CPU 算子,但只有 x86 将会被编译,并且编译版本只能在 CPU only 情况下运行
+
+- 既包含 CPU 算子,又包含 CUDA 算子的版本
+
+ 同时编译 CPU 和 CUDA 算子,`ops` 模块的 x86 与 CUDA 的代码都可以被编译。同时编译的版本可以在 CUDA 上调用 GPU
+
+###### CPU 版本
+
+编译安装
+
+```powershell
+(mmcv) PS C:\Users\xxx\mmcv> python setup.py build_ext # 如果成功, cl 将被启动用于编译算子
+(mmcv) PS C:\Users\xxx\mmcv> python setup.py develop # 安装
+```
+
+###### GPU 版本
+
+1. 检查 `CUDA_PATH` 或者 `CUDA_HOME` 环境变量已经存在在 `envs` 之中
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> ls env:
+
+ Name Value
+ ---- -----
+ CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
+ CUDA_PATH_V10_1 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
+ CUDA_PATH_V10_2 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
+ ```
+
+ 如果没有,你可以按照下面的步骤设置
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2"
+ # 或者
+ (mmcv) PS C:\Users\xxx\mmcv> $env:CUDA_HOME = $env:CUDA_PATH_V10_2 # CUDA_PATH_V10_2 已经在环境变量中
+ ```
+
+2. 设置 CUDA 的目标架构
+
+ ```powershell
+ # 这里需要改成你的显卡对应的目标架构
+ (mmcv) PS C:\Users\xxx\mmcv> $env:TORCH_CUDA_ARCH_LIST="7.5"
+ ```
+
+ :::{note}
+ 可以点击 [cuda-gpus](https://developer.nvidia.com/cuda-gpus) 查看 GPU 的计算能力,也可以通过 CUDA 目录下的 deviceQuery.exe 工具查看
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> &"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite\deviceQuery.exe"
+ Device 0: "NVIDIA GeForce GTX 1660 SUPER"
+ CUDA Driver Version / Runtime Version 11.7 / 11.1
+ CUDA Capability Major/Minor version number: 7.5
+ ```
+
+ 上面的 7.5 表示目标架构。注意:需把上面命令的 v10.2 换成你的 CUDA 版本。
+ :::
+
+3. 编译安装
+
+ ```powershell
+ (mmcv) PS C:\Users\xxx\mmcv> python setup.py build_ext # 如果成功, cl 将被启动用于编译算子
+ (mmcv) PS C:\Users\xxx\mmcv> python setup.py develop # 安装
+ ```
+
+ ```{note}
+ 如果你的 PyTorch 版本是 1.6.0,你可能会遇到一些 [issue](https://github.com/pytorch/pytorch/issues/42467) 提到的错误,你可以参考这个 [pull request](https://github.com/pytorch/pytorch/pull/43380/files) 修改本地环境的 PyTorch 源代码
+ ```
+
+##### 验证安装
+
+```powershell
+(mmcv) PS C:\Users\xxx\mmcv> python .dev_scripts/check_installation.py
+```
+
+如果上述命令没有报错,说明安装成功。如有报错,请查看[问题解决页面](../faq.md)是否已经有解决方案。
+如果没有找到解决方案,欢迎提 [issue](https://github.com/open-mmlab/mmcv/issues)。
+
+### 编译 mmcv-lite
+
+如果你需要使用和 PyTorch 相关的模块,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://pytorch.org/get-started/locally/#start-locally)。
+
+1. 克隆代码仓库
+
+ ```bash
+ git clone https://github.com/open-mmlab/mmcv.git
+ cd mmcv
+ ```
+
+2. 开始编译
+
+ ```bash
+ MMCV_WITH_OPS=0 pip install -e . -v
+ ```
+
+3. 验证安装
+
+ ```bash
+ python -c 'import mmcv;print(mmcv.__version__)'
+ ```
+
+### 在寒武纪 MLU 机器编译 mmcv-full
+
+#### 安装 torch_mlu
+
+##### 选项1: 基于寒武纪 docker image 安装
+
+首先请下载并且拉取寒武纪 docker (请向 service@cambricon.com 发邮件以获得最新的寒武纪 pytorch 发布 docker)。
+
+```
+docker pull ${docker image}
+```
+
+进入 docker, [编译 MMCV MLU](#编译mmcv-mlu) 并[进行验证](#验证是否成功安装)。
+
+##### 选项2:基于 cambricon pytorch 源码编译安装
+
+请向 service@cambricon.com 发送邮件或联系 Cambricon 工程师以获取合适版本的 CATCH 软件包,在您获得合适版本的 CATCH 软件包后,请参照 ${CATCH-path}/CONTRIBUTING.md 中的步骤安装 CATCH。
+
+#### 编译 MMCV
+
+克隆代码仓库
+
+```bash
+git clone https://github.com/open-mmlab/mmcv.git
+```
+
+算子库 mlu-ops 在编译 MMCV 时自动下载到默认路径(mmcv/mlu-ops),你也可以在编译前设置环境变量 MMCV_MLU_OPS_PATH 指向已经存在的 mlu-ops 算子库路径。
+
+```bash
+export MMCV_MLU_OPS_PATH=/xxx/xxx/mlu-ops
+```
+
+开始编译
+
+```bash
+cd mmcv
+export MMCV_WITH_OPS=1
+export FORCE_MLU=1
+python setup.py install
+```
+
+#### 验证是否成功安装
+
+完成上述安装步骤之后,您可以尝试运行下面的 Python 代码以测试您是否成功在 MLU 设备上安装了 mmcv-full
+
+```python
+import torch
+import torch_mlu
+from mmcv.ops import sigmoid_focal_loss
+x = torch.randn(3, 10).mlu()
+x.requires_grad = True
+y = torch.tensor([1, 5, 3]).mlu()
+w = torch.ones(10).float().mlu()
+output = sigmoid_focal_loss(x, y, 2.0, 0.25, w, 'none')
+```
+
+### 在昇腾 NPU 机器编译 mmcv
+
+在编译 mmcv 前,需要安装 torch_npu,完整安装教程详见 [PyTorch 安装指南](https://gitee.com/ascend/pytorch/blob/master/docs/zh/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97.md#pytorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97)
+
+#### 选项 1: 使用 NPU 设备源码编译安装 mmcv (推荐方式)
+
+- 拉取 [MMCV 源码](https://github.com/open-mmlab/mmcv.git)
+
+```bash
+git pull https://github.com/open-mmlab/mmcv.git
+```
+
+- 编译
+
+```bash
+MMCV_WITH_OPS=1 MAX_JOBS=8 FORCE_NPU=1 python setup.py build_ext
+```
+
+- 安装
+
+```bash
+MMCV_WITH_OPS=1 FORCE_NPU=1 python setup.py develop
+```
+
+#### 选项 2: 使用 pip 安装 Ascend 编译版本的 mmcv
+
+Ascend 编译版本的 mmcv 在 mmcv >= 1.7.0 时已经支持直接 pip 安装
+
+```bash
+pip install mmcv -f https://download.openmmlab.com/mmcv/dist/ascend/torch1.8.0/index.html
+```
+
+#### 验证
+
+```python
+import torch
+import torch_npu
+from mmcv.ops import softmax_focal_loss
+
+# Init tensor to the NPU
+x = torch.randn(3, 10).npu()
+y = torch.tensor([1, 5, 3]).npu()
+w = torch.ones(10).float().npu()
+
+output = softmax_focal_loss(x, y, 2.0, 0.25, w, 'none')
+print(output)
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/installation.md b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/installation.md
new file mode 100644
index 0000000000000000000000000000000000000000..16cb007628f4ea35fe51c16c341c6a90fb625ccb
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/installation.md
@@ -0,0 +1,369 @@
+## 安装 MMCV
+
+MMCV 有两个版本:
+
+- **mmcv**: 完整版,包含所有的特性以及丰富的开箱即用的 CPU 和 CUDA 算子。注意,完整版本可能需要更长时间来编译。
+- **mmcv-lite**: 精简版,不包含 CPU 和 CUDA 算子但包含其余所有特性和功能,类似 MMCV 1.0 之前的版本。如果你不需要使用算子的话,精简版可以作为一个考虑选项。
+
+```{warning}
+请不要在同一个环境中安装两个版本,否则可能会遇到类似 `ModuleNotFound` 的错误。在安装一个版本之前,需要先卸载另一个。`如果 CUDA 可用,强烈推荐安装 mmcv`。
+```
+
+### 安装 mmcv
+
+在安装 mmcv 之前,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://pytorch.org/get-started/locally/#start-locally)。可使用以下命令验证
+
+```bash
+python -c 'import torch;print(torch.__version__)'
+```
+
+如果输出版本信息,则表示 PyTorch 已安装。
+
+#### 使用 mim 安装(推荐)
+
+[mim](https://github.com/open-mmlab/mim) 是 OpenMMLab 项目的包管理工具,使用它可以很方便地安装 mmcv。
+
+```bash
+pip install -U openmim
+mim install mmcv
+```
+
+如果发现上述的安装命令没有使用预编译包(以 `.whl` 结尾)而是使用源码包(以 `.tar.gz` 结尾)安装,则有可能是我们没有提供和当前环境的 PyTorch 版本、CUDA 版本相匹配的 mmcv 预编译包,此时,你可以[源码安装 mmcv](build.md)。
+
+
+使用预编译包的安装日志
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv
+Downloading https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/mmcv-2.0.0-cp38-cp38-manylinux1_x86_64.whl
+
+
+
+
+使用源码包的安装日志
+
+Looking in links: https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html
+Collecting mmcv==2.0.0
+Downloading mmcv-2.0.0.tar.gz
+
+
+
+如需安装指定版本的 mmcv,例如安装 2.0.0 版本的 mmcv,可使用以下命令
+
+```bash
+mim install mmcv==2.0.0
+```
+
+:::{note}
+如果你打算使用 `opencv-python-headless` 而不是 `opencv-python`,例如在一个很小的容器环境或者没有图形用户界面的服务器中,你可以先安装 `opencv-python-headless`,这样在安装 mmcv 依赖的过程中会跳过 `opencv-python`。
+
+另外,如果安装依赖库的时间过长,可以指定 pypi 源
+
+```bash
+mim install "mmcv>=2.0.0rc1" -i https://pypi.tuna.tsinghua.edu.cn/simple
+```
+
+:::
+
+安装完成后可以运行 [check_installation.py](https://github.com/open-mmlab/mmcv/blob/main/.dev_scripts/check_installation.py) 脚本检查 mmcv 是否安装成功。
+
+#### 使用 pip 安装
+
+使用以下命令查看 CUDA 和 PyTorch 的版本
+
+```bash
+python -c 'import torch;print(torch.__version__);print(torch.version.cuda)'
+```
+
+根据系统的类型、CUDA 版本、PyTorch 版本以及 MMCV 版本选择相应的安装命令
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+如果在上面的下拉框中没有找到对应的版本,则可能是没有对应 PyTorch 或者 CUDA 或者 mmcv 版本的预编译包,此时,你可以[源码安装 mmcv](build.md)。
+
+:::{note}
+PyTorch 在 1.x.0 和 1.x.1 之间通常是兼容的,故 mmcv 只提供 1.x.0 的编译包。如果你
+的 PyTorch 版本是 1.x.1,你可以放心地安装在 1.x.0 版本编译的 mmcv。例如,如果你的
+PyTorch 版本是 1.8.1,你可以放心选择 1.8.x。
+:::
+
+:::{note}
+如果你打算使用 `opencv-python-headless` 而不是 `opencv-python`,例如在一个很小的容器环境或者没有图形用户界面的服务器中,你可以先安装 `opencv-python-headless`,这样在安装 mmcv 依赖的过程中会跳过 `opencv-python`。
+
+另外,如果安装依赖库的时间过长,可以指定 pypi 源
+
+```bash
+pip install mmcv -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html -i https://pypi.tuna.tsinghua.edu.cn/simple
+```
+
+:::
+
+安装完成后可以运行 [check_installation.py](https://github.com/open-mmlab/mmcv/blob/main/.dev_scripts/check_installation.py) 脚本检查 mmcv 是否安装成功。
+
+#### 使用 docker 镜像
+
+先将算法库克隆到本地再构建镜像
+
+```bash
+git clone https://github.com/open-mmlab/mmcv.git && cd mmcv
+docker build -t mmcv -f docker/release/Dockerfile .
+```
+
+也可以直接使用下面的命令构建镜像
+
+```bash
+docker build -t mmcv https://github.com/open-mmlab/mmcv.git#main:docker/release
+```
+
+[Dockerfile](release/Dockerfile) 默认安装最新的 mmcv,如果你想要指定版本,可以使用下面的命令
+
+```bash
+docker image build -t mmcv -f docker/release/Dockerfile --build-arg MMCV=2.0.0 .
+```
+
+如果你想要使用其他版本的 PyTorch 和 CUDA,你可以在构建镜像时指定它们的版本。
+
+例如指定 PyTorch 的版本是 1.11,CUDA 的版本是 11.3
+
+```bash
+docker build -t mmcv -f docker/release/Dockerfile \
+ --build-arg PYTORCH=1.11.0 \
+ --build-arg CUDA=11.3 \
+ --build-arg CUDNN=8 \
+ --build-arg MMCV=2.0.0 .
+```
+
+更多 PyTorch 和 CUDA 镜像可以点击 [dockerhub/pytorch](https://hub.docker.com/r/pytorch/pytorch/tags) 查看。
+
+### 安装 mmcv-lite
+
+如果你需要使用和 PyTorch 相关的模块,请确保 PyTorch 已经成功安装在环境中,可以参考 [PyTorch 官方安装文档](https://pytorch.org/get-started/locally/#start-locally)。
+
+```python
+pip install mmcv-lite
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/introduction.md b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/introduction.md
new file mode 100644
index 0000000000000000000000000000000000000000..4c735b94d3db71e484d04794fb5509cabbed68a9
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/introduction.md
@@ -0,0 +1,36 @@
+## 介绍 MMCV
+
+MMCV 是一个面向计算机视觉的基础库,它提供了以下功能:
+
+- [图像和视频处理](../understand_mmcv/data_process.md)
+- [图像和标注结果可视化](../understand_mmcv/visualization.md)
+- [图像变换](../understand_mmcv/data_transform.md)
+- [多种 CNN 网络结构](../understand_mmcv/cnn.md)
+- [高质量实现的常见 CUDA 算子](../understand_mmcv/ops.md)
+
+MMCV 支持多种平台,包括:
+
+- Linux
+- Windows
+- macOS
+
+它支持的 OpenMMLab 项目:
+
+- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱
+- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱
+- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
+- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准
+- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO 系列工具箱与测试基准
+- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱
+- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具箱
+- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱
+- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 人体参数化模型工具箱与测试基准
+- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab 自监督学习工具箱与测试基准
+- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab 模型压缩工具箱与测试基准
+- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准
+- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱
+- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台
+- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准
+- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱
+- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱
+- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/previous_versions.md b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/previous_versions.md
new file mode 100644
index 0000000000000000000000000000000000000000..d543818752b51985169d4489bd46708725ce422d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/get_started/previous_versions.md
@@ -0,0 +1,47 @@
+## 其他版本的 PyTorch
+
+我们不再提供在较低的 `PyTorch` 版本下编译的 `mmcv-full` 包,但为了您的方便,您可以在下面找到它们。
+
+### PyTorch 1.4
+
+| 1.0.0 \<= mmcv_version \<= 1.2.1
+
+#### CUDA 10.1
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.4.0/index.html
+```
+
+#### CUDA 9.2
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.4.0/index.html
+```
+
+#### CPU
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.4.0/index.html
+```
+
+### PyTorch v1.3
+
+| 1.0.0 \<= mmcv_version \<= 1.3.16
+
+#### CUDA 10.1
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.3.0/index.html
+```
+
+#### CUDA 9.2
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.3.0/index.html
+```
+
+#### CPU
+
+```bash
+pip install mmcv-full=={mmcv_version} -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.3.0/index.html
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/index.rst b/FoodSeg103/demo/mmcv/docs/zh_cn/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..98cf08890618e699c7ac4731093818a07e862362
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/index.rst
@@ -0,0 +1,66 @@
+欢迎来到 MMCV 的中文文档!
+=============================
+
+您可以在页面左下角切换中英文文档。
+
+.. toctree::
+ :maxdepth: 2
+ :caption: 介绍与安装
+
+ get_started/introduction.md
+ get_started/installation.md
+ get_started/build.md
+ get_started/article.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: 深入理解 MMCV
+
+ understand_mmcv/data_process.md
+ understand_mmcv/data_transform.md
+ understand_mmcv/visualization.md
+ understand_mmcv/cnn.md
+ understand_mmcv/ops.md
+
+.. toctree::
+ :caption: 语言切换
+
+ switch_language.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: 兼容性
+
+ compatibility.md
+
+.. toctree::
+
+ faq.md
+
+.. toctree::
+ :maxdepth: 2
+ :caption: 社区
+
+ community/contributing.md
+ community/pr.md
+ community/code_style.md
+
+.. toctree::
+ :maxdepth: 1
+ :caption: API 文档
+
+ mmcv.image
+ mmcv.video
+ mmcv.visualization
+ mmcv.cnn
+ mmcv.ops
+ mmcv.transforms
+ mmcv.arraymisc
+ mmcv.utils
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/make.bat b/FoodSeg103/demo/mmcv/docs/zh_cn/make.bat
new file mode 100644
index 0000000000000000000000000000000000000000..7893348a1b7dbb588983a48e6991282eae7e1b55
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=.
+set BUILDDIR=_build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+
+:end
+popd
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/switch_language.md b/FoodSeg103/demo/mmcv/docs/zh_cn/switch_language.md
new file mode 100644
index 0000000000000000000000000000000000000000..e4ac4b229ad520f142243f3a918748c542e9989f
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/switch_language.md
@@ -0,0 +1,3 @@
+## English
+
+## 简体中文
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/cnn.md b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/cnn.md
new file mode 100644
index 0000000000000000000000000000000000000000..faba7c59187d3112d80e1c163e456734aa1b4bde
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/cnn.md
@@ -0,0 +1,75 @@
+## 卷积神经网络
+
+我们为卷积神经网络提供了一些构建模块,包括层构建、模块组件和权重初始化。
+
+### 网络层的构建
+
+在运行实验时,我们可能需要尝试同属一种类型但不同配置的层,但又不希望每次都修改代码。于是我们提供一些层构建方法,可以从字典构建层,字典可以在配置文件中配置,也可以通过命令行参数指定。
+
+#### 用法
+
+一个简单的例子:
+
+```python
+from mmcv.cnn import build_conv_layer
+
+cfg = dict(type='Conv3d')
+layer = build_conv_layer(cfg, in_channels=3, out_channels=8, kernel_size=3)
+```
+
+- `build_conv_layer`: 支持的类型包括 Conv1d、Conv2d、Conv3d、Conv (Conv是Conv2d的别名)
+- `build_norm_layer`: 支持的类型包括 BN1d、BN2d、BN3d、BN (alias for BN2d)、SyncBN、GN、LN、IN1d、IN2d、IN3d、IN(IN是IN2d的别名)
+- `build_activation_layer`:支持的类型包括 ReLU、LeakyReLU、PReLU、RReLU、ReLU6、ELU、Sigmoid、Tanh、GELU
+- `build_upsample_layer`: 支持的类型包括 nearest、bilinear、deconv、pixel_shuffle
+- `build_padding_layer`: 支持的类型包括 zero、reflect、replicate
+
+#### 拓展
+
+我们还允许自定义层和算子来扩展构建方法。
+
+1. 编写和注册自己的模块:
+
+ ```python
+ from mmengine.registry import MODELS
+
+ @MODELS.register_module()
+ class MyUpsample:
+
+ def __init__(self, scale_factor):
+ pass
+
+ def forward(self, x):
+ pass
+ ```
+
+2. 在某处导入 `MyUpsample` (例如 `__init__.py` )然后使用它:
+
+ ```python
+ from mmcv.cnn import build_upsample_layer
+
+ cfg = dict(type='MyUpsample', scale_factor=2)
+ layer = build_upsample_layer(cfg)
+ ```
+
+### 模块组件
+
+我们还提供了常用的模块组件,以方便网络构建。
+卷积组件 `ConvModule` 由 convolution、normalization以及activation layers 组成,更多细节请参考 [ConvModule api](api.html#mmcv.cnn.ConvModule)。
+
+```python
+from mmcv.cnn import ConvModule
+
+# conv + bn + relu
+conv = ConvModule(3, 8, 2, norm_cfg=dict(type='BN'))
+# conv + gn + relu
+conv = ConvModule(3, 8, 2, norm_cfg=dict(type='GN', num_groups=2))
+# conv + relu
+conv = ConvModule(3, 8, 2)
+# conv
+conv = ConvModule(3, 8, 2, act_cfg=None)
+# conv + leaky relu
+conv = ConvModule(3, 8, 3, padding=1, act_cfg=dict(type='LeakyReLU'))
+# bn + conv + relu
+conv = ConvModule(
+ 3, 8, 2, norm_cfg=dict(type='BN'), order=('norm', 'conv', 'act'))
+```
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/data_process.md b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/data_process.md
new file mode 100644
index 0000000000000000000000000000000000000000..7e0afd1e690b51d43d6e5b88cfa198dee32eb3d2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/data_process.md
@@ -0,0 +1,275 @@
+## 数据处理
+
+### 图像
+
+图像模块提供了一些图像预处理的函数,该模块依赖 `opencv` 。
+
+#### 读取/保存/显示
+
+使用 `imread` 和 `imwrite` 函数可以读取和保存图像。
+
+```python
+import mmcv
+
+img = mmcv.imread('test.jpg')
+img = mmcv.imread('test.jpg', flag='grayscale')
+img_ = mmcv.imread(img) # 相当于什么也没做
+mmcv.imwrite(img, 'out.jpg')
+```
+
+从二进制中读取图像
+
+```python
+with open('test.jpg', 'rb') as f:
+ data = f.read()
+img = mmcv.imfrombytes(data)
+```
+
+显示图像文件或已读取的图像
+
+```python
+mmcv.imshow('tests/data/color.jpg')
+
+for i in range(10):
+ img = np.random.randint(256, size=(100, 100, 3), dtype=np.uint8)
+ mmcv.imshow(img, win_name='test image', wait_time=200)
+```
+
+#### 色彩空间转换
+
+支持的转换函数:
+
+- bgr2gray
+- gray2bgr
+- bgr2rgb
+- rgb2bgr
+- bgr2hsv
+- hsv2bgr
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+img1 = mmcv.bgr2rgb(img)
+img2 = mmcv.rgb2gray(img1)
+img3 = mmcv.bgr2hsv(img)
+```
+
+#### 缩放
+
+有三种缩放图像的方法。所有以 `imresize_*` 开头的函数都有一个 `return_scale` 参数,如果
+该参数为 `False` ,函数的返回值只有调整之后的图像,否则是一个元组 `(resized_img, scale)` 。
+
+```python
+# 缩放图像至给定的尺寸
+mmcv.imresize(img, (1000, 600), return_scale=True)
+
+# 缩放图像至与给定的图像同样的尺寸
+mmcv.imresize_like(img, dst_img, return_scale=False)
+
+# 以一定的比例缩放图像
+mmcv.imrescale(img, 0.5)
+
+# 缩放图像至最长的边不大于1000、最短的边不大于800并且没有改变图像的长宽比
+mmcv.imrescale(img, (1000, 800))
+```
+
+#### 旋转
+
+我们可以使用 `imrotate` 旋转图像一定的角度。旋转的中心需要指定,默认值是原始图像的中心。有
+两种旋转的模式,一种保持图像的尺寸不变,因此旋转后原始图像中的某些部分会被裁剪,另一种是扩大
+图像的尺寸进而保留完整的原始图像。
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+
+# 顺时针旋转图像30度
+img_ = mmcv.imrotate(img, 30)
+
+# 逆时针旋转图像90度
+img_ = mmcv.imrotate(img, -90)
+
+# 顺时针旋转图像30度并且缩放图像为原始图像的1.5倍
+img_ = mmcv.imrotate(img, 30, scale=1.5)
+
+# 以坐标(100, 100)为中心顺时针旋转图像30度
+img_ = mmcv.imrotate(img, 30, center=(100, 100))
+
+# 顺时针旋转图像30度并扩大图像的尺寸
+img_ = mmcv.imrotate(img, 30, auto_bound=True)
+```
+
+#### 翻转
+
+我们可以使用 `imflip` 翻转图像。
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+
+# 水平翻转图像
+mmcv.imflip(img)
+
+# 垂直翻转图像
+mmcv.imflip(img, direction='vertical')
+```
+
+#### 裁剪
+
+`imcrop` 可以裁剪图像的一个或多个区域,每个区域用左上角和右下角坐标表示,形如(x1, y1, x2, y2)
+
+```python
+import mmcv
+import numpy as np
+
+img = mmcv.imread('tests/data/color.jpg')
+
+# 裁剪区域 (10, 10, 100, 120)
+bboxes = np.array([10, 10, 100, 120])
+patch = mmcv.imcrop(img, bboxes)
+
+# 裁剪两个区域,分别是 (10, 10, 100, 120) 和 (0, 0, 50, 50)
+bboxes = np.array([[10, 10, 100, 120], [0, 0, 50, 50]])
+patches = mmcv.imcrop(img, bboxes)
+
+# 裁剪两个区域并且缩放区域1.2倍
+patches = mmcv.imcrop(img, bboxes, scale=1.2)
+```
+
+#### 填充
+
+`impad` and `impad_to_multiple` 可以用给定的值将图像填充至给定的尺寸。
+
+```python
+img = mmcv.imread('tests/data/color.jpg')
+
+# 用给定值将图像填充至 (1000, 1200)
+img_ = mmcv.impad(img, shape=(1000, 1200), pad_val=0)
+
+# 用给定值分别填充图像的3个通道至 (1000, 1200)
+img_ = mmcv.impad(img, shape=(1000, 1200), pad_val=(100, 50, 200))
+
+# 用给定值填充图像的左、右、上、下四条边
+img_ = mmcv.impad(img, padding=(10, 20, 30, 40), pad_val=0)
+
+# 用3个值分别填充图像的左、右、上、下四条边的3个通道
+img_ = mmcv.impad(img, padding=(10, 20, 30, 40), pad_val=(100, 50, 200))
+
+# 将图像的四条边填充至能够被给定值整除
+img_ = mmcv.impad_to_multiple(img, 32)
+```
+
+### 视频
+
+视频模块提供了以下的功能:
+
+- 一个 `VideoReader` 类,具有友好的 API 接口可以读取和转换视频
+- 一些编辑视频的方法,包括 `cut` , `concat` , `resize`
+- 光流的读取/保存/变换
+
+#### VideoReader
+
+`VideoReader` 类提供了和序列一样的接口去获取视频帧。该类会缓存所有被访问过的帧。
+
+```python
+video = mmcv.VideoReader('test.mp4')
+
+# 获取基本的信息
+print(len(video))
+print(video.width, video.height, video.resolution, video.fps)
+
+# 遍历所有的帧
+for frame in video:
+ print(frame.shape)
+
+# 读取下一帧
+img = video.read()
+
+# 使用索引获取帧
+img = video[100]
+
+# 获取指定范围的帧
+img = video[5:10]
+```
+
+将视频切成帧并保存至给定目录或者从给定目录中生成视频。
+
+```python
+# 将视频切成帧并保存至目录
+video = mmcv.VideoReader('test.mp4')
+video.cvt2frames('out_dir')
+
+# 从给定目录中生成视频
+mmcv.frames2video('out_dir', 'test.avi')
+```
+
+#### 编辑函数
+
+有几个用于编辑视频的函数,这些函数是对 `ffmpeg` 的封装。
+
+```python
+# 裁剪视频
+mmcv.cut_video('test.mp4', 'clip1.mp4', start=3, end=10, vcodec='h264')
+
+# 将多个视频拼接成一个视频
+mmcv.concat_video(['clip1.mp4', 'clip2.mp4'], 'joined.mp4', log_level='quiet')
+
+# 将视频缩放至给定的尺寸
+mmcv.resize_video('test.mp4', 'resized1.mp4', (360, 240))
+
+# 将视频缩放至给定的倍率
+mmcv.resize_video('test.mp4', 'resized2.mp4', ratio=2)
+```
+
+#### 光流
+
+`mmcv` 提供了以下用于操作光流的函数:
+
+- 读取/保存
+- 可视化
+- 流变换
+
+我们提供了两种将光流dump到文件的方法,分别是非压缩和压缩的方法。非压缩的方法直接将浮点数值的光流
+保存至二进制文件,虽然光流无损但文件会比较大。而压缩的方法先量化光流至 0-255 整形数值再保存为
+jpeg图像。光流的x维度和y维度会被拼接到图像中。
+
+1. 读取/保存
+
+```python
+flow = np.random.rand(800, 600, 2).astype(np.float32)
+# 保存光流到flo文件 (~3.7M)
+mmcv.flowwrite(flow, 'uncompressed.flo')
+# 保存光流为jpeg图像 (~230K),图像的尺寸为 (800, 1200)
+mmcv.flowwrite(flow, 'compressed.jpg', quantize=True, concat_axis=1)
+
+# 读取光流文件,以下两种方式读取的光流尺寸均为 (800, 600, 2)
+flow = mmcv.flowread('uncompressed.flo')
+flow = mmcv.flowread('compressed.jpg', quantize=True, concat_axis=1)
+```
+
+2. 可视化
+
+使用 `mmcv.flowshow()` 可视化光流
+
+```python
+mmcv.flowshow(flow)
+```
+
+![progress](../../en/_static/flow_visualization.png)
+
+1. 流变换
+
+```python
+img1 = mmcv.imread('img1.jpg')
+flow = mmcv.flowread('flow.flo')
+warped_img2 = mmcv.flow_warp(img1, flow)
+```
+
+img1 (左) and img2 (右)
+
+![raw images](../../en/_static/flow_raw_images.png)
+
+光流 (img2 -> img1)
+
+![optical flow](../../en/_static/flow_img2toimg1.png)
+
+变换后的图像和真实图像的差异
+
+![warped image](../../en/_static/flow_warp_diff.png)
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/data_transform.md b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/data_transform.md
new file mode 100644
index 0000000000000000000000000000000000000000..47d16e1b5279cdcdf8700876d3d94e152b3181a0
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/data_transform.md
@@ -0,0 +1,341 @@
+# 数据变换
+
+在 OpenMMLab 算法库中,数据集的构建和数据的准备是相互解耦的。通常,数据集的构建只对数据集进行解析,记录每个样本的基本信息;而数据的准备则是通过一系列的数据变换,根据样本的基本信息进行数据加载、预处理、格式化等操作。
+
+## 数据变换的设计
+
+在 MMCV 中,我们使用各种可调用的数据变换类来进行数据的操作。这些数据变换类可以接受若干配置参数进行实例化,之后通过调用的方式对输入的数据字典进行处理。同时,我们约定所有数据变换都接受一个字典作为输入,并将处理后的数据输出为一个字典。一个简单的例子如下:
+
+```python
+>>> import numpy as np
+>>> from mmcv.transforms import Resize
+>>>
+>>> transform = Resize(scale=(224, 224))
+>>> data_dict = {'img': np.random.rand(256, 256, 3)}
+>>> data_dict = transform(data_dict)
+>>> print(data_dict['img'].shape)
+(224, 224, 3)
+```
+
+数据变换类会读取输入字典的某些字段,并且可能添加、或者更新某些字段。这些字段的键大部分情况下是固定的,如 `Resize` 会固定地读取输入字典中的 `"img"` 等字段。我们可以在对应类的文档中了解对输入输出字段的约定。
+
+```{note}
+默认情况下,在需要图像尺寸作为**初始化参数**的数据变换 (如Resize, Pad) 中,图像尺寸的顺序均为 (width, height)。在数据变换**返回的字典**中,图像相关的尺寸, 如 `img_shape`、`ori_shape`、`pad_shape` 等,均为 (height, width)。
+```
+
+MMCV 为所有的数据变换类提供了一个统一的基类 (`BaseTransform`):
+
+```python
+class BaseTransform(metaclass=ABCMeta):
+
+ def __call__(self, results: dict) -> dict:
+
+ return self.transform(results)
+
+ @abstractmethod
+ def transform(self, results: dict) -> dict:
+ pass
+```
+
+所有的数据变换类都需要继承 `BaseTransform`,并实现 `transform` 方法。`transform` 方法的输入和输出均为一个字典。在**自定义数据变换类**一节中,我们会更详细地介绍如何实现一个数据变换类。
+
+## 数据流水线
+
+如上所述,所有数据变换的输入和输出都是一个字典,而且根据 OpenMMLab 中 [有关数据集的约定](TODO),数据集中每个样本的基本信息都是一个字典。这样一来,我们可以将所有的数据变换操作首尾相接,组合成为一条数据流水线(data pipeline),输入数据集中样本的信息字典,输出完成一系列处理后的信息字典。
+
+以分类任务为例,我们在下图展示了一个典型的数据流水线。对每个样本,数据集中保存的基本信息是一个如图中最左侧所示的字典,之后每经过一个由蓝色块代表的数据变换操作,数据字典中都会加入新的字段(标记为绿色)或更新现有的字段(标记为橙色)。
+
+
+
+
+
+在配置文件中,数据流水线是一个若干数据变换配置字典组成的列表,每个数据集都需要设置参数 `pipeline` 来定义该数据集需要进行的数据准备操作。如上数据流水线在配置文件中的配置如下:
+
+```python
+pipeline = [
+ dict(type='LoadImageFromFile'),
+ dict(type='Resize', size=256, keep_ratio=True),
+ dict(type='CenterCrop', crop_size=224),
+ dict(type='Normalize', mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375]),
+ dict(type='ClsFormatBundle')
+]
+
+dataset = dict(
+ ...
+ pipeline=pipeline,
+ ...
+)
+```
+
+## 常用的数据变换类
+
+按照功能,常用的数据变换类可以大致分为数据加载、数据预处理与增强、数据格式化。在 MMCV 中,我们提供了一些常用的数据变换类如下:
+
+### 数据加载
+
+为了支持大规模数据集的加载,通常在 `Dataset` 初始化时不加载数据,只加载相应的路径。因此需要在数据流水线中进行具体数据的加载。
+
+| class | 功能 |
+| :-------------------------: | :---------------------------------------: |
+| [`LoadImageFromFile`](TODO) | 根据路径加载图像 |
+| [`LoadAnnotations`](TODO) | 加载和组织标注信息,如 bbox、语义分割图等 |
+
+### 数据预处理及增强
+
+数据预处理和增强通常是对图像本身进行变换,如裁剪、填充、缩放等。
+
+| class | 功能 |
+| :------------------------------: | :--------------------------------: |
+| [`Pad`](TODO) | 填充图像边缘 |
+| [`CenterCrop`](TODO) | 居中裁剪 |
+| [`Normalize`](TODO) | 对图像进行归一化 |
+| [`Resize`](TODO) | 按照指定尺寸或比例缩放图像 |
+| [`RandomResize`](TODO) | 缩放图像至指定范围的随机尺寸 |
+| [`RandomMultiscaleResize`](TODO) | 缩放图像至多个尺寸中的随机一个尺寸 |
+| [`RandomGrayscale`](TODO) | 随机灰度化 |
+| [`RandomFlip`](TODO) | 图像随机翻转 |
+| [`MultiScaleFlipAug`](TODO) | 支持缩放和翻转的测试时数据增强 |
+
+### 数据格式化
+
+数据格式化操作通常是对数据进行的类型转换。
+
+| class | 功能 |
+| :---------------------: | :-------------------------------: |
+| [`ToTensor`](TODO) | 将指定的数据转换为 `torch.Tensor` |
+| [`ImageToTensor`](TODO) | 将图像转换为 `torch.Tensor` |
+
+## 自定义数据变换类
+
+要实现一个新的数据变换类,需要继承 `BaseTransform`,并实现 `transform` 方法。这里,我们使用一个简单的翻转变换(`MyFlip`)作为示例:
+
+```python
+import random
+import mmcv
+from mmcv.transforms import BaseTransform, TRANSFORMS
+
+@TRANSFORMS.register_module()
+class MyFlip(BaseTransform):
+ def __init__(self, direction: str):
+ super().__init__()
+ self.direction = direction
+
+ def transform(self, results: dict) -> dict:
+ img = results['img']
+ results['img'] = mmcv.imflip(img, direction=self.direction)
+ return results
+```
+
+从而,我们可以实例化一个 `MyFlip` 对象,并将之作为一个可调用对象,来处理我们的数据字典。
+
+```python
+import numpy as np
+
+transform = MyFlip(direction='horizontal')
+data_dict = {'img': np.random.rand(224, 224, 3)}
+data_dict = transform(data_dict)
+processed_img = data_dict['img']
+```
+
+又或者,在配置文件的 pipeline 中使用 `MyFlip` 变换
+
+```python
+pipeline = [
+ ...
+ dict(type='MyFlip', direction='horizontal'),
+ ...
+]
+```
+
+需要注意的是,如需在配置文件中使用,需要保证 `MyFlip` 类所在的文件在运行时能够被导入。
+
+## 变换包装
+
+变换包装是一种特殊的数据变换类,他们本身并不操作数据字典中的图像、标签等信息,而是对其中定义的数据变换的行为进行增强。
+
+### 字段映射(KeyMapper)
+
+字段映射包装(`KeyMapper`)用于对数据字典中的字段进行映射。例如,一般的图像处理变换都从数据字典中的 `"img"` 字段获得值。但有些时候,我们希望这些变换处理数据字典中其他字段中的图像,比如 `"gt_img"` 字段。
+
+如果配合注册器和配置文件使用的话,在配置文件中数据集的 `pipeline` 中如下例使用字段映射包装:
+
+```python
+pipeline = [
+ ...
+ dict(type='KeyMapper',
+ mapping={
+ 'img': 'gt_img', # 将 "gt_img" 字段映射至 "img" 字段
+ 'mask': ..., # 不使用原始数据中的 "mask" 字段。即对于被包装的数据变换,数据中不包含 "mask" 字段
+ },
+ auto_remap=True, # 在完成变换后,将 "img" 重映射回 "gt_img" 字段
+ transforms=[
+ # 在 `RandomFlip` 变换类中,我们只需要操作 "img" 字段即可
+ dict(type='RandomFlip'),
+ ])
+ ...
+]
+```
+
+利用字段映射包装,我们在实现数据变换类时,不需要考虑在 `transform` 方法中考虑各种可能的输入字段名,只需要处理默认的字段即可。
+
+### 随机选择(RandomChoice)和随机执行(RandomApply)
+
+随机选择包装(`RandomChoice`)用于从一系列数据变换组合中随机应用一个数据变换组合。利用这一包装,我们可以简单地实现一些数据增强功能,比如 AutoAugment。
+
+如果配合注册器和配置文件使用的话,在配置文件中数据集的 `pipeline` 中如下例使用随机选择包装:
+
+```python
+pipeline = [
+ ...
+ dict(type='RandomChoice',
+ transforms=[
+ [
+ dict(type='Posterize', bits=4),
+ dict(type='Rotate', angle=30.)
+ ], # 第一种随机变化组合
+ [
+ dict(type='Equalize'),
+ dict(type='Rotate', angle=30)
+ ], # 第二种随机变换组合
+ ],
+ prob=[0.4, 0.6] # 两种随机变换组合各自的选用概率
+ )
+ ...
+]
+```
+
+随机执行包装(`RandomApply`)用于以指定概率随机执行数据变换组合。例如:
+
+```python
+pipeline = [
+ ...
+ dict(type='RandomApply',
+ transforms=[dict(type='Rotate', angle=30.)],
+ prob=0.3) # 以 0.3 的概率执行被包装的数据变换
+ ...
+]
+```
+
+### 多目标扩展(TransformBroadcaster)
+
+通常,一个数据变换类只会从一个固定的字段读取操作目标。虽然我们也可以使用 `KeyMapper` 来改变读取的字段,但无法将变换一次性应用于多个字段的数据。为了实现这一功能,我们需要借助多目标扩展包装(`TransformBroadcaster`)。
+
+多目标扩展包装(`TransformBroadcaster`)有两个用法,一是将数据变换作用于指定的多个字段,二是将数据变换作用于某个字段下的一组目标中。
+
+1. 应用于多个字段
+
+ 假设我们需要将数据变换应用于 `"lq"` (low-quality) 和 `"gt"` (ground-truth) 两个字段中的图像上。
+
+ ```python
+ pipeline = [
+ dict(type='TransformBroadcaster',
+ # 分别应用于 "lq" 和 "gt" 两个字段,并将二者应设置 "img" 字段
+ mapping={'img': ['lq', 'gt']},
+ # 在完成变换后,将 "img" 字段重映射回原先的字段
+ auto_remap=True,
+ # 是否在对各目标的变换中共享随机变量
+ # 更多介绍参加后续章节(随机变量共享)
+ share_random_params=True,
+ transforms=[
+ # 在 `RandomFlip` 变换类中,我们只需要操作 "img" 字段即可
+ dict(type='RandomFlip'),
+ ])
+ ]
+ ```
+
+ 在多目标扩展的 `mapping` 设置中,我们同样可以使用 `...` 来忽略指定的原始字段。如以下例子中,被包裹的 `RandomCrop` 会对字段 `"img"` 中的图像进行裁剪,并且在字段 `"img_shape"` 存在时更新剪裁后的图像大小。如果我们希望同时对两个图像字段 `"lq"` 和 `"gt"` 进行相同的随机裁剪,但只更新一次 `"img_shape"` 字段,可以通过例子中的方式实现:
+
+ ```python
+ pipeline = [
+ dict(type='TransformBroadcaster',
+ mapping={
+ 'img': ['lq', 'gt'],
+ 'img_shape': ['img_shape', ...],
+ },
+ # 在完成变换后,将 "img" 和 "img_shape" 字段重映射回原先的字段
+ auto_remap=True,
+ # 是否在对各目标的变换中共享随机变量
+ # 更多介绍参加后续章节(随机变量共享)
+ share_random_params=True,
+ transforms=[
+ # `RandomCrop` 类中会操作 "img" 和 "img_shape" 字段。若 "img_shape" 空缺,
+ # 则只操作 "img"
+ dict(type='RandomCrop'),
+ ])
+ ]
+ ```
+
+2. 应用于一个字段的一组目标
+
+ 假设我们需要将数据变换应用于 `"images"` 字段,该字段为一个图像组成的 list。
+
+ ```python
+ pipeline = [
+ dict(type='TransformBroadcaster',
+ # 将 "images" 字段下的每张图片映射至 "img" 字段
+ mapping={'img': 'images'},
+ # 在完成变换后,将 "img" 字段下的图片重映射回 "images" 字段的列表中
+ auto_remap=True,
+ # 是否在对各目标的变换中共享随机变量
+ share_random_params=True,
+ transforms=[
+ # 在 `RandomFlip` 变换类中,我们只需要操作 "img" 字段即可
+ dict(type='RandomFlip'),
+ ])
+ ]
+ ```
+
+#### 装饰器 `cache_randomness`
+
+在 `TransformBroadcaster` 中,我们提供了 `share_random_params` 选项来支持在多次数据变换中共享随机状态。例如,在超分辨率任务中,我们希望将随机变换**同步**作用于低分辨率图像和原始图像。如果我们希望在自定义的数据变换类中使用这一功能,需要在类中标注哪些随机变量是支持共享的。这可以通过装饰器 `cache_randomness` 来实现。
+
+以上文中的 `MyFlip` 为例,我们希望以一定的概率随机执行翻转:
+
+```python
+from mmcv.transforms.utils import cache_randomness
+
+@TRANSFORMS.register_module()
+class MyRandomFlip(BaseTransform):
+ def __init__(self, prob: float, direction: str):
+ super().__init__()
+ self.prob = prob
+ self.direction = direction
+
+ @cache_randomness # 标注该方法的输出为可共享的随机变量
+ def do_flip(self):
+ flip = True if random.random() > self.prob else False
+ return flip
+
+ def transform(self, results: dict) -> dict:
+ img = results['img']
+ if self.do_flip():
+ results['img'] = mmcv.imflip(img, direction=self.direction)
+ return results
+```
+
+在上面的例子中,我们用`cache_randomness` 装饰 `do_flip`方法,即将该方法返回值 `flip` 标注为一个支持共享的随机变量。进而,在 `TransformBroadcaster` 对多个目标的变换中,这一变量的值都会保持一致。
+
+#### 装饰器 `avoid_cache_randomness`
+
+在一些情况下,我们无法将数据变换中产生随机变量的过程单独放在类方法中。例如数据变换中使用的来自第三方库的模块,这些模块将随机变量相关的部分封装在了内部,导致无法将其抽出为数据变换的类方法。这样的数据变换无法通过装饰器 `cache_randomness` 标注支持共享的随机变量,进而无法在多目标扩展时共享随机变量。
+
+为了避免在多目标扩展中误用此类数据变换,我们提供了另一个装饰器 `avoid_cache_randomness`,用来对此类数据变换进行标记:
+
+```python
+from mmcv.transforms.utils import avoid_cache_randomness
+
+@TRANSFORMS.register_module()
+@avoid_cache_randomness
+class MyRandomTransform(BaseTransform):
+
+ def transform(self, results: dict) -> dict:
+ ...
+```
+
+用 `avoid_cache_randomness` 标记的数据变换类,当其实例被 `TransformBroadcaster` 包装且将参数 `share_random_params` 设置为 True 时,会抛出异常,以此提醒用户不能这样使用。
+
+在使用 `avoid_cache_randomness` 时需要注意以下几点:
+
+1. `avoid_cache_randomness` 只用于装饰数据变换类(BaseTransfrom 的子类),而不能用与装饰其他一般的类、类方法或函数
+2. 被 `avoid_cache_randomness` 修饰的数据变换作为基类时,其子类将**不会继承**这一特性。如果子类仍无法共享随机变量,则应再次使用 `avoid_cache_randomness` 修饰
+3. 只有当一个数据变换具有随机性,且无法共享随机参数时,才需要以 `avoid_cache_randomness` 修饰。无随机性的数据变换不需要修饰
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/ops.md b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/ops.md
new file mode 100644
index 0000000000000000000000000000000000000000..ba744daf110da2e78ccf596ff2cd629a2280344b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/ops.md
@@ -0,0 +1,66 @@
+## 算子
+
+MMCV 提供了检测、分割等任务中常用的算子
+
+| Device | CPU | CUDA | MLU | MPS | Ascend |
+| ---------------------------- | --- | ---- | --- | --- | ------ |
+| ActiveRotatedFilter | √ | √ | | | √ |
+| AssignScoreWithK | | √ | | | |
+| BallQuery | | √ | √ | | |
+| BBoxOverlaps | | √ | √ | √ | √ |
+| BorderAlign | | √ | | | |
+| BoxIouRotated | √ | √ | √ | | √ |
+| BoxIouQuadri | √ | √ | | | |
+| CARAFE | | √ | √ | | |
+| ChamferDistance | | √ | | | |
+| CrissCrossAttention | | √ | | | |
+| ContourExpand | √ | | | | |
+| ConvexIoU | | √ | | | |
+| CornerPool | | √ | | | |
+| Correlation | | √ | | | |
+| Deformable Convolution v1/v2 | √ | √ | √ | | √ |
+| Deformable RoIPool | | √ | √ | | √ |
+| DiffIoURotated | | √ | √ | | |
+| DynamicScatter | | √ | √ | | |
+| FurthestPointSample | | √ | | | |
+| FurthestPointSampleWithDist | | √ | | | |
+| FusedBiasLeakyrelu | | √ | | | √ |
+| GatherPoints | | √ | | | √ |
+| GroupPoints | | √ | | | |
+| Iou3d | | √ | √ | | |
+| KNN | | √ | | | |
+| MaskedConv | | √ | √ | | √ |
+| MergeCells | | √ | | | |
+| MinAreaPolygon | | √ | | | |
+| ModulatedDeformConv2d | √ | √ | √ | | √ |
+| MultiScaleDeformableAttn | | √ | √ | | |
+| NMS | √ | √ | √ | | √ |
+| NMSRotated | √ | √ | √ | | √ |
+| NMSQuadri | √ | √ | | | |
+| PixelGroup | √ | | | | |
+| PointsInBoxes | √ | √ | | | |
+| PointsInPolygons | | √ | | | |
+| PSAMask | √ | √ | √ | | √ |
+| RotatedFeatureAlign | √ | √ | √ | | |
+| RoIPointPool3d | | √ | √ | | |
+| RoIPool | | √ | √ | | √ |
+| RoIAlignRotated | √ | √ | √ | | |
+| RiRoIAlignRotated | | √ | | | |
+| RoIAlign | √ | √ | √ | | √ |
+| RoIAwarePool3d | | √ | √ | | |
+| SAConv2d | | √ | | | |
+| SigmoidFocalLoss | | √ | √ | | √ |
+| SoftmaxFocalLoss | | √ | | | √ |
+| SoftNMS | | √ | | | |
+| Sparse Convolution | | √ | √ | | |
+| Synchronized BatchNorm | | √ | | | |
+| ThreeInterpolate | | √ | | | |
+| ThreeNN | | √ | √ | | |
+| TINShift | | √ | √ | | |
+| UpFirDn2d | | √ | | | |
+| Voxelization | √ | √ | √ | | √ |
+| PrRoIPool | | √ | | | |
+| BezierAlign | √ | √ | | | |
+| BiasAct | | √ | | | |
+| FilteredLrelu | | √ | | | |
+| Conv2dGradfix | | √ | | | |
diff --git a/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/visualization.md b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/visualization.md
new file mode 100644
index 0000000000000000000000000000000000000000..9ad26c6a822cae0c084c52e204baa07b88627b97
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/docs/zh_cn/understand_mmcv/visualization.md
@@ -0,0 +1,24 @@
+## 可视化
+
+`mmcv` 可以展示图像以及标注(目前只支持标注框)
+
+```python
+# 展示图像文件
+mmcv.imshow('a.jpg')
+
+# 展示已加载的图像
+img = np.random.rand(100, 100, 3)
+mmcv.imshow(img)
+
+# 展示带有标注框的图像
+img = np.random.rand(100, 100, 3)
+bboxes = np.array([[0, 0, 50, 50], [20, 20, 60, 60]])
+mmcv.imshow_bboxes(img, bboxes)
+```
+
+`mmcv` 也可以展示特殊的图像,例如光流
+
+```python
+flow = mmcv.flowread('test.flo')
+mmcv.flowshow(flow)
+```
diff --git a/FoodSeg103/demo/mmcv/mmcv/__init__.py b/FoodSeg103/demo/mmcv/mmcv/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..2410ea555e905acb450792a427596764e16f62d3
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/__init__.py
@@ -0,0 +1,13 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+# flake8: noqa
+from .arraymisc import *
+from .image import *
+from .transforms import *
+from .version import *
+from .video import *
+from .visualization import *
+
+# The following modules are not imported to this level, so mmcv may be used
+# without PyTorch.
+# - op
+# - utils
diff --git a/FoodSeg103/demo/mmcv/mmcv/arraymisc/__init__.py b/FoodSeg103/demo/mmcv/mmcv/arraymisc/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..4b4700d6139ae3d604ff6e542468cce4200c020c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/arraymisc/__init__.py
@@ -0,0 +1,4 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from .quantization import dequantize, quantize
+
+__all__ = ['quantize', 'dequantize']
diff --git a/FoodSeg103/demo/mmcv/mmcv/arraymisc/quantization.py b/FoodSeg103/demo/mmcv/mmcv/arraymisc/quantization.py
new file mode 100644
index 0000000000000000000000000000000000000000..6182710d51787061304cfc7304ec97d565822536
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/arraymisc/quantization.py
@@ -0,0 +1,65 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Union
+
+import numpy as np
+
+
+def quantize(arr: np.ndarray,
+ min_val: Union[int, float],
+ max_val: Union[int, float],
+ levels: int,
+ dtype=np.int64) -> tuple:
+ """Quantize an array of (-inf, inf) to [0, levels-1].
+
+ Args:
+ arr (ndarray): Input array.
+ min_val (int or float): Minimum value to be clipped.
+ max_val (int or float): Maximum value to be clipped.
+ levels (int): Quantization levels.
+ dtype (np.type): The type of the quantized array.
+
+ Returns:
+ tuple: Quantized array.
+ """
+ if not (isinstance(levels, int) and levels > 1):
+ raise ValueError(
+ f'levels must be a positive integer, but got {levels}')
+ if min_val >= max_val:
+ raise ValueError(
+ f'min_val ({min_val}) must be smaller than max_val ({max_val})')
+
+ arr = np.clip(arr, min_val, max_val) - min_val
+ quantized_arr = np.minimum(
+ np.floor(levels * arr / (max_val - min_val)).astype(dtype), levels - 1)
+
+ return quantized_arr
+
+
+def dequantize(arr: np.ndarray,
+ min_val: Union[int, float],
+ max_val: Union[int, float],
+ levels: int,
+ dtype=np.float64) -> tuple:
+ """Dequantize an array.
+
+ Args:
+ arr (ndarray): Input array.
+ min_val (int or float): Minimum value to be clipped.
+ max_val (int or float): Maximum value to be clipped.
+ levels (int): Quantization levels.
+ dtype (np.type): The type of the dequantized array.
+
+ Returns:
+ tuple: Dequantized array.
+ """
+ if not (isinstance(levels, int) and levels > 1):
+ raise ValueError(
+ f'levels must be a positive integer, but got {levels}')
+ if min_val >= max_val:
+ raise ValueError(
+ f'min_val ({min_val}) must be smaller than max_val ({max_val})')
+
+ dequantized_arr = (arr + 0.5).astype(dtype) * (max_val -
+ min_val) / levels + min_val
+
+ return dequantized_arr
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/__init__.py b/FoodSeg103/demo/mmcv/mmcv/cnn/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..10e7e027e4da544f42a6a4fe3400d9413a57e081
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/__init__.py
@@ -0,0 +1,28 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from .alexnet import AlexNet
+# yapf: disable
+from .bricks import (ContextBlock, Conv2d, Conv3d, ConvAWS2d, ConvModule,
+ ConvTranspose2d, ConvTranspose3d, ConvWS2d,
+ DepthwiseSeparableConvModule, GeneralizedAttention,
+ HSigmoid, HSwish, Linear, MaxPool2d, MaxPool3d,
+ NonLocal1d, NonLocal2d, NonLocal3d, Scale, Swish,
+ build_activation_layer, build_conv_layer,
+ build_norm_layer, build_padding_layer, build_plugin_layer,
+ build_upsample_layer, conv_ws_2d, is_norm)
+# yapf: enable
+from .resnet import ResNet, make_res_layer
+from .rfsearch import Conv2dRFSearchOp, RFSearchHook
+from .utils import fuse_conv_bn, get_model_complexity_info
+from .vgg import VGG, make_vgg_layer
+
+__all__ = [
+ 'AlexNet', 'VGG', 'make_vgg_layer', 'ResNet', 'make_res_layer',
+ 'ConvModule', 'build_activation_layer', 'build_conv_layer',
+ 'build_norm_layer', 'build_padding_layer', 'build_upsample_layer',
+ 'build_plugin_layer', 'is_norm', 'NonLocal1d', 'NonLocal2d', 'NonLocal3d',
+ 'ContextBlock', 'HSigmoid', 'Swish', 'HSwish', 'GeneralizedAttention',
+ 'Scale', 'conv_ws_2d', 'ConvAWS2d', 'ConvWS2d',
+ 'DepthwiseSeparableConvModule', 'Linear', 'Conv2d', 'ConvTranspose2d',
+ 'MaxPool2d', 'ConvTranspose3d', 'MaxPool3d', 'Conv3d', 'fuse_conv_bn',
+ 'get_model_complexity_info', 'Conv2dRFSearchOp', 'RFSearchHook'
+]
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/alexnet.py b/FoodSeg103/demo/mmcv/mmcv/cnn/alexnet.py
new file mode 100644
index 0000000000000000000000000000000000000000..309be24b66049c86837c67d24ee0e790e6396abc
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/alexnet.py
@@ -0,0 +1,63 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import logging
+from typing import Optional
+
+import torch
+import torch.nn as nn
+from mmengine.runner import load_checkpoint
+
+
+class AlexNet(nn.Module):
+ """AlexNet backbone.
+
+ Args:
+ num_classes (int): number of classes for classification.
+ """
+
+ def __init__(self, num_classes: int = -1):
+ super().__init__()
+ self.num_classes = num_classes
+ self.features = nn.Sequential(
+ nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),
+ nn.ReLU(inplace=True),
+ nn.MaxPool2d(kernel_size=3, stride=2),
+ nn.Conv2d(64, 192, kernel_size=5, padding=2),
+ nn.ReLU(inplace=True),
+ nn.MaxPool2d(kernel_size=3, stride=2),
+ nn.Conv2d(192, 384, kernel_size=3, padding=1),
+ nn.ReLU(inplace=True),
+ nn.Conv2d(384, 256, kernel_size=3, padding=1),
+ nn.ReLU(inplace=True),
+ nn.Conv2d(256, 256, kernel_size=3, padding=1),
+ nn.ReLU(inplace=True),
+ nn.MaxPool2d(kernel_size=3, stride=2),
+ )
+ if self.num_classes > 0:
+ self.classifier = nn.Sequential(
+ nn.Dropout(),
+ nn.Linear(256 * 6 * 6, 4096),
+ nn.ReLU(inplace=True),
+ nn.Dropout(),
+ nn.Linear(4096, 4096),
+ nn.ReLU(inplace=True),
+ nn.Linear(4096, num_classes),
+ )
+
+ def init_weights(self, pretrained: Optional[str] = None) -> None:
+ if isinstance(pretrained, str):
+ logger = logging.getLogger()
+ load_checkpoint(self, pretrained, strict=False, logger=logger)
+ elif pretrained is None:
+ # use default initializer
+ pass
+ else:
+ raise TypeError('pretrained must be a str or None')
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+
+ x = self.features(x)
+ if self.num_classes > 0:
+ x = x.view(x.size(0), 256 * 6 * 6)
+ x = self.classifier(x)
+
+ return x
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/__init__.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c74986953bf1a23a246c92c51fd14e033b6d682
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/__init__.py
@@ -0,0 +1,32 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from .activation import build_activation_layer
+from .context_block import ContextBlock
+from .conv import build_conv_layer
+from .conv2d_adaptive_padding import Conv2dAdaptivePadding
+from .conv_module import ConvModule
+from .conv_ws import ConvAWS2d, ConvWS2d, conv_ws_2d
+from .depthwise_separable_conv_module import DepthwiseSeparableConvModule
+from .drop import Dropout, DropPath
+from .generalized_attention import GeneralizedAttention
+from .hsigmoid import HSigmoid
+from .hswish import HSwish
+from .non_local import NonLocal1d, NonLocal2d, NonLocal3d
+from .norm import build_norm_layer, is_norm
+from .padding import build_padding_layer
+from .plugin import build_plugin_layer
+from .scale import LayerScale, Scale
+from .swish import Swish
+from .upsample import build_upsample_layer
+from .wrappers import (Conv2d, Conv3d, ConvTranspose2d, ConvTranspose3d,
+ Linear, MaxPool2d, MaxPool3d)
+
+__all__ = [
+ 'ConvModule', 'build_activation_layer', 'build_conv_layer',
+ 'build_norm_layer', 'build_padding_layer', 'build_upsample_layer',
+ 'build_plugin_layer', 'is_norm', 'HSigmoid', 'HSwish', 'NonLocal1d',
+ 'NonLocal2d', 'NonLocal3d', 'ContextBlock', 'GeneralizedAttention',
+ 'Scale', 'ConvAWS2d', 'ConvWS2d', 'conv_ws_2d',
+ 'DepthwiseSeparableConvModule', 'Swish', 'Linear', 'Conv2dAdaptivePadding',
+ 'Conv2d', 'ConvTranspose2d', 'MaxPool2d', 'ConvTranspose3d', 'MaxPool3d',
+ 'Conv3d', 'Dropout', 'DropPath', 'LayerScale'
+]
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/activation.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/activation.py
new file mode 100644
index 0000000000000000000000000000000000000000..ae99714b940913c946fa169883584ea193f645ea
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/activation.py
@@ -0,0 +1,114 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Dict
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.registry import MODELS
+from mmengine.utils import digit_version
+from mmengine.utils.dl_utils import TORCH_VERSION
+
+for module in [
+ nn.ReLU, nn.LeakyReLU, nn.PReLU, nn.RReLU, nn.ReLU6, nn.ELU,
+ nn.Sigmoid, nn.Tanh
+]:
+ MODELS.register_module(module=module)
+
+if digit_version(torch.__version__) >= digit_version('1.7.0'):
+ MODELS.register_module(module=nn.SiLU, name='SiLU')
+else:
+
+ class SiLU(nn.Module):
+ """Sigmoid Weighted Liner Unit."""
+
+ def __init__(self, inplace=False):
+ super().__init__()
+ self.inplace = inplace
+
+ def forward(self, inputs) -> torch.Tensor:
+ if self.inplace:
+ return inputs.mul_(torch.sigmoid(inputs))
+ else:
+ return inputs * torch.sigmoid(inputs)
+
+ MODELS.register_module(module=SiLU, name='SiLU')
+
+
+@MODELS.register_module(name='Clip')
+@MODELS.register_module()
+class Clamp(nn.Module):
+ """Clamp activation layer.
+
+ This activation function is to clamp the feature map value within
+ :math:`[min, max]`. More details can be found in ``torch.clamp()``.
+
+ Args:
+ min (Number | optional): Lower-bound of the range to be clamped to.
+ Default to -1.
+ max (Number | optional): Upper-bound of the range to be clamped to.
+ Default to 1.
+ """
+
+ def __init__(self, min: float = -1., max: float = 1.):
+ super().__init__()
+ self.min = min
+ self.max = max
+
+ def forward(self, x) -> torch.Tensor:
+ """Forward function.
+
+ Args:
+ x (torch.Tensor): The input tensor.
+
+ Returns:
+ torch.Tensor: Clamped tensor.
+ """
+ return torch.clamp(x, min=self.min, max=self.max)
+
+
+class GELU(nn.Module):
+ r"""Applies the Gaussian Error Linear Units function:
+
+ .. math::
+ \text{GELU}(x) = x * \Phi(x)
+ where :math:`\Phi(x)` is the Cumulative Distribution Function for
+ Gaussian Distribution.
+
+ Shape:
+ - Input: :math:`(N, *)` where `*` means, any number of additional
+ dimensions
+ - Output: :math:`(N, *)`, same shape as the input
+
+ .. image:: scripts/activation_images/GELU.png
+
+ Examples::
+
+ >>> m = nn.GELU()
+ >>> input = torch.randn(2)
+ >>> output = m(input)
+ """
+
+ def forward(self, input: torch.Tensor) -> torch.Tensor:
+ return F.gelu(input)
+
+
+if (TORCH_VERSION == 'parrots'
+ or digit_version(TORCH_VERSION) < digit_version('1.4')):
+ MODELS.register_module(module=GELU)
+else:
+ MODELS.register_module(module=nn.GELU)
+
+
+def build_activation_layer(cfg: Dict) -> nn.Module:
+ """Build activation layer.
+
+ Args:
+ cfg (dict): The activation layer config, which should contain:
+
+ - type (str): Layer type.
+ - layer args: Args needed to instantiate an activation layer.
+
+ Returns:
+ nn.Module: Created activation layer.
+ """
+ return MODELS.build(cfg)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/context_block.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/context_block.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e78df8648b779124091a8595282aad7a8d0d305
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/context_block.py
@@ -0,0 +1,126 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Union
+
+import torch
+from mmengine.model import constant_init, kaiming_init
+from mmengine.registry import MODELS
+from torch import nn
+
+
+def last_zero_init(m: Union[nn.Module, nn.Sequential]) -> None:
+ if isinstance(m, nn.Sequential):
+ constant_init(m[-1], val=0)
+ else:
+ constant_init(m, val=0)
+
+
+@MODELS.register_module()
+class ContextBlock(nn.Module):
+ """ContextBlock module in GCNet.
+
+ See 'GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond'
+ (https://arxiv.org/abs/1904.11492) for details.
+
+ Args:
+ in_channels (int): Channels of the input feature map.
+ ratio (float): Ratio of channels of transform bottleneck
+ pooling_type (str): Pooling method for context modeling.
+ Options are 'att' and 'avg', stand for attention pooling and
+ average pooling respectively. Default: 'att'.
+ fusion_types (Sequence[str]): Fusion method for feature fusion,
+ Options are 'channels_add', 'channel_mul', stand for channelwise
+ addition and multiplication respectively. Default: ('channel_add',)
+ """
+
+ _abbr_ = 'context_block'
+
+ def __init__(self,
+ in_channels: int,
+ ratio: float,
+ pooling_type: str = 'att',
+ fusion_types: tuple = ('channel_add', )):
+ super().__init__()
+ assert pooling_type in ['avg', 'att']
+ assert isinstance(fusion_types, (list, tuple))
+ valid_fusion_types = ['channel_add', 'channel_mul']
+ assert all([f in valid_fusion_types for f in fusion_types])
+ assert len(fusion_types) > 0, 'at least one fusion should be used'
+ self.in_channels = in_channels
+ self.ratio = ratio
+ self.planes = int(in_channels * ratio)
+ self.pooling_type = pooling_type
+ self.fusion_types = fusion_types
+ if pooling_type == 'att':
+ self.conv_mask = nn.Conv2d(in_channels, 1, kernel_size=1)
+ self.softmax = nn.Softmax(dim=2)
+ else:
+ self.avg_pool = nn.AdaptiveAvgPool2d(1)
+ if 'channel_add' in fusion_types:
+ self.channel_add_conv = nn.Sequential(
+ nn.Conv2d(self.in_channels, self.planes, kernel_size=1),
+ nn.LayerNorm([self.planes, 1, 1]),
+ nn.ReLU(inplace=True), # yapf: disable
+ nn.Conv2d(self.planes, self.in_channels, kernel_size=1))
+ else:
+ self.channel_add_conv = None
+ if 'channel_mul' in fusion_types:
+ self.channel_mul_conv = nn.Sequential(
+ nn.Conv2d(self.in_channels, self.planes, kernel_size=1),
+ nn.LayerNorm([self.planes, 1, 1]),
+ nn.ReLU(inplace=True), # yapf: disable
+ nn.Conv2d(self.planes, self.in_channels, kernel_size=1))
+ else:
+ self.channel_mul_conv = None
+ self.reset_parameters()
+
+ def reset_parameters(self):
+ if self.pooling_type == 'att':
+ kaiming_init(self.conv_mask, mode='fan_in')
+ self.conv_mask.inited = True
+
+ if self.channel_add_conv is not None:
+ last_zero_init(self.channel_add_conv)
+ if self.channel_mul_conv is not None:
+ last_zero_init(self.channel_mul_conv)
+
+ def spatial_pool(self, x: torch.Tensor) -> torch.Tensor:
+ batch, channel, height, width = x.size()
+ if self.pooling_type == 'att':
+ input_x = x
+ # [N, C, H * W]
+ input_x = input_x.view(batch, channel, height * width)
+ # [N, 1, C, H * W]
+ input_x = input_x.unsqueeze(1)
+ # [N, 1, H, W]
+ context_mask = self.conv_mask(x)
+ # [N, 1, H * W]
+ context_mask = context_mask.view(batch, 1, height * width)
+ # [N, 1, H * W]
+ context_mask = self.softmax(context_mask)
+ # [N, 1, H * W, 1]
+ context_mask = context_mask.unsqueeze(-1)
+ # [N, 1, C, 1]
+ context = torch.matmul(input_x, context_mask)
+ # [N, C, 1, 1]
+ context = context.view(batch, channel, 1, 1)
+ else:
+ # [N, C, 1, 1]
+ context = self.avg_pool(x)
+
+ return context
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ # [N, C, 1, 1]
+ context = self.spatial_pool(x)
+
+ out = x
+ if self.channel_mul_conv is not None:
+ # [N, C, 1, 1]
+ channel_mul_term = torch.sigmoid(self.channel_mul_conv(context))
+ out = out * channel_mul_term
+ if self.channel_add_conv is not None:
+ # [N, C, 1, 1]
+ channel_add_term = self.channel_add_conv(context)
+ out = out + channel_add_term
+
+ return out
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv.py
new file mode 100644
index 0000000000000000000000000000000000000000..a00b0a52cee31ff7d4dd8df00b1e1046767a6903
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv.py
@@ -0,0 +1,51 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import inspect
+from typing import Dict, Optional
+
+from mmengine.registry import MODELS
+from torch import nn
+
+MODELS.register_module('Conv1d', module=nn.Conv1d)
+MODELS.register_module('Conv2d', module=nn.Conv2d)
+MODELS.register_module('Conv3d', module=nn.Conv3d)
+MODELS.register_module('Conv', module=nn.Conv2d)
+
+
+def build_conv_layer(cfg: Optional[Dict], *args, **kwargs) -> nn.Module:
+ """Build convolution layer.
+
+ Args:
+ cfg (None or dict): The conv layer config, which should contain:
+ - type (str): Layer type.
+ - layer args: Args needed to instantiate an conv layer.
+ args (argument list): Arguments passed to the `__init__`
+ method of the corresponding conv layer.
+ kwargs (keyword arguments): Keyword arguments passed to the `__init__`
+ method of the corresponding conv layer.
+
+ Returns:
+ nn.Module: Created conv layer.
+ """
+ if cfg is None:
+ cfg_ = dict(type='Conv2d')
+ else:
+ if not isinstance(cfg, dict):
+ raise TypeError('cfg must be a dict')
+ if 'type' not in cfg:
+ raise KeyError('the cfg dict must contain the key "type"')
+ cfg_ = cfg.copy()
+
+ layer_type = cfg_.pop('type')
+ if inspect.isclass(layer_type):
+ return layer_type(*args, **kwargs, **cfg_) # type: ignore
+ # Switch registry to the target scope. If `conv_layer` cannot be found
+ # in the registry, fallback to search `conv_layer` in the
+ # mmengine.MODELS.
+ with MODELS.switch_scope_and_registry(None) as registry:
+ conv_layer = registry.get(layer_type)
+ if conv_layer is None:
+ raise KeyError(f'Cannot find {conv_layer} in registry under scope '
+ f'name {registry.scope}')
+ layer = conv_layer(*args, **kwargs, **cfg_)
+
+ return layer
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv2d_adaptive_padding.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv2d_adaptive_padding.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ac9949e4830c64161036b519594685f7dae72c2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv2d_adaptive_padding.py
@@ -0,0 +1,63 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import math
+from typing import Tuple, Union
+
+import torch
+from mmengine.registry import MODELS
+from torch import nn
+from torch.nn import functional as F
+
+
+@MODELS.register_module()
+class Conv2dAdaptivePadding(nn.Conv2d):
+ """Implementation of 2D convolution in tensorflow with `padding` as "same",
+ which applies padding to input (if needed) so that input image gets fully
+ covered by filter and stride you specified. For stride 1, this will ensure
+ that output image size is same as input. For stride of 2, output dimensions
+ will be half, for example.
+
+ Args:
+ in_channels (int): Number of channels in the input image
+ out_channels (int): Number of channels produced by the convolution
+ kernel_size (int or tuple): Size of the convolving kernel
+ stride (int or tuple, optional): Stride of the convolution. Default: 1
+ padding (int or tuple, optional): Zero-padding added to both sides of
+ the input. Default: 0
+ dilation (int or tuple, optional): Spacing between kernel elements.
+ Default: 1
+ groups (int, optional): Number of blocked connections from input
+ channels to output channels. Default: 1
+ bias (bool, optional): If ``True``, adds a learnable bias to the
+ output. Default: ``True``
+ """
+
+ def __init__(self,
+ in_channels: int,
+ out_channels: int,
+ kernel_size: Union[int, Tuple[int, int]],
+ stride: Union[int, Tuple[int, int]] = 1,
+ padding: Union[int, Tuple[int, int]] = 0,
+ dilation: Union[int, Tuple[int, int]] = 1,
+ groups: int = 1,
+ bias: bool = True):
+ super().__init__(in_channels, out_channels, kernel_size, stride, 0,
+ dilation, groups, bias)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ img_h, img_w = x.size()[-2:]
+ kernel_h, kernel_w = self.weight.size()[-2:]
+ stride_h, stride_w = self.stride
+ output_h = math.ceil(img_h / stride_h)
+ output_w = math.ceil(img_w / stride_w)
+ pad_h = (
+ max((output_h - 1) * self.stride[0] +
+ (kernel_h - 1) * self.dilation[0] + 1 - img_h, 0))
+ pad_w = (
+ max((output_w - 1) * self.stride[1] +
+ (kernel_w - 1) * self.dilation[1] + 1 - img_w, 0))
+ if pad_h > 0 or pad_w > 0:
+ x = F.pad(x, [
+ pad_w // 2, pad_w - pad_w // 2, pad_h // 2, pad_h - pad_h // 2
+ ])
+ return F.conv2d(x, self.weight, self.bias, self.stride, self.padding,
+ self.dilation, self.groups)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv_module.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv_module.py
new file mode 100644
index 0000000000000000000000000000000000000000..760e3788125300e47769bce0bc34156e8385791b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv_module.py
@@ -0,0 +1,338 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import warnings
+from functools import partial
+from typing import Dict, Optional, Tuple, Union
+
+import torch
+import torch.nn as nn
+from mmengine.model import constant_init, kaiming_init
+from mmengine.registry import MODELS
+from mmengine.utils.dl_utils.parrots_wrapper import _BatchNorm, _InstanceNorm
+
+from .activation import build_activation_layer
+from .conv import build_conv_layer
+from .norm import build_norm_layer
+from .padding import build_padding_layer
+
+
+def efficient_conv_bn_eval_forward(bn: _BatchNorm,
+ conv: nn.modules.conv._ConvNd,
+ x: torch.Tensor):
+ """
+ Implementation based on https://arxiv.org/abs/2305.11624
+ "Tune-Mode ConvBN Blocks For Efficient Transfer Learning"
+ It leverages the associative law between convolution and affine transform,
+ i.e., normalize (weight conv feature) = (normalize weight) conv feature.
+ It works for Eval mode of ConvBN blocks during validation, and can be used
+ for training as well. It reduces memory and computation cost.
+
+ Args:
+ bn (_BatchNorm): a BatchNorm module.
+ conv (nn._ConvNd): a conv module
+ x (torch.Tensor): Input feature map.
+ """
+ # These lines of code are designed to deal with various cases
+ # like bn without affine transform, and conv without bias
+ weight_on_the_fly = conv.weight
+ if conv.bias is not None:
+ bias_on_the_fly = conv.bias
+ else:
+ bias_on_the_fly = torch.zeros_like(bn.running_var)
+
+ if bn.weight is not None:
+ bn_weight = bn.weight
+ else:
+ bn_weight = torch.ones_like(bn.running_var)
+
+ if bn.bias is not None:
+ bn_bias = bn.bias
+ else:
+ bn_bias = torch.zeros_like(bn.running_var)
+
+ # shape of [C_out, 1, 1, 1] in Conv2d
+ weight_coeff = torch.rsqrt(bn.running_var +
+ bn.eps).reshape([-1] + [1] *
+ (len(conv.weight.shape) - 1))
+ # shape of [C_out, 1, 1, 1] in Conv2d
+ coefff_on_the_fly = bn_weight.view_as(weight_coeff) * weight_coeff
+
+ # shape of [C_out, C_in, k, k] in Conv2d
+ weight_on_the_fly = weight_on_the_fly * coefff_on_the_fly
+ # shape of [C_out] in Conv2d
+ bias_on_the_fly = bn_bias + coefff_on_the_fly.flatten() *\
+ (bias_on_the_fly - bn.running_mean)
+
+ return conv._conv_forward(x, weight_on_the_fly, bias_on_the_fly)
+
+
+@MODELS.register_module()
+class ConvModule(nn.Module):
+ """A conv block that bundles conv/norm/activation layers.
+
+ This block simplifies the usage of convolution layers, which are commonly
+ used with a norm layer (e.g., BatchNorm) and activation layer (e.g., ReLU).
+ It is based upon three build methods: `build_conv_layer()`,
+ `build_norm_layer()` and `build_activation_layer()`.
+
+ Besides, we add some additional features in this module.
+ 1. Automatically set `bias` of the conv layer.
+ 2. Spectral norm is supported.
+ 3. More padding modes are supported. Before PyTorch 1.5, nn.Conv2d only
+ supports zero and circular padding, and we add "reflect" padding mode.
+
+ Args:
+ in_channels (int): Number of channels in the input feature map.
+ Same as that in ``nn._ConvNd``.
+ out_channels (int): Number of channels produced by the convolution.
+ Same as that in ``nn._ConvNd``.
+ kernel_size (int | tuple[int]): Size of the convolving kernel.
+ Same as that in ``nn._ConvNd``.
+ stride (int | tuple[int]): Stride of the convolution.
+ Same as that in ``nn._ConvNd``.
+ padding (int | tuple[int]): Zero-padding added to both sides of
+ the input. Same as that in ``nn._ConvNd``.
+ dilation (int | tuple[int]): Spacing between kernel elements.
+ Same as that in ``nn._ConvNd``.
+ groups (int): Number of blocked connections from input channels to
+ output channels. Same as that in ``nn._ConvNd``.
+ bias (bool | str): If specified as `auto`, it will be decided by the
+ norm_cfg. Bias will be set as True if `norm_cfg` is None, otherwise
+ False. Default: "auto".
+ conv_cfg (dict): Config dict for convolution layer. Default: None,
+ which means using conv2d.
+ norm_cfg (dict): Config dict for normalization layer. Default: None.
+ act_cfg (dict): Config dict for activation layer.
+ Default: dict(type='ReLU').
+ inplace (bool): Whether to use inplace mode for activation.
+ Default: True.
+ with_spectral_norm (bool): Whether use spectral norm in conv module.
+ Default: False.
+ padding_mode (str): If the `padding_mode` has not been supported by
+ current `Conv2d` in PyTorch, we will use our own padding layer
+ instead. Currently, we support ['zeros', 'circular'] with official
+ implementation and ['reflect'] with our own implementation.
+ Default: 'zeros'.
+ order (tuple[str]): The order of conv/norm/activation layers. It is a
+ sequence of "conv", "norm" and "act". Common examples are
+ ("conv", "norm", "act") and ("act", "conv", "norm").
+ Default: ('conv', 'norm', 'act').
+ efficient_conv_bn_eval (bool): Whether use efficient conv when the
+ consecutive bn is in eval mode (either training or testing), as
+ proposed in https://arxiv.org/abs/2305.11624 . Default: `False`.
+ """
+
+ _abbr_ = 'conv_block'
+
+ def __init__(self,
+ in_channels: int,
+ out_channels: int,
+ kernel_size: Union[int, Tuple[int, int]],
+ stride: Union[int, Tuple[int, int]] = 1,
+ padding: Union[int, Tuple[int, int]] = 0,
+ dilation: Union[int, Tuple[int, int]] = 1,
+ groups: int = 1,
+ bias: Union[bool, str] = 'auto',
+ conv_cfg: Optional[Dict] = None,
+ norm_cfg: Optional[Dict] = None,
+ act_cfg: Optional[Dict] = dict(type='ReLU'),
+ inplace: bool = True,
+ with_spectral_norm: bool = False,
+ padding_mode: str = 'zeros',
+ order: tuple = ('conv', 'norm', 'act'),
+ efficient_conv_bn_eval: bool = False):
+ super().__init__()
+ assert conv_cfg is None or isinstance(conv_cfg, dict)
+ assert norm_cfg is None or isinstance(norm_cfg, dict)
+ assert act_cfg is None or isinstance(act_cfg, dict)
+ official_padding_mode = ['zeros', 'circular']
+ self.conv_cfg = conv_cfg
+ self.norm_cfg = norm_cfg
+ self.act_cfg = act_cfg
+ self.inplace = inplace
+ self.with_spectral_norm = with_spectral_norm
+ self.with_explicit_padding = padding_mode not in official_padding_mode
+ self.order = order
+ assert isinstance(self.order, tuple) and len(self.order) == 3
+ assert set(order) == {'conv', 'norm', 'act'}
+
+ self.with_norm = norm_cfg is not None
+ self.with_activation = act_cfg is not None
+ # if the conv layer is before a norm layer, bias is unnecessary.
+ if bias == 'auto':
+ bias = not self.with_norm
+ self.with_bias = bias
+
+ if self.with_explicit_padding:
+ pad_cfg = dict(type=padding_mode)
+ self.padding_layer = build_padding_layer(pad_cfg, padding)
+
+ # reset padding to 0 for conv module
+ conv_padding = 0 if self.with_explicit_padding else padding
+ # build convolution layer
+ self.conv = build_conv_layer(
+ conv_cfg,
+ in_channels,
+ out_channels,
+ kernel_size,
+ stride=stride,
+ padding=conv_padding,
+ dilation=dilation,
+ groups=groups,
+ bias=bias)
+ # export the attributes of self.conv to a higher level for convenience
+ self.in_channels = self.conv.in_channels
+ self.out_channels = self.conv.out_channels
+ self.kernel_size = self.conv.kernel_size
+ self.stride = self.conv.stride
+ self.padding = padding
+ self.dilation = self.conv.dilation
+ self.transposed = self.conv.transposed
+ self.output_padding = self.conv.output_padding
+ self.groups = self.conv.groups
+
+ if self.with_spectral_norm:
+ self.conv = nn.utils.spectral_norm(self.conv)
+
+ # build normalization layers
+ if self.with_norm:
+ # norm layer is after conv layer
+ if order.index('norm') > order.index('conv'):
+ norm_channels = out_channels
+ else:
+ norm_channels = in_channels
+ self.norm_name, norm = build_norm_layer(
+ norm_cfg, norm_channels) # type: ignore
+ self.add_module(self.norm_name, norm)
+ if self.with_bias:
+ if isinstance(norm, (_BatchNorm, _InstanceNorm)):
+ warnings.warn(
+ 'Unnecessary conv bias before batch/instance norm')
+ else:
+ self.norm_name = None # type: ignore
+
+ self.turn_on_efficient_conv_bn_eval(efficient_conv_bn_eval)
+
+ # build activation layer
+ if self.with_activation:
+ act_cfg_ = act_cfg.copy() # type: ignore
+ # nn.Tanh has no 'inplace' argument
+ if act_cfg_['type'] not in [
+ 'Tanh', 'PReLU', 'Sigmoid', 'HSigmoid', 'Swish', 'GELU'
+ ]:
+ act_cfg_.setdefault('inplace', inplace)
+ self.activate = build_activation_layer(act_cfg_)
+
+ # Use msra init by default
+ self.init_weights()
+
+ @property
+ def norm(self):
+ if self.norm_name:
+ return getattr(self, self.norm_name)
+ else:
+ return None
+
+ def init_weights(self):
+ # 1. It is mainly for customized conv layers with their own
+ # initialization manners by calling their own ``init_weights()``,
+ # and we do not want ConvModule to override the initialization.
+ # 2. For customized conv layers without their own initialization
+ # manners (that is, they don't have their own ``init_weights()``)
+ # and PyTorch's conv layers, they will be initialized by
+ # this method with default ``kaiming_init``.
+ # Note: For PyTorch's conv layers, they will be overwritten by our
+ # initialization implementation using default ``kaiming_init``.
+ if not hasattr(self.conv, 'init_weights'):
+ if self.with_activation and self.act_cfg['type'] == 'LeakyReLU':
+ nonlinearity = 'leaky_relu'
+ a = self.act_cfg.get('negative_slope', 0.01)
+ else:
+ nonlinearity = 'relu'
+ a = 0
+ kaiming_init(self.conv, a=a, nonlinearity=nonlinearity)
+ if self.with_norm:
+ constant_init(self.norm, 1, bias=0)
+
+ def forward(self,
+ x: torch.Tensor,
+ activate: bool = True,
+ norm: bool = True) -> torch.Tensor:
+ layer_index = 0
+ while layer_index < len(self.order):
+ layer = self.order[layer_index]
+ if layer == 'conv':
+ if self.with_explicit_padding:
+ x = self.padding_layer(x)
+ # if the next operation is norm and we have a norm layer in
+ # eval mode and we have enabled `efficient_conv_bn_eval` for
+ # the conv operator, then activate the optimized forward and
+ # skip the next norm operator since it has been fused
+ if layer_index + 1 < len(self.order) and \
+ self.order[layer_index + 1] == 'norm' and norm and \
+ self.with_norm and not self.norm.training and \
+ self.efficient_conv_bn_eval_forward is not None:
+ self.conv.forward = partial(
+ self.efficient_conv_bn_eval_forward, self.norm,
+ self.conv)
+ layer_index += 1
+ x = self.conv(x)
+ del self.conv.forward
+ else:
+ x = self.conv(x)
+ elif layer == 'norm' and norm and self.with_norm:
+ x = self.norm(x)
+ elif layer == 'act' and activate and self.with_activation:
+ x = self.activate(x)
+ layer_index += 1
+ return x
+
+ def turn_on_efficient_conv_bn_eval(self, efficient_conv_bn_eval=True):
+ # efficient_conv_bn_eval works for conv + bn
+ # with `track_running_stats` option
+ if efficient_conv_bn_eval and self.norm \
+ and isinstance(self.norm, _BatchNorm) \
+ and self.norm.track_running_stats:
+ self.efficient_conv_bn_eval_forward = efficient_conv_bn_eval_forward # noqa: E501
+ else:
+ self.efficient_conv_bn_eval_forward = None # type: ignore
+
+ @staticmethod
+ def create_from_conv_bn(conv: torch.nn.modules.conv._ConvNd,
+ bn: torch.nn.modules.batchnorm._BatchNorm,
+ efficient_conv_bn_eval=True) -> 'ConvModule':
+ """Create a ConvModule from a conv and a bn module."""
+ self = ConvModule.__new__(ConvModule)
+ super(ConvModule, self).__init__()
+
+ self.conv_cfg = None
+ self.norm_cfg = None
+ self.act_cfg = None
+ self.inplace = False
+ self.with_spectral_norm = False
+ self.with_explicit_padding = False
+ self.order = ('conv', 'norm', 'act')
+
+ self.with_norm = True
+ self.with_activation = False
+ self.with_bias = conv.bias is not None
+
+ # build convolution layer
+ self.conv = conv
+ # export the attributes of self.conv to a higher level for convenience
+ self.in_channels = self.conv.in_channels
+ self.out_channels = self.conv.out_channels
+ self.kernel_size = self.conv.kernel_size
+ self.stride = self.conv.stride
+ self.padding = self.conv.padding
+ self.dilation = self.conv.dilation
+ self.transposed = self.conv.transposed
+ self.output_padding = self.conv.output_padding
+ self.groups = self.conv.groups
+
+ # build normalization layers
+ self.norm_name, norm = 'bn', bn
+ self.add_module(self.norm_name, norm)
+
+ self.turn_on_efficient_conv_bn_eval(efficient_conv_bn_eval)
+
+ return self
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv_ws.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv_ws.py
new file mode 100644
index 0000000000000000000000000000000000000000..261f5c1aa9aa9b80891e6330e6d576c3a8ce3e5d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/conv_ws.py
@@ -0,0 +1,153 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from collections import OrderedDict
+from typing import Dict, List, Optional, Tuple, Union
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.registry import MODELS
+
+
+def conv_ws_2d(input: torch.Tensor,
+ weight: torch.Tensor,
+ bias: Optional[torch.Tensor] = None,
+ stride: Union[int, Tuple[int, int]] = 1,
+ padding: Union[int, Tuple[int, int]] = 0,
+ dilation: Union[int, Tuple[int, int]] = 1,
+ groups: int = 1,
+ eps: float = 1e-5) -> torch.Tensor:
+ c_in = weight.size(0)
+ weight_flat = weight.view(c_in, -1)
+ mean = weight_flat.mean(dim=1, keepdim=True).view(c_in, 1, 1, 1)
+ std = weight_flat.std(dim=1, keepdim=True).view(c_in, 1, 1, 1)
+ weight = (weight - mean) / (std + eps)
+ return F.conv2d(input, weight, bias, stride, padding, dilation, groups)
+
+
+@MODELS.register_module('ConvWS')
+class ConvWS2d(nn.Conv2d):
+
+ def __init__(self,
+ in_channels: int,
+ out_channels: int,
+ kernel_size: Union[int, Tuple[int, int]],
+ stride: Union[int, Tuple[int, int]] = 1,
+ padding: Union[int, Tuple[int, int]] = 0,
+ dilation: Union[int, Tuple[int, int]] = 1,
+ groups: int = 1,
+ bias: bool = True,
+ eps: float = 1e-5):
+ super().__init__(
+ in_channels,
+ out_channels,
+ kernel_size,
+ stride=stride,
+ padding=padding,
+ dilation=dilation,
+ groups=groups,
+ bias=bias)
+ self.eps = eps
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ return conv_ws_2d(x, self.weight, self.bias, self.stride, self.padding,
+ self.dilation, self.groups, self.eps)
+
+
+@MODELS.register_module(name='ConvAWS')
+class ConvAWS2d(nn.Conv2d):
+ """AWS (Adaptive Weight Standardization)
+
+ This is a variant of Weight Standardization
+ (https://arxiv.org/pdf/1903.10520.pdf)
+ It is used in DetectoRS to avoid NaN
+ (https://arxiv.org/pdf/2006.02334.pdf)
+
+ Args:
+ in_channels (int): Number of channels in the input image
+ out_channels (int): Number of channels produced by the convolution
+ kernel_size (int or tuple): Size of the conv kernel
+ stride (int or tuple, optional): Stride of the convolution. Default: 1
+ padding (int or tuple, optional): Zero-padding added to both sides of
+ the input. Default: 0
+ dilation (int or tuple, optional): Spacing between kernel elements.
+ Default: 1
+ groups (int, optional): Number of blocked connections from input
+ channels to output channels. Default: 1
+ bias (bool, optional): If set True, adds a learnable bias to the
+ output. Default: True
+ """
+
+ def __init__(self,
+ in_channels: int,
+ out_channels: int,
+ kernel_size: Union[int, Tuple[int, int]],
+ stride: Union[int, Tuple[int, int]] = 1,
+ padding: Union[int, Tuple[int, int]] = 0,
+ dilation: Union[int, Tuple[int, int]] = 1,
+ groups: int = 1,
+ bias: bool = True):
+ super().__init__(
+ in_channels,
+ out_channels,
+ kernel_size,
+ stride=stride,
+ padding=padding,
+ dilation=dilation,
+ groups=groups,
+ bias=bias)
+ self.register_buffer('weight_gamma',
+ torch.ones(self.out_channels, 1, 1, 1))
+ self.register_buffer('weight_beta',
+ torch.zeros(self.out_channels, 1, 1, 1))
+
+ def _get_weight(self, weight: torch.Tensor) -> torch.Tensor:
+ weight_flat = weight.view(weight.size(0), -1)
+ mean = weight_flat.mean(dim=1).view(-1, 1, 1, 1)
+ std = torch.sqrt(weight_flat.var(dim=1) + 1e-5).view(-1, 1, 1, 1)
+ weight = (weight - mean) / std
+ weight = self.weight_gamma * weight + self.weight_beta
+ return weight
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ weight = self._get_weight(self.weight)
+ return F.conv2d(x, weight, self.bias, self.stride, self.padding,
+ self.dilation, self.groups)
+
+ def _load_from_state_dict(self, state_dict: OrderedDict, prefix: str,
+ local_metadata: Dict, strict: bool,
+ missing_keys: List[str],
+ unexpected_keys: List[str],
+ error_msgs: List[str]) -> None:
+ """Override default load function.
+
+ AWS overrides the function _load_from_state_dict to recover
+ weight_gamma and weight_beta if they are missing. If weight_gamma and
+ weight_beta are found in the checkpoint, this function will return
+ after super()._load_from_state_dict. Otherwise, it will compute the
+ mean and std of the pretrained weights and store them in weight_beta
+ and weight_gamma.
+ """
+
+ self.weight_gamma.data.fill_(-1)
+ local_missing_keys: List = []
+ super()._load_from_state_dict(state_dict, prefix, local_metadata,
+ strict, local_missing_keys,
+ unexpected_keys, error_msgs)
+ if self.weight_gamma.data.mean() > 0:
+ for k in local_missing_keys:
+ missing_keys.append(k)
+ return
+ weight = self.weight.data
+ weight_flat = weight.view(weight.size(0), -1)
+ mean = weight_flat.mean(dim=1).view(-1, 1, 1, 1)
+ std = torch.sqrt(weight_flat.var(dim=1) + 1e-5).view(-1, 1, 1, 1)
+ self.weight_beta.data.copy_(mean)
+ self.weight_gamma.data.copy_(std)
+ missing_gamma_beta = [
+ k for k in local_missing_keys
+ if k.endswith('weight_gamma') or k.endswith('weight_beta')
+ ]
+ for k in missing_gamma_beta:
+ local_missing_keys.remove(k)
+ for k in local_missing_keys:
+ missing_keys.append(k)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/depthwise_separable_conv_module.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/depthwise_separable_conv_module.py
new file mode 100644
index 0000000000000000000000000000000000000000..cf1fe4cad3812007573211fa2bede28b23822122
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/depthwise_separable_conv_module.py
@@ -0,0 +1,99 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Dict, Optional, Tuple, Union
+
+import torch
+import torch.nn as nn
+
+from .conv_module import ConvModule
+
+
+class DepthwiseSeparableConvModule(nn.Module):
+ """Depthwise separable convolution module.
+
+ See https://arxiv.org/pdf/1704.04861.pdf for details.
+
+ This module can replace a ConvModule with the conv block replaced by two
+ conv block: depthwise conv block and pointwise conv block. The depthwise
+ conv block contains depthwise-conv/norm/activation layers. The pointwise
+ conv block contains pointwise-conv/norm/activation layers. It should be
+ noted that there will be norm/activation layer in the depthwise conv block
+ if `norm_cfg` and `act_cfg` are specified.
+
+ Args:
+ in_channels (int): Number of channels in the input feature map.
+ Same as that in ``nn._ConvNd``.
+ out_channels (int): Number of channels produced by the convolution.
+ Same as that in ``nn._ConvNd``.
+ kernel_size (int | tuple[int]): Size of the convolving kernel.
+ Same as that in ``nn._ConvNd``.
+ stride (int | tuple[int]): Stride of the convolution.
+ Same as that in ``nn._ConvNd``. Default: 1.
+ padding (int | tuple[int]): Zero-padding added to both sides of
+ the input. Same as that in ``nn._ConvNd``. Default: 0.
+ dilation (int | tuple[int]): Spacing between kernel elements.
+ Same as that in ``nn._ConvNd``. Default: 1.
+ norm_cfg (dict): Default norm config for both depthwise ConvModule and
+ pointwise ConvModule. Default: None.
+ act_cfg (dict): Default activation config for both depthwise ConvModule
+ and pointwise ConvModule. Default: dict(type='ReLU').
+ dw_norm_cfg (dict): Norm config of depthwise ConvModule. If it is
+ 'default', it will be the same as `norm_cfg`. Default: 'default'.
+ dw_act_cfg (dict): Activation config of depthwise ConvModule. If it is
+ 'default', it will be the same as `act_cfg`. Default: 'default'.
+ pw_norm_cfg (dict): Norm config of pointwise ConvModule. If it is
+ 'default', it will be the same as `norm_cfg`. Default: 'default'.
+ pw_act_cfg (dict): Activation config of pointwise ConvModule. If it is
+ 'default', it will be the same as `act_cfg`. Default: 'default'.
+ kwargs (optional): Other shared arguments for depthwise and pointwise
+ ConvModule. See ConvModule for ref.
+ """
+
+ def __init__(self,
+ in_channels: int,
+ out_channels: int,
+ kernel_size: Union[int, Tuple[int, int]],
+ stride: Union[int, Tuple[int, int]] = 1,
+ padding: Union[int, Tuple[int, int]] = 0,
+ dilation: Union[int, Tuple[int, int]] = 1,
+ norm_cfg: Optional[Dict] = None,
+ act_cfg: Dict = dict(type='ReLU'),
+ dw_norm_cfg: Union[Dict, str] = 'default',
+ dw_act_cfg: Union[Dict, str] = 'default',
+ pw_norm_cfg: Union[Dict, str] = 'default',
+ pw_act_cfg: Union[Dict, str] = 'default',
+ **kwargs):
+ super().__init__()
+ assert 'groups' not in kwargs, 'groups should not be specified'
+
+ # if norm/activation config of depthwise/pointwise ConvModule is not
+ # specified, use default config.
+ dw_norm_cfg = dw_norm_cfg if dw_norm_cfg != 'default' else norm_cfg # type: ignore # noqa E501
+ dw_act_cfg = dw_act_cfg if dw_act_cfg != 'default' else act_cfg
+ pw_norm_cfg = pw_norm_cfg if pw_norm_cfg != 'default' else norm_cfg # type: ignore # noqa E501
+ pw_act_cfg = pw_act_cfg if pw_act_cfg != 'default' else act_cfg
+
+ # depthwise convolution
+ self.depthwise_conv = ConvModule(
+ in_channels,
+ in_channels,
+ kernel_size,
+ stride=stride,
+ padding=padding,
+ dilation=dilation,
+ groups=in_channels,
+ norm_cfg=dw_norm_cfg, # type: ignore
+ act_cfg=dw_act_cfg, # type: ignore
+ **kwargs)
+
+ self.pointwise_conv = ConvModule(
+ in_channels,
+ out_channels,
+ 1,
+ norm_cfg=pw_norm_cfg, # type: ignore
+ act_cfg=pw_act_cfg, # type: ignore
+ **kwargs)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = self.depthwise_conv(x)
+ x = self.pointwise_conv(x)
+ return x
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/drop.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/drop.py
new file mode 100644
index 0000000000000000000000000000000000000000..fe82a2560515858341836de3fa563ed4db3a3e14
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/drop.py
@@ -0,0 +1,67 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Any, Dict, Optional
+
+import torch
+import torch.nn as nn
+from mmengine.registry import MODELS
+
+
+def drop_path(x: torch.Tensor,
+ drop_prob: float = 0.,
+ training: bool = False) -> torch.Tensor:
+ """Drop paths (Stochastic Depth) per sample (when applied in main path of
+ residual blocks).
+
+ We follow the implementation
+ https://github.com/rwightman/pytorch-image-models/blob/a2727c1bf78ba0d7b5727f5f95e37fb7f8866b1f/timm/models/layers/drop.py # noqa: E501
+ """
+ if drop_prob == 0. or not training:
+ return x
+ keep_prob = 1 - drop_prob
+ # handle tensors with different dimensions, not just 4D tensors.
+ shape = (x.shape[0], ) + (1, ) * (x.ndim - 1)
+ random_tensor = keep_prob + torch.rand(
+ shape, dtype=x.dtype, device=x.device)
+ output = x.div(keep_prob) * random_tensor.floor()
+ return output
+
+
+@MODELS.register_module()
+class DropPath(nn.Module):
+ """Drop paths (Stochastic Depth) per sample (when applied in main path of
+ residual blocks).
+
+ We follow the implementation
+ https://github.com/rwightman/pytorch-image-models/blob/a2727c1bf78ba0d7b5727f5f95e37fb7f8866b1f/timm/models/layers/drop.py # noqa: E501
+
+ Args:
+ drop_prob (float): Probability of the path to be zeroed. Default: 0.1
+ """
+
+ def __init__(self, drop_prob: float = 0.1):
+ super().__init__()
+ self.drop_prob = drop_prob
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ return drop_path(x, self.drop_prob, self.training)
+
+
+@MODELS.register_module()
+class Dropout(nn.Dropout):
+ """A wrapper for ``torch.nn.Dropout``, We rename the ``p`` of
+ ``torch.nn.Dropout`` to ``drop_prob`` so as to be consistent with
+ ``DropPath``
+
+ Args:
+ drop_prob (float): Probability of the elements to be
+ zeroed. Default: 0.5.
+ inplace (bool): Do the operation inplace or not. Default: False.
+ """
+
+ def __init__(self, drop_prob: float = 0.5, inplace: bool = False):
+ super().__init__(p=drop_prob, inplace=inplace)
+
+
+def build_dropout(cfg: Dict, default_args: Optional[Dict] = None) -> Any:
+ """Builder for drop out layers."""
+ return MODELS.build(cfg, default_args=default_args)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/generalized_attention.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/generalized_attention.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab20467f63876be8655bb7a54568eaa7dc74ba72
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/generalized_attention.py
@@ -0,0 +1,411 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import math
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.model import kaiming_init
+from mmengine.registry import MODELS
+
+
+@MODELS.register_module()
+class GeneralizedAttention(nn.Module):
+ """GeneralizedAttention module.
+
+ See 'An Empirical Study of Spatial Attention Mechanisms in Deep Networks'
+ (https://arxiv.org/abs/1904.05873) for details.
+
+ Args:
+ in_channels (int): Channels of the input feature map.
+ spatial_range (int): The spatial range. -1 indicates no spatial range
+ constraint. Default: -1.
+ num_heads (int): The head number of empirical_attention module.
+ Default: 9.
+ position_embedding_dim (int): The position embedding dimension.
+ Default: -1.
+ position_magnitude (int): A multiplier acting on coord difference.
+ Default: 1.
+ kv_stride (int): The feature stride acting on key/value feature map.
+ Default: 2.
+ q_stride (int): The feature stride acting on query feature map.
+ Default: 1.
+ attention_type (str): A binary indicator string for indicating which
+ items in generalized empirical_attention module are used.
+ Default: '1111'.
+
+ - '1000' indicates 'query and key content' (appr - appr) item,
+ - '0100' indicates 'query content and relative position'
+ (appr - position) item,
+ - '0010' indicates 'key content only' (bias - appr) item,
+ - '0001' indicates 'relative position only' (bias - position) item.
+ """
+
+ _abbr_ = 'gen_attention_block'
+
+ def __init__(self,
+ in_channels: int,
+ spatial_range: int = -1,
+ num_heads: int = 9,
+ position_embedding_dim: int = -1,
+ position_magnitude: int = 1,
+ kv_stride: int = 2,
+ q_stride: int = 1,
+ attention_type: str = '1111'):
+
+ super().__init__()
+
+ # hard range means local range for non-local operation
+ self.position_embedding_dim = (
+ position_embedding_dim
+ if position_embedding_dim > 0 else in_channels)
+
+ self.position_magnitude = position_magnitude
+ self.num_heads = num_heads
+ self.in_channels = in_channels
+ self.spatial_range = spatial_range
+ self.kv_stride = kv_stride
+ self.q_stride = q_stride
+ self.attention_type = [bool(int(_)) for _ in attention_type]
+ self.qk_embed_dim = in_channels // num_heads
+ out_c = self.qk_embed_dim * num_heads
+
+ if self.attention_type[0] or self.attention_type[1]:
+ self.query_conv = nn.Conv2d(
+ in_channels=in_channels,
+ out_channels=out_c,
+ kernel_size=1,
+ bias=False)
+ self.query_conv.kaiming_init = True
+
+ if self.attention_type[0] or self.attention_type[2]:
+ self.key_conv = nn.Conv2d(
+ in_channels=in_channels,
+ out_channels=out_c,
+ kernel_size=1,
+ bias=False)
+ self.key_conv.kaiming_init = True
+
+ self.v_dim = in_channels // num_heads
+ self.value_conv = nn.Conv2d(
+ in_channels=in_channels,
+ out_channels=self.v_dim * num_heads,
+ kernel_size=1,
+ bias=False)
+ self.value_conv.kaiming_init = True
+
+ if self.attention_type[1] or self.attention_type[3]:
+ self.appr_geom_fc_x = nn.Linear(
+ self.position_embedding_dim // 2, out_c, bias=False)
+ self.appr_geom_fc_x.kaiming_init = True
+
+ self.appr_geom_fc_y = nn.Linear(
+ self.position_embedding_dim // 2, out_c, bias=False)
+ self.appr_geom_fc_y.kaiming_init = True
+
+ if self.attention_type[2]:
+ stdv = 1.0 / math.sqrt(self.qk_embed_dim * 2)
+ appr_bias_value = -2 * stdv * torch.rand(out_c) + stdv
+ self.appr_bias = nn.Parameter(appr_bias_value)
+
+ if self.attention_type[3]:
+ stdv = 1.0 / math.sqrt(self.qk_embed_dim * 2)
+ geom_bias_value = -2 * stdv * torch.rand(out_c) + stdv
+ self.geom_bias = nn.Parameter(geom_bias_value)
+
+ self.proj_conv = nn.Conv2d(
+ in_channels=self.v_dim * num_heads,
+ out_channels=in_channels,
+ kernel_size=1,
+ bias=True)
+ self.proj_conv.kaiming_init = True
+ self.gamma = nn.Parameter(torch.zeros(1))
+
+ if self.spatial_range >= 0:
+ # only works when non local is after 3*3 conv
+ if in_channels == 256:
+ max_len = 84
+ elif in_channels == 512:
+ max_len = 42
+
+ max_len_kv = int((max_len - 1.0) / self.kv_stride + 1)
+ local_constraint_map = np.ones(
+ (max_len, max_len, max_len_kv, max_len_kv), dtype=int)
+ for iy in range(max_len):
+ for ix in range(max_len):
+ local_constraint_map[
+ iy, ix,
+ max((iy - self.spatial_range) //
+ self.kv_stride, 0):min((iy + self.spatial_range +
+ 1) // self.kv_stride +
+ 1, max_len),
+ max((ix - self.spatial_range) //
+ self.kv_stride, 0):min((ix + self.spatial_range +
+ 1) // self.kv_stride +
+ 1, max_len)] = 0
+
+ self.local_constraint_map = nn.Parameter(
+ torch.from_numpy(local_constraint_map).byte(),
+ requires_grad=False)
+
+ if self.q_stride > 1:
+ self.q_downsample = nn.AvgPool2d(
+ kernel_size=1, stride=self.q_stride)
+ else:
+ self.q_downsample = None
+
+ if self.kv_stride > 1:
+ self.kv_downsample = nn.AvgPool2d(
+ kernel_size=1, stride=self.kv_stride)
+ else:
+ self.kv_downsample = None
+
+ self.init_weights()
+
+ def get_position_embedding(self,
+ h,
+ w,
+ h_kv,
+ w_kv,
+ q_stride,
+ kv_stride,
+ device,
+ dtype,
+ feat_dim,
+ wave_length=1000):
+ # the default type of Tensor is float32, leading to type mismatch
+ # in fp16 mode. Cast it to support fp16 mode.
+ h_idxs = torch.linspace(0, h - 1, h).to(device=device, dtype=dtype)
+ h_idxs = h_idxs.view((h, 1)) * q_stride
+
+ w_idxs = torch.linspace(0, w - 1, w).to(device=device, dtype=dtype)
+ w_idxs = w_idxs.view((w, 1)) * q_stride
+
+ h_kv_idxs = torch.linspace(0, h_kv - 1, h_kv).to(
+ device=device, dtype=dtype)
+ h_kv_idxs = h_kv_idxs.view((h_kv, 1)) * kv_stride
+
+ w_kv_idxs = torch.linspace(0, w_kv - 1, w_kv).to(
+ device=device, dtype=dtype)
+ w_kv_idxs = w_kv_idxs.view((w_kv, 1)) * kv_stride
+
+ # (h, h_kv, 1)
+ h_diff = h_idxs.unsqueeze(1) - h_kv_idxs.unsqueeze(0)
+ h_diff *= self.position_magnitude
+
+ # (w, w_kv, 1)
+ w_diff = w_idxs.unsqueeze(1) - w_kv_idxs.unsqueeze(0)
+ w_diff *= self.position_magnitude
+
+ feat_range = torch.arange(0, feat_dim / 4).to(
+ device=device, dtype=dtype)
+
+ dim_mat = torch.Tensor([wave_length]).to(device=device, dtype=dtype)
+ dim_mat = dim_mat**((4. / feat_dim) * feat_range)
+ dim_mat = dim_mat.view((1, 1, -1))
+
+ embedding_x = torch.cat(
+ ((w_diff / dim_mat).sin(), (w_diff / dim_mat).cos()), dim=2)
+
+ embedding_y = torch.cat(
+ ((h_diff / dim_mat).sin(), (h_diff / dim_mat).cos()), dim=2)
+
+ return embedding_x, embedding_y
+
+ def forward(self, x_input: torch.Tensor) -> torch.Tensor:
+ num_heads = self.num_heads
+
+ # use empirical_attention
+ if self.q_downsample is not None:
+ x_q = self.q_downsample(x_input)
+ else:
+ x_q = x_input
+ n, _, h, w = x_q.shape
+
+ if self.kv_downsample is not None:
+ x_kv = self.kv_downsample(x_input)
+ else:
+ x_kv = x_input
+ _, _, h_kv, w_kv = x_kv.shape
+
+ if self.attention_type[0] or self.attention_type[1]:
+ proj_query = self.query_conv(x_q).view(
+ (n, num_heads, self.qk_embed_dim, h * w))
+ proj_query = proj_query.permute(0, 1, 3, 2)
+
+ if self.attention_type[0] or self.attention_type[2]:
+ proj_key = self.key_conv(x_kv).view(
+ (n, num_heads, self.qk_embed_dim, h_kv * w_kv))
+
+ if self.attention_type[1] or self.attention_type[3]:
+ position_embed_x, position_embed_y = self.get_position_embedding(
+ h, w, h_kv, w_kv, self.q_stride, self.kv_stride,
+ x_input.device, x_input.dtype, self.position_embedding_dim)
+ # (n, num_heads, w, w_kv, dim)
+ position_feat_x = self.appr_geom_fc_x(position_embed_x).\
+ view(1, w, w_kv, num_heads, self.qk_embed_dim).\
+ permute(0, 3, 1, 2, 4).\
+ repeat(n, 1, 1, 1, 1)
+
+ # (n, num_heads, h, h_kv, dim)
+ position_feat_y = self.appr_geom_fc_y(position_embed_y).\
+ view(1, h, h_kv, num_heads, self.qk_embed_dim).\
+ permute(0, 3, 1, 2, 4).\
+ repeat(n, 1, 1, 1, 1)
+
+ position_feat_x /= math.sqrt(2)
+ position_feat_y /= math.sqrt(2)
+
+ # accelerate for saliency only
+ if (np.sum(self.attention_type) == 1) and self.attention_type[2]:
+ appr_bias = self.appr_bias.\
+ view(1, num_heads, 1, self.qk_embed_dim).\
+ repeat(n, 1, 1, 1)
+
+ energy = torch.matmul(appr_bias, proj_key).\
+ view(n, num_heads, 1, h_kv * w_kv)
+
+ h = 1
+ w = 1
+ else:
+ # (n, num_heads, h*w, h_kv*w_kv), query before key, 540mb for
+ if not self.attention_type[0]:
+ energy = torch.zeros(
+ n,
+ num_heads,
+ h,
+ w,
+ h_kv,
+ w_kv,
+ dtype=x_input.dtype,
+ device=x_input.device)
+
+ # attention_type[0]: appr - appr
+ # attention_type[1]: appr - position
+ # attention_type[2]: bias - appr
+ # attention_type[3]: bias - position
+ if self.attention_type[0] or self.attention_type[2]:
+ if self.attention_type[0] and self.attention_type[2]:
+ appr_bias = self.appr_bias.\
+ view(1, num_heads, 1, self.qk_embed_dim)
+ energy = torch.matmul(proj_query + appr_bias, proj_key).\
+ view(n, num_heads, h, w, h_kv, w_kv)
+
+ elif self.attention_type[0]:
+ energy = torch.matmul(proj_query, proj_key).\
+ view(n, num_heads, h, w, h_kv, w_kv)
+
+ elif self.attention_type[2]:
+ appr_bias = self.appr_bias.\
+ view(1, num_heads, 1, self.qk_embed_dim).\
+ repeat(n, 1, 1, 1)
+
+ energy += torch.matmul(appr_bias, proj_key).\
+ view(n, num_heads, 1, 1, h_kv, w_kv)
+
+ if self.attention_type[1] or self.attention_type[3]:
+ if self.attention_type[1] and self.attention_type[3]:
+ geom_bias = self.geom_bias.\
+ view(1, num_heads, 1, self.qk_embed_dim)
+
+ proj_query_reshape = (proj_query + geom_bias).\
+ view(n, num_heads, h, w, self.qk_embed_dim)
+
+ energy_x = torch.matmul(
+ proj_query_reshape.permute(0, 1, 3, 2, 4),
+ position_feat_x.permute(0, 1, 2, 4, 3))
+ energy_x = energy_x.\
+ permute(0, 1, 3, 2, 4).unsqueeze(4)
+
+ energy_y = torch.matmul(
+ proj_query_reshape,
+ position_feat_y.permute(0, 1, 2, 4, 3))
+ energy_y = energy_y.unsqueeze(5)
+
+ energy += energy_x + energy_y
+
+ elif self.attention_type[1]:
+ proj_query_reshape = proj_query.\
+ view(n, num_heads, h, w, self.qk_embed_dim)
+ proj_query_reshape = proj_query_reshape.\
+ permute(0, 1, 3, 2, 4)
+ position_feat_x_reshape = position_feat_x.\
+ permute(0, 1, 2, 4, 3)
+ position_feat_y_reshape = position_feat_y.\
+ permute(0, 1, 2, 4, 3)
+
+ energy_x = torch.matmul(proj_query_reshape,
+ position_feat_x_reshape)
+ energy_x = energy_x.permute(0, 1, 3, 2, 4).unsqueeze(4)
+
+ energy_y = torch.matmul(proj_query_reshape,
+ position_feat_y_reshape)
+ energy_y = energy_y.unsqueeze(5)
+
+ energy += energy_x + energy_y
+
+ elif self.attention_type[3]:
+ geom_bias = self.geom_bias.\
+ view(1, num_heads, self.qk_embed_dim, 1).\
+ repeat(n, 1, 1, 1)
+
+ position_feat_x_reshape = position_feat_x.\
+ view(n, num_heads, w * w_kv, self.qk_embed_dim)
+
+ position_feat_y_reshape = position_feat_y.\
+ view(n, num_heads, h * h_kv, self.qk_embed_dim)
+
+ energy_x = torch.matmul(position_feat_x_reshape, geom_bias)
+ energy_x = energy_x.view(n, num_heads, 1, w, 1, w_kv)
+
+ energy_y = torch.matmul(position_feat_y_reshape, geom_bias)
+ energy_y = energy_y.view(n, num_heads, h, 1, h_kv, 1)
+
+ energy += energy_x + energy_y
+
+ energy = energy.view(n, num_heads, h * w, h_kv * w_kv)
+
+ if self.spatial_range >= 0:
+ cur_local_constraint_map = \
+ self.local_constraint_map[:h, :w, :h_kv, :w_kv].\
+ contiguous().\
+ view(1, 1, h*w, h_kv*w_kv)
+
+ energy = energy.masked_fill_(cur_local_constraint_map,
+ float('-inf'))
+
+ attention = F.softmax(energy, 3)
+
+ proj_value = self.value_conv(x_kv)
+ proj_value_reshape = proj_value.\
+ view((n, num_heads, self.v_dim, h_kv * w_kv)).\
+ permute(0, 1, 3, 2)
+
+ out = torch.matmul(attention, proj_value_reshape).\
+ permute(0, 1, 3, 2).\
+ contiguous().\
+ view(n, self.v_dim * self.num_heads, h, w)
+
+ out = self.proj_conv(out)
+
+ # output is downsampled, upsample back to input size
+ if self.q_downsample is not None:
+ out = F.interpolate(
+ out,
+ size=x_input.shape[2:],
+ mode='bilinear',
+ align_corners=False)
+
+ out = self.gamma * out + x_input
+ return out
+
+ def init_weights(self):
+ for m in self.modules():
+ if hasattr(m, 'kaiming_init') and m.kaiming_init:
+ kaiming_init(
+ m,
+ mode='fan_in',
+ nonlinearity='leaky_relu',
+ bias=0,
+ distribution='uniform',
+ a=1)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/hsigmoid.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/hsigmoid.py
new file mode 100644
index 0000000000000000000000000000000000000000..423e0aad9ae154cf651d289327bc19da940cf449
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/hsigmoid.py
@@ -0,0 +1,50 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import warnings
+
+import torch
+import torch.nn as nn
+from mmengine.registry import MODELS
+
+
+@MODELS.register_module()
+class HSigmoid(nn.Module):
+ """Hard Sigmoid Module. Apply the hard sigmoid function:
+ Hsigmoid(x) = min(max((x + bias) / divisor, min_value), max_value)
+ Default: Hsigmoid(x) = min(max((x + 3) / 6, 0), 1)
+
+ Note:
+ In MMCV v1.4.4, we modified the default value of args to align with
+ PyTorch official.
+
+ Args:
+ bias (float): Bias of the input feature map. Default: 3.0.
+ divisor (float): Divisor of the input feature map. Default: 6.0.
+ min_value (float): Lower bound value. Default: 0.0.
+ max_value (float): Upper bound value. Default: 1.0.
+
+ Returns:
+ Tensor: The output tensor.
+ """
+
+ def __init__(self,
+ bias: float = 3.0,
+ divisor: float = 6.0,
+ min_value: float = 0.0,
+ max_value: float = 1.0):
+ super().__init__()
+ warnings.warn(
+ 'In MMCV v1.4.4, we modified the default value of args to align '
+ 'with PyTorch official. Previous Implementation: '
+ 'Hsigmoid(x) = min(max((x + 1) / 2, 0), 1). '
+ 'Current Implementation: '
+ 'Hsigmoid(x) = min(max((x + 3) / 6, 0), 1).')
+ self.bias = bias
+ self.divisor = divisor
+ assert self.divisor != 0
+ self.min_value = min_value
+ self.max_value = max_value
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = (x + self.bias) / self.divisor
+
+ return x.clamp_(self.min_value, self.max_value)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/hswish.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/hswish.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b6dd006d424bd39a3f99ceefda816408309d71c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/hswish.py
@@ -0,0 +1,39 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+import torch.nn as nn
+from mmengine.registry import MODELS
+from mmengine.utils import digit_version
+from mmengine.utils.dl_utils import TORCH_VERSION
+
+
+class HSwish(nn.Module):
+ """Hard Swish Module.
+
+ This module applies the hard swish function:
+
+ .. math::
+ Hswish(x) = x * ReLU6(x + 3) / 6
+
+ Args:
+ inplace (bool): can optionally do the operation in-place.
+ Default: False.
+
+ Returns:
+ Tensor: The output tensor.
+ """
+
+ def __init__(self, inplace: bool = False):
+ super().__init__()
+ self.act = nn.ReLU6(inplace)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ return x * self.act(x + 3) / 6
+
+
+if (TORCH_VERSION == 'parrots'
+ or digit_version(TORCH_VERSION) < digit_version('1.7')):
+ # Hardswish is not supported when PyTorch version < 1.6.
+ # And Hardswish in PyTorch 1.6 does not support inplace.
+ MODELS.register_module(module=HSwish)
+else:
+ MODELS.register_module(module=nn.Hardswish, name='HSwish')
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/non_local.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/non_local.py
new file mode 100644
index 0000000000000000000000000000000000000000..8dd4465cd62fcb07ec1bc3410ebd272f427ec6b1
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/non_local.py
@@ -0,0 +1,308 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from abc import ABCMeta
+from typing import Dict, Optional
+
+import torch
+import torch.nn as nn
+from mmengine.model import constant_init, normal_init
+from mmengine.registry import MODELS
+
+from .conv_module import ConvModule
+
+
+class _NonLocalNd(nn.Module, metaclass=ABCMeta):
+ """Basic Non-local module.
+
+ This module is proposed in
+ "Non-local Neural Networks"
+ Paper reference: https://arxiv.org/abs/1711.07971
+ Code reference: https://github.com/AlexHex7/Non-local_pytorch
+
+ Args:
+ in_channels (int): Channels of the input feature map.
+ reduction (int): Channel reduction ratio. Default: 2.
+ use_scale (bool): Whether to scale pairwise_weight by
+ `1/sqrt(inter_channels)` when the mode is `embedded_gaussian`.
+ Default: True.
+ conv_cfg (None | dict): The config dict for convolution layers.
+ If not specified, it will use `nn.Conv2d` for convolution layers.
+ Default: None.
+ norm_cfg (None | dict): The config dict for normalization layers.
+ Default: None. (This parameter is only applicable to conv_out.)
+ mode (str): Options are `gaussian`, `concatenation`,
+ `embedded_gaussian` and `dot_product`. Default: embedded_gaussian.
+ """
+
+ def __init__(self,
+ in_channels: int,
+ reduction: int = 2,
+ use_scale: bool = True,
+ conv_cfg: Optional[Dict] = None,
+ norm_cfg: Optional[Dict] = None,
+ mode: str = 'embedded_gaussian',
+ **kwargs):
+ super().__init__()
+ self.in_channels = in_channels
+ self.reduction = reduction
+ self.use_scale = use_scale
+ self.inter_channels = max(in_channels // reduction, 1)
+ self.mode = mode
+
+ if mode not in [
+ 'gaussian', 'embedded_gaussian', 'dot_product', 'concatenation'
+ ]:
+ raise ValueError("Mode should be in 'gaussian', 'concatenation', "
+ f"'embedded_gaussian' or 'dot_product', but got "
+ f'{mode} instead.')
+
+ # g, theta, phi are defaulted as `nn.ConvNd`.
+ # Here we use ConvModule for potential usage.
+ self.g = ConvModule(
+ self.in_channels,
+ self.inter_channels,
+ kernel_size=1,
+ conv_cfg=conv_cfg,
+ act_cfg=None) # type: ignore
+ self.conv_out = ConvModule(
+ self.inter_channels,
+ self.in_channels,
+ kernel_size=1,
+ conv_cfg=conv_cfg,
+ norm_cfg=norm_cfg,
+ act_cfg=None)
+
+ if self.mode != 'gaussian':
+ self.theta = ConvModule(
+ self.in_channels,
+ self.inter_channels,
+ kernel_size=1,
+ conv_cfg=conv_cfg,
+ act_cfg=None)
+ self.phi = ConvModule(
+ self.in_channels,
+ self.inter_channels,
+ kernel_size=1,
+ conv_cfg=conv_cfg,
+ act_cfg=None)
+
+ if self.mode == 'concatenation':
+ self.concat_project = ConvModule(
+ self.inter_channels * 2,
+ 1,
+ kernel_size=1,
+ stride=1,
+ padding=0,
+ bias=False,
+ act_cfg=dict(type='ReLU'))
+
+ self.init_weights(**kwargs)
+
+ def init_weights(self, std: float = 0.01, zeros_init: bool = True) -> None:
+ if self.mode != 'gaussian':
+ for m in [self.g, self.theta, self.phi]:
+ normal_init(m.conv, std=std)
+ else:
+ normal_init(self.g.conv, std=std)
+ if zeros_init:
+ if self.conv_out.norm_cfg is None:
+ constant_init(self.conv_out.conv, 0)
+ else:
+ constant_init(self.conv_out.norm, 0)
+ else:
+ if self.conv_out.norm_cfg is None:
+ normal_init(self.conv_out.conv, std=std)
+ else:
+ normal_init(self.conv_out.norm, std=std)
+
+ def gaussian(self, theta_x: torch.Tensor,
+ phi_x: torch.Tensor) -> torch.Tensor:
+ # NonLocal1d pairwise_weight: [N, H, H]
+ # NonLocal2d pairwise_weight: [N, HxW, HxW]
+ # NonLocal3d pairwise_weight: [N, TxHxW, TxHxW]
+ pairwise_weight = torch.matmul(theta_x, phi_x)
+ pairwise_weight = pairwise_weight.softmax(dim=-1)
+ return pairwise_weight
+
+ def embedded_gaussian(self, theta_x: torch.Tensor,
+ phi_x: torch.Tensor) -> torch.Tensor:
+ # NonLocal1d pairwise_weight: [N, H, H]
+ # NonLocal2d pairwise_weight: [N, HxW, HxW]
+ # NonLocal3d pairwise_weight: [N, TxHxW, TxHxW]
+ pairwise_weight = torch.matmul(theta_x, phi_x)
+ if self.use_scale:
+ # theta_x.shape[-1] is `self.inter_channels`
+ pairwise_weight /= theta_x.shape[-1]**0.5
+ pairwise_weight = pairwise_weight.softmax(dim=-1)
+ return pairwise_weight
+
+ def dot_product(self, theta_x: torch.Tensor,
+ phi_x: torch.Tensor) -> torch.Tensor:
+ # NonLocal1d pairwise_weight: [N, H, H]
+ # NonLocal2d pairwise_weight: [N, HxW, HxW]
+ # NonLocal3d pairwise_weight: [N, TxHxW, TxHxW]
+ pairwise_weight = torch.matmul(theta_x, phi_x)
+ pairwise_weight /= pairwise_weight.shape[-1]
+ return pairwise_weight
+
+ def concatenation(self, theta_x: torch.Tensor,
+ phi_x: torch.Tensor) -> torch.Tensor:
+ # NonLocal1d pairwise_weight: [N, H, H]
+ # NonLocal2d pairwise_weight: [N, HxW, HxW]
+ # NonLocal3d pairwise_weight: [N, TxHxW, TxHxW]
+ h = theta_x.size(2)
+ w = phi_x.size(3)
+ theta_x = theta_x.repeat(1, 1, 1, w)
+ phi_x = phi_x.repeat(1, 1, h, 1)
+
+ concat_feature = torch.cat([theta_x, phi_x], dim=1)
+ pairwise_weight = self.concat_project(concat_feature)
+ n, _, h, w = pairwise_weight.size()
+ pairwise_weight = pairwise_weight.view(n, h, w)
+ pairwise_weight /= pairwise_weight.shape[-1]
+
+ return pairwise_weight
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ # Assume `reduction = 1`, then `inter_channels = C`
+ # or `inter_channels = C` when `mode="gaussian"`
+
+ # NonLocal1d x: [N, C, H]
+ # NonLocal2d x: [N, C, H, W]
+ # NonLocal3d x: [N, C, T, H, W]
+ n = x.size(0)
+
+ # NonLocal1d g_x: [N, H, C]
+ # NonLocal2d g_x: [N, HxW, C]
+ # NonLocal3d g_x: [N, TxHxW, C]
+ g_x = self.g(x).view(n, self.inter_channels, -1)
+ g_x = g_x.permute(0, 2, 1)
+
+ # NonLocal1d theta_x: [N, H, C], phi_x: [N, C, H]
+ # NonLocal2d theta_x: [N, HxW, C], phi_x: [N, C, HxW]
+ # NonLocal3d theta_x: [N, TxHxW, C], phi_x: [N, C, TxHxW]
+ if self.mode == 'gaussian':
+ theta_x = x.view(n, self.in_channels, -1)
+ theta_x = theta_x.permute(0, 2, 1)
+ if self.sub_sample:
+ phi_x = self.phi(x).view(n, self.in_channels, -1)
+ else:
+ phi_x = x.view(n, self.in_channels, -1)
+ elif self.mode == 'concatenation':
+ theta_x = self.theta(x).view(n, self.inter_channels, -1, 1)
+ phi_x = self.phi(x).view(n, self.inter_channels, 1, -1)
+ else:
+ theta_x = self.theta(x).view(n, self.inter_channels, -1)
+ theta_x = theta_x.permute(0, 2, 1)
+ phi_x = self.phi(x).view(n, self.inter_channels, -1)
+
+ pairwise_func = getattr(self, self.mode)
+ # NonLocal1d pairwise_weight: [N, H, H]
+ # NonLocal2d pairwise_weight: [N, HxW, HxW]
+ # NonLocal3d pairwise_weight: [N, TxHxW, TxHxW]
+ pairwise_weight = pairwise_func(theta_x, phi_x)
+
+ # NonLocal1d y: [N, H, C]
+ # NonLocal2d y: [N, HxW, C]
+ # NonLocal3d y: [N, TxHxW, C]
+ y = torch.matmul(pairwise_weight, g_x)
+ # NonLocal1d y: [N, C, H]
+ # NonLocal2d y: [N, C, H, W]
+ # NonLocal3d y: [N, C, T, H, W]
+ y = y.permute(0, 2, 1).contiguous().reshape(n, self.inter_channels,
+ *x.size()[2:])
+
+ output = x + self.conv_out(y)
+
+ return output
+
+
+class NonLocal1d(_NonLocalNd):
+ """1D Non-local module.
+
+ Args:
+ in_channels (int): Same as `NonLocalND`.
+ sub_sample (bool): Whether to apply max pooling after pairwise
+ function (Note that the `sub_sample` is applied on spatial only).
+ Default: False.
+ conv_cfg (None | dict): Same as `NonLocalND`.
+ Default: dict(type='Conv1d').
+ """
+
+ def __init__(self,
+ in_channels: int,
+ sub_sample: bool = False,
+ conv_cfg: Dict = dict(type='Conv1d'),
+ **kwargs):
+ super().__init__(in_channels, conv_cfg=conv_cfg, **kwargs)
+
+ self.sub_sample = sub_sample
+
+ if sub_sample:
+ max_pool_layer = nn.MaxPool1d(kernel_size=2)
+ self.g = nn.Sequential(self.g, max_pool_layer)
+ if self.mode != 'gaussian':
+ self.phi = nn.Sequential(self.phi, max_pool_layer)
+ else:
+ self.phi = max_pool_layer
+
+
+@MODELS.register_module()
+class NonLocal2d(_NonLocalNd):
+ """2D Non-local module.
+
+ Args:
+ in_channels (int): Same as `NonLocalND`.
+ sub_sample (bool): Whether to apply max pooling after pairwise
+ function (Note that the `sub_sample` is applied on spatial only).
+ Default: False.
+ conv_cfg (None | dict): Same as `NonLocalND`.
+ Default: dict(type='Conv2d').
+ """
+
+ _abbr_ = 'nonlocal_block'
+
+ def __init__(self,
+ in_channels: int,
+ sub_sample: bool = False,
+ conv_cfg: Dict = dict(type='Conv2d'),
+ **kwargs):
+ super().__init__(in_channels, conv_cfg=conv_cfg, **kwargs)
+
+ self.sub_sample = sub_sample
+
+ if sub_sample:
+ max_pool_layer = nn.MaxPool2d(kernel_size=(2, 2))
+ self.g = nn.Sequential(self.g, max_pool_layer)
+ if self.mode != 'gaussian':
+ self.phi = nn.Sequential(self.phi, max_pool_layer)
+ else:
+ self.phi = max_pool_layer
+
+
+class NonLocal3d(_NonLocalNd):
+ """3D Non-local module.
+
+ Args:
+ in_channels (int): Same as `NonLocalND`.
+ sub_sample (bool): Whether to apply max pooling after pairwise
+ function (Note that the `sub_sample` is applied on spatial only).
+ Default: False.
+ conv_cfg (None | dict): Same as `NonLocalND`.
+ Default: dict(type='Conv3d').
+ """
+
+ def __init__(self,
+ in_channels: int,
+ sub_sample: bool = False,
+ conv_cfg: Dict = dict(type='Conv3d'),
+ **kwargs):
+ super().__init__(in_channels, conv_cfg=conv_cfg, **kwargs)
+ self.sub_sample = sub_sample
+
+ if sub_sample:
+ max_pool_layer = nn.MaxPool3d(kernel_size=(1, 2, 2))
+ self.g = nn.Sequential(self.g, max_pool_layer)
+ if self.mode != 'gaussian':
+ self.phi = nn.Sequential(self.phi, max_pool_layer)
+ else:
+ self.phi = max_pool_layer
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/norm.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/norm.py
new file mode 100644
index 0000000000000000000000000000000000000000..5aabab21a0096c185a929b11861c057cbea4b84d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/norm.py
@@ -0,0 +1,156 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import inspect
+from typing import Dict, Tuple, Union
+
+import torch.nn as nn
+from mmengine.registry import MODELS
+from mmengine.utils import is_tuple_of
+from mmengine.utils.dl_utils.parrots_wrapper import (SyncBatchNorm, _BatchNorm,
+ _InstanceNorm)
+
+MODELS.register_module('BN', module=nn.BatchNorm2d)
+MODELS.register_module('BN1d', module=nn.BatchNorm1d)
+MODELS.register_module('BN2d', module=nn.BatchNorm2d)
+MODELS.register_module('BN3d', module=nn.BatchNorm3d)
+MODELS.register_module('SyncBN', module=SyncBatchNorm)
+MODELS.register_module('GN', module=nn.GroupNorm)
+MODELS.register_module('LN', module=nn.LayerNorm)
+MODELS.register_module('IN', module=nn.InstanceNorm2d)
+MODELS.register_module('IN1d', module=nn.InstanceNorm1d)
+MODELS.register_module('IN2d', module=nn.InstanceNorm2d)
+MODELS.register_module('IN3d', module=nn.InstanceNorm3d)
+
+
+def infer_abbr(class_type):
+ """Infer abbreviation from the class name.
+
+ When we build a norm layer with `build_norm_layer()`, we want to preserve
+ the norm type in variable names, e.g, self.bn1, self.gn. This method will
+ infer the abbreviation to map class types to abbreviations.
+
+ Rule 1: If the class has the property "_abbr_", return the property.
+ Rule 2: If the parent class is _BatchNorm, GroupNorm, LayerNorm or
+ InstanceNorm, the abbreviation of this layer will be "bn", "gn", "ln" and
+ "in" respectively.
+ Rule 3: If the class name contains "batch", "group", "layer" or "instance",
+ the abbreviation of this layer will be "bn", "gn", "ln" and "in"
+ respectively.
+ Rule 4: Otherwise, the abbreviation falls back to "norm".
+
+ Args:
+ class_type (type): The norm layer type.
+
+ Returns:
+ str: The inferred abbreviation.
+ """
+ if not inspect.isclass(class_type):
+ raise TypeError(
+ f'class_type must be a type, but got {type(class_type)}')
+ if hasattr(class_type, '_abbr_'):
+ return class_type._abbr_
+ if issubclass(class_type, _InstanceNorm): # IN is a subclass of BN
+ return 'in'
+ elif issubclass(class_type, _BatchNorm):
+ return 'bn'
+ elif issubclass(class_type, nn.GroupNorm):
+ return 'gn'
+ elif issubclass(class_type, nn.LayerNorm):
+ return 'ln'
+ else:
+ class_name = class_type.__name__.lower()
+ if 'batch' in class_name:
+ return 'bn'
+ elif 'group' in class_name:
+ return 'gn'
+ elif 'layer' in class_name:
+ return 'ln'
+ elif 'instance' in class_name:
+ return 'in'
+ else:
+ return 'norm_layer'
+
+
+def build_norm_layer(cfg: Dict,
+ num_features: int,
+ postfix: Union[int, str] = '') -> Tuple[str, nn.Module]:
+ """Build normalization layer.
+
+ Args:
+ cfg (dict): The norm layer config, which should contain:
+
+ - type (str): Layer type.
+ - layer args: Args needed to instantiate a norm layer.
+ - requires_grad (bool, optional): Whether stop gradient updates.
+ num_features (int): Number of input channels.
+ postfix (int | str): The postfix to be appended into norm abbreviation
+ to create named layer.
+
+ Returns:
+ tuple[str, nn.Module]: The first element is the layer name consisting
+ of abbreviation and postfix, e.g., bn1, gn. The second element is the
+ created norm layer.
+ """
+ if not isinstance(cfg, dict):
+ raise TypeError('cfg must be a dict')
+ if 'type' not in cfg:
+ raise KeyError('the cfg dict must contain the key "type"')
+ cfg_ = cfg.copy()
+
+ layer_type = cfg_.pop('type')
+
+ if inspect.isclass(layer_type):
+ norm_layer = layer_type
+ else:
+ # Switch registry to the target scope. If `norm_layer` cannot be found
+ # in the registry, fallback to search `norm_layer` in the
+ # mmengine.MODELS.
+ with MODELS.switch_scope_and_registry(None) as registry:
+ norm_layer = registry.get(layer_type)
+ if norm_layer is None:
+ raise KeyError(f'Cannot find {norm_layer} in registry under '
+ f'scope name {registry.scope}')
+ abbr = infer_abbr(norm_layer)
+
+ assert isinstance(postfix, (int, str))
+ name = abbr + str(postfix)
+
+ requires_grad = cfg_.pop('requires_grad', True)
+ cfg_.setdefault('eps', 1e-5)
+ if norm_layer is not nn.GroupNorm:
+ layer = norm_layer(num_features, **cfg_)
+ if layer_type == 'SyncBN' and hasattr(layer, '_specify_ddp_gpu_num'):
+ layer._specify_ddp_gpu_num(1)
+ else:
+ assert 'num_groups' in cfg_
+ layer = norm_layer(num_channels=num_features, **cfg_)
+
+ for param in layer.parameters():
+ param.requires_grad = requires_grad
+
+ return name, layer
+
+
+def is_norm(layer: nn.Module,
+ exclude: Union[type, tuple, None] = None) -> bool:
+ """Check if a layer is a normalization layer.
+
+ Args:
+ layer (nn.Module): The layer to be checked.
+ exclude (type | tuple[type]): Types to be excluded.
+
+ Returns:
+ bool: Whether the layer is a norm layer.
+ """
+ if exclude is not None:
+ if not isinstance(exclude, tuple):
+ exclude = (exclude, )
+ if not is_tuple_of(exclude, type):
+ raise TypeError(
+ f'"exclude" must be either None or type or a tuple of types, '
+ f'but got {type(exclude)}: {exclude}')
+
+ if exclude and isinstance(layer, exclude):
+ return False
+
+ all_norm_bases = (_BatchNorm, _InstanceNorm, nn.GroupNorm, nn.LayerNorm)
+ return isinstance(layer, all_norm_bases)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/padding.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/padding.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b29996b94a246d63a3661c345219eb1955a03d5
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/padding.py
@@ -0,0 +1,43 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import inspect
+from typing import Dict
+
+import torch.nn as nn
+from mmengine.registry import MODELS
+
+MODELS.register_module('zero', module=nn.ZeroPad2d)
+MODELS.register_module('reflect', module=nn.ReflectionPad2d)
+MODELS.register_module('replicate', module=nn.ReplicationPad2d)
+
+
+def build_padding_layer(cfg: Dict, *args, **kwargs) -> nn.Module:
+ """Build padding layer.
+
+ Args:
+ cfg (dict): The padding layer config, which should contain:
+ - type (str): Layer type.
+ - layer args: Args needed to instantiate a padding layer.
+
+ Returns:
+ nn.Module: Created padding layer.
+ """
+ if not isinstance(cfg, dict):
+ raise TypeError('cfg must be a dict')
+ if 'type' not in cfg:
+ raise KeyError('the cfg dict must contain the key "type"')
+
+ cfg_ = cfg.copy()
+ padding_type = cfg_.pop('type')
+ if inspect.isclass(padding_type):
+ return padding_type(*args, **kwargs, **cfg_)
+ # Switch registry to the target scope. If `padding_layer` cannot be found
+ # in the registry, fallback to search `padding_layer` in the
+ # mmengine.MODELS.
+ with MODELS.switch_scope_and_registry(None) as registry:
+ padding_layer = registry.get(padding_type)
+ if padding_layer is None:
+ raise KeyError(f'Cannot find {padding_layer} in registry under scope '
+ f'name {registry.scope}')
+ layer = padding_layer(*args, **kwargs, **cfg_)
+
+ return layer
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/plugin.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/plugin.py
new file mode 100644
index 0000000000000000000000000000000000000000..3195ed13cf764febf5827224edf1abf9dc951efe
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/plugin.py
@@ -0,0 +1,101 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import inspect
+import platform
+from typing import Dict, Tuple, Union
+
+import torch.nn as nn
+from mmengine.registry import MODELS
+
+if platform.system() == 'Windows':
+ import regex as re # type: ignore
+else:
+ import re # type: ignore
+
+
+def infer_abbr(class_type: type) -> str:
+ """Infer abbreviation from the class name.
+
+ This method will infer the abbreviation to map class types to
+ abbreviations.
+
+ Rule 1: If the class has the property "abbr", return the property.
+ Rule 2: Otherwise, the abbreviation falls back to snake case of class
+ name, e.g. the abbreviation of ``FancyBlock`` will be ``fancy_block``.
+
+ Args:
+ class_type (type): The norm layer type.
+
+ Returns:
+ str: The inferred abbreviation.
+ """
+
+ def camel2snack(word):
+ """Convert camel case word into snack case.
+
+ Modified from `inflection lib
+ `_.
+
+ Example::
+
+ >>> camel2snack("FancyBlock")
+ 'fancy_block'
+ """
+
+ word = re.sub(r'([A-Z]+)([A-Z][a-z])', r'\1_\2', word)
+ word = re.sub(r'([a-z\d])([A-Z])', r'\1_\2', word)
+ word = word.replace('-', '_')
+ return word.lower()
+
+ if not inspect.isclass(class_type):
+ raise TypeError(
+ f'class_type must be a type, but got {type(class_type)}')
+ if hasattr(class_type, '_abbr_'):
+ return class_type._abbr_ # type: ignore
+ else:
+ return camel2snack(class_type.__name__)
+
+
+def build_plugin_layer(cfg: Dict,
+ postfix: Union[int, str] = '',
+ **kwargs) -> Tuple[str, nn.Module]:
+ """Build plugin layer.
+
+ Args:
+ cfg (dict): cfg should contain:
+
+ - type (str): identify plugin layer type.
+ - layer args: args needed to instantiate a plugin layer.
+ postfix (int, str): appended into norm abbreviation to
+ create named layer. Default: ''.
+
+ Returns:
+ tuple[str, nn.Module]: The first one is the concatenation of
+ abbreviation and postfix. The second is the created plugin layer.
+ """
+ if not isinstance(cfg, dict):
+ raise TypeError('cfg must be a dict')
+ if 'type' not in cfg:
+ raise KeyError('the cfg dict must contain the key "type"')
+ cfg_ = cfg.copy()
+
+ layer_type = cfg_.pop('type')
+ if inspect.isclass(layer_type):
+ plugin_layer = layer_type
+ else:
+ # Switch registry to the target scope. If `plugin_layer` cannot be
+ # found in the registry, fallback to search `plugin_layer` in the
+ # mmengine.MODELS.
+ with MODELS.switch_scope_and_registry(None) as registry:
+ plugin_layer = registry.get(layer_type)
+ if plugin_layer is None:
+ raise KeyError(
+ f'Cannot find {plugin_layer} in registry under scope '
+ f'name {registry.scope}')
+ abbr = infer_abbr(plugin_layer)
+
+ assert isinstance(postfix, (int, str))
+ name = abbr + str(postfix)
+
+ layer = plugin_layer(**kwargs, **cfg_)
+
+ return name, layer
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/scale.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/scale.py
new file mode 100644
index 0000000000000000000000000000000000000000..a47379898f75117e5ca2176d9a5f225f563d7b1e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/scale.py
@@ -0,0 +1,57 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+import torch.nn as nn
+
+
+class Scale(nn.Module):
+ """A learnable scale parameter.
+
+ This layer scales the input by a learnable factor. It multiplies a
+ learnable scale parameter of shape (1,) with input of any shape.
+
+ Args:
+ scale (float): Initial value of scale factor. Default: 1.0
+ """
+
+ def __init__(self, scale: float = 1.0):
+ super().__init__()
+ self.scale = nn.Parameter(torch.tensor(scale, dtype=torch.float))
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ return x * self.scale
+
+
+class LayerScale(nn.Module):
+ """LayerScale layer.
+
+ Args:
+ dim (int): Dimension of input features.
+ inplace (bool): Whether performs operation in-place.
+ Default: `False`.
+ data_format (str): The input data format, could be 'channels_last'
+ or 'channels_first', representing (B, C, H, W) and
+ (B, N, C) format data respectively. Default: 'channels_last'.
+ scale (float): Initial value of scale factor. Default: 1.0
+ """
+
+ def __init__(self,
+ dim: int,
+ inplace: bool = False,
+ data_format: str = 'channels_last',
+ scale: float = 1e-5):
+ super().__init__()
+ assert data_format in ('channels_last', 'channels_first'), \
+ "'data_format' could only be channels_last or channels_first."
+ self.inplace = inplace
+ self.data_format = data_format
+ self.weight = nn.Parameter(torch.ones(dim) * scale)
+
+ def forward(self, x) -> torch.Tensor:
+ if self.data_format == 'channels_first':
+ shape = tuple((1, -1, *(1 for _ in range(x.dim() - 2))))
+ else:
+ shape = tuple((*(1 for _ in range(x.dim() - 1)), -1))
+ if self.inplace:
+ return x.mul_(self.weight.view(*shape))
+ else:
+ return x * self.weight.view(*shape)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/swish.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/swish.py
new file mode 100644
index 0000000000000000000000000000000000000000..75ad75b9d73f11375ed63491d9e29efd6f43f143
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/swish.py
@@ -0,0 +1,24 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+import torch.nn as nn
+from mmengine.registry import MODELS
+
+
+@MODELS.register_module()
+class Swish(nn.Module):
+ """Swish Module.
+
+ This module applies the swish function:
+
+ .. math::
+ Swish(x) = x * Sigmoid(x)
+
+ Returns:
+ Tensor: The output tensor.
+ """
+
+ def __init__(self):
+ super().__init__()
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ return x * torch.sigmoid(x)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/transformer.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/transformer.py
new file mode 100644
index 0000000000000000000000000000000000000000..f83b9a6977bf821985cb4c2f78de84fcf103fffb
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/transformer.py
@@ -0,0 +1,951 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import copy
+import math
+import warnings
+from typing import Sequence
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.config import ConfigDict
+from mmengine.model import BaseModule, ModuleList, Sequential
+from mmengine.registry import MODELS
+from mmengine.utils import deprecated_api_warning, to_2tuple
+
+from mmcv.cnn import (Linear, build_activation_layer, build_conv_layer,
+ build_norm_layer)
+from .drop import build_dropout
+from .scale import LayerScale
+
+# Avoid BC-breaking of importing MultiScaleDeformableAttention from this file
+try:
+ from mmcv.ops.multi_scale_deform_attn import \
+ MultiScaleDeformableAttention # noqa F401
+ warnings.warn(
+ ImportWarning(
+ '``MultiScaleDeformableAttention`` has been moved to '
+ '``mmcv.ops.multi_scale_deform_attn``, please change original path ' # noqa E501
+ '``from mmcv.cnn.bricks.transformer import MultiScaleDeformableAttention`` ' # noqa E501
+ 'to ``from mmcv.ops.multi_scale_deform_attn import MultiScaleDeformableAttention`` ' # noqa E501
+ ))
+
+except ImportError:
+ warnings.warn('Fail to import ``MultiScaleDeformableAttention`` from '
+ '``mmcv.ops.multi_scale_deform_attn``, '
+ 'You should install ``mmcv`` rather than ``mmcv-lite`` '
+ 'if you need this module. ')
+
+
+def build_positional_encoding(cfg, default_args=None):
+ """Builder for Position Encoding."""
+ return MODELS.build(cfg, default_args=default_args)
+
+
+def build_attention(cfg, default_args=None):
+ """Builder for attention."""
+ return MODELS.build(cfg, default_args=default_args)
+
+
+def build_feedforward_network(cfg, default_args=None):
+ """Builder for feed-forward network (FFN)."""
+ return MODELS.build(cfg, default_args=default_args)
+
+
+def build_transformer_layer(cfg, default_args=None):
+ """Builder for transformer layer."""
+ return MODELS.build(cfg, default_args=default_args)
+
+
+def build_transformer_layer_sequence(cfg, default_args=None):
+ """Builder for transformer encoder and transformer decoder."""
+ return MODELS.build(cfg, default_args=default_args)
+
+
+class AdaptivePadding(nn.Module):
+ """Applies padding adaptively to the input.
+
+ This module can make input get fully covered by filter
+ you specified. It support two modes "same" and "corner". The
+ "same" mode is same with "SAME" padding mode in TensorFlow, pad
+ zero around input. The "corner" mode would pad zero
+ to bottom right.
+
+ Args:
+ kernel_size (int | tuple): Size of the kernel. Default: 1.
+ stride (int | tuple): Stride of the filter. Default: 1.
+ dilation (int | tuple): Spacing between kernel elements.
+ Default: 1.
+ padding (str): Support "same" and "corner", "corner" mode
+ would pad zero to bottom right, and "same" mode would
+ pad zero around input. Default: "corner".
+
+ Example:
+ >>> kernel_size = 16
+ >>> stride = 16
+ >>> dilation = 1
+ >>> input = torch.rand(1, 1, 15, 17)
+ >>> adap_pad = AdaptivePadding(
+ >>> kernel_size=kernel_size,
+ >>> stride=stride,
+ >>> dilation=dilation,
+ >>> padding="corner")
+ >>> out = adap_pad(input)
+ >>> assert (out.shape[2], out.shape[3]) == (16, 32)
+ >>> input = torch.rand(1, 1, 16, 17)
+ >>> out = adap_pad(input)
+ >>> assert (out.shape[2], out.shape[3]) == (16, 32)
+ """
+
+ def __init__(self, kernel_size=1, stride=1, dilation=1, padding='corner'):
+ super().__init__()
+ assert padding in ('same', 'corner')
+
+ kernel_size = to_2tuple(kernel_size)
+ stride = to_2tuple(stride)
+ dilation = to_2tuple(dilation)
+
+ self.padding = padding
+ self.kernel_size = kernel_size
+ self.stride = stride
+ self.dilation = dilation
+
+ def get_pad_shape(self, input_shape):
+ """Calculate the padding size of input.
+
+ Args:
+ input_shape (:obj:`torch.Size`): arrange as (H, W).
+
+ Returns:
+ Tuple[int]: The padding size along the
+ original H and W directions
+ """
+ input_h, input_w = input_shape
+ kernel_h, kernel_w = self.kernel_size
+ stride_h, stride_w = self.stride
+ output_h = math.ceil(input_h / stride_h)
+ output_w = math.ceil(input_w / stride_w)
+ pad_h = max((output_h - 1) * stride_h +
+ (kernel_h - 1) * self.dilation[0] + 1 - input_h, 0)
+ pad_w = max((output_w - 1) * stride_w +
+ (kernel_w - 1) * self.dilation[1] + 1 - input_w, 0)
+ return pad_h, pad_w
+
+ def forward(self, x):
+ """Add padding to `x`
+
+ Args:
+ x (Tensor): Input tensor has shape (B, C, H, W).
+
+ Returns:
+ Tensor: The tensor with adaptive padding
+ """
+ pad_h, pad_w = self.get_pad_shape(x.size()[-2:])
+ if pad_h > 0 or pad_w > 0:
+ if self.padding == 'corner':
+ x = F.pad(x, [0, pad_w, 0, pad_h])
+ elif self.padding == 'same':
+ x = F.pad(x, [
+ pad_w // 2, pad_w - pad_w // 2, pad_h // 2,
+ pad_h - pad_h // 2
+ ])
+ return x
+
+
+class PatchEmbed(BaseModule):
+ """Image to Patch Embedding.
+
+ We use a conv layer to implement PatchEmbed.
+
+ Args:
+ in_channels (int): The num of input channels. Default: 3
+ embed_dims (int): The dimensions of embedding. Default: 768
+ conv_type (str): The type of convolution
+ to generate patch embedding. Default: "Conv2d".
+ kernel_size (int): The kernel_size of embedding conv. Default: 16.
+ stride (int): The slide stride of embedding conv.
+ Default: 16.
+ padding (int | tuple | string): The padding length of
+ embedding conv. When it is a string, it means the mode
+ of adaptive padding, support "same" and "corner" now.
+ Default: "corner".
+ dilation (int): The dilation rate of embedding conv. Default: 1.
+ bias (bool): Bias of embed conv. Default: True.
+ norm_cfg (dict, optional): Config dict for normalization layer.
+ Default: None.
+ input_size (int | tuple | None): The size of input, which will be
+ used to calculate the out size. Only works when `dynamic_size`
+ is False. Default: None.
+ init_cfg (`mmcv.ConfigDict`, optional): The Config for initialization.
+ Default: None.
+ """
+
+ def __init__(self,
+ in_channels=3,
+ embed_dims=768,
+ conv_type='Conv2d',
+ kernel_size=16,
+ stride=16,
+ padding='corner',
+ dilation=1,
+ bias=True,
+ norm_cfg=None,
+ input_size=None,
+ init_cfg=None):
+ super().__init__(init_cfg=init_cfg)
+
+ self.embed_dims = embed_dims
+ if stride is None:
+ stride = kernel_size
+
+ kernel_size = to_2tuple(kernel_size)
+ stride = to_2tuple(stride)
+ dilation = to_2tuple(dilation)
+
+ if isinstance(padding, str):
+ self.adaptive_padding = AdaptivePadding(
+ kernel_size=kernel_size,
+ stride=stride,
+ dilation=dilation,
+ padding=padding)
+ # disable the padding of conv
+ padding = 0
+ else:
+ self.adaptive_padding = None
+ padding = to_2tuple(padding)
+
+ self.projection = build_conv_layer(
+ dict(type=conv_type),
+ in_channels=in_channels,
+ out_channels=embed_dims,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ dilation=dilation,
+ bias=bias)
+
+ if norm_cfg is not None:
+ self.norm = build_norm_layer(norm_cfg, embed_dims)[1]
+ else:
+ self.norm = None
+
+ if input_size:
+ input_size = to_2tuple(input_size)
+ # `init_out_size` would be used outside to
+ # calculate the num_patches
+ # e.g. when `use_abs_pos_embed` outside
+ self.init_input_size = input_size
+ if self.adaptive_padding:
+ pad_h, pad_w = self.adaptive_padding.get_pad_shape(input_size)
+ input_h, input_w = input_size
+ input_h = input_h + pad_h
+ input_w = input_w + pad_w
+ input_size = (input_h, input_w)
+
+ # https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html
+ h_out = (input_size[0] + 2 * padding[0] - dilation[0] *
+ (kernel_size[0] - 1) - 1) // stride[0] + 1
+ w_out = (input_size[1] + 2 * padding[1] - dilation[1] *
+ (kernel_size[1] - 1) - 1) // stride[1] + 1
+ self.init_out_size = (h_out, w_out)
+ else:
+ self.init_input_size = None
+ self.init_out_size = None
+
+ def forward(self, x):
+ """
+ Args:
+ x (Tensor): Has shape (B, C, H, W). In most case, C is 3.
+
+ Returns:
+ tuple: Contains merged results and its spatial shape.
+
+ - x (Tensor): Has shape (B, out_h * out_w, embed_dims)
+ - out_size (tuple[int]): Spatial shape of x, arrange as
+ (out_h, out_w).
+ """
+
+ if self.adaptive_padding:
+ x = self.adaptive_padding(x)
+
+ x = self.projection(x)
+ out_size = (x.shape[2], x.shape[3])
+ x = x.flatten(2).transpose(1, 2)
+ if self.norm is not None:
+ x = self.norm(x)
+ return x, out_size
+
+
+class PatchMerging(BaseModule):
+ """Merge patch feature map.
+
+ This layer groups feature map by kernel_size, and applies norm and linear
+ layers to the grouped feature map ((used in Swin Transformer)).
+ Our implementation uses `nn.Unfold` to
+ merge patches, which is about 25% faster than the original
+ implementation. However, we need to modify pretrained
+ models for compatibility.
+
+ Args:
+ in_channels (int): The num of input channels.
+ to gets fully covered by filter and stride you specified.
+ out_channels (int): The num of output channels.
+ kernel_size (int | tuple, optional): the kernel size in the unfold
+ layer. Defaults to 2.
+ stride (int | tuple, optional): the stride of the sliding blocks in the
+ unfold layer. Default: None. (Would be set as `kernel_size`)
+ padding (int | tuple | string ): The padding length of
+ embedding conv. When it is a string, it means the mode
+ of adaptive padding, support "same" and "corner" now.
+ Default: "corner".
+ dilation (int | tuple, optional): dilation parameter in the unfold
+ layer. Default: 1.
+ bias (bool, optional): Whether to add bias in linear layer or not.
+ Defaults: False.
+ norm_cfg (dict, optional): Config dict for normalization layer.
+ Default: dict(type='LN').
+ init_cfg (dict, optional): The extra config for initialization.
+ Default: None.
+ """
+
+ def __init__(self,
+ in_channels,
+ out_channels,
+ kernel_size=2,
+ stride=None,
+ padding='corner',
+ dilation=1,
+ bias=False,
+ norm_cfg=dict(type='LN'),
+ init_cfg=None):
+ super().__init__(init_cfg=init_cfg)
+ self.in_channels = in_channels
+ self.out_channels = out_channels
+ if stride:
+ stride = stride
+ else:
+ stride = kernel_size
+
+ kernel_size = to_2tuple(kernel_size)
+ stride = to_2tuple(stride)
+ dilation = to_2tuple(dilation)
+
+ if isinstance(padding, str):
+ self.adaptive_padding = AdaptivePadding(
+ kernel_size=kernel_size,
+ stride=stride,
+ dilation=dilation,
+ padding=padding)
+ # disable the padding of unfold
+ padding = 0
+ else:
+ self.adaptive_padding = None
+
+ padding = to_2tuple(padding)
+ self.sampler = nn.Unfold(
+ kernel_size=kernel_size,
+ dilation=dilation,
+ padding=padding,
+ stride=stride)
+
+ sample_dim = kernel_size[0] * kernel_size[1] * in_channels
+
+ if norm_cfg is not None:
+ self.norm = build_norm_layer(norm_cfg, sample_dim)[1]
+ else:
+ self.norm = None
+
+ self.reduction = nn.Linear(sample_dim, out_channels, bias=bias)
+
+ def forward(self, x, input_size):
+ """
+ Args:
+ x (Tensor): Has shape (B, H*W, C_in).
+ input_size (tuple[int]): The spatial shape of x, arrange as (H, W).
+ Default: None.
+
+ Returns:
+ tuple: Contains merged results and its spatial shape.
+
+ - x (Tensor): Has shape (B, Merged_H * Merged_W, C_out)
+ - out_size (tuple[int]): Spatial shape of x, arrange as
+ (Merged_H, Merged_W).
+ """
+ B, L, C = x.shape
+ assert isinstance(input_size, Sequence), f'Expect ' \
+ f'input_size is ' \
+ f'`Sequence` ' \
+ f'but get {input_size}'
+
+ H, W = input_size
+ assert L == H * W, 'input feature has wrong size'
+
+ x = x.view(B, H, W, C).permute([0, 3, 1, 2]) # B, C, H, W
+
+ if self.adaptive_padding:
+ x = self.adaptive_padding(x)
+ H, W = x.shape[-2:]
+
+ # Use nn.Unfold to merge patch. About 25% faster than original method,
+ # but need to modify pretrained model for compatibility
+ # if kernel_size=2 and stride=2, x should has shape (B, 4*C, H/2*W/2)
+ x = self.sampler(x)
+
+ out_h = (H + 2 * self.sampler.padding[0] - self.sampler.dilation[0] *
+ (self.sampler.kernel_size[0] - 1) -
+ 1) // self.sampler.stride[0] + 1
+ out_w = (W + 2 * self.sampler.padding[1] - self.sampler.dilation[1] *
+ (self.sampler.kernel_size[1] - 1) -
+ 1) // self.sampler.stride[1] + 1
+
+ output_size = (out_h, out_w)
+ x = x.transpose(1, 2) # B, H/2*W/2, 4*C
+ x = self.norm(x) if self.norm else x
+ x = self.reduction(x)
+ return x, output_size
+
+
+@MODELS.register_module()
+class MultiheadAttention(BaseModule):
+ """A wrapper for ``torch.nn.MultiheadAttention``.
+
+ This module implements MultiheadAttention with identity connection,
+ and positional encoding is also passed as input.
+
+ Args:
+ embed_dims (int): The embedding dimension.
+ num_heads (int): Parallel attention heads.
+ attn_drop (float): A Dropout layer on attn_output_weights.
+ Default: 0.0.
+ proj_drop (float): A Dropout layer after `nn.MultiheadAttention`.
+ Default: 0.0.
+ dropout_layer (obj:`ConfigDict`): The dropout_layer used
+ when adding the shortcut.
+ init_cfg (obj:`mmcv.ConfigDict`): The Config for initialization.
+ Default: None.
+ batch_first (bool): When it is True, Key, Query and Value are shape of
+ (batch, n, embed_dim), otherwise (n, batch, embed_dim).
+ Default to False.
+ """
+
+ def __init__(self,
+ embed_dims,
+ num_heads,
+ attn_drop=0.,
+ proj_drop=0.,
+ dropout_layer=dict(type='Dropout', drop_prob=0.),
+ init_cfg=None,
+ batch_first=False,
+ **kwargs):
+ super().__init__(init_cfg)
+ if 'dropout' in kwargs:
+ warnings.warn(
+ 'The arguments `dropout` in MultiheadAttention '
+ 'has been deprecated, now you can separately '
+ 'set `attn_drop`(float), proj_drop(float), '
+ 'and `dropout_layer`(dict) ', DeprecationWarning)
+ attn_drop = kwargs['dropout']
+ dropout_layer['drop_prob'] = kwargs.pop('dropout')
+
+ self.embed_dims = embed_dims
+ self.num_heads = num_heads
+ self.batch_first = batch_first
+
+ self.attn = nn.MultiheadAttention(embed_dims, num_heads, attn_drop,
+ **kwargs)
+
+ self.proj_drop = nn.Dropout(proj_drop)
+ self.dropout_layer = build_dropout(
+ dropout_layer) if dropout_layer else nn.Identity()
+
+ @deprecated_api_warning({'residual': 'identity'},
+ cls_name='MultiheadAttention')
+ def forward(self,
+ query,
+ key=None,
+ value=None,
+ identity=None,
+ query_pos=None,
+ key_pos=None,
+ attn_mask=None,
+ key_padding_mask=None,
+ **kwargs):
+ """Forward function for `MultiheadAttention`.
+
+ **kwargs allow passing a more general data flow when combining
+ with other operations in `transformerlayer`.
+
+ Args:
+ query (Tensor): The input query with shape [num_queries, bs,
+ embed_dims] if self.batch_first is False, else
+ [bs, num_queries embed_dims].
+ key (Tensor): The key tensor with shape [num_keys, bs,
+ embed_dims] if self.batch_first is False, else
+ [bs, num_keys, embed_dims] .
+ If None, the ``query`` will be used. Defaults to None.
+ value (Tensor): The value tensor with same shape as `key`.
+ Same in `nn.MultiheadAttention.forward`. Defaults to None.
+ If None, the `key` will be used.
+ identity (Tensor): This tensor, with the same shape as x,
+ will be used for the identity link.
+ If None, `x` will be used. Defaults to None.
+ query_pos (Tensor): The positional encoding for query, with
+ the same shape as `x`. If not None, it will
+ be added to `x` before forward function. Defaults to None.
+ key_pos (Tensor): The positional encoding for `key`, with the
+ same shape as `key`. Defaults to None. If not None, it will
+ be added to `key` before forward function. If None, and
+ `query_pos` has the same shape as `key`, then `query_pos`
+ will be used for `key_pos`. Defaults to None.
+ attn_mask (Tensor): ByteTensor mask with shape [num_queries,
+ num_keys]. Same in `nn.MultiheadAttention.forward`.
+ Defaults to None.
+ key_padding_mask (Tensor): ByteTensor with shape [bs, num_keys].
+ Defaults to None.
+
+ Returns:
+ Tensor: forwarded results with shape
+ [num_queries, bs, embed_dims]
+ if self.batch_first is False, else
+ [bs, num_queries embed_dims].
+ """
+
+ if key is None:
+ key = query
+ if value is None:
+ value = key
+ if identity is None:
+ identity = query
+ if key_pos is None:
+ if query_pos is not None:
+ # use query_pos if key_pos is not available
+ if query_pos.shape == key.shape:
+ key_pos = query_pos
+ else:
+ warnings.warn(f'position encoding of key is'
+ f'missing in {self.__class__.__name__}.')
+ if query_pos is not None:
+ query = query + query_pos
+ if key_pos is not None:
+ key = key + key_pos
+
+ # Because the dataflow('key', 'query', 'value') of
+ # ``torch.nn.MultiheadAttention`` is (num_query, batch,
+ # embed_dims), We should adjust the shape of dataflow from
+ # batch_first (batch, num_query, embed_dims) to num_query_first
+ # (num_query ,batch, embed_dims), and recover ``attn_output``
+ # from num_query_first to batch_first.
+ if self.batch_first:
+ query = query.transpose(0, 1)
+ key = key.transpose(0, 1)
+ value = value.transpose(0, 1)
+
+ out = self.attn(
+ query=query,
+ key=key,
+ value=value,
+ attn_mask=attn_mask,
+ key_padding_mask=key_padding_mask)[0]
+
+ if self.batch_first:
+ out = out.transpose(0, 1)
+
+ return identity + self.dropout_layer(self.proj_drop(out))
+
+
+@MODELS.register_module()
+class FFN(BaseModule):
+ """Implements feed-forward networks (FFNs) with identity connection.
+
+ Args:
+ embed_dims (int): The feature dimension. Same as
+ `MultiheadAttention`. Defaults: 256.
+ feedforward_channels (int): The hidden dimension of FFNs.
+ Defaults: 1024.
+ num_fcs (int, optional): The number of fully-connected layers in
+ FFNs. Default: 2.
+ act_cfg (dict, optional): The activation config for FFNs.
+ Default: dict(type='ReLU')
+ ffn_drop (float, optional): Probability of an element to be
+ zeroed in FFN. Default 0.0.
+ add_identity (bool, optional): Whether to add the
+ identity connection. Default: `True`.
+ dropout_layer (obj:`ConfigDict`): The dropout_layer used
+ when adding the shortcut.
+ init_cfg (obj:`mmcv.ConfigDict`): The Config for initialization.
+ Default: None.
+ layer_scale_init_value (float): Initial value of scale factor in
+ LayerScale. Default: 1.0
+ """
+
+ @deprecated_api_warning(
+ {
+ 'dropout': 'ffn_drop',
+ 'add_residual': 'add_identity'
+ },
+ cls_name='FFN')
+ def __init__(self,
+ embed_dims=256,
+ feedforward_channels=1024,
+ num_fcs=2,
+ act_cfg=dict(type='ReLU', inplace=True),
+ ffn_drop=0.,
+ dropout_layer=None,
+ add_identity=True,
+ init_cfg=None,
+ layer_scale_init_value=0.):
+ super().__init__(init_cfg)
+ assert num_fcs >= 2, 'num_fcs should be no less ' \
+ f'than 2. got {num_fcs}.'
+ self.embed_dims = embed_dims
+ self.feedforward_channels = feedforward_channels
+ self.num_fcs = num_fcs
+
+ layers = []
+ in_channels = embed_dims
+ for _ in range(num_fcs - 1):
+ layers.append(
+ Sequential(
+ Linear(in_channels, feedforward_channels),
+ build_activation_layer(act_cfg), nn.Dropout(ffn_drop)))
+ in_channels = feedforward_channels
+ layers.append(Linear(feedforward_channels, embed_dims))
+ layers.append(nn.Dropout(ffn_drop))
+ self.layers = Sequential(*layers)
+ self.dropout_layer = build_dropout(
+ dropout_layer) if dropout_layer else torch.nn.Identity()
+ self.add_identity = add_identity
+
+ if layer_scale_init_value > 0:
+ self.gamma2 = LayerScale(embed_dims, scale=layer_scale_init_value)
+ else:
+ self.gamma2 = nn.Identity()
+
+ @deprecated_api_warning({'residual': 'identity'}, cls_name='FFN')
+ def forward(self, x, identity=None):
+ """Forward function for `FFN`.
+
+ The function would add x to the output tensor if residue is None.
+ """
+ out = self.layers(x)
+ out = self.gamma2(out)
+ if not self.add_identity:
+ return self.dropout_layer(out)
+ if identity is None:
+ identity = x
+ return identity + self.dropout_layer(out)
+
+
+@MODELS.register_module()
+class BaseTransformerLayer(BaseModule):
+ """Base `TransformerLayer` for vision transformer.
+
+ It can be built from `mmcv.ConfigDict` and support more flexible
+ customization, for example, using any number of `FFN or LN ` and
+ use different kinds of `attention` by specifying a list of `ConfigDict`
+ named `attn_cfgs`. It is worth mentioning that it supports `prenorm`
+ when you specifying `norm` as the first element of `operation_order`.
+ More details about the `prenorm`: `On Layer Normalization in the
+ Transformer Architecture `_ .
+
+ Args:
+ attn_cfgs (list[`mmcv.ConfigDict`] | obj:`mmcv.ConfigDict` | None )):
+ Configs for `self_attention` or `cross_attention` modules,
+ The order of the configs in the list should be consistent with
+ corresponding attentions in operation_order.
+ If it is a dict, all of the attention modules in operation_order
+ will be built with this config. Default: None.
+ ffn_cfgs (list[`mmcv.ConfigDict`] | obj:`mmcv.ConfigDict` | None )):
+ Configs for FFN, The order of the configs in the list should be
+ consistent with corresponding ffn in operation_order.
+ If it is a dict, all of the attention modules in operation_order
+ will be built with this config.
+ operation_order (tuple[str]): The execution order of operation
+ in transformer. Such as ('self_attn', 'norm', 'ffn', 'norm').
+ Support `prenorm` when you specifying first element as `norm`.
+ Default:None.
+ norm_cfg (dict): Config dict for normalization layer.
+ Default: dict(type='LN').
+ init_cfg (obj:`mmcv.ConfigDict`): The Config for initialization.
+ Default: None.
+ batch_first (bool): Key, Query and Value are shape
+ of (batch, n, embed_dim)
+ or (n, batch, embed_dim). Default to False.
+ """
+
+ def __init__(self,
+ attn_cfgs=None,
+ ffn_cfgs=dict(
+ type='FFN',
+ embed_dims=256,
+ feedforward_channels=1024,
+ num_fcs=2,
+ ffn_drop=0.,
+ act_cfg=dict(type='ReLU', inplace=True),
+ ),
+ operation_order=None,
+ norm_cfg=dict(type='LN'),
+ init_cfg=None,
+ batch_first=False,
+ **kwargs):
+
+ deprecated_args = dict(
+ feedforward_channels='feedforward_channels',
+ ffn_dropout='ffn_drop',
+ ffn_num_fcs='num_fcs')
+ for ori_name, new_name in deprecated_args.items():
+ if ori_name in kwargs:
+ warnings.warn(
+ f'The arguments `{ori_name}` in BaseTransformerLayer '
+ f'has been deprecated, now you should set `{new_name}` '
+ f'and other FFN related arguments '
+ f'to a dict named `ffn_cfgs`. ', DeprecationWarning)
+ ffn_cfgs[new_name] = kwargs[ori_name]
+
+ super().__init__(init_cfg)
+
+ self.batch_first = batch_first
+
+ assert set(operation_order) & {
+ 'self_attn', 'norm', 'ffn', 'cross_attn'} == \
+ set(operation_order), f'The operation_order of' \
+ f' {self.__class__.__name__} should ' \
+ f'contains all four operation type ' \
+ f"{['self_attn', 'norm', 'ffn', 'cross_attn']}"
+
+ num_attn = operation_order.count('self_attn') + operation_order.count(
+ 'cross_attn')
+ if isinstance(attn_cfgs, dict):
+ attn_cfgs = [copy.deepcopy(attn_cfgs) for _ in range(num_attn)]
+ else:
+ assert num_attn == len(attn_cfgs), f'The length ' \
+ f'of attn_cfg {num_attn} is ' \
+ f'not consistent with the number of attention' \
+ f'in operation_order {operation_order}.'
+
+ self.num_attn = num_attn
+ self.operation_order = operation_order
+ self.norm_cfg = norm_cfg
+ self.pre_norm = operation_order[0] == 'norm'
+ self.attentions = ModuleList()
+
+ index = 0
+ for operation_name in operation_order:
+ if operation_name in ['self_attn', 'cross_attn']:
+ if 'batch_first' in attn_cfgs[index]:
+ assert self.batch_first == attn_cfgs[index]['batch_first']
+ else:
+ attn_cfgs[index]['batch_first'] = self.batch_first
+ attention = build_attention(attn_cfgs[index])
+ # Some custom attentions used as `self_attn`
+ # or `cross_attn` can have different behavior.
+ attention.operation_name = operation_name
+ self.attentions.append(attention)
+ index += 1
+
+ self.embed_dims = self.attentions[0].embed_dims
+
+ self.ffns = ModuleList()
+ num_ffns = operation_order.count('ffn')
+ if isinstance(ffn_cfgs, dict):
+ ffn_cfgs = ConfigDict(ffn_cfgs)
+ if isinstance(ffn_cfgs, dict):
+ ffn_cfgs = [copy.deepcopy(ffn_cfgs) for _ in range(num_ffns)]
+ assert len(ffn_cfgs) == num_ffns
+ for ffn_index in range(num_ffns):
+ if 'embed_dims' not in ffn_cfgs[ffn_index]:
+ ffn_cfgs[ffn_index]['embed_dims'] = self.embed_dims
+ else:
+ assert ffn_cfgs[ffn_index]['embed_dims'] == self.embed_dims
+ self.ffns.append(
+ build_feedforward_network(ffn_cfgs[ffn_index],
+ dict(type='FFN')))
+
+ self.norms = ModuleList()
+ num_norms = operation_order.count('norm')
+ for _ in range(num_norms):
+ self.norms.append(build_norm_layer(norm_cfg, self.embed_dims)[1])
+
+ def forward(self,
+ query,
+ key=None,
+ value=None,
+ query_pos=None,
+ key_pos=None,
+ attn_masks=None,
+ query_key_padding_mask=None,
+ key_padding_mask=None,
+ **kwargs):
+ """Forward function for `TransformerDecoderLayer`.
+
+ **kwargs contains some specific arguments of attentions.
+
+ Args:
+ query (Tensor): The input query with shape
+ [num_queries, bs, embed_dims] if
+ self.batch_first is False, else
+ [bs, num_queries embed_dims].
+ key (Tensor): The key tensor with shape [num_keys, bs,
+ embed_dims] if self.batch_first is False, else
+ [bs, num_keys, embed_dims] .
+ value (Tensor): The value tensor with same shape as `key`.
+ query_pos (Tensor): The positional encoding for `query`.
+ Default: None.
+ key_pos (Tensor): The positional encoding for `key`.
+ Default: None.
+ attn_masks (List[Tensor] | None): 2D Tensor used in
+ calculation of corresponding attention. The length of
+ it should equal to the number of `attention` in
+ `operation_order`. Default: None.
+ query_key_padding_mask (Tensor): ByteTensor for `query`, with
+ shape [bs, num_queries]. Only used in `self_attn` layer.
+ Defaults to None.
+ key_padding_mask (Tensor): ByteTensor for `query`, with
+ shape [bs, num_keys]. Default: None.
+
+ Returns:
+ Tensor: forwarded results with shape [num_queries, bs, embed_dims].
+ """
+
+ norm_index = 0
+ attn_index = 0
+ ffn_index = 0
+ identity = query
+ if attn_masks is None:
+ attn_masks = [None for _ in range(self.num_attn)]
+ elif isinstance(attn_masks, torch.Tensor):
+ attn_masks = [
+ copy.deepcopy(attn_masks) for _ in range(self.num_attn)
+ ]
+ warnings.warn(f'Use same attn_mask in all attentions in '
+ f'{self.__class__.__name__} ')
+ else:
+ assert len(attn_masks) == self.num_attn, f'The length of ' \
+ f'attn_masks {len(attn_masks)} must be equal ' \
+ f'to the number of attention in ' \
+ f'operation_order {self.num_attn}'
+
+ for layer in self.operation_order:
+ if layer == 'self_attn':
+ temp_key = temp_value = query
+ query = self.attentions[attn_index](
+ query,
+ temp_key,
+ temp_value,
+ identity if self.pre_norm else None,
+ query_pos=query_pos,
+ key_pos=query_pos,
+ attn_mask=attn_masks[attn_index],
+ key_padding_mask=query_key_padding_mask,
+ **kwargs)
+ attn_index += 1
+ identity = query
+
+ elif layer == 'norm':
+ query = self.norms[norm_index](query)
+ norm_index += 1
+
+ elif layer == 'cross_attn':
+ query = self.attentions[attn_index](
+ query,
+ key,
+ value,
+ identity if self.pre_norm else None,
+ query_pos=query_pos,
+ key_pos=key_pos,
+ attn_mask=attn_masks[attn_index],
+ key_padding_mask=key_padding_mask,
+ **kwargs)
+ attn_index += 1
+ identity = query
+
+ elif layer == 'ffn':
+ query = self.ffns[ffn_index](
+ query, identity if self.pre_norm else None)
+ ffn_index += 1
+
+ return query
+
+
+@MODELS.register_module()
+class TransformerLayerSequence(BaseModule):
+ """Base class for TransformerEncoder and TransformerDecoder in vision
+ transformer.
+
+ As base-class of Encoder and Decoder in vision transformer.
+ Support customization such as specifying different kind
+ of `transformer_layer` in `transformer_coder`.
+
+ Args:
+ transformerlayer (list[obj:`mmcv.ConfigDict`] |
+ obj:`mmcv.ConfigDict`): Config of transformerlayer
+ in TransformerCoder. If it is obj:`mmcv.ConfigDict`,
+ it would be repeated `num_layer` times to a
+ list[`mmcv.ConfigDict`]. Default: None.
+ num_layers (int): The number of `TransformerLayer`. Default: None.
+ init_cfg (obj:`mmcv.ConfigDict`): The Config for initialization.
+ Default: None.
+ """
+
+ def __init__(self, transformerlayers=None, num_layers=None, init_cfg=None):
+ super().__init__(init_cfg)
+ if isinstance(transformerlayers, dict):
+ transformerlayers = [
+ copy.deepcopy(transformerlayers) for _ in range(num_layers)
+ ]
+ else:
+ assert isinstance(transformerlayers, list) and \
+ len(transformerlayers) == num_layers
+ self.num_layers = num_layers
+ self.layers = ModuleList()
+ for i in range(num_layers):
+ self.layers.append(build_transformer_layer(transformerlayers[i]))
+ self.embed_dims = self.layers[0].embed_dims
+ self.pre_norm = self.layers[0].pre_norm
+
+ def forward(self,
+ query,
+ key,
+ value,
+ query_pos=None,
+ key_pos=None,
+ attn_masks=None,
+ query_key_padding_mask=None,
+ key_padding_mask=None,
+ **kwargs):
+ """Forward function for `TransformerCoder`.
+
+ Args:
+ query (Tensor): Input query with shape
+ `(num_queries, bs, embed_dims)`.
+ key (Tensor): The key tensor with shape
+ `(num_keys, bs, embed_dims)`.
+ value (Tensor): The value tensor with shape
+ `(num_keys, bs, embed_dims)`.
+ query_pos (Tensor): The positional encoding for `query`.
+ Default: None.
+ key_pos (Tensor): The positional encoding for `key`.
+ Default: None.
+ attn_masks (List[Tensor], optional): Each element is 2D Tensor
+ which is used in calculation of corresponding attention in
+ operation_order. Default: None.
+ query_key_padding_mask (Tensor): ByteTensor for `query`, with
+ shape [bs, num_queries]. Only used in self-attention
+ Default: None.
+ key_padding_mask (Tensor): ByteTensor for `query`, with
+ shape [bs, num_keys]. Default: None.
+
+ Returns:
+ Tensor: results with shape [num_queries, bs, embed_dims].
+ """
+ for layer in self.layers:
+ query = layer(
+ query,
+ key,
+ value,
+ query_pos=query_pos,
+ key_pos=key_pos,
+ attn_masks=attn_masks,
+ query_key_padding_mask=query_key_padding_mask,
+ key_padding_mask=key_padding_mask,
+ **kwargs)
+ return query
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/upsample.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/upsample.py
new file mode 100644
index 0000000000000000000000000000000000000000..78fb5bf371712d13a72edf5d57151dca8fce6953
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/upsample.py
@@ -0,0 +1,94 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import inspect
+from typing import Dict
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.model import xavier_init
+from mmengine.registry import MODELS
+
+MODELS.register_module('nearest', module=nn.Upsample)
+MODELS.register_module('bilinear', module=nn.Upsample)
+
+
+@MODELS.register_module(name='pixel_shuffle')
+class PixelShufflePack(nn.Module):
+ """Pixel Shuffle upsample layer.
+
+ This module packs `F.pixel_shuffle()` and a nn.Conv2d module together to
+ achieve a simple upsampling with pixel shuffle.
+
+ Args:
+ in_channels (int): Number of input channels.
+ out_channels (int): Number of output channels.
+ scale_factor (int): Upsample ratio.
+ upsample_kernel (int): Kernel size of the conv layer to expand the
+ channels.
+ """
+
+ def __init__(self, in_channels: int, out_channels: int, scale_factor: int,
+ upsample_kernel: int):
+ super().__init__()
+ self.in_channels = in_channels
+ self.out_channels = out_channels
+ self.scale_factor = scale_factor
+ self.upsample_kernel = upsample_kernel
+ self.upsample_conv = nn.Conv2d(
+ self.in_channels,
+ self.out_channels * scale_factor * scale_factor,
+ self.upsample_kernel,
+ padding=(self.upsample_kernel - 1) // 2)
+ self.init_weights()
+
+ def init_weights(self):
+ xavier_init(self.upsample_conv, distribution='uniform')
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = self.upsample_conv(x)
+ x = F.pixel_shuffle(x, self.scale_factor)
+ return x
+
+
+def build_upsample_layer(cfg: Dict, *args, **kwargs) -> nn.Module:
+ """Build upsample layer.
+
+ Args:
+ cfg (dict): The upsample layer config, which should contain:
+
+ - type (str): Layer type.
+ - scale_factor (int): Upsample ratio, which is not applicable to
+ deconv.
+ - layer args: Args needed to instantiate a upsample layer.
+ args (argument list): Arguments passed to the ``__init__``
+ method of the corresponding conv layer.
+ kwargs (keyword arguments): Keyword arguments passed to the
+ ``__init__`` method of the corresponding conv layer.
+
+ Returns:
+ nn.Module: Created upsample layer.
+ """
+ if not isinstance(cfg, dict):
+ raise TypeError(f'cfg must be a dict, but got {type(cfg)}')
+ if 'type' not in cfg:
+ raise KeyError(
+ f'the cfg dict must contain the key "type", but got {cfg}')
+ cfg_ = cfg.copy()
+
+ layer_type = cfg_.pop('type')
+
+ if inspect.isclass(layer_type):
+ upsample = layer_type
+ # Switch registry to the target scope. If `upsample` cannot be found
+ # in the registry, fallback to search `upsample` in the
+ # mmengine.MODELS.
+ else:
+ with MODELS.switch_scope_and_registry(None) as registry:
+ upsample = registry.get(layer_type)
+ if upsample is None:
+ raise KeyError(f'Cannot find {upsample} in registry under scope '
+ f'name {registry.scope}')
+ if upsample is nn.Upsample:
+ cfg_['mode'] = layer_type
+ layer = upsample(*args, **kwargs, **cfg_)
+ return layer
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/wrappers.py b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/wrappers.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc98c35584430a85910ef7a776e83d1ab9cd036a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/bricks/wrappers.py
@@ -0,0 +1,177 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+r"""Modified from https://github.com/facebookresearch/detectron2/blob/master/detectron2/layers/wrappers.py # noqa: E501
+
+Wrap some nn modules to support empty tensor input. Currently, these wrappers
+are mainly used in mask heads like fcn_mask_head and maskiou_heads since mask
+heads are trained on only positive RoIs.
+"""
+import math
+
+import torch
+import torch.nn as nn
+from mmengine.registry import MODELS
+from torch.nn.modules.utils import _pair, _triple
+
+if torch.__version__ == 'parrots':
+ TORCH_VERSION = torch.__version__
+else:
+ # torch.__version__ could be 1.3.1+cu92, we only need the first two
+ # for comparison
+ TORCH_VERSION = tuple(int(x) for x in torch.__version__.split('.')[:2])
+
+
+def obsolete_torch_version(torch_version, version_threshold) -> bool:
+ return torch_version == 'parrots' or torch_version <= version_threshold
+
+
+class NewEmptyTensorOp(torch.autograd.Function):
+
+ @staticmethod
+ def forward(ctx, x: torch.Tensor, new_shape: tuple) -> torch.Tensor:
+ ctx.shape = x.shape
+ return x.new_empty(new_shape)
+
+ @staticmethod
+ def backward(ctx, grad: torch.Tensor) -> tuple:
+ shape = ctx.shape
+ return NewEmptyTensorOp.apply(grad, shape), None
+
+
+@MODELS.register_module('Conv', force=True)
+class Conv2d(nn.Conv2d):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ if obsolete_torch_version(TORCH_VERSION, (1, 4)) and x.numel() == 0:
+ out_shape = [x.shape[0], self.out_channels]
+ for i, k, p, s, d in zip(x.shape[-2:], self.kernel_size,
+ self.padding, self.stride, self.dilation):
+ o = (i + 2 * p - (d * (k - 1) + 1)) // s + 1
+ out_shape.append(o)
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ if self.training:
+ # produce dummy gradient to avoid DDP warning.
+ dummy = sum(x.view(-1)[0] for x in self.parameters()) * 0.0
+ return empty + dummy
+ else:
+ return empty
+
+ return super().forward(x)
+
+
+@MODELS.register_module('Conv3d', force=True)
+class Conv3d(nn.Conv3d):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ if obsolete_torch_version(TORCH_VERSION, (1, 4)) and x.numel() == 0:
+ out_shape = [x.shape[0], self.out_channels]
+ for i, k, p, s, d in zip(x.shape[-3:], self.kernel_size,
+ self.padding, self.stride, self.dilation):
+ o = (i + 2 * p - (d * (k - 1) + 1)) // s + 1
+ out_shape.append(o)
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ if self.training:
+ # produce dummy gradient to avoid DDP warning.
+ dummy = sum(x.view(-1)[0] for x in self.parameters()) * 0.0
+ return empty + dummy
+ else:
+ return empty
+
+ return super().forward(x)
+
+
+@MODELS.register_module()
+@MODELS.register_module('deconv')
+class ConvTranspose2d(nn.ConvTranspose2d):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ if obsolete_torch_version(TORCH_VERSION, (1, 4)) and x.numel() == 0:
+ out_shape = [x.shape[0], self.out_channels]
+ for i, k, p, s, d, op in zip(x.shape[-2:], self.kernel_size,
+ self.padding, self.stride,
+ self.dilation, self.output_padding):
+ out_shape.append((i - 1) * s - 2 * p + (d * (k - 1) + 1) + op)
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ if self.training:
+ # produce dummy gradient to avoid DDP warning.
+ dummy = sum(x.view(-1)[0] for x in self.parameters()) * 0.0
+ return empty + dummy
+ else:
+ return empty
+
+ return super().forward(x)
+
+
+@MODELS.register_module()
+@MODELS.register_module('deconv3d')
+class ConvTranspose3d(nn.ConvTranspose3d):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ if obsolete_torch_version(TORCH_VERSION, (1, 4)) and x.numel() == 0:
+ out_shape = [x.shape[0], self.out_channels]
+ for i, k, p, s, d, op in zip(x.shape[-3:], self.kernel_size,
+ self.padding, self.stride,
+ self.dilation, self.output_padding):
+ out_shape.append((i - 1) * s - 2 * p + (d * (k - 1) + 1) + op)
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ if self.training:
+ # produce dummy gradient to avoid DDP warning.
+ dummy = sum(x.view(-1)[0] for x in self.parameters()) * 0.0
+ return empty + dummy
+ else:
+ return empty
+
+ return super().forward(x)
+
+
+class MaxPool2d(nn.MaxPool2d):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ # PyTorch 1.9 does not support empty tensor inference yet
+ if obsolete_torch_version(TORCH_VERSION, (1, 9)) and x.numel() == 0:
+ out_shape = list(x.shape[:2])
+ for i, k, p, s, d in zip(x.shape[-2:], _pair(self.kernel_size),
+ _pair(self.padding), _pair(self.stride),
+ _pair(self.dilation)):
+ o = (i + 2 * p - (d * (k - 1) + 1)) / s + 1
+ o = math.ceil(o) if self.ceil_mode else math.floor(o)
+ out_shape.append(o)
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ return empty
+
+ return super().forward(x)
+
+
+class MaxPool3d(nn.MaxPool3d):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ # PyTorch 1.9 does not support empty tensor inference yet
+ if obsolete_torch_version(TORCH_VERSION, (1, 9)) and x.numel() == 0:
+ out_shape = list(x.shape[:2])
+ for i, k, p, s, d in zip(x.shape[-3:], _triple(self.kernel_size),
+ _triple(self.padding),
+ _triple(self.stride),
+ _triple(self.dilation)):
+ o = (i + 2 * p - (d * (k - 1) + 1)) / s + 1
+ o = math.ceil(o) if self.ceil_mode else math.floor(o)
+ out_shape.append(o)
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ return empty
+
+ return super().forward(x)
+
+
+class Linear(torch.nn.Linear):
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ # empty tensor forward of Linear layer is supported in Pytorch 1.6
+ if obsolete_torch_version(TORCH_VERSION, (1, 5)) and x.numel() == 0:
+ out_shape = [x.shape[0], self.out_features]
+ empty = NewEmptyTensorOp.apply(x, out_shape)
+ if self.training:
+ # produce dummy gradient to avoid DDP warning.
+ dummy = sum(x.view(-1)[0] for x in self.parameters()) * 0.0
+ return empty + dummy
+ else:
+ return empty
+
+ return super().forward(x)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/resnet.py b/FoodSeg103/demo/mmcv/mmcv/cnn/resnet.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fc6abf6ac60b982a8c7998e0545bc55f9ceee78
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/resnet.py
@@ -0,0 +1,321 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import logging
+from typing import Optional, Sequence, Tuple, Union
+
+import torch.nn as nn
+import torch.utils.checkpoint as cp
+from mmengine.model import constant_init, kaiming_init
+from mmengine.runner import load_checkpoint
+from torch import Tensor
+
+
+def conv3x3(in_planes: int,
+ out_planes: int,
+ stride: int = 1,
+ dilation: int = 1):
+ """3x3 convolution with padding."""
+ return nn.Conv2d(
+ in_planes,
+ out_planes,
+ kernel_size=3,
+ stride=stride,
+ padding=dilation,
+ dilation=dilation,
+ bias=False)
+
+
+class BasicBlock(nn.Module):
+ expansion = 1
+
+ def __init__(self,
+ inplanes: int,
+ planes: int,
+ stride: int = 1,
+ dilation: int = 1,
+ downsample: Optional[nn.Module] = None,
+ style: str = 'pytorch',
+ with_cp: bool = False):
+ super().__init__()
+ assert style in ['pytorch', 'caffe']
+ self.conv1 = conv3x3(inplanes, planes, stride, dilation)
+ self.bn1 = nn.BatchNorm2d(planes)
+ self.relu = nn.ReLU(inplace=True)
+ self.conv2 = conv3x3(planes, planes)
+ self.bn2 = nn.BatchNorm2d(planes)
+ self.downsample = downsample
+ self.stride = stride
+ self.dilation = dilation
+ assert not with_cp
+
+ def forward(self, x: Tensor) -> Tensor:
+ residual = x
+
+ out = self.conv1(x)
+ out = self.bn1(out)
+ out = self.relu(out)
+
+ out = self.conv2(out)
+ out = self.bn2(out)
+
+ if self.downsample is not None:
+ residual = self.downsample(x)
+
+ out += residual
+ out = self.relu(out)
+
+ return out
+
+
+class Bottleneck(nn.Module):
+ expansion = 4
+
+ def __init__(self,
+ inplanes: int,
+ planes: int,
+ stride: int = 1,
+ dilation: int = 1,
+ downsample: Optional[nn.Module] = None,
+ style: str = 'pytorch',
+ with_cp: bool = False):
+ """Bottleneck block.
+
+ If style is "pytorch", the stride-two layer is the 3x3 conv layer, if
+ it is "caffe", the stride-two layer is the first 1x1 conv layer.
+ """
+ super().__init__()
+ assert style in ['pytorch', 'caffe']
+ if style == 'pytorch':
+ conv1_stride = 1
+ conv2_stride = stride
+ else:
+ conv1_stride = stride
+ conv2_stride = 1
+ self.conv1 = nn.Conv2d(
+ inplanes, planes, kernel_size=1, stride=conv1_stride, bias=False)
+ self.conv2 = nn.Conv2d(
+ planes,
+ planes,
+ kernel_size=3,
+ stride=conv2_stride,
+ padding=dilation,
+ dilation=dilation,
+ bias=False)
+
+ self.bn1 = nn.BatchNorm2d(planes)
+ self.bn2 = nn.BatchNorm2d(planes)
+ self.conv3 = nn.Conv2d(
+ planes, planes * self.expansion, kernel_size=1, bias=False)
+ self.bn3 = nn.BatchNorm2d(planes * self.expansion)
+ self.relu = nn.ReLU(inplace=True)
+ self.downsample = downsample
+ self.stride = stride
+ self.dilation = dilation
+ self.with_cp = with_cp
+
+ def forward(self, x: Tensor) -> Tensor:
+
+ def _inner_forward(x):
+ residual = x
+
+ out = self.conv1(x)
+ out = self.bn1(out)
+ out = self.relu(out)
+
+ out = self.conv2(out)
+ out = self.bn2(out)
+ out = self.relu(out)
+
+ out = self.conv3(out)
+ out = self.bn3(out)
+
+ if self.downsample is not None:
+ residual = self.downsample(x)
+
+ out += residual
+
+ return out
+
+ if self.with_cp and x.requires_grad:
+ out = cp.checkpoint(_inner_forward, x)
+ else:
+ out = _inner_forward(x)
+
+ out = self.relu(out)
+
+ return out
+
+
+def make_res_layer(block: nn.Module,
+ inplanes: int,
+ planes: int,
+ blocks: int,
+ stride: int = 1,
+ dilation: int = 1,
+ style: str = 'pytorch',
+ with_cp: bool = False) -> nn.Module:
+ downsample = None
+ if stride != 1 or inplanes != planes * block.expansion:
+ downsample = nn.Sequential(
+ nn.Conv2d(
+ inplanes,
+ planes * block.expansion,
+ kernel_size=1,
+ stride=stride,
+ bias=False),
+ nn.BatchNorm2d(planes * block.expansion),
+ )
+
+ layers = []
+ layers.append(
+ block(
+ inplanes,
+ planes,
+ stride,
+ dilation,
+ downsample,
+ style=style,
+ with_cp=with_cp))
+ inplanes = planes * block.expansion
+ for _ in range(1, blocks):
+ layers.append(
+ block(inplanes, planes, 1, dilation, style=style, with_cp=with_cp))
+
+ return nn.Sequential(*layers)
+
+
+class ResNet(nn.Module):
+ """ResNet backbone.
+
+ Args:
+ depth (int): Depth of resnet, from {18, 34, 50, 101, 152}.
+ num_stages (int): Resnet stages, normally 4.
+ strides (Sequence[int]): Strides of the first block of each stage.
+ dilations (Sequence[int]): Dilation of each stage.
+ out_indices (Sequence[int]): Output from which stages.
+ style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two
+ layer is the 3x3 conv layer, otherwise the stride-two layer is
+ the first 1x1 conv layer.
+ frozen_stages (int): Stages to be frozen (all param fixed). -1 means
+ not freezing any parameters.
+ bn_eval (bool): Whether to set BN layers as eval mode, namely, freeze
+ running stats (mean and var).
+ bn_frozen (bool): Whether to freeze weight and bias of BN layers.
+ with_cp (bool): Use checkpoint or not. Using checkpoint will save some
+ memory while slowing down the training speed.
+ """
+
+ arch_settings = {
+ 18: (BasicBlock, (2, 2, 2, 2)),
+ 34: (BasicBlock, (3, 4, 6, 3)),
+ 50: (Bottleneck, (3, 4, 6, 3)),
+ 101: (Bottleneck, (3, 4, 23, 3)),
+ 152: (Bottleneck, (3, 8, 36, 3))
+ }
+
+ def __init__(self,
+ depth: int,
+ num_stages: int = 4,
+ strides: Sequence[int] = (1, 2, 2, 2),
+ dilations: Sequence[int] = (1, 1, 1, 1),
+ out_indices: Sequence[int] = (0, 1, 2, 3),
+ style: str = 'pytorch',
+ frozen_stages: int = -1,
+ bn_eval: bool = True,
+ bn_frozen: bool = False,
+ with_cp: bool = False):
+ super().__init__()
+ if depth not in self.arch_settings:
+ raise KeyError(f'invalid depth {depth} for resnet')
+ assert num_stages >= 1 and num_stages <= 4
+ block, stage_blocks = self.arch_settings[depth]
+ stage_blocks = stage_blocks[:num_stages] # type: ignore
+ assert len(strides) == len(dilations) == num_stages
+ assert max(out_indices) < num_stages
+
+ self.out_indices = out_indices
+ self.style = style
+ self.frozen_stages = frozen_stages
+ self.bn_eval = bn_eval
+ self.bn_frozen = bn_frozen
+ self.with_cp = with_cp
+
+ self.inplanes: int = 64
+ self.conv1 = nn.Conv2d(
+ 3, 64, kernel_size=7, stride=2, padding=3, bias=False)
+ self.bn1 = nn.BatchNorm2d(64)
+ self.relu = nn.ReLU(inplace=True)
+ self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)
+
+ self.res_layers = []
+ for i, num_blocks in enumerate(stage_blocks):
+ stride = strides[i]
+ dilation = dilations[i]
+ planes = 64 * 2**i
+ res_layer = make_res_layer(
+ block,
+ self.inplanes,
+ planes,
+ num_blocks,
+ stride=stride,
+ dilation=dilation,
+ style=self.style,
+ with_cp=with_cp)
+ self.inplanes = planes * block.expansion # type: ignore
+ layer_name = f'layer{i + 1}'
+ self.add_module(layer_name, res_layer)
+ self.res_layers.append(layer_name)
+
+ self.feat_dim = block.expansion * 64 * 2**( # type: ignore
+ len(stage_blocks) - 1)
+
+ def init_weights(self, pretrained: Optional[str] = None) -> None:
+ if isinstance(pretrained, str):
+ logger = logging.getLogger()
+ load_checkpoint(self, pretrained, strict=False, logger=logger)
+ elif pretrained is None:
+ for m in self.modules():
+ if isinstance(m, nn.Conv2d):
+ kaiming_init(m)
+ elif isinstance(m, nn.BatchNorm2d):
+ constant_init(m, 1)
+ else:
+ raise TypeError('pretrained must be a str or None')
+
+ def forward(self, x: Tensor) -> Union[Tensor, Tuple[Tensor]]:
+ x = self.conv1(x)
+ x = self.bn1(x)
+ x = self.relu(x)
+ x = self.maxpool(x)
+ outs = []
+ for i, layer_name in enumerate(self.res_layers):
+ res_layer = getattr(self, layer_name)
+ x = res_layer(x)
+ if i in self.out_indices:
+ outs.append(x)
+ if len(outs) == 1:
+ return outs[0]
+ else:
+ return tuple(outs)
+
+ def train(self, mode: bool = True) -> None:
+ super().train(mode)
+ if self.bn_eval:
+ for m in self.modules():
+ if isinstance(m, nn.BatchNorm2d):
+ m.eval()
+ if self.bn_frozen:
+ for params in m.parameters():
+ params.requires_grad = False
+ if mode and self.frozen_stages >= 0:
+ for param in self.conv1.parameters():
+ param.requires_grad = False
+ for param in self.bn1.parameters():
+ param.requires_grad = False
+ self.bn1.eval()
+ self.bn1.weight.requires_grad = False
+ self.bn1.bias.requires_grad = False
+ for i in range(1, self.frozen_stages + 1):
+ mod = getattr(self, f'layer{i}')
+ mod.eval()
+ for param in mod.parameters():
+ param.requires_grad = False
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/__init__.py b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..04d45725dc40a15c086f21fc5ce73373318c578e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from .operator import BaseConvRFSearchOp, Conv2dRFSearchOp
+from .search import RFSearchHook
+
+__all__ = ['BaseConvRFSearchOp', 'Conv2dRFSearchOp', 'RFSearchHook']
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/operator.py b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/operator.py
new file mode 100644
index 0000000000000000000000000000000000000000..2fa45abb0a282954cd5e06503596141c9a314de4
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/operator.py
@@ -0,0 +1,169 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import copy
+
+import numpy as np
+import torch
+import torch.nn as nn
+from mmengine.logging import print_log
+from mmengine.model import BaseModule
+from torch import Tensor
+
+from .utils import expand_rates, get_single_padding
+
+
+class BaseConvRFSearchOp(BaseModule):
+ """Based class of ConvRFSearchOp.
+
+ Args:
+ op_layer (nn.Module): pytorch module, e,g, Conv2d
+ global_config (dict): config dict.
+ """
+
+ def __init__(self, op_layer: nn.Module, global_config: dict):
+ super().__init__()
+ self.op_layer = op_layer
+ self.global_config = global_config
+
+ def normlize(self, weights: nn.Parameter) -> nn.Parameter:
+ """Normalize weights.
+
+ Args:
+ weights (nn.Parameter): Weights to be normalized.
+
+ Returns:
+ nn.Parameters: Normalized weights.
+ """
+ abs_weights = torch.abs(weights)
+ normalized_weights = abs_weights / torch.sum(abs_weights)
+ return normalized_weights
+
+
+class Conv2dRFSearchOp(BaseConvRFSearchOp):
+ """Enable Conv2d with receptive field searching ability.
+
+ Args:
+ op_layer (nn.Module): pytorch module, e,g, Conv2d
+ global_config (dict): config dict. Defaults to None.
+ By default this must include:
+
+ - "init_alphas": The value for initializing weights of each branch.
+ - "num_branches": The controller of the size of
+ search space (the number of branches).
+ - "exp_rate": The controller of the sparsity of search space.
+ - "mmin": The minimum dilation rate.
+ - "mmax": The maximum dilation rate.
+
+ Extra keys may exist, but are used by RFSearchHook, e.g., "step",
+ "max_step", "search_interval", and "skip_layer".
+ verbose (bool): Determines whether to print rf-next
+ related logging messages.
+ Defaults to True.
+ """
+
+ def __init__(self,
+ op_layer: nn.Module,
+ global_config: dict,
+ verbose: bool = True):
+ super().__init__(op_layer, global_config)
+ assert global_config is not None, 'global_config is None'
+ self.num_branches = global_config['num_branches']
+ assert self.num_branches in [2, 3]
+ self.verbose = verbose
+ init_dilation = op_layer.dilation
+ self.dilation_rates = expand_rates(init_dilation, global_config)
+ if self.op_layer.kernel_size[
+ 0] == 1 or self.op_layer.kernel_size[0] % 2 == 0:
+ self.dilation_rates = [(op_layer.dilation[0], r[1])
+ for r in self.dilation_rates]
+ if self.op_layer.kernel_size[
+ 1] == 1 or self.op_layer.kernel_size[1] % 2 == 0:
+ self.dilation_rates = [(r[0], op_layer.dilation[1])
+ for r in self.dilation_rates]
+
+ self.branch_weights = nn.Parameter(torch.Tensor(self.num_branches))
+ if self.verbose:
+ print_log(f'Expand as {self.dilation_rates}', 'current')
+ nn.init.constant_(self.branch_weights, global_config['init_alphas'])
+
+ def forward(self, input: Tensor) -> Tensor:
+ norm_w = self.normlize(self.branch_weights[:len(self.dilation_rates)])
+ if len(self.dilation_rates) == 1:
+ outputs = [
+ nn.functional.conv2d(
+ input,
+ weight=self.op_layer.weight,
+ bias=self.op_layer.bias,
+ stride=self.op_layer.stride,
+ padding=self.get_padding(self.dilation_rates[0]),
+ dilation=self.dilation_rates[0],
+ groups=self.op_layer.groups,
+ )
+ ]
+ else:
+ outputs = [
+ nn.functional.conv2d(
+ input,
+ weight=self.op_layer.weight,
+ bias=self.op_layer.bias,
+ stride=self.op_layer.stride,
+ padding=self.get_padding(r),
+ dilation=r,
+ groups=self.op_layer.groups,
+ ) * norm_w[i] for i, r in enumerate(self.dilation_rates)
+ ]
+ output = outputs[0]
+ for i in range(1, len(self.dilation_rates)):
+ output += outputs[i]
+ return output
+
+ def estimate_rates(self) -> None:
+ """Estimate new dilation rate based on trained branch_weights."""
+ norm_w = self.normlize(self.branch_weights[:len(self.dilation_rates)])
+ if self.verbose:
+ print_log(
+ 'Estimate dilation {} with weight {}.'.format(
+ self.dilation_rates,
+ norm_w.detach().cpu().numpy().tolist()), 'current')
+
+ sum0, sum1, w_sum = 0, 0, 0
+ for i in range(len(self.dilation_rates)):
+ sum0 += norm_w[i].item() * self.dilation_rates[i][0]
+ sum1 += norm_w[i].item() * self.dilation_rates[i][1]
+ w_sum += norm_w[i].item()
+ estimated = [
+ np.clip(
+ int(round(sum0 / w_sum)), self.global_config['mmin'],
+ self.global_config['mmax']).item(),
+ np.clip(
+ int(round(sum1 / w_sum)), self.global_config['mmin'],
+ self.global_config['mmax']).item()
+ ]
+ self.op_layer.dilation = tuple(estimated)
+ self.op_layer.padding = self.get_padding(self.op_layer.dilation)
+ self.dilation_rates = [tuple(estimated)]
+ if self.verbose:
+ print_log(f'Estimate as {tuple(estimated)}', 'current')
+
+ def expand_rates(self) -> None:
+ """Expand dilation rate."""
+ dilation = self.op_layer.dilation
+ dilation_rates = expand_rates(dilation, self.global_config)
+ if self.op_layer.kernel_size[
+ 0] == 1 or self.op_layer.kernel_size[0] % 2 == 0:
+ dilation_rates = [(dilation[0], r[1]) for r in dilation_rates]
+ if self.op_layer.kernel_size[
+ 1] == 1 or self.op_layer.kernel_size[1] % 2 == 0:
+ dilation_rates = [(r[0], dilation[1]) for r in dilation_rates]
+
+ self.dilation_rates = copy.deepcopy(dilation_rates)
+ if self.verbose:
+ print_log(f'Expand as {self.dilation_rates}', 'current')
+ nn.init.constant_(self.branch_weights,
+ self.global_config['init_alphas'])
+
+ def get_padding(self, dilation) -> tuple:
+ padding = (get_single_padding(self.op_layer.kernel_size[0],
+ self.op_layer.stride[0], dilation[0]),
+ get_single_padding(self.op_layer.kernel_size[1],
+ self.op_layer.stride[1], dilation[1]))
+ return padding
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/search.py b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/search.py
new file mode 100644
index 0000000000000000000000000000000000000000..f4add4b23afd1585fd434931e27dc92187ba1f6f
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/search.py
@@ -0,0 +1,239 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import os
+from typing import Dict, Optional
+
+import mmengine
+import torch # noqa
+import torch.nn as nn
+from mmengine.hooks import Hook
+from mmengine.logging import print_log
+from mmengine.registry import HOOKS
+
+from .operator import BaseConvRFSearchOp, Conv2dRFSearchOp # noqa
+from .utils import get_single_padding, write_to_json
+
+
+@HOOKS.register_module()
+class RFSearchHook(Hook):
+ """Rcecptive field search via dilation rates.
+
+ Please refer to `RF-Next: Efficient Receptive Field
+ Search for Convolutional Neural Networks
+ `_ for more details.
+
+
+ Args:
+ mode (str, optional): It can be set to the following types:
+ 'search', 'fixed_single_branch', or 'fixed_multi_branch'.
+ Defaults to 'search'.
+ config (Dict, optional): config dict of search.
+ By default this config contains "search",
+ and config["search"] must include:
+
+ - "step": recording the current searching step.
+ - "max_step": The maximum number of searching steps
+ to update the structures.
+ - "search_interval": The interval (epoch/iteration)
+ between two updates.
+ - "exp_rate": The controller of the sparsity of search space.
+ - "init_alphas": The value for initializing weights of each branch.
+ - "mmin": The minimum dilation rate.
+ - "mmax": The maximum dilation rate.
+ - "num_branches": The controller of the size of
+ search space (the number of branches).
+ - "skip_layer": The modules in skip_layer will be ignored
+ during the receptive field search.
+ rfstructure_file (str, optional): Path to load searched receptive
+ fields of the model. Defaults to None.
+ by_epoch (bool, optional): Determine to perform step by epoch or
+ by iteration. If set to True, it will step by epoch. Otherwise, by
+ iteration. Defaults to True.
+ verbose (bool): Determines whether to print rf-next related logging
+ messages. Defaults to True.
+ """
+
+ def __init__(self,
+ mode: str = 'search',
+ config: Dict = {},
+ rfstructure_file: Optional[str] = None,
+ by_epoch: bool = True,
+ verbose: bool = True):
+ assert mode in ['search', 'fixed_single_branch', 'fixed_multi_branch']
+ assert config is not None
+ self.config = config
+ self.config['structure'] = {}
+ self.verbose = verbose
+ if rfstructure_file is not None:
+ rfstructure = mmengine.load(rfstructure_file)['structure']
+ self.config['structure'] = rfstructure
+ self.mode = mode
+ self.num_branches = self.config['search']['num_branches']
+ self.by_epoch = by_epoch
+
+ def init_model(self, model: nn.Module):
+ """init model with search ability.
+
+ Args:
+ model (nn.Module): pytorch model
+
+ Raises:
+ NotImplementedError: only support three modes:
+ search/fixed_single_branch/fixed_multi_branch
+ """
+ if self.verbose:
+ print_log('RFSearch init begin.', 'current')
+ if self.mode == 'search':
+ if self.config['structure']:
+ self.set_model(model, search_op='Conv2d')
+ self.wrap_model(model, search_op='Conv2d')
+ elif self.mode == 'fixed_single_branch':
+ self.set_model(model, search_op='Conv2d')
+ elif self.mode == 'fixed_multi_branch':
+ self.set_model(model, search_op='Conv2d')
+ self.wrap_model(model, search_op='Conv2d')
+ else:
+ raise NotImplementedError
+ if self.verbose:
+ print_log('RFSearch init end.', 'current')
+
+ def after_train_epoch(self, runner):
+ """Performs a dilation searching step after one training epoch."""
+ if self.by_epoch and self.mode == 'search':
+ self.step(runner.model, runner.work_dir)
+
+ def after_train_iter(self, runner, batch_idx, data_batch, outputs):
+ """Performs a dilation searching step after one training iteration."""
+ if not self.by_epoch and self.mode == 'search':
+ self.step(runner.model, runner.work_dir)
+
+ def step(self, model: nn.Module, work_dir: str) -> None:
+ """Performs a dilation searching step.
+
+ Args:
+ model (nn.Module): pytorch model
+ work_dir (str): Directory to save the searching results.
+ """
+ self.config['search']['step'] += 1
+ if (self.config['search']['step']
+ ) % self.config['search']['search_interval'] == 0 and (self.config[
+ 'search']['step']) < self.config['search']['max_step']:
+ self.estimate_and_expand(model)
+ for name, module in model.named_modules():
+ if isinstance(module, BaseConvRFSearchOp):
+ self.config['structure'][name] = module.op_layer.dilation
+
+ write_to_json(
+ self.config,
+ os.path.join(
+ work_dir,
+ 'local_search_config_step%d.json' %
+ self.config['search']['step'],
+ ),
+ )
+
+ def estimate_and_expand(self, model: nn.Module) -> None:
+ """estimate and search for RFConvOp.
+
+ Args:
+ model (nn.Module): pytorch model
+ """
+ for module in model.modules():
+ if isinstance(module, BaseConvRFSearchOp):
+ module.estimate_rates()
+ module.expand_rates()
+
+ def wrap_model(self,
+ model: nn.Module,
+ search_op: str = 'Conv2d',
+ prefix: str = '') -> None:
+ """wrap model to support searchable conv op.
+
+ Args:
+ model (nn.Module): pytorch model
+ search_op (str): The module that uses RF search.
+ Defaults to 'Conv2d'.
+ init_rates (int, optional): Set to other initial dilation rates.
+ Defaults to None.
+ prefix (str): Prefix for function recursion. Defaults to ''.
+ """
+ op = 'torch.nn.' + search_op
+ for name, module in model.named_children():
+ if prefix == '':
+ fullname = 'module.' + name
+ else:
+ fullname = prefix + '.' + name
+ if self.config['search']['skip_layer'] is not None:
+ if any(layer in fullname
+ for layer in self.config['search']['skip_layer']):
+ continue
+ if isinstance(module, eval(op)):
+ if 1 < module.kernel_size[0] and \
+ 0 != module.kernel_size[0] % 2 or \
+ 1 < module.kernel_size[1] and \
+ 0 != module.kernel_size[1] % 2:
+ moduleWrap = eval(search_op + 'RFSearchOp')(
+ module, self.config['search'], self.verbose)
+ moduleWrap = moduleWrap.to(module.weight.device)
+ if self.verbose:
+ print_log(
+ 'Wrap model %s to %s.' %
+ (str(module), str(moduleWrap)), 'current')
+ setattr(model, name, moduleWrap)
+ elif not isinstance(module, BaseConvRFSearchOp):
+ self.wrap_model(module, search_op, fullname)
+
+ def set_model(self,
+ model: nn.Module,
+ search_op: str = 'Conv2d',
+ init_rates: Optional[int] = None,
+ prefix: str = '') -> None:
+ """set model based on config.
+
+ Args:
+ model (nn.Module): pytorch model
+ config (Dict): config file
+ search_op (str): The module that uses RF search.
+ Defaults to 'Conv2d'.
+ init_rates (int, optional): Set to other initial dilation rates.
+ Defaults to None.
+ prefix (str): Prefix for function recursion. Defaults to ''.
+ """
+ op = 'torch.nn.' + search_op
+ for name, module in model.named_children():
+ if prefix == '':
+ fullname = 'module.' + name
+ else:
+ fullname = prefix + '.' + name
+ if self.config['search']['skip_layer'] is not None:
+ if any(layer in fullname
+ for layer in self.config['search']['skip_layer']):
+ continue
+ if isinstance(module, eval(op)):
+ if 1 < module.kernel_size[0] and \
+ 0 != module.kernel_size[0] % 2 or \
+ 1 < module.kernel_size[1] and \
+ 0 != module.kernel_size[1] % 2:
+ if isinstance(self.config['structure'][fullname], int):
+ self.config['structure'][fullname] = [
+ self.config['structure'][fullname],
+ self.config['structure'][fullname]
+ ]
+ module.dilation = (
+ self.config['structure'][fullname][0],
+ self.config['structure'][fullname][1],
+ )
+ module.padding = (
+ get_single_padding(
+ module.kernel_size[0], module.stride[0],
+ self.config['structure'][fullname][0]),
+ get_single_padding(
+ module.kernel_size[1], module.stride[1],
+ self.config['structure'][fullname][1]))
+ setattr(model, name, module)
+ if self.verbose:
+ print_log(
+ 'Set module %s dilation as: [%d %d]' %
+ (fullname, module.dilation[0], module.dilation[1]),
+ 'current')
+ elif not isinstance(module, BaseConvRFSearchOp):
+ self.set_model(module, search_op, init_rates, fullname)
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/utils.py b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..4c8168e343d6bded761390f1be9a38b58727badf
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/rfsearch/utils.py
@@ -0,0 +1,68 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import mmengine
+import numpy as np
+
+
+def write_to_json(config: dict, filename: str):
+ """save config to json file.
+
+ Args:
+ config (dict): Config to be saved.
+ filename (str): Path to save config.
+ """
+
+ with open(filename, 'w', encoding='utf-8') as f:
+ mmengine.dump(config, f, file_format='json')
+
+
+def expand_rates(dilation: tuple, config: dict) -> list:
+ """expand dilation rate according to config.
+
+ Args:
+ dilation (int): _description_
+ config (dict): config dict
+
+ Returns:
+ list: list of expanded dilation rates
+ """
+ exp_rate = config['exp_rate']
+
+ large_rates = []
+ small_rates = []
+ for _ in range(config['num_branches'] // 2):
+ large_rates.append(
+ tuple([
+ np.clip(
+ int(round((1 + exp_rate) * dilation[0])), config['mmin'],
+ config['mmax']).item(),
+ np.clip(
+ int(round((1 + exp_rate) * dilation[1])), config['mmin'],
+ config['mmax']).item()
+ ]))
+ small_rates.append(
+ tuple([
+ np.clip(
+ int(round((1 - exp_rate) * dilation[0])), config['mmin'],
+ config['mmax']).item(),
+ np.clip(
+ int(round((1 - exp_rate) * dilation[1])), config['mmin'],
+ config['mmax']).item()
+ ]))
+
+ small_rates.reverse()
+
+ if config['num_branches'] % 2 == 0:
+ rate_list = small_rates + large_rates
+ else:
+ rate_list = small_rates + [dilation] + large_rates
+
+ unique_rate_list = list(set(rate_list))
+ unique_rate_list.sort(key=rate_list.index)
+ return unique_rate_list
+
+
+def get_single_padding(kernel_size: int,
+ stride: int = 1,
+ dilation: int = 1) -> int:
+ padding = ((stride - 1) + dilation * (kernel_size - 1)) // 2
+ return padding
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/utils/__init__.py b/FoodSeg103/demo/mmcv/mmcv/cnn/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..cdec9399f6544a90de6ac4238a60b05b8888c907
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/utils/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from .flops_counter import get_model_complexity_info
+from .fuse_conv_bn import fuse_conv_bn
+
+__all__ = ['get_model_complexity_info', 'fuse_conv_bn']
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/utils/flops_counter.py b/FoodSeg103/demo/mmcv/mmcv/cnn/utils/flops_counter.py
new file mode 100644
index 0000000000000000000000000000000000000000..b09edbcdff063c5a8276bafdd8d69b440539108e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/utils/flops_counter.py
@@ -0,0 +1,604 @@
+# Modified from flops-counter.pytorch by Vladislav Sovrasov
+# original repo: https://github.com/sovrasov/flops-counter.pytorch
+
+# MIT License
+
+# Copyright (c) 2018 Vladislav Sovrasov
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+import sys
+import warnings
+from functools import partial
+from typing import Any, Callable, Dict, Optional, TextIO, Tuple
+
+import numpy as np
+import torch
+import torch.nn as nn
+
+from mmcv.cnn.bricks import (Conv2d, Conv3d, ConvTranspose2d, Linear,
+ MaxPool2d, MaxPool3d)
+
+
+def get_model_complexity_info(model: nn.Module,
+ input_shape: tuple,
+ print_per_layer_stat: bool = True,
+ as_strings: bool = True,
+ input_constructor: Optional[Callable] = None,
+ flush: bool = False,
+ ost: TextIO = sys.stdout) -> tuple:
+ """Get complexity information of a model.
+
+ This method can calculate FLOPs and parameter counts of a model with
+ corresponding input shape. It can also print complexity information for
+ each layer in a model.
+
+ Supported layers are listed as below:
+ - Convolutions: ``nn.Conv1d``, ``nn.Conv2d``, ``nn.Conv3d``.
+ - Activations: ``nn.ReLU``, ``nn.PReLU``, ``nn.ELU``,
+ ``nn.LeakyReLU``, ``nn.ReLU6``.
+ - Poolings: ``nn.MaxPool1d``, ``nn.MaxPool2d``, ``nn.MaxPool3d``,
+ ``nn.AvgPool1d``, ``nn.AvgPool2d``, ``nn.AvgPool3d``,
+ ``nn.AdaptiveMaxPool1d``, ``nn.AdaptiveMaxPool2d``,
+ ``nn.AdaptiveMaxPool3d``, ``nn.AdaptiveAvgPool1d``,
+ ``nn.AdaptiveAvgPool2d``, ``nn.AdaptiveAvgPool3d``.
+ - BatchNorms: ``nn.BatchNorm1d``, ``nn.BatchNorm2d``,
+ ``nn.BatchNorm3d``, ``nn.GroupNorm``, ``nn.InstanceNorm1d``,
+ ``InstanceNorm2d``, ``InstanceNorm3d``, ``nn.LayerNorm``.
+ - Linear: ``nn.Linear``.
+ - Deconvolution: ``nn.ConvTranspose2d``.
+ - Upsample: ``nn.Upsample``.
+
+ Args:
+ model (nn.Module): The model for complexity calculation.
+ input_shape (tuple): Input shape used for calculation.
+ print_per_layer_stat (bool): Whether to print complexity information
+ for each layer in a model. Default: True.
+ as_strings (bool): Output FLOPs and params counts in a string form.
+ Default: True.
+ input_constructor (None | callable): If specified, it takes a callable
+ method that generates input. otherwise, it will generate a random
+ tensor with input shape to calculate FLOPs. Default: None.
+ flush (bool): same as that in :func:`print`. Default: False.
+ ost (stream): same as ``file`` param in :func:`print`.
+ Default: sys.stdout.
+
+ Returns:
+ tuple[float | str]: If ``as_strings`` is set to True, it will return
+ FLOPs and parameter counts in a string format. otherwise, it will
+ return those in a float number format.
+ """
+ assert type(input_shape) is tuple
+ assert len(input_shape) >= 1
+ assert isinstance(model, nn.Module)
+ flops_model = add_flops_counting_methods(model)
+ flops_model.eval()
+ flops_model.start_flops_count()
+ if input_constructor:
+ input = input_constructor(input_shape)
+ _ = flops_model(**input)
+ else:
+ try:
+ batch = torch.ones(()).new_empty(
+ (1, *input_shape),
+ dtype=next(flops_model.parameters()).dtype,
+ device=next(flops_model.parameters()).device)
+ except StopIteration:
+ # Avoid StopIteration for models which have no parameters,
+ # like `nn.Relu()`, `nn.AvgPool2d`, etc.
+ batch = torch.ones(()).new_empty((1, *input_shape))
+
+ _ = flops_model(batch)
+
+ flops_count, params_count = flops_model.compute_average_flops_cost()
+ if print_per_layer_stat:
+ print_model_with_flops(
+ flops_model, flops_count, params_count, ost=ost, flush=flush)
+ flops_model.stop_flops_count()
+
+ if as_strings:
+ return flops_to_string(flops_count), params_to_string(params_count)
+
+ return flops_count, params_count
+
+
+def flops_to_string(flops: float,
+ units: Optional[str] = 'GFLOPs',
+ precision: int = 2) -> str:
+ """Convert FLOPs number into a string.
+
+ Note that Here we take a multiply-add counts as one FLOP.
+
+ Args:
+ flops (float): FLOPs number to be converted.
+ units (str | None): Converted FLOPs units. Options are None, 'GFLOPs',
+ 'MFLOPs', 'KFLOPs', 'FLOPs'. If set to None, it will automatically
+ choose the most suitable unit for FLOPs. Default: 'GFLOPs'.
+ precision (int): Digit number after the decimal point. Default: 2.
+
+ Returns:
+ str: The converted FLOPs number with units.
+
+ Examples:
+ >>> flops_to_string(1e9)
+ '1.0 GFLOPs'
+ >>> flops_to_string(2e5, 'MFLOPs')
+ '0.2 MFLOPs'
+ >>> flops_to_string(3e-9, None)
+ '3e-09 FLOPs'
+ """
+ if units is None:
+ if flops // 10**9 > 0:
+ return str(round(flops / 10.**9, precision)) + ' GFLOPs'
+ elif flops // 10**6 > 0:
+ return str(round(flops / 10.**6, precision)) + ' MFLOPs'
+ elif flops // 10**3 > 0:
+ return str(round(flops / 10.**3, precision)) + ' KFLOPs'
+ else:
+ return str(flops) + ' FLOPs'
+ else:
+ if units == 'GFLOPs':
+ return str(round(flops / 10.**9, precision)) + ' ' + units
+ elif units == 'MFLOPs':
+ return str(round(flops / 10.**6, precision)) + ' ' + units
+ elif units == 'KFLOPs':
+ return str(round(flops / 10.**3, precision)) + ' ' + units
+ else:
+ return str(flops) + ' FLOPs'
+
+
+def params_to_string(num_params: float,
+ units: Optional[str] = None,
+ precision: int = 2) -> str:
+ """Convert parameter number into a string.
+
+ Args:
+ num_params (float): Parameter number to be converted.
+ units (str | None): Converted FLOPs units. Options are None, 'M',
+ 'K' and ''. If set to None, it will automatically choose the most
+ suitable unit for Parameter number. Default: None.
+ precision (int): Digit number after the decimal point. Default: 2.
+
+ Returns:
+ str: The converted parameter number with units.
+
+ Examples:
+ >>> params_to_string(1e9)
+ '1000.0 M'
+ >>> params_to_string(2e5)
+ '200.0 k'
+ >>> params_to_string(3e-9)
+ '3e-09'
+ """
+ if units is None:
+ if num_params // 10**6 > 0:
+ return str(round(num_params / 10**6, precision)) + ' M'
+ elif num_params // 10**3:
+ return str(round(num_params / 10**3, precision)) + ' k'
+ else:
+ return str(num_params)
+ else:
+ if units == 'M':
+ return str(round(num_params / 10.**6, precision)) + ' ' + units
+ elif units == 'K':
+ return str(round(num_params / 10.**3, precision)) + ' ' + units
+ else:
+ return str(num_params)
+
+
+def print_model_with_flops(model: nn.Module,
+ total_flops: float,
+ total_params: float,
+ units: Optional[str] = 'GFLOPs',
+ precision: int = 3,
+ ost: TextIO = sys.stdout,
+ flush: bool = False) -> None:
+ """Print a model with FLOPs for each layer.
+
+ Args:
+ model (nn.Module): The model to be printed.
+ total_flops (float): Total FLOPs of the model.
+ total_params (float): Total parameter counts of the model.
+ units (str | None): Converted FLOPs units. Default: 'GFLOPs'.
+ precision (int): Digit number after the decimal point. Default: 3.
+ ost (stream): same as `file` param in :func:`print`.
+ Default: sys.stdout.
+ flush (bool): same as that in :func:`print`. Default: False.
+
+ Example:
+ >>> class ExampleModel(nn.Module):
+
+ >>> def __init__(self):
+ >>> super().__init__()
+ >>> self.conv1 = nn.Conv2d(3, 8, 3)
+ >>> self.conv2 = nn.Conv2d(8, 256, 3)
+ >>> self.conv3 = nn.Conv2d(256, 8, 3)
+ >>> self.avg_pool = nn.AdaptiveAvgPool2d((1, 1))
+ >>> self.flatten = nn.Flatten()
+ >>> self.fc = nn.Linear(8, 1)
+
+ >>> def forward(self, x):
+ >>> x = self.conv1(x)
+ >>> x = self.conv2(x)
+ >>> x = self.conv3(x)
+ >>> x = self.avg_pool(x)
+ >>> x = self.flatten(x)
+ >>> x = self.fc(x)
+ >>> return x
+
+ >>> model = ExampleModel()
+ >>> x = (3, 16, 16)
+ to print the complexity information state for each layer, you can use
+ >>> get_model_complexity_info(model, x)
+ or directly use
+ >>> print_model_with_flops(model, 4579784.0, 37361)
+ ExampleModel(
+ 0.037 M, 100.000% Params, 0.005 GFLOPs, 100.000% FLOPs,
+ (conv1): Conv2d(0.0 M, 0.600% Params, 0.0 GFLOPs, 0.959% FLOPs, 3, 8, kernel_size=(3, 3), stride=(1, 1)) # noqa: E501
+ (conv2): Conv2d(0.019 M, 50.020% Params, 0.003 GFLOPs, 58.760% FLOPs, 8, 256, kernel_size=(3, 3), stride=(1, 1))
+ (conv3): Conv2d(0.018 M, 49.356% Params, 0.002 GFLOPs, 40.264% FLOPs, 256, 8, kernel_size=(3, 3), stride=(1, 1))
+ (avg_pool): AdaptiveAvgPool2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.017% FLOPs, output_size=(1, 1))
+ (flatten): Flatten(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
+ (fc): Linear(0.0 M, 0.024% Params, 0.0 GFLOPs, 0.000% FLOPs, in_features=8, out_features=1, bias=True)
+ )
+ """
+
+ def accumulate_params(self):
+ if is_supported_instance(self):
+ return self.__params__
+ else:
+ sum = 0
+ for m in self.children():
+ sum += m.accumulate_params()
+ return sum
+
+ def accumulate_flops(self):
+ if is_supported_instance(self):
+ return self.__flops__ / model.__batch_counter__
+ else:
+ sum = 0
+ for m in self.children():
+ sum += m.accumulate_flops()
+ return sum
+
+ def flops_repr(self):
+ accumulated_num_params = self.accumulate_params()
+ accumulated_flops_cost = self.accumulate_flops()
+ return ', '.join([
+ params_to_string(
+ accumulated_num_params, units='M', precision=precision),
+ f'{accumulated_num_params / total_params:.3%} Params',
+ flops_to_string(
+ accumulated_flops_cost, units=units, precision=precision),
+ f'{accumulated_flops_cost / total_flops:.3%} FLOPs',
+ self.original_extra_repr()
+ ])
+
+ def add_extra_repr(m):
+ m.accumulate_flops = accumulate_flops.__get__(m)
+ m.accumulate_params = accumulate_params.__get__(m)
+ flops_extra_repr = flops_repr.__get__(m)
+ if m.extra_repr != flops_extra_repr:
+ m.original_extra_repr = m.extra_repr
+ m.extra_repr = flops_extra_repr
+ assert m.extra_repr != m.original_extra_repr
+
+ def del_extra_repr(m):
+ if hasattr(m, 'original_extra_repr'):
+ m.extra_repr = m.original_extra_repr
+ del m.original_extra_repr
+ if hasattr(m, 'accumulate_flops'):
+ del m.accumulate_flops
+
+ model.apply(add_extra_repr)
+ print(model, file=ost, flush=flush)
+ model.apply(del_extra_repr)
+
+
+def get_model_parameters_number(model: nn.Module) -> float:
+ """Calculate parameter number of a model.
+
+ Args:
+ model (nn.module): The model for parameter number calculation.
+
+ Returns:
+ float: Parameter number of the model.
+ """
+ num_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
+ return num_params
+
+
+def add_flops_counting_methods(net_main_module: nn.Module) -> nn.Module:
+ # adding additional methods to the existing module object,
+ # this is done this way so that each function has access to self object
+ net_main_module.start_flops_count = start_flops_count.__get__( # type: ignore # noqa E501
+ net_main_module)
+ net_main_module.stop_flops_count = stop_flops_count.__get__( # type: ignore # noqa E501
+ net_main_module)
+ net_main_module.reset_flops_count = reset_flops_count.__get__( # type: ignore # noqa E501
+ net_main_module)
+ net_main_module.compute_average_flops_cost = compute_average_flops_cost.__get__( # type: ignore # noqa E501
+ net_main_module)
+
+ net_main_module.reset_flops_count()
+
+ return net_main_module
+
+
+def compute_average_flops_cost(self) -> Tuple[float, float]:
+ """Compute average FLOPs cost.
+
+ A method to compute average FLOPs cost, which will be available after
+ `add_flops_counting_methods()` is called on a desired net object.
+
+ Returns:
+ float: Current mean flops consumption per image.
+ """
+ batches_count = self.__batch_counter__
+ flops_sum = 0
+ for module in self.modules():
+ if is_supported_instance(module):
+ flops_sum += module.__flops__
+ params_sum = get_model_parameters_number(self)
+ return flops_sum / batches_count, params_sum
+
+
+def start_flops_count(self) -> None:
+ """Activate the computation of mean flops consumption per image.
+
+ A method to activate the computation of mean flops consumption per image.
+ which will be available after ``add_flops_counting_methods()`` is called on
+ a desired net object. It should be called before running the network.
+ """
+ add_batch_counter_hook_function(self)
+
+ def add_flops_counter_hook_function(module: nn.Module) -> None:
+ if is_supported_instance(module):
+ if hasattr(module, '__flops_handle__'):
+ return
+
+ else:
+ handle = module.register_forward_hook(
+ get_modules_mapping()[type(module)])
+
+ module.__flops_handle__ = handle
+
+ self.apply(partial(add_flops_counter_hook_function))
+
+
+def stop_flops_count(self) -> None:
+ """Stop computing the mean flops consumption per image.
+
+ A method to stop computing the mean flops consumption per image, which will
+ be available after ``add_flops_counting_methods()`` is called on a desired
+ net object. It can be called to pause the computation whenever.
+ """
+ remove_batch_counter_hook_function(self)
+ self.apply(remove_flops_counter_hook_function)
+
+
+def reset_flops_count(self) -> None:
+ """Reset statistics computed so far.
+
+ A method to Reset computed statistics, which will be available after
+ `add_flops_counting_methods()` is called on a desired net object.
+ """
+ add_batch_counter_variables_or_reset(self)
+ self.apply(add_flops_counter_variable_or_reset)
+
+
+# ---- Internal functions
+def empty_flops_counter_hook(module: nn.Module, input: tuple,
+ output: Any) -> None:
+ module.__flops__ += 0
+
+
+def upsample_flops_counter_hook(module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ output_size = output[0]
+ batch_size = output_size.shape[0]
+ output_elements_count = batch_size
+ for val in output_size.shape[1:]:
+ output_elements_count *= val
+ module.__flops__ += int(output_elements_count)
+
+
+def relu_flops_counter_hook(module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ active_elements_count = output.numel()
+ module.__flops__ += int(active_elements_count)
+
+
+def linear_flops_counter_hook(module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ output_last_dim = output.shape[
+ -1] # pytorch checks dimensions, so here we don't care much
+ module.__flops__ += int(np.prod(input[0].shape) * output_last_dim)
+
+
+def pool_flops_counter_hook(module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ module.__flops__ += int(np.prod(input[0].shape))
+
+
+def norm_flops_counter_hook(module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ batch_flops = np.prod(input[0].shape)
+ if (getattr(module, 'affine', False)
+ or getattr(module, 'elementwise_affine', False)):
+ batch_flops *= 2
+ module.__flops__ += int(batch_flops)
+
+
+def deconv_flops_counter_hook(conv_module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ # Can have multiple inputs, getting the first one
+ batch_size = input[0].shape[0]
+ input_height, input_width = input[0].shape[2:]
+
+ kernel_height, kernel_width = conv_module.kernel_size
+ in_channels = conv_module.in_channels
+ out_channels = conv_module.out_channels
+ groups = conv_module.groups
+
+ filters_per_channel = out_channels // groups
+ conv_per_position_flops = (
+ kernel_height * kernel_width * in_channels * filters_per_channel)
+
+ active_elements_count = batch_size * input_height * input_width
+ overall_conv_flops = conv_per_position_flops * active_elements_count
+ bias_flops = 0
+ if conv_module.bias is not None:
+ output_height, output_width = output.shape[2:]
+ bias_flops = out_channels * batch_size * output_height * output_width
+ overall_flops = overall_conv_flops + bias_flops
+
+ conv_module.__flops__ += int(overall_flops)
+
+
+def conv_flops_counter_hook(conv_module: nn.Module, input: tuple,
+ output: torch.Tensor) -> None:
+ # Can have multiple inputs, getting the first one
+ batch_size = input[0].shape[0]
+ output_dims = list(output.shape[2:])
+
+ kernel_dims = list(conv_module.kernel_size)
+ in_channels = conv_module.in_channels
+ out_channels = conv_module.out_channels
+ groups = conv_module.groups
+
+ filters_per_channel = out_channels // groups
+ conv_per_position_flops = int(
+ np.prod(kernel_dims)) * in_channels * filters_per_channel
+
+ active_elements_count = batch_size * int(np.prod(output_dims))
+
+ overall_conv_flops = conv_per_position_flops * active_elements_count
+
+ bias_flops = 0
+
+ if conv_module.bias is not None:
+
+ bias_flops = out_channels * active_elements_count
+
+ overall_flops = overall_conv_flops + bias_flops
+
+ conv_module.__flops__ += int(overall_flops)
+
+
+def batch_counter_hook(module: nn.Module, input: tuple, output: Any) -> None:
+ batch_size = 1
+ if len(input) > 0:
+ # Can have multiple inputs, getting the first one
+ batch_size = len(input[0])
+ else:
+ warnings.warn('No positional inputs found for a module, '
+ 'assuming batch size is 1.')
+ module.__batch_counter__ += batch_size
+
+
+def add_batch_counter_variables_or_reset(module: nn.Module) -> None:
+
+ module.__batch_counter__ = 0
+
+
+def add_batch_counter_hook_function(module: nn.Module) -> None:
+ if hasattr(module, '__batch_counter_handle__'):
+ return
+
+ handle = module.register_forward_hook(batch_counter_hook)
+ module.__batch_counter_handle__ = handle
+
+
+def remove_batch_counter_hook_function(module: nn.Module) -> None:
+ if hasattr(module, '__batch_counter_handle__'):
+ module.__batch_counter_handle__.remove()
+ del module.__batch_counter_handle__
+
+
+def add_flops_counter_variable_or_reset(module: nn.Module) -> None:
+ if is_supported_instance(module):
+ if hasattr(module, '__flops__') or hasattr(module, '__params__'):
+ warnings.warn('variables __flops__ or __params__ are already '
+ 'defined for the module' + type(module).__name__ +
+ ' ptflops can affect your code!')
+ module.__flops__ = 0
+ module.__params__ = get_model_parameters_number(module)
+
+
+def is_supported_instance(module: nn.Module) -> bool:
+ if type(module) in get_modules_mapping():
+ return True
+ return False
+
+
+def remove_flops_counter_hook_function(module: nn.Module) -> None:
+ if is_supported_instance(module):
+ if hasattr(module, '__flops_handle__'):
+ module.__flops_handle__.remove()
+ del module.__flops_handle__
+
+
+def get_modules_mapping() -> Dict:
+ return {
+ # convolutions
+ nn.Conv1d: conv_flops_counter_hook,
+ nn.Conv2d: conv_flops_counter_hook,
+ Conv2d: conv_flops_counter_hook,
+ nn.Conv3d: conv_flops_counter_hook,
+ Conv3d: conv_flops_counter_hook,
+ # activations
+ nn.ReLU: relu_flops_counter_hook,
+ nn.PReLU: relu_flops_counter_hook,
+ nn.ELU: relu_flops_counter_hook,
+ nn.LeakyReLU: relu_flops_counter_hook,
+ nn.ReLU6: relu_flops_counter_hook,
+ # poolings
+ nn.MaxPool1d: pool_flops_counter_hook,
+ nn.AvgPool1d: pool_flops_counter_hook,
+ nn.AvgPool2d: pool_flops_counter_hook,
+ nn.MaxPool2d: pool_flops_counter_hook,
+ MaxPool2d: pool_flops_counter_hook,
+ nn.MaxPool3d: pool_flops_counter_hook,
+ MaxPool3d: pool_flops_counter_hook,
+ nn.AvgPool3d: pool_flops_counter_hook,
+ nn.AdaptiveMaxPool1d: pool_flops_counter_hook,
+ nn.AdaptiveAvgPool1d: pool_flops_counter_hook,
+ nn.AdaptiveMaxPool2d: pool_flops_counter_hook,
+ nn.AdaptiveAvgPool2d: pool_flops_counter_hook,
+ nn.AdaptiveMaxPool3d: pool_flops_counter_hook,
+ nn.AdaptiveAvgPool3d: pool_flops_counter_hook,
+ # normalizations
+ nn.BatchNorm1d: norm_flops_counter_hook,
+ nn.BatchNorm2d: norm_flops_counter_hook,
+ nn.BatchNorm3d: norm_flops_counter_hook,
+ nn.GroupNorm: norm_flops_counter_hook,
+ nn.InstanceNorm1d: norm_flops_counter_hook,
+ nn.InstanceNorm2d: norm_flops_counter_hook,
+ nn.InstanceNorm3d: norm_flops_counter_hook,
+ nn.LayerNorm: norm_flops_counter_hook,
+ # FC
+ nn.Linear: linear_flops_counter_hook,
+ Linear: linear_flops_counter_hook,
+ # Upscale
+ nn.Upsample: upsample_flops_counter_hook,
+ # Deconvolution
+ nn.ConvTranspose2d: deconv_flops_counter_hook,
+ ConvTranspose2d: deconv_flops_counter_hook,
+ }
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/utils/fuse_conv_bn.py b/FoodSeg103/demo/mmcv/mmcv/cnn/utils/fuse_conv_bn.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ccaab3bf1eb3ce615bad910d6dc45a467bb1fe4
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/utils/fuse_conv_bn.py
@@ -0,0 +1,59 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+import torch.nn as nn
+
+
+def _fuse_conv_bn(conv: nn.Module, bn: nn.Module) -> nn.Module:
+ """Fuse conv and bn into one module.
+
+ Args:
+ conv (nn.Module): Conv to be fused.
+ bn (nn.Module): BN to be fused.
+
+ Returns:
+ nn.Module: Fused module.
+ """
+ conv_w = conv.weight
+ conv_b = conv.bias if conv.bias is not None else torch.zeros_like(
+ bn.running_mean)
+
+ factor = bn.weight / torch.sqrt(bn.running_var + bn.eps)
+ conv.weight = nn.Parameter(conv_w *
+ factor.reshape([conv.out_channels, 1, 1, 1]))
+ conv.bias = nn.Parameter((conv_b - bn.running_mean) * factor + bn.bias)
+ return conv
+
+
+def fuse_conv_bn(module: nn.Module) -> nn.Module:
+ """Recursively fuse conv and bn in a module.
+
+ During inference, the functionary of batch norm layers is turned off
+ but only the mean and var alone channels are used, which exposes the
+ chance to fuse it with the preceding conv layers to save computations and
+ simplify network structures.
+
+ Args:
+ module (nn.Module): Module to be fused.
+
+ Returns:
+ nn.Module: Fused module.
+ """
+ last_conv = None
+ last_conv_name = None
+
+ for name, child in module.named_children():
+ if isinstance(child,
+ (nn.modules.batchnorm._BatchNorm, nn.SyncBatchNorm)):
+ if last_conv is None: # only fuse BN that is after Conv
+ continue
+ fused_conv = _fuse_conv_bn(last_conv, child)
+ module._modules[last_conv_name] = fused_conv
+ # To reduce changes, set BN as Identity instead of deleting it.
+ module._modules[name] = nn.Identity()
+ last_conv = None
+ elif isinstance(child, nn.Conv2d):
+ last_conv = child
+ last_conv_name = name
+ else:
+ fuse_conv_bn(child)
+ return module
diff --git a/FoodSeg103/demo/mmcv/mmcv/cnn/vgg.py b/FoodSeg103/demo/mmcv/mmcv/cnn/vgg.py
new file mode 100644
index 0000000000000000000000000000000000000000..a7f3116062c3943bb85fd7540b23a31918622a24
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/cnn/vgg.py
@@ -0,0 +1,176 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import logging
+from typing import List, Optional, Sequence, Tuple, Union
+
+import torch.nn as nn
+from mmengine.model import constant_init, kaiming_init, normal_init
+from mmengine.runner import load_checkpoint
+from torch import Tensor
+
+
+def conv3x3(in_planes: int, out_planes: int, dilation: int = 1) -> nn.Module:
+ """3x3 convolution with padding."""
+ return nn.Conv2d(
+ in_planes,
+ out_planes,
+ kernel_size=3,
+ padding=dilation,
+ dilation=dilation)
+
+
+def make_vgg_layer(inplanes: int,
+ planes: int,
+ num_blocks: int,
+ dilation: int = 1,
+ with_bn: bool = False,
+ ceil_mode: bool = False) -> List[nn.Module]:
+ layers = []
+ for _ in range(num_blocks):
+ layers.append(conv3x3(inplanes, planes, dilation))
+ if with_bn:
+ layers.append(nn.BatchNorm2d(planes))
+ layers.append(nn.ReLU(inplace=True))
+ inplanes = planes
+ layers.append(nn.MaxPool2d(kernel_size=2, stride=2, ceil_mode=ceil_mode))
+
+ return layers
+
+
+class VGG(nn.Module):
+ """VGG backbone.
+
+ Args:
+ depth (int): Depth of vgg, from {11, 13, 16, 19}.
+ with_bn (bool): Use BatchNorm or not.
+ num_classes (int): number of classes for classification.
+ num_stages (int): VGG stages, normally 5.
+ dilations (Sequence[int]): Dilation of each stage.
+ out_indices (Sequence[int]): Output from which stages.
+ frozen_stages (int): Stages to be frozen (all param fixed). -1 means
+ not freezing any parameters.
+ bn_eval (bool): Whether to set BN layers as eval mode, namely, freeze
+ running stats (mean and var).
+ bn_frozen (bool): Whether to freeze weight and bias of BN layers.
+ """
+
+ arch_settings = {
+ 11: (1, 1, 2, 2, 2),
+ 13: (2, 2, 2, 2, 2),
+ 16: (2, 2, 3, 3, 3),
+ 19: (2, 2, 4, 4, 4)
+ }
+
+ def __init__(self,
+ depth: int,
+ with_bn: bool = False,
+ num_classes: int = -1,
+ num_stages: int = 5,
+ dilations: Sequence[int] = (1, 1, 1, 1, 1),
+ out_indices: Sequence[int] = (0, 1, 2, 3, 4),
+ frozen_stages: int = -1,
+ bn_eval: bool = True,
+ bn_frozen: bool = False,
+ ceil_mode: bool = False,
+ with_last_pool: bool = True):
+ super().__init__()
+ if depth not in self.arch_settings:
+ raise KeyError(f'invalid depth {depth} for vgg')
+ assert num_stages >= 1 and num_stages <= 5
+ stage_blocks = self.arch_settings[depth]
+ self.stage_blocks = stage_blocks[:num_stages]
+ assert len(dilations) == num_stages
+ assert max(out_indices) <= num_stages
+
+ self.num_classes = num_classes
+ self.out_indices = out_indices
+ self.frozen_stages = frozen_stages
+ self.bn_eval = bn_eval
+ self.bn_frozen = bn_frozen
+
+ self.inplanes = 3
+ start_idx = 0
+ vgg_layers = []
+ self.range_sub_modules = []
+ for i, num_blocks in enumerate(self.stage_blocks):
+ num_modules = num_blocks * (2 + with_bn) + 1
+ end_idx = start_idx + num_modules
+ dilation = dilations[i]
+ planes = 64 * 2**i if i < 4 else 512
+ vgg_layer = make_vgg_layer(
+ self.inplanes,
+ planes,
+ num_blocks,
+ dilation=dilation,
+ with_bn=with_bn,
+ ceil_mode=ceil_mode)
+ vgg_layers.extend(vgg_layer)
+ self.inplanes = planes
+ self.range_sub_modules.append([start_idx, end_idx])
+ start_idx = end_idx
+ if not with_last_pool:
+ vgg_layers.pop(-1)
+ self.range_sub_modules[-1][1] -= 1
+ self.module_name = 'features'
+ self.add_module(self.module_name, nn.Sequential(*vgg_layers))
+
+ if self.num_classes > 0:
+ self.classifier = nn.Sequential(
+ nn.Linear(512 * 7 * 7, 4096),
+ nn.ReLU(True),
+ nn.Dropout(),
+ nn.Linear(4096, 4096),
+ nn.ReLU(True),
+ nn.Dropout(),
+ nn.Linear(4096, num_classes),
+ )
+
+ def init_weights(self, pretrained: Optional[str] = None) -> None:
+ if isinstance(pretrained, str):
+ logger = logging.getLogger()
+ load_checkpoint(self, pretrained, strict=False, logger=logger)
+ elif pretrained is None:
+ for m in self.modules():
+ if isinstance(m, nn.Conv2d):
+ kaiming_init(m)
+ elif isinstance(m, nn.BatchNorm2d):
+ constant_init(m, 1)
+ elif isinstance(m, nn.Linear):
+ normal_init(m, std=0.01)
+ else:
+ raise TypeError('pretrained must be a str or None')
+
+ def forward(self, x: Tensor) -> Union[Tensor, Tuple[Tensor, ...]]:
+ outs = []
+ vgg_layers = getattr(self, self.module_name)
+ for i in range(len(self.stage_blocks)):
+ for j in range(*self.range_sub_modules[i]):
+ vgg_layer = vgg_layers[j]
+ x = vgg_layer(x)
+ if i in self.out_indices:
+ outs.append(x)
+ if self.num_classes > 0:
+ x = x.view(x.size(0), -1)
+ x = self.classifier(x)
+ outs.append(x)
+ if len(outs) == 1:
+ return outs[0]
+ else:
+ return tuple(outs)
+
+ def train(self, mode: bool = True) -> None:
+ super().train(mode)
+ if self.bn_eval:
+ for m in self.modules():
+ if isinstance(m, nn.BatchNorm2d):
+ m.eval()
+ if self.bn_frozen:
+ for params in m.parameters():
+ params.requires_grad = False
+ vgg_layers = getattr(self, self.module_name)
+ if mode and self.frozen_stages >= 0:
+ for i in range(self.frozen_stages):
+ for j in range(*self.range_sub_modules[i]):
+ mod = vgg_layers[j]
+ mod.eval()
+ for param in mod.parameters():
+ param.requires_grad = False
diff --git a/FoodSeg103/demo/mmcv/mmcv/image/__init__.py b/FoodSeg103/demo/mmcv/mmcv/image/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..92ecec4046a6f5ee25b4ea07215ed7c7c810dcfa
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/image/__init__.py
@@ -0,0 +1,29 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from .colorspace import (bgr2gray, bgr2hls, bgr2hsv, bgr2rgb, bgr2ycbcr,
+ gray2bgr, gray2rgb, hls2bgr, hsv2bgr, imconvert,
+ rgb2bgr, rgb2gray, rgb2ycbcr, ycbcr2bgr, ycbcr2rgb)
+from .geometric import (cutout, imcrop, imflip, imflip_, impad,
+ impad_to_multiple, imrescale, imresize, imresize_like,
+ imresize_to_multiple, imrotate, imshear, imtranslate,
+ rescale_size)
+from .io import imfrombytes, imread, imwrite, supported_backends, use_backend
+from .misc import tensor2imgs
+from .photometric import (adjust_brightness, adjust_color, adjust_contrast,
+ adjust_hue, adjust_lighting, adjust_sharpness,
+ auto_contrast, clahe, imdenormalize, imequalize,
+ iminvert, imnormalize, imnormalize_, lut_transform,
+ posterize, solarize)
+
+__all__ = [
+ 'bgr2gray', 'bgr2hls', 'bgr2hsv', 'bgr2rgb', 'gray2bgr', 'gray2rgb',
+ 'hls2bgr', 'hsv2bgr', 'imconvert', 'rgb2bgr', 'rgb2gray', 'imrescale',
+ 'imresize', 'imresize_like', 'imresize_to_multiple', 'rescale_size',
+ 'imcrop', 'imflip', 'imflip_', 'impad', 'impad_to_multiple', 'imrotate',
+ 'imfrombytes', 'imread', 'imwrite', 'supported_backends', 'use_backend',
+ 'imdenormalize', 'imnormalize', 'imnormalize_', 'iminvert', 'posterize',
+ 'solarize', 'rgb2ycbcr', 'bgr2ycbcr', 'ycbcr2rgb', 'ycbcr2bgr',
+ 'tensor2imgs', 'imshear', 'imtranslate', 'adjust_color', 'imequalize',
+ 'adjust_brightness', 'adjust_contrast', 'lut_transform', 'clahe',
+ 'adjust_sharpness', 'auto_contrast', 'cutout', 'adjust_lighting',
+ 'adjust_hue'
+]
diff --git a/FoodSeg103/demo/mmcv/mmcv/image/colorspace.py b/FoodSeg103/demo/mmcv/mmcv/image/colorspace.py
new file mode 100644
index 0000000000000000000000000000000000000000..08f9952408c8e0bb38b17c10e2089e900ed418c2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/image/colorspace.py
@@ -0,0 +1,309 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Callable, Union
+
+import cv2
+import numpy as np
+
+
+def imconvert(img: np.ndarray, src: str, dst: str) -> np.ndarray:
+ """Convert an image from the src colorspace to dst colorspace.
+
+ Args:
+ img (ndarray): The input image.
+ src (str): The source colorspace, e.g., 'rgb', 'hsv'.
+ dst (str): The destination colorspace, e.g., 'rgb', 'hsv'.
+
+ Returns:
+ ndarray: The converted image.
+ """
+ code = getattr(cv2, f'COLOR_{src.upper()}2{dst.upper()}')
+ out_img = cv2.cvtColor(img, code)
+ return out_img
+
+
+def bgr2gray(img: np.ndarray, keepdim: bool = False) -> np.ndarray:
+ """Convert a BGR image to grayscale image.
+
+ Args:
+ img (ndarray): The input image.
+ keepdim (bool): If False (by default), then return the grayscale image
+ with 2 dims, otherwise 3 dims.
+
+ Returns:
+ ndarray: The converted grayscale image.
+ """
+ out_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
+ if keepdim:
+ out_img = out_img[..., None]
+ return out_img
+
+
+def rgb2gray(img: np.ndarray, keepdim: bool = False) -> np.ndarray:
+ """Convert a RGB image to grayscale image.
+
+ Args:
+ img (ndarray): The input image.
+ keepdim (bool): If False (by default), then return the grayscale image
+ with 2 dims, otherwise 3 dims.
+
+ Returns:
+ ndarray: The converted grayscale image.
+ """
+ out_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
+ if keepdim:
+ out_img = out_img[..., None]
+ return out_img
+
+
+def gray2bgr(img: np.ndarray) -> np.ndarray:
+ """Convert a grayscale image to BGR image.
+
+ Args:
+ img (ndarray): The input image.
+
+ Returns:
+ ndarray: The converted BGR image.
+ """
+ img = img[..., None] if img.ndim == 2 else img
+ out_img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
+ return out_img
+
+
+def gray2rgb(img: np.ndarray) -> np.ndarray:
+ """Convert a grayscale image to RGB image.
+
+ Args:
+ img (ndarray): The input image.
+
+ Returns:
+ ndarray: The converted RGB image.
+ """
+ img = img[..., None] if img.ndim == 2 else img
+ out_img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
+ return out_img
+
+
+def _convert_input_type_range(img: np.ndarray) -> np.ndarray:
+ """Convert the type and range of the input image.
+
+ It converts the input image to np.float32 type and range of [0, 1].
+ It is mainly used for pre-processing the input image in colorspace
+ conversion functions such as rgb2ycbcr and ycbcr2rgb.
+
+ Args:
+ img (ndarray): The input image. It accepts:
+ 1. np.uint8 type with range [0, 255];
+ 2. np.float32 type with range [0, 1].
+
+ Returns:
+ (ndarray): The converted image with type of np.float32 and range of
+ [0, 1].
+ """
+ img_type = img.dtype
+ img = img.astype(np.float32)
+ if img_type == np.float32:
+ pass
+ elif img_type == np.uint8:
+ img /= 255.
+ else:
+ raise TypeError('The img type should be np.float32 or np.uint8, '
+ f'but got {img_type}')
+ return img
+
+
+def _convert_output_type_range(
+ img: np.ndarray, dst_type: Union[np.uint8, np.float32]) -> np.ndarray:
+ """Convert the type and range of the image according to dst_type.
+
+ It converts the image to desired type and range. If `dst_type` is np.uint8,
+ images will be converted to np.uint8 type with range [0, 255]. If
+ `dst_type` is np.float32, it converts the image to np.float32 type with
+ range [0, 1].
+ It is mainly used for post-processing images in colorspace conversion
+ functions such as rgb2ycbcr and ycbcr2rgb.
+
+ Args:
+ img (ndarray): The image to be converted with np.float32 type and
+ range [0, 255].
+ dst_type (np.uint8 | np.float32): If dst_type is np.uint8, it
+ converts the image to np.uint8 type with range [0, 255]. If
+ dst_type is np.float32, it converts the image to np.float32 type
+ with range [0, 1].
+
+ Returns:
+ (ndarray): The converted image with desired type and range.
+ """
+ if dst_type not in (np.uint8, np.float32):
+ raise TypeError('The dst_type should be np.float32 or np.uint8, '
+ f'but got {dst_type}')
+ if dst_type == np.uint8:
+ img = img.round()
+ else:
+ img /= 255.
+ return img.astype(dst_type)
+
+
+def rgb2ycbcr(img: np.ndarray, y_only: bool = False) -> np.ndarray:
+ """Convert a RGB image to YCbCr image.
+
+ This function produces the same results as Matlab's `rgb2ycbcr` function.
+ It implements the ITU-R BT.601 conversion for standard-definition
+ television. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion.
+
+ It differs from a similar function in cv2.cvtColor: `RGB <-> YCrCb`.
+ In OpenCV, it implements a JPEG conversion. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion.
+
+ Args:
+ img (ndarray): The input image. It accepts:
+ 1. np.uint8 type with range [0, 255];
+ 2. np.float32 type with range [0, 1].
+ y_only (bool): Whether to only return Y channel. Default: False.
+
+ Returns:
+ ndarray: The converted YCbCr image. The output image has the same type
+ and range as input image.
+ """
+ img_type = img.dtype
+ img = _convert_input_type_range(img)
+ if y_only:
+ out_img = np.dot(img, [65.481, 128.553, 24.966]) + 16.0
+ else:
+ out_img = np.matmul(
+ img, [[65.481, -37.797, 112.0], [128.553, -74.203, -93.786],
+ [24.966, 112.0, -18.214]]) + [16, 128, 128]
+ out_img = _convert_output_type_range(out_img, img_type)
+ return out_img
+
+
+def bgr2ycbcr(img: np.ndarray, y_only: bool = False) -> np.ndarray:
+ """Convert a BGR image to YCbCr image.
+
+ The bgr version of rgb2ycbcr.
+ It implements the ITU-R BT.601 conversion for standard-definition
+ television. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion.
+
+ It differs from a similar function in cv2.cvtColor: `BGR <-> YCrCb`.
+ In OpenCV, it implements a JPEG conversion. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion.
+
+ Args:
+ img (ndarray): The input image. It accepts:
+ 1. np.uint8 type with range [0, 255];
+ 2. np.float32 type with range [0, 1].
+ y_only (bool): Whether to only return Y channel. Default: False.
+
+ Returns:
+ ndarray: The converted YCbCr image. The output image has the same type
+ and range as input image.
+ """
+ img_type = img.dtype
+ img = _convert_input_type_range(img)
+ if y_only:
+ out_img = np.dot(img, [24.966, 128.553, 65.481]) + 16.0
+ else:
+ out_img = np.matmul(
+ img, [[24.966, 112.0, -18.214], [128.553, -74.203, -93.786],
+ [65.481, -37.797, 112.0]]) + [16, 128, 128]
+ out_img = _convert_output_type_range(out_img, img_type)
+ return out_img
+
+
+def ycbcr2rgb(img: np.ndarray) -> np.ndarray:
+ """Convert a YCbCr image to RGB image.
+
+ This function produces the same results as Matlab's ycbcr2rgb function.
+ It implements the ITU-R BT.601 conversion for standard-definition
+ television. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion.
+
+ It differs from a similar function in cv2.cvtColor: `YCrCb <-> RGB`.
+ In OpenCV, it implements a JPEG conversion. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion.
+
+ Args:
+ img (ndarray): The input image. It accepts:
+ 1. np.uint8 type with range [0, 255];
+ 2. np.float32 type with range [0, 1].
+
+ Returns:
+ ndarray: The converted RGB image. The output image has the same type
+ and range as input image.
+ """
+ img_type = img.dtype
+ img = _convert_input_type_range(img) * 255
+ out_img = np.matmul(img, [[0.00456621, 0.00456621, 0.00456621],
+ [0, -0.00153632, 0.00791071],
+ [0.00625893, -0.00318811, 0]]) * 255.0 + [
+ -222.921, 135.576, -276.836
+ ]
+ out_img = _convert_output_type_range(out_img, img_type)
+ return out_img
+
+
+def ycbcr2bgr(img: np.ndarray) -> np.ndarray:
+ """Convert a YCbCr image to BGR image.
+
+ The bgr version of ycbcr2rgb.
+ It implements the ITU-R BT.601 conversion for standard-definition
+ television. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion.
+
+ It differs from a similar function in cv2.cvtColor: `YCrCb <-> BGR`.
+ In OpenCV, it implements a JPEG conversion. See more details in
+ https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion.
+
+ Args:
+ img (ndarray): The input image. It accepts:
+ 1. np.uint8 type with range [0, 255];
+ 2. np.float32 type with range [0, 1].
+
+ Returns:
+ ndarray: The converted BGR image. The output image has the same type
+ and range as input image.
+ """
+ img_type = img.dtype
+ img = _convert_input_type_range(img) * 255
+ out_img = np.matmul(img, [[0.00456621, 0.00456621, 0.00456621],
+ [0.00791071, -0.00153632, 0],
+ [0, -0.00318811, 0.00625893]]) * 255.0 + [
+ -276.836, 135.576, -222.921
+ ]
+ out_img = _convert_output_type_range(out_img, img_type)
+ return out_img
+
+
+def convert_color_factory(src: str, dst: str) -> Callable:
+
+ code = getattr(cv2, f'COLOR_{src.upper()}2{dst.upper()}')
+
+ def convert_color(img: np.ndarray) -> np.ndarray:
+ out_img = cv2.cvtColor(img, code)
+ return out_img
+
+ convert_color.__doc__ = f"""Convert a {src.upper()} image to {dst.upper()}
+ image.
+
+ Args:
+ img (ndarray or str): The input image.
+
+ Returns:
+ ndarray: The converted {dst.upper()} image.
+ """
+
+ return convert_color
+
+
+bgr2rgb = convert_color_factory('bgr', 'rgb')
+
+rgb2bgr = convert_color_factory('rgb', 'bgr')
+
+bgr2hsv = convert_color_factory('bgr', 'hsv')
+
+hsv2bgr = convert_color_factory('hsv', 'bgr')
+
+bgr2hls = convert_color_factory('bgr', 'hls')
+
+hls2bgr = convert_color_factory('hls', 'bgr')
diff --git a/FoodSeg103/demo/mmcv/mmcv/image/geometric.py b/FoodSeg103/demo/mmcv/mmcv/image/geometric.py
new file mode 100644
index 0000000000000000000000000000000000000000..d62ebff35caf99858c9d73566fc1db0eb3831b2c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/image/geometric.py
@@ -0,0 +1,788 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import numbers
+from typing import List, Optional, Tuple, Union, no_type_check
+
+import cv2
+import numpy as np
+from mmengine.utils import to_2tuple
+
+from .io import imread_backend
+
+try:
+ from PIL import Image
+except ImportError:
+ Image = None
+
+
+def _scale_size(
+ size: Tuple[int, int],
+ scale: Union[float, int, Tuple[float, float], Tuple[int, int]],
+) -> Tuple[int, int]:
+ """Rescale a size by a ratio.
+
+ Args:
+ size (tuple[int]): (w, h).
+ scale (float | int | tuple(float) | tuple(int)): Scaling factor.
+
+ Returns:
+ tuple[int]: scaled size.
+ """
+ if isinstance(scale, (float, int)):
+ scale = (scale, scale)
+ w, h = size
+ return int(w * float(scale[0]) + 0.5), int(h * float(scale[1]) + 0.5)
+
+
+cv2_interp_codes = {
+ 'nearest': cv2.INTER_NEAREST,
+ 'bilinear': cv2.INTER_LINEAR,
+ 'bicubic': cv2.INTER_CUBIC,
+ 'area': cv2.INTER_AREA,
+ 'lanczos': cv2.INTER_LANCZOS4
+}
+
+cv2_border_modes = {
+ 'constant': cv2.BORDER_CONSTANT,
+ 'replicate': cv2.BORDER_REPLICATE,
+ 'reflect': cv2.BORDER_REFLECT,
+ 'wrap': cv2.BORDER_WRAP,
+ 'reflect_101': cv2.BORDER_REFLECT_101,
+ 'transparent': cv2.BORDER_TRANSPARENT,
+ 'isolated': cv2.BORDER_ISOLATED
+}
+
+# Pillow >=v9.1.0 use a slightly different naming scheme for filters.
+# Set pillow_interp_codes according to the naming scheme used.
+if Image is not None:
+ if hasattr(Image, 'Resampling'):
+ pillow_interp_codes = {
+ 'nearest': Image.Resampling.NEAREST,
+ 'bilinear': Image.Resampling.BILINEAR,
+ 'bicubic': Image.Resampling.BICUBIC,
+ 'box': Image.Resampling.BOX,
+ 'lanczos': Image.Resampling.LANCZOS,
+ 'hamming': Image.Resampling.HAMMING
+ }
+ else:
+ pillow_interp_codes = {
+ 'nearest': Image.NEAREST,
+ 'bilinear': Image.BILINEAR,
+ 'bicubic': Image.BICUBIC,
+ 'box': Image.BOX,
+ 'lanczos': Image.LANCZOS,
+ 'hamming': Image.HAMMING
+ }
+
+
+def imresize(
+ img: np.ndarray,
+ size: Tuple[int, int],
+ return_scale: bool = False,
+ interpolation: str = 'bilinear',
+ out: Optional[np.ndarray] = None,
+ backend: Optional[str] = None
+) -> Union[Tuple[np.ndarray, float, float], np.ndarray]:
+ """Resize image to a given size.
+
+ Args:
+ img (ndarray): The input image.
+ size (tuple[int]): Target size (w, h).
+ return_scale (bool): Whether to return `w_scale` and `h_scale`.
+ interpolation (str): Interpolation method, accepted values are
+ "nearest", "bilinear", "bicubic", "area", "lanczos" for 'cv2'
+ backend, "nearest", "bilinear" for 'pillow' backend.
+ out (ndarray): The output destination.
+ backend (str | None): The image resize backend type. Options are `cv2`,
+ `pillow`, `None`. If backend is None, the global imread_backend
+ specified by ``mmcv.use_backend()`` will be used. Default: None.
+
+ Returns:
+ tuple | ndarray: (`resized_img`, `w_scale`, `h_scale`) or
+ `resized_img`.
+ """
+ h, w = img.shape[:2]
+ if backend is None:
+ backend = imread_backend
+ if backend not in ['cv2', 'pillow']:
+ raise ValueError(f'backend: {backend} is not supported for resize.'
+ f"Supported backends are 'cv2', 'pillow'")
+
+ if backend == 'pillow':
+ assert img.dtype == np.uint8, 'Pillow backend only support uint8 type'
+ pil_image = Image.fromarray(img)
+ pil_image = pil_image.resize(size, pillow_interp_codes[interpolation])
+ resized_img = np.array(pil_image)
+ else:
+ resized_img = cv2.resize(
+ img, size, dst=out, interpolation=cv2_interp_codes[interpolation])
+ if not return_scale:
+ return resized_img
+ else:
+ w_scale = size[0] / w
+ h_scale = size[1] / h
+ return resized_img, w_scale, h_scale
+
+
+@no_type_check
+def imresize_to_multiple(
+ img: np.ndarray,
+ divisor: Union[int, Tuple[int, int]],
+ size: Union[int, Tuple[int, int], None] = None,
+ scale_factor: Union[float, int, Tuple[float, float], Tuple[int, int],
+ None] = None,
+ keep_ratio: bool = False,
+ return_scale: bool = False,
+ interpolation: str = 'bilinear',
+ out: Optional[np.ndarray] = None,
+ backend: Optional[str] = None
+) -> Union[Tuple[np.ndarray, float, float], np.ndarray]:
+ """Resize image according to a given size or scale factor and then rounds
+ up the the resized or rescaled image size to the nearest value that can be
+ divided by the divisor.
+
+ Args:
+ img (ndarray): The input image.
+ divisor (int | tuple): Resized image size will be a multiple of
+ divisor. If divisor is a tuple, divisor should be
+ (w_divisor, h_divisor).
+ size (None | int | tuple[int]): Target size (w, h). Default: None.
+ scale_factor (None | float | int | tuple[float] | tuple[int]):
+ Multiplier for spatial size. Should match input size if it is a
+ tuple and the 2D style is (w_scale_factor, h_scale_factor).
+ Default: None.
+ keep_ratio (bool): Whether to keep the aspect ratio when resizing the
+ image. Default: False.
+ return_scale (bool): Whether to return `w_scale` and `h_scale`.
+ interpolation (str): Interpolation method, accepted values are
+ "nearest", "bilinear", "bicubic", "area", "lanczos" for 'cv2'
+ backend, "nearest", "bilinear" for 'pillow' backend.
+ out (ndarray): The output destination.
+ backend (str | None): The image resize backend type. Options are `cv2`,
+ `pillow`, `None`. If backend is None, the global imread_backend
+ specified by ``mmcv.use_backend()`` will be used. Default: None.
+
+ Returns:
+ tuple | ndarray: (`resized_img`, `w_scale`, `h_scale`) or
+ `resized_img`.
+ """
+ h, w = img.shape[:2]
+ if size is not None and scale_factor is not None:
+ raise ValueError('only one of size or scale_factor should be defined')
+ elif size is None and scale_factor is None:
+ raise ValueError('one of size or scale_factor should be defined')
+ elif size is not None:
+ size = to_2tuple(size)
+ if keep_ratio:
+ size = rescale_size((w, h), size, return_scale=False)
+ else:
+ size = _scale_size((w, h), scale_factor)
+
+ divisor = to_2tuple(divisor)
+ size = tuple(int(np.ceil(s / d)) * d for s, d in zip(size, divisor))
+ resized_img, w_scale, h_scale = imresize(
+ img,
+ size,
+ return_scale=True,
+ interpolation=interpolation,
+ out=out,
+ backend=backend)
+ if return_scale:
+ return resized_img, w_scale, h_scale
+ else:
+ return resized_img
+
+
+def imresize_like(
+ img: np.ndarray,
+ dst_img: np.ndarray,
+ return_scale: bool = False,
+ interpolation: str = 'bilinear',
+ backend: Optional[str] = None
+) -> Union[Tuple[np.ndarray, float, float], np.ndarray]:
+ """Resize image to the same size of a given image.
+
+ Args:
+ img (ndarray): The input image.
+ dst_img (ndarray): The target image.
+ return_scale (bool): Whether to return `w_scale` and `h_scale`.
+ interpolation (str): Same as :func:`resize`.
+ backend (str | None): Same as :func:`resize`.
+
+ Returns:
+ tuple or ndarray: (`resized_img`, `w_scale`, `h_scale`) or
+ `resized_img`.
+ """
+ h, w = dst_img.shape[:2]
+ return imresize(img, (w, h), return_scale, interpolation, backend=backend)
+
+
+def rescale_size(old_size: tuple,
+ scale: Union[float, int, Tuple[int, int]],
+ return_scale: bool = False) -> tuple:
+ """Calculate the new size to be rescaled to.
+
+ Args:
+ old_size (tuple[int]): The old size (w, h) of image.
+ scale (float | int | tuple[int]): The scaling factor or maximum size.
+ If it is a float number or an integer, then the image will be
+ rescaled by this factor, else if it is a tuple of 2 integers, then
+ the image will be rescaled as large as possible within the scale.
+ return_scale (bool): Whether to return the scaling factor besides the
+ rescaled image size.
+
+ Returns:
+ tuple[int]: The new rescaled image size.
+ """
+ w, h = old_size
+ if isinstance(scale, (float, int)):
+ if scale <= 0:
+ raise ValueError(f'Invalid scale {scale}, must be positive.')
+ scale_factor = scale
+ elif isinstance(scale, tuple):
+ max_long_edge = max(scale)
+ max_short_edge = min(scale)
+ scale_factor = min(max_long_edge / max(h, w),
+ max_short_edge / min(h, w))
+ else:
+ raise TypeError(
+ f'Scale must be a number or tuple of int, but got {type(scale)}')
+
+ new_size = _scale_size((w, h), scale_factor)
+
+ if return_scale:
+ return new_size, scale_factor
+ else:
+ return new_size
+
+
+def imrescale(
+ img: np.ndarray,
+ scale: Union[float, int, Tuple[int, int]],
+ return_scale: bool = False,
+ interpolation: str = 'bilinear',
+ backend: Optional[str] = None
+) -> Union[np.ndarray, Tuple[np.ndarray, float]]:
+ """Resize image while keeping the aspect ratio.
+
+ Args:
+ img (ndarray): The input image.
+ scale (float | int | tuple[int]): The scaling factor or maximum size.
+ If it is a float number or an integer, then the image will be
+ rescaled by this factor, else if it is a tuple of 2 integers, then
+ the image will be rescaled as large as possible within the scale.
+ return_scale (bool): Whether to return the scaling factor besides the
+ rescaled image.
+ interpolation (str): Same as :func:`resize`.
+ backend (str | None): Same as :func:`resize`.
+
+ Returns:
+ ndarray: The rescaled image.
+ """
+ h, w = img.shape[:2]
+ new_size, scale_factor = rescale_size((w, h), scale, return_scale=True)
+ rescaled_img = imresize(
+ img, new_size, interpolation=interpolation, backend=backend)
+ if return_scale:
+ return rescaled_img, scale_factor
+ else:
+ return rescaled_img
+
+
+def imflip(img: np.ndarray, direction: str = 'horizontal') -> np.ndarray:
+ """Flip an image horizontally or vertically.
+
+ Args:
+ img (ndarray): Image to be flipped.
+ direction (str): The flip direction, either "horizontal" or
+ "vertical" or "diagonal".
+
+ Returns:
+ ndarray: The flipped image.
+ """
+ assert direction in ['horizontal', 'vertical', 'diagonal']
+ if direction == 'horizontal':
+ return np.flip(img, axis=1)
+ elif direction == 'vertical':
+ return np.flip(img, axis=0)
+ else:
+ return np.flip(img, axis=(0, 1))
+
+
+def imflip_(img: np.ndarray, direction: str = 'horizontal') -> np.ndarray:
+ """Inplace flip an image horizontally or vertically.
+
+ Args:
+ img (ndarray): Image to be flipped.
+ direction (str): The flip direction, either "horizontal" or
+ "vertical" or "diagonal".
+
+ Returns:
+ ndarray: The flipped image (inplace).
+ """
+ assert direction in ['horizontal', 'vertical', 'diagonal']
+ if direction == 'horizontal':
+ return cv2.flip(img, 1, img)
+ elif direction == 'vertical':
+ return cv2.flip(img, 0, img)
+ else:
+ return cv2.flip(img, -1, img)
+
+
+def imrotate(img: np.ndarray,
+ angle: float,
+ center: Optional[Tuple[float, float]] = None,
+ scale: float = 1.0,
+ border_value: int = 0,
+ interpolation: str = 'bilinear',
+ auto_bound: bool = False,
+ border_mode: str = 'constant') -> np.ndarray:
+ """Rotate an image.
+
+ Args:
+ img (np.ndarray): Image to be rotated.
+ angle (float): Rotation angle in degrees, positive values mean
+ clockwise rotation.
+ center (tuple[float], optional): Center point (w, h) of the rotation in
+ the source image. If not specified, the center of the image will be
+ used.
+ scale (float): Isotropic scale factor.
+ border_value (int): Border value used in case of a constant border.
+ Defaults to 0.
+ interpolation (str): Same as :func:`resize`.
+ auto_bound (bool): Whether to adjust the image size to cover the whole
+ rotated image.
+ border_mode (str): Pixel extrapolation method. Defaults to 'constant'.
+
+ Returns:
+ np.ndarray: The rotated image.
+ """
+ if center is not None and auto_bound:
+ raise ValueError('`auto_bound` conflicts with `center`')
+ h, w = img.shape[:2]
+ if center is None:
+ center = ((w - 1) * 0.5, (h - 1) * 0.5)
+ assert isinstance(center, tuple)
+
+ matrix = cv2.getRotationMatrix2D(center, -angle, scale)
+ if auto_bound:
+ cos = np.abs(matrix[0, 0])
+ sin = np.abs(matrix[0, 1])
+ new_w = h * sin + w * cos
+ new_h = h * cos + w * sin
+ matrix[0, 2] += (new_w - w) * 0.5
+ matrix[1, 2] += (new_h - h) * 0.5
+ w = int(np.round(new_w))
+ h = int(np.round(new_h))
+ rotated = cv2.warpAffine(
+ img,
+ matrix, (w, h),
+ flags=cv2_interp_codes[interpolation],
+ borderMode=cv2_border_modes[border_mode],
+ borderValue=border_value)
+ return rotated
+
+
+def bbox_clip(bboxes: np.ndarray, img_shape: Tuple[int, int]) -> np.ndarray:
+ """Clip bboxes to fit the image shape.
+
+ Args:
+ bboxes (ndarray): Shape (..., 4*k)
+ img_shape (tuple[int]): (height, width) of the image.
+
+ Returns:
+ ndarray: Clipped bboxes.
+ """
+ assert bboxes.shape[-1] % 4 == 0
+ cmin = np.empty(bboxes.shape[-1], dtype=bboxes.dtype)
+ cmin[0::2] = img_shape[1] - 1
+ cmin[1::2] = img_shape[0] - 1
+ clipped_bboxes = np.maximum(np.minimum(bboxes, cmin), 0)
+ return clipped_bboxes
+
+
+def bbox_scaling(bboxes: np.ndarray,
+ scale: float,
+ clip_shape: Optional[Tuple[int, int]] = None) -> np.ndarray:
+ """Scaling bboxes w.r.t the box center.
+
+ Args:
+ bboxes (ndarray): Shape(..., 4).
+ scale (float): Scaling factor.
+ clip_shape (tuple[int], optional): If specified, bboxes that exceed the
+ boundary will be clipped according to the given shape (h, w).
+
+ Returns:
+ ndarray: Scaled bboxes.
+ """
+ if float(scale) == 1.0:
+ scaled_bboxes = bboxes.copy()
+ else:
+ w = bboxes[..., 2] - bboxes[..., 0] + 1
+ h = bboxes[..., 3] - bboxes[..., 1] + 1
+ dw = (w * (scale - 1)) * 0.5
+ dh = (h * (scale - 1)) * 0.5
+ scaled_bboxes = bboxes + np.stack((-dw, -dh, dw, dh), axis=-1)
+ if clip_shape is not None:
+ return bbox_clip(scaled_bboxes, clip_shape)
+ else:
+ return scaled_bboxes
+
+
+def imcrop(
+ img: np.ndarray,
+ bboxes: np.ndarray,
+ scale: float = 1.0,
+ pad_fill: Union[float, list, None] = None
+) -> Union[np.ndarray, List[np.ndarray]]:
+ """Crop image patches.
+
+ 3 steps: scale the bboxes -> clip bboxes -> crop and pad.
+
+ Args:
+ img (ndarray): Image to be cropped.
+ bboxes (ndarray): Shape (k, 4) or (4, ), location of cropped bboxes.
+ scale (float, optional): Scale ratio of bboxes, the default value
+ 1.0 means no scaling.
+ pad_fill (Number | list[Number]): Value to be filled for padding.
+ Default: None, which means no padding.
+
+ Returns:
+ list[ndarray] | ndarray: The cropped image patches.
+ """
+ chn = 1 if img.ndim == 2 else img.shape[2]
+ if pad_fill is not None:
+ if isinstance(pad_fill, (int, float)):
+ pad_fill = [pad_fill for _ in range(chn)]
+ assert len(pad_fill) == chn
+
+ _bboxes = bboxes[None, ...] if bboxes.ndim == 1 else bboxes
+ scaled_bboxes = bbox_scaling(_bboxes, scale).astype(np.int32)
+ clipped_bbox = bbox_clip(scaled_bboxes, img.shape)
+
+ patches = []
+ for i in range(clipped_bbox.shape[0]):
+ x1, y1, x2, y2 = tuple(clipped_bbox[i, :])
+ if pad_fill is None:
+ patch = img[y1:y2 + 1, x1:x2 + 1, ...]
+ else:
+ _x1, _y1, _x2, _y2 = tuple(scaled_bboxes[i, :])
+ patch_h = _y2 - _y1 + 1
+ patch_w = _x2 - _x1 + 1
+ if chn == 1:
+ patch_shape = (patch_h, patch_w)
+ else:
+ patch_shape = (patch_h, patch_w, chn) # type: ignore
+ patch = np.array(
+ pad_fill, dtype=img.dtype) * np.ones(
+ patch_shape, dtype=img.dtype)
+ x_start = 0 if _x1 >= 0 else -_x1
+ y_start = 0 if _y1 >= 0 else -_y1
+ w = x2 - x1 + 1
+ h = y2 - y1 + 1
+ patch[y_start:y_start + h, x_start:x_start + w,
+ ...] = img[y1:y1 + h, x1:x1 + w, ...]
+ patches.append(patch)
+
+ if bboxes.ndim == 1:
+ return patches[0]
+ else:
+ return patches
+
+
+def impad(img: np.ndarray,
+ *,
+ shape: Optional[Tuple[int, int]] = None,
+ padding: Union[int, tuple, None] = None,
+ pad_val: Union[float, List] = 0,
+ padding_mode: str = 'constant') -> np.ndarray:
+ """Pad the given image to a certain shape or pad on all sides with
+ specified padding mode and padding value.
+
+ Args:
+ img (ndarray): Image to be padded.
+ shape (tuple[int]): Expected padding shape (h, w). Default: None.
+ padding (int or tuple[int]): Padding on each border. If a single int is
+ provided this is used to pad all borders. If tuple of length 2 is
+ provided this is the padding on left/right and top/bottom
+ respectively. If a tuple of length 4 is provided this is the
+ padding for the left, top, right and bottom borders respectively.
+ Default: None. Note that `shape` and `padding` can not be both
+ set.
+ pad_val (Number | Sequence[Number]): Values to be filled in padding
+ areas when padding_mode is 'constant'. Default: 0.
+ padding_mode (str): Type of padding. Should be: constant, edge,
+ reflect or symmetric. Default: constant.
+
+ - constant: pads with a constant value, this value is specified
+ with pad_val.
+ - edge: pads with the last value at the edge of the image.
+ - reflect: pads with reflection of image without repeating the last
+ value on the edge. For example, padding [1, 2, 3, 4] with 2
+ elements on both sides in reflect mode will result in
+ [3, 2, 1, 2, 3, 4, 3, 2].
+ - symmetric: pads with reflection of image repeating the last value
+ on the edge. For example, padding [1, 2, 3, 4] with 2 elements on
+ both sides in symmetric mode will result in
+ [2, 1, 1, 2, 3, 4, 4, 3]
+
+ Returns:
+ ndarray: The padded image.
+ """
+
+ assert (shape is not None) ^ (padding is not None)
+ if shape is not None:
+ width = max(shape[1] - img.shape[1], 0)
+ height = max(shape[0] - img.shape[0], 0)
+ padding = (0, 0, width, height)
+
+ # check pad_val
+ if isinstance(pad_val, tuple):
+ assert len(pad_val) == img.shape[-1]
+ elif not isinstance(pad_val, numbers.Number):
+ raise TypeError('pad_val must be a int or a tuple. '
+ f'But received {type(pad_val)}')
+
+ # check padding
+ if isinstance(padding, tuple) and len(padding) in [2, 4]:
+ if len(padding) == 2:
+ padding = (padding[0], padding[1], padding[0], padding[1])
+ elif isinstance(padding, numbers.Number):
+ padding = (padding, padding, padding, padding)
+ else:
+ raise ValueError('Padding must be a int or a 2, or 4 element tuple.'
+ f'But received {padding}')
+
+ # check padding mode
+ assert padding_mode in ['constant', 'edge', 'reflect', 'symmetric']
+
+ border_type = {
+ 'constant': cv2.BORDER_CONSTANT,
+ 'edge': cv2.BORDER_REPLICATE,
+ 'reflect': cv2.BORDER_REFLECT_101,
+ 'symmetric': cv2.BORDER_REFLECT
+ }
+ img = cv2.copyMakeBorder(
+ img,
+ padding[1],
+ padding[3],
+ padding[0],
+ padding[2],
+ border_type[padding_mode],
+ value=pad_val)
+
+ return img
+
+
+def impad_to_multiple(img: np.ndarray,
+ divisor: int,
+ pad_val: Union[float, List] = 0) -> np.ndarray:
+ """Pad an image to ensure each edge to be multiple to some number.
+
+ Args:
+ img (ndarray): Image to be padded.
+ divisor (int): Padded image edges will be multiple to divisor.
+ pad_val (Number | Sequence[Number]): Same as :func:`impad`.
+
+ Returns:
+ ndarray: The padded image.
+ """
+ pad_h = int(np.ceil(img.shape[0] / divisor)) * divisor
+ pad_w = int(np.ceil(img.shape[1] / divisor)) * divisor
+ return impad(img, shape=(pad_h, pad_w), pad_val=pad_val)
+
+
+def cutout(img: np.ndarray,
+ shape: Union[int, Tuple[int, int]],
+ pad_val: Union[int, float, tuple] = 0) -> np.ndarray:
+ """Randomly cut out a rectangle from the original img.
+
+ Args:
+ img (ndarray): Image to be cutout.
+ shape (int | tuple[int]): Expected cutout shape (h, w). If given as a
+ int, the value will be used for both h and w.
+ pad_val (int | float | tuple[int | float]): Values to be filled in the
+ cut area. Defaults to 0.
+
+ Returns:
+ ndarray: The cutout image.
+ """
+
+ channels = 1 if img.ndim == 2 else img.shape[2]
+ if isinstance(shape, int):
+ cut_h, cut_w = shape, shape
+ else:
+ assert isinstance(shape, tuple) and len(shape) == 2, \
+ f'shape must be a int or a tuple with length 2, but got type ' \
+ f'{type(shape)} instead.'
+ cut_h, cut_w = shape
+ if isinstance(pad_val, (int, float)):
+ pad_val = tuple([pad_val] * channels)
+ elif isinstance(pad_val, tuple):
+ assert len(pad_val) == channels, \
+ 'Expected the num of elements in tuple equals the channels' \
+ 'of input image. Found {} vs {}'.format(
+ len(pad_val), channels)
+ else:
+ raise TypeError(f'Invalid type {type(pad_val)} for `pad_val`')
+
+ img_h, img_w = img.shape[:2]
+ y0 = np.random.uniform(img_h)
+ x0 = np.random.uniform(img_w)
+
+ y1 = int(max(0, y0 - cut_h / 2.))
+ x1 = int(max(0, x0 - cut_w / 2.))
+ y2 = min(img_h, y1 + cut_h)
+ x2 = min(img_w, x1 + cut_w)
+
+ if img.ndim == 2:
+ patch_shape = (y2 - y1, x2 - x1)
+ else:
+ patch_shape = (y2 - y1, x2 - x1, channels) # type: ignore
+
+ img_cutout = img.copy()
+ patch = np.array(
+ pad_val, dtype=img.dtype) * np.ones(
+ patch_shape, dtype=img.dtype)
+ img_cutout[y1:y2, x1:x2, ...] = patch
+
+ return img_cutout
+
+
+def _get_shear_matrix(magnitude: Union[int, float],
+ direction: str = 'horizontal') -> np.ndarray:
+ """Generate the shear matrix for transformation.
+
+ Args:
+ magnitude (int | float): The magnitude used for shear.
+ direction (str): The flip direction, either "horizontal"
+ or "vertical".
+
+ Returns:
+ ndarray: The shear matrix with dtype float32.
+ """
+ if direction == 'horizontal':
+ shear_matrix = np.float32([[1, magnitude, 0], [0, 1, 0]])
+ elif direction == 'vertical':
+ shear_matrix = np.float32([[1, 0, 0], [magnitude, 1, 0]])
+ return shear_matrix
+
+
+def imshear(img: np.ndarray,
+ magnitude: Union[int, float],
+ direction: str = 'horizontal',
+ border_value: Union[int, Tuple[int, int]] = 0,
+ interpolation: str = 'bilinear') -> np.ndarray:
+ """Shear an image.
+
+ Args:
+ img (ndarray): Image to be sheared with format (h, w)
+ or (h, w, c).
+ magnitude (int | float): The magnitude used for shear.
+ direction (str): The flip direction, either "horizontal"
+ or "vertical".
+ border_value (int | tuple[int]): Value used in case of a
+ constant border.
+ interpolation (str): Same as :func:`resize`.
+
+ Returns:
+ ndarray: The sheared image.
+ """
+ assert direction in ['horizontal',
+ 'vertical'], f'Invalid direction: {direction}'
+ height, width = img.shape[:2]
+ if img.ndim == 2:
+ channels = 1
+ elif img.ndim == 3:
+ channels = img.shape[-1]
+ if isinstance(border_value, int):
+ border_value = tuple([border_value] * channels) # type: ignore
+ elif isinstance(border_value, tuple):
+ assert len(border_value) == channels, \
+ 'Expected the num of elements in tuple equals the channels' \
+ 'of input image. Found {} vs {}'.format(
+ len(border_value), channels)
+ else:
+ raise ValueError(
+ f'Invalid type {type(border_value)} for `border_value`')
+ shear_matrix = _get_shear_matrix(magnitude, direction)
+ sheared = cv2.warpAffine(
+ img,
+ shear_matrix,
+ (width, height),
+ # Note case when the number elements in `border_value`
+ # greater than 3 (e.g. shearing masks whose channels large
+ # than 3) will raise TypeError in `cv2.warpAffine`.
+ # Here simply slice the first 3 values in `border_value`.
+ borderValue=border_value[:3], # type: ignore
+ flags=cv2_interp_codes[interpolation])
+ return sheared
+
+
+def _get_translate_matrix(offset: Union[int, float],
+ direction: str = 'horizontal') -> np.ndarray:
+ """Generate the translate matrix.
+
+ Args:
+ offset (int | float): The offset used for translate.
+ direction (str): The translate direction, either
+ "horizontal" or "vertical".
+
+ Returns:
+ ndarray: The translate matrix with dtype float32.
+ """
+ if direction == 'horizontal':
+ translate_matrix = np.float32([[1, 0, offset], [0, 1, 0]])
+ elif direction == 'vertical':
+ translate_matrix = np.float32([[1, 0, 0], [0, 1, offset]])
+ return translate_matrix
+
+
+def imtranslate(img: np.ndarray,
+ offset: Union[int, float],
+ direction: str = 'horizontal',
+ border_value: Union[int, tuple] = 0,
+ interpolation: str = 'bilinear') -> np.ndarray:
+ """Translate an image.
+
+ Args:
+ img (ndarray): Image to be translated with format
+ (h, w) or (h, w, c).
+ offset (int | float): The offset used for translate.
+ direction (str): The translate direction, either "horizontal"
+ or "vertical".
+ border_value (int | tuple[int]): Value used in case of a
+ constant border.
+ interpolation (str): Same as :func:`resize`.
+
+ Returns:
+ ndarray: The translated image.
+ """
+ assert direction in ['horizontal',
+ 'vertical'], f'Invalid direction: {direction}'
+ height, width = img.shape[:2]
+ if img.ndim == 2:
+ channels = 1
+ elif img.ndim == 3:
+ channels = img.shape[-1]
+ if isinstance(border_value, int):
+ border_value = tuple([border_value] * channels)
+ elif isinstance(border_value, tuple):
+ assert len(border_value) == channels, \
+ 'Expected the num of elements in tuple equals the channels' \
+ 'of input image. Found {} vs {}'.format(
+ len(border_value), channels)
+ else:
+ raise ValueError(
+ f'Invalid type {type(border_value)} for `border_value`.')
+ translate_matrix = _get_translate_matrix(offset, direction)
+ translated = cv2.warpAffine(
+ img,
+ translate_matrix,
+ (width, height),
+ # Note case when the number elements in `border_value`
+ # greater than 3 (e.g. translating masks whose channels
+ # large than 3) will raise TypeError in `cv2.warpAffine`.
+ # Here simply slice the first 3 values in `border_value`.
+ borderValue=border_value[:3],
+ flags=cv2_interp_codes[interpolation])
+ return translated
diff --git a/FoodSeg103/demo/mmcv/mmcv/image/io.py b/FoodSeg103/demo/mmcv/mmcv/image/io.py
new file mode 100644
index 0000000000000000000000000000000000000000..e10d443da6554865afc98cb2441a0cc8eddf0e16
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/image/io.py
@@ -0,0 +1,364 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import io
+import os.path as osp
+import warnings
+from pathlib import Path
+from typing import Optional, Union
+
+import cv2
+import mmengine.fileio as fileio
+import numpy as np
+from cv2 import (IMREAD_COLOR, IMREAD_GRAYSCALE, IMREAD_IGNORE_ORIENTATION,
+ IMREAD_UNCHANGED)
+from mmengine.utils import is_filepath, is_str
+
+try:
+ from turbojpeg import TJCS_RGB, TJPF_BGR, TJPF_GRAY, TurboJPEG
+except ImportError:
+ TJCS_RGB = TJPF_GRAY = TJPF_BGR = TurboJPEG = None
+
+try:
+ from PIL import Image, ImageOps
+except ImportError:
+ Image = None
+
+try:
+ import tifffile
+except ImportError:
+ tifffile = None
+
+jpeg = None
+supported_backends = ['cv2', 'turbojpeg', 'pillow', 'tifffile']
+
+imread_flags = {
+ 'color': IMREAD_COLOR,
+ 'grayscale': IMREAD_GRAYSCALE,
+ 'unchanged': IMREAD_UNCHANGED,
+ 'color_ignore_orientation': IMREAD_IGNORE_ORIENTATION | IMREAD_COLOR,
+ 'grayscale_ignore_orientation':
+ IMREAD_IGNORE_ORIENTATION | IMREAD_GRAYSCALE
+}
+
+imread_backend = 'cv2'
+
+
+def use_backend(backend: str) -> None:
+ """Select a backend for image decoding.
+
+ Args:
+ backend (str): The image decoding backend type. Options are `cv2`,
+ `pillow`, `turbojpeg` (see https://github.com/lilohuang/PyTurboJPEG)
+ and `tifffile`. `turbojpeg` is faster but it only supports `.jpeg`
+ file format.
+ """
+ assert backend in supported_backends
+ global imread_backend
+ imread_backend = backend
+ if imread_backend == 'turbojpeg':
+ if TurboJPEG is None:
+ raise ImportError('`PyTurboJPEG` is not installed')
+ global jpeg
+ if jpeg is None:
+ jpeg = TurboJPEG()
+ elif imread_backend == 'pillow':
+ if Image is None:
+ raise ImportError('`Pillow` is not installed')
+ elif imread_backend == 'tifffile':
+ if tifffile is None:
+ raise ImportError('`tifffile` is not installed')
+
+
+def _jpegflag(flag: str = 'color', channel_order: str = 'bgr'):
+ channel_order = channel_order.lower()
+ if channel_order not in ['rgb', 'bgr']:
+ raise ValueError('channel order must be either "rgb" or "bgr"')
+
+ if flag == 'color':
+ if channel_order == 'bgr':
+ return TJPF_BGR
+ elif channel_order == 'rgb':
+ return TJCS_RGB
+ elif flag == 'grayscale':
+ return TJPF_GRAY
+ else:
+ raise ValueError('flag must be "color" or "grayscale"')
+
+
+def _pillow2array(img,
+ flag: str = 'color',
+ channel_order: str = 'bgr') -> np.ndarray:
+ """Convert a pillow image to numpy array.
+
+ Args:
+ img (:obj:`PIL.Image.Image`): The image loaded using PIL
+ flag (str): Flags specifying the color type of a loaded image,
+ candidates are 'color', 'grayscale' and 'unchanged'.
+ Default to 'color'.
+ channel_order (str): The channel order of the output image array,
+ candidates are 'bgr' and 'rgb'. Default to 'bgr'.
+
+ Returns:
+ np.ndarray: The converted numpy array
+ """
+ channel_order = channel_order.lower()
+ if channel_order not in ['rgb', 'bgr']:
+ raise ValueError('channel order must be either "rgb" or "bgr"')
+
+ if flag == 'unchanged':
+ array = np.array(img)
+ if array.ndim >= 3 and array.shape[2] >= 3: # color image
+ array[:, :, :3] = array[:, :, (2, 1, 0)] # RGB to BGR
+ else:
+ # Handle exif orientation tag
+ if flag in ['color', 'grayscale']:
+ img = ImageOps.exif_transpose(img)
+ # If the image mode is not 'RGB', convert it to 'RGB' first.
+ if img.mode != 'RGB':
+ if img.mode != 'LA':
+ # Most formats except 'LA' can be directly converted to RGB
+ img = img.convert('RGB')
+ else:
+ # When the mode is 'LA', the default conversion will fill in
+ # the canvas with black, which sometimes shadows black objects
+ # in the foreground.
+ #
+ # Therefore, a random color (124, 117, 104) is used for canvas
+ img_rgba = img.convert('RGBA')
+ img = Image.new('RGB', img_rgba.size, (124, 117, 104))
+ img.paste(img_rgba, mask=img_rgba.split()[3]) # 3 is alpha
+ if flag in ['color', 'color_ignore_orientation']:
+ array = np.array(img)
+ if channel_order != 'rgb':
+ array = array[:, :, ::-1] # RGB to BGR
+ elif flag in ['grayscale', 'grayscale_ignore_orientation']:
+ img = img.convert('L')
+ array = np.array(img)
+ else:
+ raise ValueError(
+ 'flag must be "color", "grayscale", "unchanged", '
+ f'"color_ignore_orientation" or "grayscale_ignore_orientation"'
+ f' but got {flag}')
+ return array
+
+
+def imread(img_or_path: Union[np.ndarray, str, Path],
+ flag: str = 'color',
+ channel_order: str = 'bgr',
+ backend: Optional[str] = None,
+ file_client_args: Optional[dict] = None,
+ *,
+ backend_args: Optional[dict] = None) -> np.ndarray:
+ """Read an image.
+
+ Args:
+ img_or_path (ndarray or str or Path): Either a numpy array or str or
+ pathlib.Path. If it is a numpy array (loaded image), then
+ it will be returned as is.
+ flag (str): Flags specifying the color type of a loaded image,
+ candidates are `color`, `grayscale`, `unchanged`,
+ `color_ignore_orientation` and `grayscale_ignore_orientation`.
+ By default, `cv2` and `pillow` backend would rotate the image
+ according to its EXIF info unless called with `unchanged` or
+ `*_ignore_orientation` flags. `turbojpeg` and `tifffile` backend
+ always ignore image's EXIF info regardless of the flag.
+ The `turbojpeg` backend only supports `color` and `grayscale`.
+ channel_order (str): Order of channel, candidates are `bgr` and `rgb`.
+ backend (str | None): The image decoding backend type. Options are
+ `cv2`, `pillow`, `turbojpeg`, `tifffile`, `None`.
+ If backend is None, the global imread_backend specified by
+ ``mmcv.use_backend()`` will be used. Default: None.
+ file_client_args (dict, optional): Arguments to instantiate a
+ FileClient. See :class:`mmengine.fileio.FileClient` for details.
+ Default: None. It will be deprecated in future. Please use
+ ``backend_args`` instead.
+ Deprecated in version 2.0.0rc4.
+ backend_args (dict, optional): Instantiates the corresponding file
+ backend. It may contain `backend` key to specify the file
+ backend. If it contains, the file backend corresponding to this
+ value will be used and initialized with the remaining values,
+ otherwise the corresponding file backend will be selected
+ based on the prefix of the file path. Defaults to None.
+ New in version 2.0.0rc4.
+
+ Returns:
+ ndarray: Loaded image array.
+
+ Examples:
+ >>> import mmcv
+ >>> img_path = '/path/to/img.jpg'
+ >>> img = mmcv.imread(img_path)
+ >>> img = mmcv.imread(img_path, flag='color', channel_order='rgb',
+ ... backend='cv2')
+ >>> img = mmcv.imread(img_path, flag='color', channel_order='bgr',
+ ... backend='pillow')
+ >>> s3_img_path = 's3://bucket/img.jpg'
+ >>> # infer the file backend by the prefix s3
+ >>> img = mmcv.imread(s3_img_path)
+ >>> # manually set the file backend petrel
+ >>> img = mmcv.imread(s3_img_path, backend_args={
+ ... 'backend': 'petrel'})
+ >>> http_img_path = 'http://path/to/img.jpg'
+ >>> img = mmcv.imread(http_img_path)
+ >>> img = mmcv.imread(http_img_path, backend_args={
+ ... 'backend': 'http'})
+ """
+ if file_client_args is not None:
+ warnings.warn(
+ '"file_client_args" will be deprecated in future. '
+ 'Please use "backend_args" instead', DeprecationWarning)
+ if backend_args is not None:
+ raise ValueError(
+ '"file_client_args" and "backend_args" cannot be set at the '
+ 'same time.')
+
+ if isinstance(img_or_path, Path):
+ img_or_path = str(img_or_path)
+
+ if isinstance(img_or_path, np.ndarray):
+ return img_or_path
+ elif is_str(img_or_path):
+ if file_client_args is not None:
+ file_client = fileio.FileClient.infer_client(
+ file_client_args, img_or_path)
+ img_bytes = file_client.get(img_or_path)
+ else:
+ img_bytes = fileio.get(img_or_path, backend_args=backend_args)
+ return imfrombytes(img_bytes, flag, channel_order, backend)
+ else:
+ raise TypeError('"img" must be a numpy array or a str or '
+ 'a pathlib.Path object')
+
+
+def imfrombytes(content: bytes,
+ flag: str = 'color',
+ channel_order: str = 'bgr',
+ backend: Optional[str] = None) -> np.ndarray:
+ """Read an image from bytes.
+
+ Args:
+ content (bytes): Image bytes got from files or other streams.
+ flag (str): Same as :func:`imread`.
+ channel_order (str): The channel order of the output, candidates
+ are 'bgr' and 'rgb'. Default to 'bgr'.
+ backend (str | None): The image decoding backend type. Options are
+ `cv2`, `pillow`, `turbojpeg`, `tifffile`, `None`. If backend is
+ None, the global imread_backend specified by ``mmcv.use_backend()``
+ will be used. Default: None.
+
+ Returns:
+ ndarray: Loaded image array.
+
+ Examples:
+ >>> img_path = '/path/to/img.jpg'
+ >>> with open(img_path, 'rb') as f:
+ >>> img_buff = f.read()
+ >>> img = mmcv.imfrombytes(img_buff)
+ >>> img = mmcv.imfrombytes(img_buff, flag='color', channel_order='rgb')
+ >>> img = mmcv.imfrombytes(img_buff, backend='pillow')
+ >>> img = mmcv.imfrombytes(img_buff, backend='cv2')
+ """
+
+ if backend is None:
+ backend = imread_backend
+ if backend not in supported_backends:
+ raise ValueError(
+ f'backend: {backend} is not supported. Supported '
+ "backends are 'cv2', 'turbojpeg', 'pillow', 'tifffile'")
+ if backend == 'turbojpeg':
+ img = jpeg.decode( # type: ignore
+ content, _jpegflag(flag, channel_order))
+ if img.shape[-1] == 1:
+ img = img[:, :, 0]
+ return img
+ elif backend == 'pillow':
+ with io.BytesIO(content) as buff:
+ img = Image.open(buff)
+ img = _pillow2array(img, flag, channel_order)
+ return img
+ elif backend == 'tifffile':
+ with io.BytesIO(content) as buff:
+ img = tifffile.imread(buff)
+ return img
+ else:
+ img_np = np.frombuffer(content, np.uint8)
+ flag = imread_flags[flag] if is_str(flag) else flag
+ img = cv2.imdecode(img_np, flag)
+ if flag == IMREAD_COLOR and channel_order == 'rgb':
+ cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)
+ return img
+
+
+def imwrite(img: np.ndarray,
+ file_path: str,
+ params: Optional[list] = None,
+ auto_mkdir: Optional[bool] = None,
+ file_client_args: Optional[dict] = None,
+ *,
+ backend_args: Optional[dict] = None) -> bool:
+ """Write image to file.
+
+ Warning:
+ The parameter `auto_mkdir` will be deprecated in the future and every
+ file clients will make directory automatically.
+
+ Args:
+ img (ndarray): Image array to be written.
+ file_path (str): Image file path.
+ params (None or list): Same as opencv :func:`imwrite` interface.
+ auto_mkdir (bool): If the parent folder of `file_path` does not exist,
+ whether to create it automatically. It will be deprecated.
+ file_client_args (dict, optional): Arguments to instantiate a
+ FileClient. See :class:`mmengine.fileio.FileClient` for details.
+ Default: None. It will be deprecated in future. Please use
+ ``backend_args`` instead.
+ Deprecated in version 2.0.0rc4.
+ backend_args (dict, optional): Instantiates the corresponding file
+ backend. It may contain `backend` key to specify the file
+ backend. If it contains, the file backend corresponding to this
+ value will be used and initialized with the remaining values,
+ otherwise the corresponding file backend will be selected
+ based on the prefix of the file path. Defaults to None.
+ New in version 2.0.0rc4.
+
+ Returns:
+ bool: Successful or not.
+
+ Examples:
+ >>> # write to hard disk client
+ >>> ret = mmcv.imwrite(img, '/path/to/img.jpg')
+ >>> # infer the file backend by the prefix s3
+ >>> ret = mmcv.imwrite(img, 's3://bucket/img.jpg')
+ >>> # manually set the file backend petrel
+ >>> ret = mmcv.imwrite(img, 's3://bucket/img.jpg', backend_args={
+ ... 'backend': 'petrel'})
+ """
+ if file_client_args is not None:
+ warnings.warn(
+ '"file_client_args" will be deprecated in future. '
+ 'Please use "backend_args" instead', DeprecationWarning)
+ if backend_args is not None:
+ raise ValueError(
+ '"file_client_args" and "backend_args" cannot be set at the '
+ 'same time.')
+
+ assert is_filepath(file_path)
+ file_path = str(file_path)
+ if auto_mkdir is not None:
+ warnings.warn(
+ 'The parameter `auto_mkdir` will be deprecated in the future and '
+ 'every file clients will make directory automatically.')
+
+ img_ext = osp.splitext(file_path)[-1]
+ # Encode image according to image suffix.
+ # For example, if image path is '/path/your/img.jpg', the encode
+ # format is '.jpg'.
+ flag, img_buff = cv2.imencode(img_ext, img, params)
+
+ if file_client_args is not None:
+ file_client = fileio.FileClient.infer_client(file_client_args,
+ file_path)
+ file_client.put(img_buff.tobytes(), file_path)
+ else:
+ fileio.put(img_buff.tobytes(), file_path, backend_args=backend_args)
+
+ return flag
diff --git a/FoodSeg103/demo/mmcv/mmcv/image/misc.py b/FoodSeg103/demo/mmcv/mmcv/image/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..e923cad4e5f7d210640ee51291a48d82c3b84c32
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/image/misc.py
@@ -0,0 +1,58 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Optional
+
+import numpy as np
+
+import mmcv
+
+try:
+ import torch
+except ImportError:
+ torch = None
+
+
+def tensor2imgs(tensor,
+ mean: Optional[tuple] = None,
+ std: Optional[tuple] = None,
+ to_rgb: bool = True) -> list:
+ """Convert tensor to 3-channel images or 1-channel gray images.
+
+ Args:
+ tensor (torch.Tensor): Tensor that contains multiple images, shape (
+ N, C, H, W). :math:`C` can be either 3 or 1.
+ mean (tuple[float], optional): Mean of images. If None,
+ (0, 0, 0) will be used for tensor with 3-channel,
+ while (0, ) for tensor with 1-channel. Defaults to None.
+ std (tuple[float], optional): Standard deviation of images. If None,
+ (1, 1, 1) will be used for tensor with 3-channel,
+ while (1, ) for tensor with 1-channel. Defaults to None.
+ to_rgb (bool, optional): Whether the tensor was converted to RGB
+ format in the first place. If so, convert it back to BGR.
+ For the tensor with 1 channel, it must be False. Defaults to True.
+
+ Returns:
+ list[np.ndarray]: A list that contains multiple images.
+ """
+
+ if torch is None:
+ raise RuntimeError('pytorch is not installed')
+ assert torch.is_tensor(tensor) and tensor.ndim == 4
+ channels = tensor.size(1)
+ assert channels in [1, 3]
+ if mean is None:
+ mean = (0, ) * channels
+ if std is None:
+ std = (1, ) * channels
+ assert (channels == len(mean) == len(std) == 3) or \
+ (channels == len(mean) == len(std) == 1 and not to_rgb)
+
+ num_imgs = tensor.size(0)
+ mean = np.array(mean, dtype=np.float32)
+ std = np.array(std, dtype=np.float32)
+ imgs = []
+ for img_id in range(num_imgs):
+ img = tensor[img_id, ...].cpu().numpy().transpose(1, 2, 0)
+ img = mmcv.imdenormalize(
+ img, mean, std, to_bgr=to_rgb).astype(np.uint8)
+ imgs.append(np.ascontiguousarray(img))
+ return imgs
diff --git a/FoodSeg103/demo/mmcv/mmcv/image/photometric.py b/FoodSeg103/demo/mmcv/mmcv/image/photometric.py
new file mode 100644
index 0000000000000000000000000000000000000000..12cbb90822564bf14cd5176cc3c5532220db40da
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/image/photometric.py
@@ -0,0 +1,561 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import warnings
+from typing import Optional
+
+import cv2
+import numpy as np
+from mmengine.utils import is_tuple_of
+from PIL import Image, ImageEnhance
+
+from .colorspace import bgr2gray, gray2bgr
+from .io import imread_backend
+
+
+def imnormalize(img, mean, std, to_rgb=True):
+ """Normalize an image with mean and std.
+
+ Args:
+ img (ndarray): Image to be normalized.
+ mean (ndarray): The mean to be used for normalize.
+ std (ndarray): The std to be used for normalize.
+ to_rgb (bool): Whether to convert to rgb.
+
+ Returns:
+ ndarray: The normalized image.
+ """
+ img = img.copy().astype(np.float32)
+ return imnormalize_(img, mean, std, to_rgb)
+
+
+def imnormalize_(img, mean, std, to_rgb=True):
+ """Inplace normalize an image with mean and std.
+
+ Args:
+ img (ndarray): Image to be normalized.
+ mean (ndarray): The mean to be used for normalize.
+ std (ndarray): The std to be used for normalize.
+ to_rgb (bool): Whether to convert to rgb.
+
+ Returns:
+ ndarray: The normalized image.
+ """
+ # cv2 inplace normalization does not accept uint8
+ assert img.dtype != np.uint8
+ mean = np.float64(mean.reshape(1, -1))
+ stdinv = 1 / np.float64(std.reshape(1, -1))
+ if to_rgb:
+ cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img) # inplace
+ cv2.subtract(img, mean, img) # inplace
+ cv2.multiply(img, stdinv, img) # inplace
+ return img
+
+
+def imdenormalize(img, mean, std, to_bgr=True):
+ assert img.dtype != np.uint8
+ mean = mean.reshape(1, -1).astype(np.float64)
+ std = std.reshape(1, -1).astype(np.float64)
+ img = cv2.multiply(img, std) # make a copy
+ cv2.add(img, mean, img) # inplace
+ if to_bgr:
+ cv2.cvtColor(img, cv2.COLOR_RGB2BGR, img) # inplace
+ return img
+
+
+def iminvert(img):
+ """Invert (negate) an image.
+
+ Args:
+ img (ndarray): Image to be inverted.
+
+ Returns:
+ ndarray: The inverted image.
+ """
+ return np.full_like(img, 255) - img
+
+
+def solarize(img, thr=128):
+ """Solarize an image (invert all pixel values above a threshold)
+
+ Args:
+ img (ndarray): Image to be solarized.
+ thr (int): Threshold for solarizing (0 - 255).
+
+ Returns:
+ ndarray: The solarized image.
+ """
+ img = np.where(img < thr, img, 255 - img)
+ return img
+
+
+def posterize(img, bits):
+ """Posterize an image (reduce the number of bits for each color channel)
+
+ Args:
+ img (ndarray): Image to be posterized.
+ bits (int): Number of bits (1 to 8) to use for posterizing.
+
+ Returns:
+ ndarray: The posterized image.
+ """
+ shift = 8 - bits
+ img = np.left_shift(np.right_shift(img, shift), shift)
+ return img
+
+
+def adjust_color(img, alpha=1, beta=None, gamma=0, backend=None):
+ r"""It blends the source image and its gray image:
+
+ .. math::
+ output = img * alpha + gray\_img * beta + gamma
+
+ Args:
+ img (ndarray): The input source image.
+ alpha (int | float): Weight for the source image. Default 1.
+ beta (int | float): Weight for the converted gray image.
+ If None, it's assigned the value (1 - `alpha`).
+ gamma (int | float): Scalar added to each sum.
+ Same as :func:`cv2.addWeighted`. Default 0.
+ backend (str | None): The image processing backend type. Options are
+ `cv2`, `pillow`, `None`. If backend is None, the global
+ ``imread_backend`` specified by ``mmcv.use_backend()`` will be
+ used. Defaults to None.
+
+ Returns:
+ ndarray: Colored image which has the same size and dtype as input.
+ """
+ if backend is None:
+ backend = imread_backend
+ if backend not in ['cv2', 'pillow']:
+ raise ValueError(f'backend: {backend} is not supported.'
+ f"Supported backends are 'cv2', 'pillow'")
+
+ if backend == 'pillow':
+ assert img.dtype == np.uint8, 'Pillow backend only support uint8 type'
+ warnings.warn("Only use 'alpha' for pillow backend.")
+ # Image.fromarray defaultly supports RGB, not BGR.
+ pil_image = Image.fromarray(img[..., ::-1], mode='RGB')
+ enhancer = ImageEnhance.Color(pil_image)
+ pil_image = enhancer.enhance(alpha)
+ return np.array(pil_image, dtype=img.dtype)[..., ::-1]
+ else:
+ gray_img = bgr2gray(img)
+ gray_img = np.tile(gray_img[..., None], [1, 1, 3])
+ if beta is None:
+ beta = 1 - alpha
+ colored_img = cv2.addWeighted(img, alpha, gray_img, beta, gamma)
+ if not colored_img.dtype == np.uint8:
+ # Note when the dtype of `img` is not the default `np.uint8`
+ # (e.g. np.float32), the value in `colored_img` got from cv2
+ # is not guaranteed to be in range [0, 255], so here clip
+ # is needed.
+ colored_img = np.clip(colored_img, 0, 255)
+ return colored_img.astype(img.dtype)
+
+
+def imequalize(img):
+ """Equalize the image histogram.
+
+ This function applies a non-linear mapping to the input image,
+ in order to create a uniform distribution of grayscale values
+ in the output image.
+
+ Args:
+ img (ndarray): Image to be equalized.
+
+ Returns:
+ ndarray: The equalized image.
+ """
+
+ def _scale_channel(im, c):
+ """Scale the data in the corresponding channel."""
+ im = im[:, :, c]
+ # Compute the histogram of the image channel.
+ histo = np.histogram(im, 256, (0, 255))[0]
+ # For computing the step, filter out the nonzeros.
+ nonzero_histo = histo[histo > 0]
+ step = (np.sum(nonzero_histo) - nonzero_histo[-1]) // 255
+ if not step:
+ lut = np.array(range(256))
+ else:
+ # Compute the cumulative sum, shifted by step // 2
+ # and then normalized by step.
+ lut = (np.cumsum(histo) + (step // 2)) // step
+ # Shift lut, prepending with 0.
+ lut = np.concatenate([[0], lut[:-1]], 0)
+ # handle potential integer overflow
+ lut[lut > 255] = 255
+ # If step is zero, return the original image.
+ # Otherwise, index from lut.
+ return np.where(np.equal(step, 0), im, lut[im])
+
+ # Scales each channel independently and then stacks
+ # the result.
+ s1 = _scale_channel(img, 0)
+ s2 = _scale_channel(img, 1)
+ s3 = _scale_channel(img, 2)
+ equalized_img = np.stack([s1, s2, s3], axis=-1)
+ return equalized_img.astype(img.dtype)
+
+
+def adjust_brightness(img, factor=1., backend=None):
+ """Adjust image brightness.
+
+ This function controls the brightness of an image. An
+ enhancement factor of 0.0 gives a black image.
+ A factor of 1.0 gives the original image. This function
+ blends the source image and the degenerated black image:
+
+ .. math::
+ output = img * factor + degenerated * (1 - factor)
+
+ Args:
+ img (ndarray): Image to be brightened.
+ factor (float): A value controls the enhancement.
+ Factor 1.0 returns the original image, lower
+ factors mean less color (brightness, contrast,
+ etc), and higher values more. Default 1.
+ backend (str | None): The image processing backend type. Options are
+ `cv2`, `pillow`, `None`. If backend is None, the global
+ ``imread_backend`` specified by ``mmcv.use_backend()`` will be
+ used. Defaults to None.
+
+ Returns:
+ ndarray: The brightened image.
+ """
+ if backend is None:
+ backend = imread_backend
+ if backend not in ['cv2', 'pillow']:
+ raise ValueError(f'backend: {backend} is not supported.'
+ f"Supported backends are 'cv2', 'pillow'")
+
+ if backend == 'pillow':
+ assert img.dtype == np.uint8, 'Pillow backend only support uint8 type'
+ # Image.fromarray defaultly supports RGB, not BGR.
+ pil_image = Image.fromarray(img[..., ::-1], mode='RGB')
+ enhancer = ImageEnhance.Brightness(pil_image)
+ pil_image = enhancer.enhance(factor)
+ return np.array(pil_image, dtype=img.dtype)[..., ::-1]
+ else:
+ degenerated = np.zeros_like(img)
+ # Note manually convert the dtype to np.float32, to
+ # achieve as close results as PIL.ImageEnhance.Brightness.
+ # Set beta=1-factor, and gamma=0
+ brightened_img = cv2.addWeighted(
+ img.astype(np.float32), factor, degenerated.astype(np.float32),
+ 1 - factor, 0)
+ brightened_img = np.clip(brightened_img, 0, 255)
+ return brightened_img.astype(img.dtype)
+
+
+def adjust_contrast(img, factor=1., backend=None):
+ """Adjust image contrast.
+
+ This function controls the contrast of an image. An
+ enhancement factor of 0.0 gives a solid grey
+ image. A factor of 1.0 gives the original image. It
+ blends the source image and the degenerated mean image:
+
+ .. math::
+ output = img * factor + degenerated * (1 - factor)
+
+ Args:
+ img (ndarray): Image to be contrasted. BGR order.
+ factor (float): Same as :func:`mmcv.adjust_brightness`.
+ backend (str | None): The image processing backend type. Options are
+ `cv2`, `pillow`, `None`. If backend is None, the global
+ ``imread_backend`` specified by ``mmcv.use_backend()`` will be
+ used. Defaults to None.
+
+ Returns:
+ ndarray: The contrasted image.
+ """
+ if backend is None:
+ backend = imread_backend
+ if backend not in ['cv2', 'pillow']:
+ raise ValueError(f'backend: {backend} is not supported.'
+ f"Supported backends are 'cv2', 'pillow'")
+
+ if backend == 'pillow':
+ assert img.dtype == np.uint8, 'Pillow backend only support uint8 type'
+ # Image.fromarray defaultly supports RGB, not BGR.
+ pil_image = Image.fromarray(img[..., ::-1], mode='RGB')
+ enhancer = ImageEnhance.Contrast(pil_image)
+ pil_image = enhancer.enhance(factor)
+ return np.array(pil_image, dtype=img.dtype)[..., ::-1]
+ else:
+ gray_img = bgr2gray(img)
+ hist = np.histogram(gray_img, 256, (0, 255))[0]
+ mean = round(np.sum(gray_img) / np.sum(hist))
+ degenerated = (np.ones_like(img[..., 0]) * mean).astype(img.dtype)
+ degenerated = gray2bgr(degenerated)
+ contrasted_img = cv2.addWeighted(
+ img.astype(np.float32), factor, degenerated.astype(np.float32),
+ 1 - factor, 0)
+ contrasted_img = np.clip(contrasted_img, 0, 255)
+ return contrasted_img.astype(img.dtype)
+
+
+def auto_contrast(img, cutoff=0):
+ """Auto adjust image contrast.
+
+ This function maximize (normalize) image contrast by first removing cutoff
+ percent of the lightest and darkest pixels from the histogram and remapping
+ the image so that the darkest pixel becomes black (0), and the lightest
+ becomes white (255).
+
+ Args:
+ img (ndarray): Image to be contrasted. BGR order.
+ cutoff (int | float | tuple): The cutoff percent of the lightest and
+ darkest pixels to be removed. If given as tuple, it shall be
+ (low, high). Otherwise, the single value will be used for both.
+ Defaults to 0.
+
+ Returns:
+ ndarray: The contrasted image.
+ """
+
+ def _auto_contrast_channel(im, c, cutoff):
+ im = im[:, :, c]
+ # Compute the histogram of the image channel.
+ histo = np.histogram(im, 256, (0, 255))[0]
+ # Remove cut-off percent pixels from histo
+ histo_sum = np.cumsum(histo)
+ cut_low = histo_sum[-1] * cutoff[0] // 100
+ cut_high = histo_sum[-1] - histo_sum[-1] * cutoff[1] // 100
+ histo_sum = np.clip(histo_sum, cut_low, cut_high) - cut_low
+ histo = np.concatenate([[histo_sum[0]], np.diff(histo_sum)], 0)
+
+ # Compute mapping
+ low, high = np.nonzero(histo)[0][0], np.nonzero(histo)[0][-1]
+ # If all the values have been cut off, return the origin img
+ if low >= high:
+ return im
+ scale = 255.0 / (high - low)
+ offset = -low * scale
+ lut = np.array(range(256))
+ lut = lut * scale + offset
+ lut = np.clip(lut, 0, 255)
+ return lut[im]
+
+ if isinstance(cutoff, (int, float)):
+ cutoff = (cutoff, cutoff)
+ else:
+ assert isinstance(cutoff, tuple), 'cutoff must be of type int, ' \
+ f'float or tuple, but got {type(cutoff)} instead.'
+ # Auto adjusts contrast for each channel independently and then stacks
+ # the result.
+ s1 = _auto_contrast_channel(img, 0, cutoff)
+ s2 = _auto_contrast_channel(img, 1, cutoff)
+ s3 = _auto_contrast_channel(img, 2, cutoff)
+ contrasted_img = np.stack([s1, s2, s3], axis=-1)
+ return contrasted_img.astype(img.dtype)
+
+
+def adjust_sharpness(img, factor=1., kernel=None):
+ """Adjust image sharpness.
+
+ This function controls the sharpness of an image. An
+ enhancement factor of 0.0 gives a blurred image. A
+ factor of 1.0 gives the original image. And a factor
+ of 2.0 gives a sharpened image. It blends the source
+ image and the degenerated mean image:
+
+ .. math::
+ output = img * factor + degenerated * (1 - factor)
+
+ Args:
+ img (ndarray): Image to be sharpened. BGR order.
+ factor (float): Same as :func:`mmcv.adjust_brightness`.
+ kernel (np.ndarray, optional): Filter kernel to be applied on the img
+ to obtain the degenerated img. Defaults to None.
+
+ Note:
+ No value sanity check is enforced on the kernel set by users. So with
+ an inappropriate kernel, the ``adjust_sharpness`` may fail to perform
+ the function its name indicates but end up performing whatever
+ transform determined by the kernel.
+
+ Returns:
+ ndarray: The sharpened image.
+ """
+
+ if kernel is None:
+ # adopted from PIL.ImageFilter.SMOOTH
+ kernel = np.array([[1., 1., 1.], [1., 5., 1.], [1., 1., 1.]]) / 13
+ assert isinstance(kernel, np.ndarray), \
+ f'kernel must be of type np.ndarray, but got {type(kernel)} instead.'
+ assert kernel.ndim == 2, \
+ f'kernel must have a dimension of 2, but got {kernel.ndim} instead.'
+
+ degenerated = cv2.filter2D(img, -1, kernel)
+ sharpened_img = cv2.addWeighted(
+ img.astype(np.float32), factor, degenerated.astype(np.float32),
+ 1 - factor, 0)
+ sharpened_img = np.clip(sharpened_img, 0, 255)
+ return sharpened_img.astype(img.dtype)
+
+
+def adjust_lighting(img, eigval, eigvec, alphastd=0.1, to_rgb=True):
+ """AlexNet-style PCA jitter.
+
+ This data augmentation is proposed in `ImageNet Classification with Deep
+ Convolutional Neural Networks
+ `_.
+
+ Args:
+ img (ndarray): Image to be adjusted lighting. BGR order.
+ eigval (ndarray): the eigenvalue of the convariance matrix of pixel
+ values, respectively.
+ eigvec (ndarray): the eigenvector of the convariance matrix of pixel
+ values, respectively.
+ alphastd (float): The standard deviation for distribution of alpha.
+ Defaults to 0.1
+ to_rgb (bool): Whether to convert img to rgb.
+
+ Returns:
+ ndarray: The adjusted image.
+ """
+ assert isinstance(eigval, np.ndarray) and isinstance(eigvec, np.ndarray), \
+ f'eigval and eigvec should both be of type np.ndarray, got ' \
+ f'{type(eigval)} and {type(eigvec)} instead.'
+
+ assert eigval.ndim == 1 and eigvec.ndim == 2
+ assert eigvec.shape == (3, eigval.shape[0])
+ n_eigval = eigval.shape[0]
+ assert isinstance(alphastd, float), 'alphastd should be of type float, ' \
+ f'got {type(alphastd)} instead.'
+
+ img = img.copy().astype(np.float32)
+ if to_rgb:
+ cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img) # inplace
+
+ alpha = np.random.normal(0, alphastd, n_eigval)
+ alter = eigvec \
+ * np.broadcast_to(alpha.reshape(1, n_eigval), (3, n_eigval)) \
+ * np.broadcast_to(eigval.reshape(1, n_eigval), (3, n_eigval))
+ alter = np.broadcast_to(alter.sum(axis=1).reshape(1, 1, 3), img.shape)
+ img_adjusted = img + alter
+ return img_adjusted
+
+
+def lut_transform(img, lut_table):
+ """Transform array by look-up table.
+
+ The function lut_transform fills the output array with values from the
+ look-up table. Indices of the entries are taken from the input array.
+
+ Args:
+ img (ndarray): Image to be transformed.
+ lut_table (ndarray): look-up table of 256 elements; in case of
+ multi-channel input array, the table should either have a single
+ channel (in this case the same table is used for all channels) or
+ the same number of channels as in the input array.
+
+ Returns:
+ ndarray: The transformed image.
+ """
+ assert isinstance(img, np.ndarray)
+ assert 0 <= np.min(img) and np.max(img) <= 255
+ assert isinstance(lut_table, np.ndarray)
+ assert lut_table.shape == (256, )
+
+ return cv2.LUT(np.array(img, dtype=np.uint8), lut_table)
+
+
+def clahe(img, clip_limit=40.0, tile_grid_size=(8, 8)):
+ """Use CLAHE method to process the image.
+
+ See `ZUIDERVELD,K. Contrast Limited Adaptive Histogram Equalization[J].
+ Graphics Gems, 1994:474-485.` for more information.
+
+ Args:
+ img (ndarray): Image to be processed.
+ clip_limit (float): Threshold for contrast limiting. Default: 40.0.
+ tile_grid_size (tuple[int]): Size of grid for histogram equalization.
+ Input image will be divided into equally sized rectangular tiles.
+ It defines the number of tiles in row and column. Default: (8, 8).
+
+ Returns:
+ ndarray: The processed image.
+ """
+ assert isinstance(img, np.ndarray)
+ assert img.ndim == 2
+ assert isinstance(clip_limit, (float, int))
+ assert is_tuple_of(tile_grid_size, int)
+ assert len(tile_grid_size) == 2
+
+ clahe = cv2.createCLAHE(clip_limit, tile_grid_size)
+ return clahe.apply(np.array(img, dtype=np.uint8))
+
+
+def adjust_hue(img: np.ndarray,
+ hue_factor: float,
+ backend: Optional[str] = None) -> np.ndarray:
+ """Adjust hue of an image.
+
+ The image hue is adjusted by converting the image to HSV and cyclically
+ shifting the intensities in the hue channel (H). The image is then
+ converted back to original image mode.
+
+ `hue_factor` is the amount of shift in H channel and must be in the
+ interval `[-0.5, 0.5]`.
+
+ Modified from
+ https://github.com/pytorch/vision/blob/main/torchvision/
+ transforms/functional.py
+
+ Args:
+ img (ndarray): Image to be adjusted.
+ hue_factor (float): How much to shift the hue channel. Should be in
+ [-0.5, 0.5]. 0.5 and -0.5 give complete reversal of hue channel in
+ HSV space in positive and negative direction respectively.
+ 0 means no shift. Therefore, both -0.5 and 0.5 will give an image
+ with complementary colors while 0 gives the original image.
+ backend (str | None): The image processing backend type. Options are
+ `cv2`, `pillow`, `None`. If backend is None, the global
+ ``imread_backend`` specified by ``mmcv.use_backend()`` will be
+ used. Defaults to None.
+
+ Returns:
+ ndarray: Hue adjusted image.
+ """
+ if backend is None:
+ backend = imread_backend
+ if backend not in ['cv2', 'pillow']:
+ raise ValueError(f'backend: {backend} is not supported.'
+ f"Supported backends are 'cv2', 'pillow'")
+
+ if not (-0.5 <= hue_factor <= 0.5):
+ raise ValueError(f'hue_factor:{hue_factor} is not in [-0.5, 0.5].')
+ if not (isinstance(img, np.ndarray) and (img.ndim in {2, 3})):
+ raise TypeError('img should be ndarray with dim=[2 or 3].')
+
+ if backend == 'pillow':
+ assert img.dtype == np.uint8, 'Pillow backend only support uint8 type'
+ # Image.fromarray defaultly supports RGB, not BGR.
+ pil_image = Image.fromarray(img[..., ::-1], mode='RGB')
+ input_mode = pil_image.mode
+ if input_mode in {'L', '1', 'I', 'F'}:
+ return pil_image
+
+ h, s, v = pil_image.convert('HSV').split()
+
+ np_h = np.array(h, dtype=np.uint8)
+ # uint8 addition take cares of rotation across boundaries
+ with np.errstate(over='ignore'):
+ np_h += np.uint8(hue_factor * 255)
+ h = Image.fromarray(np_h, 'L')
+
+ pil_image = Image.merge('HSV', (h, s, v)).convert(input_mode)
+ return np.array(pil_image, dtype=img.dtype)[..., ::-1]
+ else:
+ dtype = img.dtype
+ img = img.astype(np.uint8)
+ hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV_FULL)
+ h, s, v = cv2.split(hsv_img)
+ h = h.astype(np.uint8)
+ # uint8 addition take cares of rotation across boundaries
+ with np.errstate(over='ignore'):
+ h += np.uint8(hue_factor * 255)
+ hsv_img = cv2.merge([h, s, v])
+ return cv2.cvtColor(hsv_img, cv2.COLOR_HSV2BGR_FULL).astype(dtype)
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/__init__.py b/FoodSeg103/demo/mmcv/mmcv/ops/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..ffad9b2bfdbf94cf7963a48ca5252959d43fe29c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/__init__.py
@@ -0,0 +1,118 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from mmcv.utils import IS_MLU_AVAILABLE
+from .active_rotated_filter import active_rotated_filter
+from .assign_score_withk import assign_score_withk
+from .ball_query import ball_query
+from .bbox import bbox_overlaps
+from .bezier_align import BezierAlign, bezier_align
+from .bias_act import bias_act
+from .border_align import BorderAlign, border_align
+from .box_iou_quadri import box_iou_quadri
+from .box_iou_rotated import box_iou_rotated
+from .carafe import CARAFE, CARAFENaive, CARAFEPack, carafe, carafe_naive
+from .cc_attention import CrissCrossAttention
+from .chamfer_distance import chamfer_distance
+from .contour_expand import contour_expand
+from .conv2d_gradfix import conv2d, conv_transpose2d
+from .convex_iou import convex_giou, convex_iou
+from .corner_pool import CornerPool
+from .correlation import Correlation
+from .deform_conv import DeformConv2d, DeformConv2dPack, deform_conv2d
+from .deform_roi_pool import (DeformRoIPool, DeformRoIPoolPack,
+ ModulatedDeformRoIPoolPack, deform_roi_pool)
+from .deprecated_wrappers import Conv2d_deprecated as Conv2d
+from .deprecated_wrappers import ConvTranspose2d_deprecated as ConvTranspose2d
+from .deprecated_wrappers import Linear_deprecated as Linear
+from .deprecated_wrappers import MaxPool2d_deprecated as MaxPool2d
+from .diff_iou_rotated import diff_iou_rotated_2d, diff_iou_rotated_3d
+from .filtered_lrelu import filtered_lrelu
+from .focal_loss import (SigmoidFocalLoss, SoftmaxFocalLoss,
+ sigmoid_focal_loss, softmax_focal_loss)
+from .furthest_point_sample import (furthest_point_sample,
+ furthest_point_sample_with_dist)
+from .fused_bias_leakyrelu import FusedBiasLeakyReLU, fused_bias_leakyrelu
+from .gather_points import gather_points
+from .group_points import GroupAll, QueryAndGroup, grouping_operation
+from .info import get_compiler_version, get_compiling_cuda_version
+from .iou3d import (boxes_iou3d, boxes_iou_bev, boxes_overlap_bev, nms3d,
+ nms3d_normal, nms_bev, nms_normal_bev)
+from .knn import knn
+from .masked_conv import MaskedConv2d, masked_conv2d
+from .min_area_polygons import min_area_polygons
+from .modulated_deform_conv import (ModulatedDeformConv2d,
+ ModulatedDeformConv2dPack,
+ modulated_deform_conv2d)
+from .multi_scale_deform_attn import MultiScaleDeformableAttention
+from .nms import batched_nms, nms, nms_match, nms_quadri, nms_rotated, soft_nms
+from .pixel_group import pixel_group
+from .point_sample import (SimpleRoIAlign, point_sample,
+ rel_roi_point_to_rel_img_point)
+from .points_in_boxes import (points_in_boxes_all, points_in_boxes_cpu,
+ points_in_boxes_part)
+from .points_in_polygons import points_in_polygons
+from .points_sampler import PointsSampler
+from .prroi_pool import PrRoIPool, prroi_pool
+from .psa_mask import PSAMask
+from .riroi_align_rotated import RiRoIAlignRotated, riroi_align_rotated
+from .roi_align import RoIAlign, roi_align
+from .roi_align_rotated import RoIAlignRotated, roi_align_rotated
+from .roi_pool import RoIPool, roi_pool
+from .roiaware_pool3d import RoIAwarePool3d
+from .roipoint_pool3d import RoIPointPool3d
+from .rotated_feature_align import rotated_feature_align
+from .saconv import SAConv2d
+from .scatter_points import DynamicScatter, dynamic_scatter
+from .sparse_conv import (SparseConv2d, SparseConv3d, SparseConvTranspose2d,
+ SparseConvTranspose3d, SparseInverseConv2d,
+ SparseInverseConv3d, SubMConv2d, SubMConv3d)
+from .sparse_modules import SparseModule, SparseSequential
+from .sparse_pool import SparseMaxPool2d, SparseMaxPool3d
+from .sparse_structure import SparseConvTensor, scatter_nd
+from .sync_bn import SyncBatchNorm
+from .three_interpolate import three_interpolate
+from .three_nn import three_nn
+from .tin_shift import TINShift, tin_shift
+from .upfirdn2d import filter2d, upfirdn2d, upsample2d
+from .voxelize import Voxelization, voxelization
+
+__all__ = [
+ 'bbox_overlaps', 'CARAFE', 'CARAFENaive', 'CARAFEPack', 'carafe',
+ 'carafe_naive', 'CornerPool', 'DeformConv2d', 'DeformConv2dPack',
+ 'deform_conv2d', 'DeformRoIPool', 'DeformRoIPoolPack',
+ 'ModulatedDeformRoIPoolPack', 'deform_roi_pool', 'SigmoidFocalLoss',
+ 'SoftmaxFocalLoss', 'sigmoid_focal_loss', 'softmax_focal_loss',
+ 'get_compiler_version', 'get_compiling_cuda_version', 'MaskedConv2d',
+ 'masked_conv2d', 'ModulatedDeformConv2d', 'ModulatedDeformConv2dPack',
+ 'modulated_deform_conv2d', 'batched_nms', 'nms', 'soft_nms', 'nms_match',
+ 'RoIAlign', 'roi_align', 'RoIPool', 'roi_pool', 'SyncBatchNorm', 'Conv2d',
+ 'ConvTranspose2d', 'Linear', 'MaxPool2d', 'CrissCrossAttention', 'PSAMask',
+ 'point_sample', 'rel_roi_point_to_rel_img_point', 'SimpleRoIAlign',
+ 'SAConv2d', 'TINShift', 'tin_shift', 'assign_score_withk',
+ 'box_iou_rotated', 'box_iou_quadri', 'RoIPointPool3d', 'nms_rotated',
+ 'knn', 'ball_query', 'upfirdn2d', 'FusedBiasLeakyReLU',
+ 'fused_bias_leakyrelu', 'rotated_feature_align', 'RiRoIAlignRotated',
+ 'riroi_align_rotated', 'RoIAlignRotated', 'roi_align_rotated',
+ 'pixel_group', 'QueryAndGroup', 'GroupAll', 'grouping_operation',
+ 'contour_expand', 'three_nn', 'three_interpolate',
+ 'MultiScaleDeformableAttention', 'BorderAlign', 'border_align',
+ 'gather_points', 'furthest_point_sample', 'nms_quadri',
+ 'furthest_point_sample_with_dist', 'PointsSampler', 'Correlation',
+ 'boxes_iou3d', 'boxes_iou_bev', 'boxes_overlap_bev', 'nms_bev',
+ 'nms_normal_bev', 'nms3d', 'nms3d_normal', 'Voxelization', 'voxelization',
+ 'dynamic_scatter', 'DynamicScatter', 'RoIAwarePool3d', 'SparseConv2d',
+ 'SparseConv3d', 'SparseConvTranspose2d', 'SparseConvTranspose3d',
+ 'SparseInverseConv2d', 'SparseInverseConv3d', 'SubMConv2d', 'SubMConv3d',
+ 'SparseModule', 'SparseSequential', 'SparseMaxPool2d', 'SparseMaxPool3d',
+ 'SparseConvTensor', 'scatter_nd', 'points_in_boxes_part',
+ 'points_in_boxes_cpu', 'points_in_boxes_all', 'points_in_polygons',
+ 'min_area_polygons', 'active_rotated_filter', 'convex_iou', 'convex_giou',
+ 'diff_iou_rotated_2d', 'diff_iou_rotated_3d', 'chamfer_distance',
+ 'PrRoIPool', 'prroi_pool', 'bias_act', 'filtered_lrelu', 'conv2d',
+ 'conv_transpose2d', 'filter2d', 'upsample2d', 'BezierAlign', 'bezier_align'
+]
+
+if IS_MLU_AVAILABLE:
+ from .deform_conv import DeformConv2dPack_MLU # noqa:F401
+ from .modulated_deform_conv import \
+ ModulatedDeformConv2dPack_MLU # noqa:F401
+ __all__.extend(['ModulatedDeformConv2dPack_MLU', 'DeformConv2dPack_MLU'])
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/active_rotated_filter.py b/FoodSeg103/demo/mmcv/mmcv/ops/active_rotated_filter.py
new file mode 100644
index 0000000000000000000000000000000000000000..b8ba43dd41cca14e0d74b4ba7dd8316da2ba4abe
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/active_rotated_filter.py
@@ -0,0 +1,64 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Tuple
+
+import torch
+from torch.autograd import Function
+from torch.autograd.function import once_differentiable
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext',
+ ['active_rotated_filter_forward', 'active_rotated_filter_backward'])
+
+
+class ActiveRotatedFilterFunction(Function):
+ """Encoding the orientation information and generating orientation-
+ sensitive features.
+
+ The details are described in the paper `Align Deep Features for Oriented
+ Object Detection _`.
+ """
+
+ @staticmethod
+ def forward(ctx, input: torch.Tensor,
+ indices: torch.Tensor) -> torch.Tensor:
+ """
+ Args:
+ input (torch.Tensor): Input features with shape
+ [num_output_planes, num_input_planes, num_orientations, H, W].
+ indices (torch.Tensor): Indices with shape
+ [num_orientations, H, W, num_rotations].
+
+ Returns:
+ torch.Tensor: Refined features with shape [num_output_planes *
+ num_rotations, num_input_planes * num_orientations, H, W].
+ """
+ ctx.save_for_backward(input, indices)
+ op, ip, o, h, w = input.size()
+ o, h, w, r = indices.size()
+ output = input.new_zeros((op * r, ip * o, h, w))
+ ext_module.active_rotated_filter_forward(input, indices, output)
+
+ return output
+
+ @staticmethod
+ @once_differentiable
+ def backward(ctx, grad_out: torch.Tensor) -> Tuple[torch.Tensor, None]:
+ """
+ Args:
+ grad_output (torch.Tensor): The gradient of output features
+ with shape [num_output_planes * num_rotations,
+ num_input_planes * num_orientations, H, W].
+
+ Returns:
+ torch.Tensor: The gradient of input features with shape
+ [num_output_planes, num_input_planes, num_orientations, H, W].
+ """
+ input, indices = ctx.saved_tensors
+ grad_in = torch.zeros_like(input)
+ ext_module.active_rotated_filter_backward(grad_out, indices, grad_in)
+ return grad_in, None
+
+
+active_rotated_filter = ActiveRotatedFilterFunction.apply
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/assign_score_withk.py b/FoodSeg103/demo/mmcv/mmcv/ops/assign_score_withk.py
new file mode 100644
index 0000000000000000000000000000000000000000..deca0892bddc52b51e9d2543a9e893f0bd67ebdb
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/assign_score_withk.py
@@ -0,0 +1,131 @@
+from typing import Tuple
+
+import torch
+from torch.autograd import Function
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext', ['assign_score_withk_forward', 'assign_score_withk_backward'])
+
+
+class AssignScoreWithK(Function):
+ r"""Perform weighted sum to generate output features according to scores.
+ Modified from `PAConv `_.
+
+ This is a memory-efficient CUDA implementation of assign_scores operation,
+ which first transform all point features with weight bank, then assemble
+ neighbor features with ``knn_idx`` and perform weighted sum of ``scores``.
+
+ See the `paper `_ appendix Sec. D for
+ more detailed descriptions.
+
+ Note:
+ This implementation assumes using ``neighbor`` kernel input, which is
+ (point_features - center_features, point_features).
+ See https://github.com/CVMI-Lab/PAConv/blob/main/scene_seg/model/
+ pointnet2/paconv.py#L128 for more details.
+ """
+
+ @staticmethod
+ def forward(ctx,
+ scores: torch.Tensor,
+ point_features: torch.Tensor,
+ center_features: torch.Tensor,
+ knn_idx: torch.Tensor,
+ aggregate: str = 'sum') -> torch.Tensor:
+ """
+ Args:
+ scores (torch.Tensor): (B, npoint, K, M), predicted scores to
+ aggregate weight matrices in the weight bank.
+ ``npoint`` is the number of sampled centers.
+ ``K`` is the number of queried neighbors.
+ ``M`` is the number of weight matrices in the weight bank.
+ point_features (torch.Tensor): (B, N, M, out_dim)
+ Pre-computed point features to be aggregated.
+ center_features (torch.Tensor): (B, N, M, out_dim)
+ Pre-computed center features to be aggregated.
+ knn_idx (torch.Tensor): (B, npoint, K), index of sampled kNN.
+ We assume the first idx in each row is the idx of the center.
+ aggregate (str, optional): Aggregation method.
+ Can be 'sum', 'avg' or 'max'. Defaults: 'sum'.
+
+ Returns:
+ torch.Tensor: (B, out_dim, npoint, K), the aggregated features.
+ """
+ agg = {'sum': 0, 'avg': 1, 'max': 2}
+
+ B, N, M, out_dim = point_features.size()
+ _, npoint, K, _ = scores.size()
+
+ output = point_features.new_zeros((B, out_dim, npoint, K))
+ ext_module.assign_score_withk_forward(
+ point_features.contiguous(),
+ center_features.contiguous(),
+ scores.contiguous(),
+ knn_idx.contiguous(),
+ output,
+ B=B,
+ N0=N,
+ N1=npoint,
+ M=M,
+ K=K,
+ O=out_dim,
+ aggregate=agg[aggregate])
+
+ ctx.save_for_backward(output, point_features, center_features, scores,
+ knn_idx)
+ ctx.agg = agg[aggregate]
+
+ return output
+
+ @staticmethod
+ def backward(
+ ctx, grad_out: torch.Tensor
+ ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor, None, None]:
+ """
+ Args:
+ grad_out (torch.Tensor): (B, out_dim, npoint, K)
+
+ Returns:
+ tuple[torch.Tensor]: A tuple contains five elements. The first one
+ is the gradient of ``scores`` whose shape is (B, npoint, K, M). The
+ second is the gradient of ``point_features`` whose shape is
+ (B, N, M, out_dim). The third is the gradient of
+ ``center_features`` with the shape of (B, N, M, out_dim). The last
+ two are ``None``.
+ """
+ _, point_features, center_features, scores, knn_idx = ctx.saved_tensors
+
+ agg = ctx.agg
+
+ B, N, M, out_dim = point_features.size()
+ _, npoint, K, _ = scores.size()
+
+ grad_point_features = point_features.new_zeros(point_features.shape)
+ grad_center_features = center_features.new_zeros(center_features.shape)
+ grad_scores = scores.new_zeros(scores.shape)
+
+ ext_module.assign_score_withk_backward(
+ grad_out.contiguous(),
+ point_features.contiguous(),
+ center_features.contiguous(),
+ scores.contiguous(),
+ knn_idx.contiguous(),
+ grad_point_features,
+ grad_center_features,
+ grad_scores,
+ B=B,
+ N0=N,
+ N1=npoint,
+ M=M,
+ K=K,
+ O=out_dim,
+ aggregate=agg)
+
+ return grad_scores, grad_point_features, \
+ grad_center_features, None, None
+
+
+assign_score_withk = AssignScoreWithK.apply
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/ball_query.py b/FoodSeg103/demo/mmcv/mmcv/ops/ball_query.py
new file mode 100644
index 0000000000000000000000000000000000000000..a89b36b52b1cce8ab90274418a4d1346796d971c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/ball_query.py
@@ -0,0 +1,87 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Optional, Tuple
+
+import torch
+from torch.autograd import Function
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext', ['ball_query_forward', 'stack_ball_query_forward'])
+
+
+class BallQuery(Function):
+ """Find nearby points in spherical space."""
+
+ @staticmethod
+ def forward(
+ ctx,
+ min_radius: float,
+ max_radius: float,
+ sample_num: int,
+ xyz: torch.Tensor,
+ center_xyz: torch.Tensor,
+ xyz_batch_cnt: Optional[torch.Tensor] = None,
+ center_xyz_batch_cnt: Optional[torch.Tensor] = None
+ ) -> torch.Tensor:
+ """
+ Args:
+ min_radius (float): minimum radius of the balls.
+ max_radius (float): maximum radius of the balls.
+ sample_num (int): maximum number of features in the balls.
+ xyz (torch.Tensor): (B, N, 3) xyz coordinates of the features,
+ or staked input (N1 + N2 ..., 3).
+ center_xyz (torch.Tensor): (B, npoint, 3) centers of the ball
+ query, or staked input (M1 + M2 ..., 3).
+ xyz_batch_cnt: (batch_size): Stacked input xyz coordinates nums in
+ each batch, just like (N1, N2, ...). Defaults to None.
+ New in version 1.7.0.
+ center_xyz_batch_cnt: (batch_size): Stacked centers coordinates
+ nums in each batch, just line (M1, M2, ...). Defaults to None.
+ New in version 1.7.0.
+
+ Returns:
+ torch.Tensor: (B, npoint, nsample) tensor with the indices of the
+ features that form the query balls.
+ """
+ assert center_xyz.is_contiguous()
+ assert xyz.is_contiguous()
+ assert min_radius < max_radius
+ if xyz_batch_cnt is not None and center_xyz_batch_cnt is not None:
+ assert xyz_batch_cnt.dtype == torch.int
+ assert center_xyz_batch_cnt.dtype == torch.int
+ idx = center_xyz.new_zeros((center_xyz.shape[0], sample_num),
+ dtype=torch.int32)
+ ext_module.stack_ball_query_forward(
+ center_xyz,
+ center_xyz_batch_cnt,
+ xyz,
+ xyz_batch_cnt,
+ idx,
+ max_radius=max_radius,
+ nsample=sample_num,
+ )
+ else:
+ B, N, _ = xyz.size()
+ npoint = center_xyz.size(1)
+ idx = xyz.new_zeros(B, npoint, sample_num, dtype=torch.int32)
+ ext_module.ball_query_forward(
+ center_xyz,
+ xyz,
+ idx,
+ b=B,
+ n=N,
+ m=npoint,
+ min_radius=min_radius,
+ max_radius=max_radius,
+ nsample=sample_num)
+ if torch.__version__ != 'parrots':
+ ctx.mark_non_differentiable(idx)
+ return idx
+
+ @staticmethod
+ def backward(ctx, a=None) -> Tuple[None, None, None, None]:
+ return None, None, None, None
+
+
+ball_query = BallQuery.apply
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/bbox.py b/FoodSeg103/demo/mmcv/mmcv/ops/bbox.py
new file mode 100644
index 0000000000000000000000000000000000000000..4583ba7d5a867a86f4a798c524b2c48e9c8f1ae0
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/bbox.py
@@ -0,0 +1,126 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', ['bbox_overlaps'])
+
+
+def _bbox_overlaps_cpu(bboxes1: torch.Tensor,
+ bboxes2: torch.Tensor,
+ mode: str = 'iou',
+ aligned: bool = False,
+ offset: int = 0) -> torch.Tensor:
+ assert mode in ['iou', 'iof']
+
+ if aligned:
+ lt = torch.max(bboxes1[:, :2], bboxes2[:, :2]) # [rows, 2]
+ rb = torch.min(bboxes1[:, 2:], bboxes2[:, 2:]) # [rows, 2]
+
+ wh = (rb - lt + offset).clamp(min=0) # [rows, 2]
+ overlap = wh[:, 0] * wh[:, 1]
+ area1 = (bboxes1[:, 2] - bboxes1[:, 0] + offset) * (
+ bboxes1[:, 3] - bboxes1[:, 1] + offset)
+
+ if mode == 'iou':
+ area2 = (bboxes2[:, 2] - bboxes2[:, 0] + offset) * (
+ bboxes2[:, 3] - bboxes2[:, 1] + offset)
+ ious = overlap / (area1 + area2 - overlap)
+ else:
+ ious = overlap / area1
+ else:
+ lt = torch.max(bboxes1[:, None, :2], bboxes2[:, :2]) # [rows, cols, 2]
+ rb = torch.min(bboxes1[:, None, 2:], bboxes2[:, 2:]) # [rows, cols, 2]
+
+ wh = (rb - lt + offset).clamp(min=0) # [rows, cols, 2]
+ overlap = wh[:, :, 0] * wh[:, :, 1]
+ area1 = (bboxes1[:, 2] - bboxes1[:, 0] + offset) * (
+ bboxes1[:, 3] - bboxes1[:, 1] + offset)
+
+ if mode == 'iou':
+ area2 = (bboxes2[:, 2] - bboxes2[:, 0] + offset) * (
+ bboxes2[:, 3] - bboxes2[:, 1] + offset)
+ ious = overlap / (area1[:, None] + area2 - overlap)
+ else:
+ ious = overlap / (area1[:, None])
+
+ return ious
+
+
+def bbox_overlaps(bboxes1: torch.Tensor,
+ bboxes2: torch.Tensor,
+ mode: str = 'iou',
+ aligned: bool = False,
+ offset: int = 0) -> torch.Tensor:
+ """Calculate overlap between two set of bboxes.
+
+ If ``aligned`` is ``False``, then calculate the ious between each bbox
+ of bboxes1 and bboxes2, otherwise the ious between each aligned pair of
+ bboxes1 and bboxes2.
+
+ Args:
+ bboxes1 (torch.Tensor): shape (m, 4) in format or
+ empty.
+ bboxes2 (torch.Tensor): shape (n, 4) in format or
+ empty. If aligned is ``True``, then m and n must be equal.
+ mode (str): "iou" (intersection over union) or iof (intersection over
+ foreground).
+
+ Returns:
+ torch.Tensor: Return the ious betweens boxes. If ``aligned`` is
+ ``False``, the shape of ious is (m, n) else (m, 1).
+
+ Example:
+ >>> bboxes1 = torch.FloatTensor([
+ >>> [0, 0, 10, 10],
+ >>> [10, 10, 20, 20],
+ >>> [32, 32, 38, 42],
+ >>> ])
+ >>> bboxes2 = torch.FloatTensor([
+ >>> [0, 0, 10, 20],
+ >>> [0, 10, 10, 19],
+ >>> [10, 10, 20, 20],
+ >>> ])
+ >>> bbox_overlaps(bboxes1, bboxes2)
+ tensor([[0.5000, 0.0000, 0.0000],
+ [0.0000, 0.0000, 1.0000],
+ [0.0000, 0.0000, 0.0000]])
+
+ Example:
+ >>> empty = torch.FloatTensor([])
+ >>> nonempty = torch.FloatTensor([
+ >>> [0, 0, 10, 9],
+ >>> ])
+ >>> assert tuple(bbox_overlaps(empty, nonempty).shape) == (0, 1)
+ >>> assert tuple(bbox_overlaps(nonempty, empty).shape) == (1, 0)
+ >>> assert tuple(bbox_overlaps(empty, empty).shape) == (0, 0)
+ """
+
+ mode_dict = {'iou': 0, 'iof': 1}
+ assert mode in mode_dict.keys()
+ mode_flag = mode_dict[mode]
+ # Either the boxes are empty or the length of boxes' last dimension is 4
+ assert (bboxes1.size(-1) == 4 or bboxes1.size(0) == 0)
+ assert (bboxes2.size(-1) == 4 or bboxes2.size(0) == 0)
+ assert offset == 1 or offset == 0
+
+ rows = bboxes1.size(0)
+ cols = bboxes2.size(0)
+
+ if aligned:
+ assert rows == cols
+ ious = bboxes1.new_zeros(rows)
+ else:
+ ious = bboxes1.new_zeros((rows, cols))
+
+ if rows * cols == 0:
+ return ious
+
+ if bboxes1.device.type == 'cpu' and torch.__version__ == 'parrots':
+ return _bbox_overlaps_cpu(
+ bboxes1, bboxes2, mode=mode, aligned=aligned, offset=offset)
+
+ ext_module.bbox_overlaps(
+ bboxes1, bboxes2, ious, mode=mode_flag, aligned=aligned, offset=offset)
+
+ return ious
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/bezier_align.py b/FoodSeg103/demo/mmcv/mmcv/ops/bezier_align.py
new file mode 100644
index 0000000000000000000000000000000000000000..6db7f5c8d8567b4c6ad5df2eb77f6cf60a4f0bb6
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/bezier_align.py
@@ -0,0 +1,137 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Tuple, Union
+
+import torch
+import torch.nn as nn
+from torch.autograd import Function
+from torch.autograd.function import once_differentiable
+from torch.nn.modules.utils import _pair
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext', ['bezier_align_forward', 'bezier_align_backward'])
+
+
+class BezierAlignFunction(Function):
+
+ @staticmethod
+ def forward(ctx,
+ input: torch.Tensor,
+ beziers: torch.Tensor,
+ output_size: Union[int, Tuple[int, int]],
+ spatial_scale: Union[int, float] = 1.0,
+ sampling_ratio: int = 0,
+ aligned: bool = True) -> torch.Tensor:
+ ctx.output_size = _pair(output_size)
+ ctx.spatial_scale = spatial_scale
+ ctx.input_shape = input.size()
+ ctx.sampling_ratio = sampling_ratio
+ ctx.aligned = aligned
+
+ assert beziers.size(1) == 17
+ output_shape = (beziers.size(0), input.size(1), ctx.output_size[0],
+ ctx.output_size[1])
+ output = input.new_zeros(output_shape)
+ ext_module.bezier_align_forward(
+ input,
+ beziers,
+ output,
+ aligned_height=ctx.output_size[0],
+ aligned_width=ctx.output_size[1],
+ spatial_scale=ctx.spatial_scale,
+ sampling_ratio=ctx.sampling_ratio,
+ aligned=ctx.aligned)
+
+ ctx.save_for_backward(beziers)
+ return output
+
+ @staticmethod
+ @once_differentiable
+ def backward(ctx, grad_output: torch.Tensor):
+ beziers = ctx.saved_tensors[0]
+ grad_input = grad_output.new_zeros(ctx.input_shape)
+ grad_output = grad_output.contiguous()
+ ext_module.bezier_align_backward(
+ grad_output,
+ beziers,
+ grad_input,
+ aligned_height=ctx.output_size[0],
+ aligned_width=ctx.output_size[1],
+ spatial_scale=ctx.spatial_scale,
+ sampling_ratio=ctx.sampling_ratio,
+ aligned=ctx.aligned)
+ return grad_input, None, None, None, None, None
+
+
+bezier_align = BezierAlignFunction.apply
+
+
+class BezierAlign(nn.Module):
+ """Bezier align pooling layer.
+
+ Args:
+ output_size (tuple): h, w
+ spatial_scale (float): scale the input boxes by this number
+ sampling_ratio (int): number of inputs samples to take for each
+ output sample. 0 to take samples densely for current models.
+ aligned (bool): if False, use the legacy implementation in
+ MMDetection. If True, align the results more perfectly.
+
+ Note:
+ The implementation of BezierAlign is modified from
+ https://github.com/aim-uofa/AdelaiDet
+
+ The meaning of aligned=True:
+
+ Given a continuous coordinate c, its two neighboring pixel
+ indices (in our pixel model) are computed by floor(c - 0.5) and
+ ceil(c - 0.5). For example, c=1.3 has pixel neighbors with discrete
+ indices [0] and [1] (which are sampled from the underlying signal
+ at continuous coordinates 0.5 and 1.5). But the original roi_align
+ (aligned=False) does not subtract the 0.5 when computing
+ neighboring pixel indices and therefore it uses pixels with a
+ slightly incorrect alignment (relative to our pixel model) when
+ performing bilinear interpolation.
+
+ With `aligned=True`,
+ we first appropriately scale the ROI and then shift it by -0.5
+ prior to calling roi_align. This produces the correct neighbors;
+
+ The difference does not make a difference to the model's
+ performance if ROIAlign is used together with conv layers.
+ """
+
+ def __init__(
+ self,
+ output_size: Tuple,
+ spatial_scale: Union[int, float],
+ sampling_ratio: int,
+ aligned: bool = True,
+ ) -> None:
+ super().__init__()
+
+ self.output_size = _pair(output_size)
+ self.spatial_scale = float(spatial_scale)
+ self.sampling_ratio = int(sampling_ratio)
+ self.aligned = aligned
+
+ def forward(self, input: torch.Tensor,
+ beziers: torch.Tensor) -> torch.Tensor:
+ """BezierAlign forward.
+
+ Args:
+ inputs (Tensor): input features.
+ beziers (Tensor): beziers for align.
+ """
+ return bezier_align(input, beziers, self.output_size,
+ self.spatial_scale, self.sampling_ratio,
+ self.aligned)
+
+ def __repr__(self):
+ s = self.__class__.__name__
+ s += f'(output_size={self.output_size}, '
+ s += f'spatial_scale={self.spatial_scale})'
+ s += f'sampling_ratio={self.sampling_ratio})'
+ s += f'aligned={self.aligned})'
+ return s
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/bias_act.py b/FoodSeg103/demo/mmcv/mmcv/ops/bias_act.py
new file mode 100644
index 0000000000000000000000000000000000000000..3dfa55743e0a0a6e8ad408c5937d9097cce6ea7d
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/bias_act.py
@@ -0,0 +1,375 @@
+# Modified from
+# https://github.com/NVlabs/stylegan3/blob/main/torch_utils/ops/bias_act.py
+
+# Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+#
+# NVIDIA CORPORATION and its licensors retain all intellectual property
+# and proprietary rights in and to this software, related documentation
+# and any modifications thereto. Any use, reproduction, disclosure or
+# distribution of this software and related documentation without an express
+# license agreement from NVIDIA CORPORATION is strictly prohibited.
+
+# source: https://github.com/open-mmlab/mmediting/blob/dev-1.x/mmedit/models/editors/stylegan3/stylegan3_ops/ops/bias_act.py # noqa
+"""Custom PyTorch ops for efficient bias and activation."""
+
+from typing import Any, Dict, Optional, Union
+
+import numpy as np
+import torch
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', ['bias_act'])
+
+
+class EasyDict(dict):
+ """Convenience class that behaves like a dict but allows access with the
+ attribute syntax."""
+
+ def __getattr__(self, name: str) -> Any:
+ try:
+ return self[name]
+ except KeyError:
+ raise AttributeError(name)
+
+ def __setattr__(self, name: str, value: Any) -> None:
+ self[name] = value
+
+ def __delattr__(self, name: str) -> None:
+ del self[name]
+
+
+activation_funcs = {
+ 'linear':
+ EasyDict(
+ func=lambda x, **_: x,
+ def_alpha=0,
+ def_gain=1,
+ cuda_idx=1,
+ ref='',
+ has_2nd_grad=False),
+ 'relu':
+ EasyDict(
+ func=lambda x, **_: torch.nn.functional.relu(x),
+ def_alpha=0,
+ def_gain=np.sqrt(2),
+ cuda_idx=2,
+ ref='y',
+ has_2nd_grad=False),
+ 'lrelu':
+ EasyDict(
+ func=lambda x, alpha, **_: torch.nn.functional.leaky_relu(x, alpha),
+ def_alpha=0.2,
+ def_gain=np.sqrt(2),
+ cuda_idx=3,
+ ref='y',
+ has_2nd_grad=False),
+ 'tanh':
+ EasyDict(
+ func=lambda x, **_: torch.tanh(x),
+ def_alpha=0,
+ def_gain=1,
+ cuda_idx=4,
+ ref='y',
+ has_2nd_grad=True),
+ 'sigmoid':
+ EasyDict(
+ func=lambda x, **_: torch.sigmoid(x),
+ def_alpha=0,
+ def_gain=1,
+ cuda_idx=5,
+ ref='y',
+ has_2nd_grad=True),
+ 'elu':
+ EasyDict(
+ func=lambda x, **_: torch.nn.functional.elu(x),
+ def_alpha=0,
+ def_gain=1,
+ cuda_idx=6,
+ ref='y',
+ has_2nd_grad=True),
+ 'selu':
+ EasyDict(
+ func=lambda x, **_: torch.nn.functional.selu(x),
+ def_alpha=0,
+ def_gain=1,
+ cuda_idx=7,
+ ref='y',
+ has_2nd_grad=True),
+ 'softplus':
+ EasyDict(
+ func=lambda x, **_: torch.nn.functional.softplus(x),
+ def_alpha=0,
+ def_gain=1,
+ cuda_idx=8,
+ ref='y',
+ has_2nd_grad=True),
+ 'swish':
+ EasyDict(
+ func=lambda x, **_: torch.sigmoid(x) * x,
+ def_alpha=0,
+ def_gain=np.sqrt(2),
+ cuda_idx=9,
+ ref='x',
+ has_2nd_grad=True),
+}
+
+_null_tensor = torch.empty([0])
+
+
+def bias_act(input: torch.Tensor,
+ bias: Optional[torch.Tensor] = None,
+ dim: int = 1,
+ act: str = 'linear',
+ alpha: Optional[Union[float, int]] = None,
+ gain: Optional[float] = None,
+ clamp: Optional[float] = None,
+ use_custom_op: bool = True):
+ r"""Fused bias and activation function.
+
+ Adds `bias` to activation tensor `input`, and evaluates activation
+ function `act`, and scales the result by `gain`. Each of the steps is
+ optional.
+
+ In most cases, the fused op is considerably more efficient than performing
+ the same calculation using standard PyTorch ops. It supports first and
+ second order gradients, but not third order gradients.
+
+ Args:
+ input (torch.Tensor): Input activation tensor. Can be of any shape.
+ bias (torch.Tensor): Bias vector, or `None` to disable.
+ Must be a 1D tensor of the same type as `input`. The shape must
+ be known, and it must match the dimension of `input` corresponding
+ to `dim`. Defaults to None.
+ dim (int): The dimension in `input` corresponding to the elements of
+ `bias`. The value of `dim` is ignored if `b` is not specified.
+ Defaults to 1.
+ act (str): Name of the activation function to evaluate, or `"linear"`
+ to disable. Can be e.g. "relu", "lrelu", "tanh", "sigmoid",
+ "swish", etc. See `activation_funcs` for a full list. `None` is not
+ allowed. Defaults to `linear`.
+ alpha (float or int): Shape parameter for the activation
+ function, or `None` to use the default. Defaults to None.
+ gain (float): Scaling factor for the output tensor, or `None`
+ to use default. See `activation_funcs` for the default scaling of
+ each activation function. If unsure, consider specifying 1.
+ Defaults to None.
+ clamp (float): Clamp the output values to `[-clamp, +clamp]`,
+ or `None` to disable the clamping (default). Defaults to None.
+ use_custom_op (bool): Whether to use customized op.
+ Defaults to True.
+
+ Returns:
+ torch.Tensor: Tensor of the same shape and datatype as `input`.
+ """
+ assert isinstance(input, torch.Tensor)
+ if use_custom_op and input.is_cuda:
+ return _bias_act_cuda(
+ dim=dim, act=act, alpha=alpha, gain=gain,
+ clamp=clamp).apply(input, bias)
+ return _bias_act_ref(
+ input=input,
+ bias=bias,
+ dim=dim,
+ act=act,
+ alpha=alpha,
+ gain=gain,
+ clamp=clamp)
+
+
+def _bias_act_ref(input: torch.Tensor,
+ bias: Optional[torch.Tensor] = None,
+ dim: int = 1,
+ act: str = 'linear',
+ alpha: Optional[Union[float, int]] = None,
+ gain: Optional[float] = None,
+ clamp: Optional[float] = None):
+ """Slow reference implementation of `bias_act()` using standard PyTorch
+ ops.
+
+ Adds `bias` to activation tensor `input`, and evaluates activation
+ function `act`, and scales the result by `gain`. Each of the steps is
+ optional.
+
+ In most cases, the fused op is considerably more efficient than performing
+ the same calculation using standard PyTorch ops. It supports first and
+ second order gradients, but not third order gradients.
+
+ Args:
+ input (torch.Tensor): Input activation tensor. Can be of any shape.
+ bias (torch.Tensor): Bias vector, or `None` to disable.
+ Must be a 1D tensor of the same type as `input`. The shape must
+ be known, and it must match the dimension of `input` corresponding
+ to `dim`. Defaults to None.
+ dim (int): The dimension in `input` corresponding to the elements of
+ `bias`. The value of `dim` is ignored if `b` is not specified.
+ Defaults to 1.
+ act (str): Name of the activation function to evaluate, or `"linear"`
+ to disable. Can be e.g. "relu", "lrelu", "tanh", "sigmoid",
+ "swish", etc. See `activation_funcs` for a full list. `None` is not
+ allowed. Defaults to `linear`.
+ alpha (float or int): Shape parameter for the activation
+ function, or `None` to use the default. Defaults to None.
+ gain (float): Scaling factor for the output tensor, or `None`
+ to use default. See `activation_funcs` for the default scaling of
+ each activation function. If unsure, consider specifying 1.
+ Defaults to None.
+ clamp (float): Clamp the output values to
+ `[-clamp, +clamp]`, or `None` to disable the clamping (default).
+ Defaults to None.
+
+ Returns:
+ torch.Tensor: Tensor of the same shape and datatype as `input`.
+ """
+ assert isinstance(input, torch.Tensor)
+ assert clamp is None or clamp >= 0
+ spec = activation_funcs[act]
+ alpha = float(alpha if alpha is not None else spec.def_alpha)
+ gain = float(gain if gain is not None else spec.def_gain)
+ clamp = float(clamp if clamp is not None else -1)
+
+ # Add bias.
+ if bias is not None:
+ assert isinstance(bias, torch.Tensor) and bias.ndim == 1
+ assert 0 <= dim < input.ndim
+ assert bias.shape[0] == input.shape[dim]
+ input = input + bias.reshape(
+ [-1 if i == dim else 1 for i in range(input.ndim)])
+
+ # Evaluate activation function.
+ alpha = float(alpha)
+ output = spec.func(input, alpha=alpha)
+
+ # Scale by gain.
+ gain = float(gain)
+ if gain != 1:
+ output = output * gain
+
+ # Clamp.
+ if clamp >= 0:
+ # pylint: disable=invalid-unary-operand-type
+ output = output.clamp(-clamp, clamp)
+ return output
+
+
+_bias_act_cuda_cache: Dict = dict()
+
+
+def _bias_act_cuda(dim: int = 1,
+ act: str = 'linear',
+ alpha: Optional[Union[float, int]] = None,
+ gain: Optional[float] = None,
+ clamp: Optional[float] = None):
+ """"Fast CUDA implementation of `bias_act()` using custom ops.
+
+ Args:
+ dim (int): The dimension in `x` corresponding to the elements of `b`.
+ The value of `dim` is ignored if `b` is not specified.
+ Defaults to 1.
+ act (str): Name of the activation function to evaluate, or `"linear"`
+ to disable. Can be e.g. "relu", "lrelu", "tanh", "sigmoid",
+ "swish", etc. See `activation_funcs` for a full list. `None` is not
+ allowed. Defaults to `linear`.
+ alpha (float | int): Shape parameter for the activation
+ function, or `None` to use the default. Defaults to None.
+ gain (float): Scaling factor for the output tensor, or `None`
+ to use default. See `activation_funcs` for the default scaling of
+ each activation function. If unsure, consider specifying 1.
+ Defaults to None.
+ clamp (float): Clamp the output values to `[-clamp, +clamp]`,
+ or `None` to disable the clamping (default). Defaults to None.
+
+ Returns:
+ torch.Tensor: Tensor of the same shape and datatype as `x`.
+ """
+ # Parse arguments.
+ assert clamp is None or clamp >= 0
+ spec = activation_funcs[act]
+ alpha = float(alpha if alpha is not None else spec.def_alpha)
+ gain = float(gain if gain is not None else spec.def_gain)
+ clamp = float(clamp if clamp is not None else -1)
+
+ # Lookup from cache.
+ key = (dim, act, alpha, gain, clamp)
+ if key in _bias_act_cuda_cache:
+ return _bias_act_cuda_cache[key]
+
+ # Forward op.
+ class BiasActCuda(torch.autograd.Function):
+
+ @staticmethod
+ def forward(ctx, x, b): # pylint: disable=arguments-differ
+ ctx.memory_format = torch.channels_last if x.ndim > 2 and x.stride(
+ 1) == 1 else torch.contiguous_format
+ x = x.contiguous(memory_format=ctx.memory_format)
+ b = b.contiguous() if b is not None else _null_tensor.to(x.device)
+ y = x
+ if act != 'linear' or gain != 1 or clamp >= 0 or (
+ b is not _null_tensor.to(x.device)):
+ y = ext_module.bias_act(x, b, _null_tensor.to(x.device),
+ _null_tensor.to(x.device),
+ _null_tensor.to(x.device), 0, dim,
+ spec.cuda_idx, alpha, gain, clamp)
+ ctx.save_for_backward(
+ x if 'x' in spec.ref or spec.has_2nd_grad else _null_tensor.to(
+ x.device), b if 'x' in spec.ref or spec.has_2nd_grad else
+ _null_tensor.to(x.device),
+ y if 'y' in spec.ref else _null_tensor.to(x.device))
+ return y
+
+ @staticmethod
+ def backward(ctx, dy): # pylint: disable=arguments-differ
+ dy = dy.contiguous(memory_format=ctx.memory_format)
+ x, b, y = ctx.saved_tensors
+ dx = None
+ db = None
+
+ if ctx.needs_input_grad[0] or ctx.needs_input_grad[1]:
+ dx = dy
+ if act != 'linear' or gain != 1 or clamp >= 0:
+ dx = BiasActCudaGrad.apply(dy, x, b, y)
+
+ if ctx.needs_input_grad[1]:
+ db = dx.sum([i for i in range(dx.ndim) if i != dim])
+
+ return dx, db
+
+ # Backward op.
+ class BiasActCudaGrad(torch.autograd.Function):
+
+ @staticmethod
+ def forward(ctx, dy, x, b, y): # pylint: disable=arguments-differ
+ ctx.memory_format = torch.channels_last if dy.ndim > 2 and (
+ dy.stride(1) == 1) else torch.contiguous_format
+ dx = ext_module.bias_act(dy, b, x, y, _null_tensor.to(x.device), 1,
+ dim, spec.cuda_idx, alpha, gain, clamp)
+ ctx.save_for_backward(
+ dy if spec.has_2nd_grad else _null_tensor.to(x.device), x, b,
+ y)
+ return dx
+
+ @staticmethod
+ def backward(ctx, d_dx): # pylint: disable=arguments-differ
+ d_dx = d_dx.contiguous(memory_format=ctx.memory_format)
+ dy, x, b, y = ctx.saved_tensors
+ d_dy = None
+ d_x = None
+ d_b = None
+ d_y = None
+
+ if ctx.needs_input_grad[0]:
+ d_dy = BiasActCudaGrad.apply(d_dx, x, b, y)
+
+ if spec.has_2nd_grad and (ctx.needs_input_grad[1]
+ or ctx.needs_input_grad[2]):
+ d_x = ext_module.bias_act(d_dx, b, x, y, dy, 2, dim,
+ spec.cuda_idx, alpha, gain, clamp)
+
+ if spec.has_2nd_grad and ctx.needs_input_grad[2]:
+ d_b = d_x.sum([i for i in range(d_x.ndim) if i != dim])
+
+ return d_dy, d_x, d_b, d_y
+
+ # Add to cache.
+ _bias_act_cuda_cache[key] = BiasActCuda
+ return BiasActCuda
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/border_align.py b/FoodSeg103/demo/mmcv/mmcv/ops/border_align.py
new file mode 100644
index 0000000000000000000000000000000000000000..c09501b962cfce10b1da87e6b651d61911eb8406
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/border_align.py
@@ -0,0 +1,114 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+# modified from
+# https://github.com/Megvii-BaseDetection/cvpods/blob/master/cvpods/layers/border_align.py
+
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+from torch.autograd import Function
+from torch.autograd.function import once_differentiable
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext', ['border_align_forward', 'border_align_backward'])
+
+
+class BorderAlignFunction(Function):
+
+ @staticmethod
+ def symbolic(g, input, boxes, pool_size):
+ return g.op(
+ 'mmcv::MMCVBorderAlign', input, boxes, pool_size_i=pool_size)
+
+ @staticmethod
+ def forward(ctx, input: torch.Tensor, boxes: torch.Tensor,
+ pool_size: int) -> torch.Tensor:
+ ctx.pool_size = pool_size
+ ctx.input_shape = input.size()
+
+ assert boxes.ndim == 3, 'boxes must be with shape [B, H*W, 4]'
+ assert boxes.size(2) == 4, \
+ 'the last dimension of boxes must be (x1, y1, x2, y2)'
+ assert input.size(1) % 4 == 0, \
+ 'the channel for input feature must be divisible by factor 4'
+
+ # [B, C//4, H*W, 4]
+ output_shape = (input.size(0), input.size(1) // 4, boxes.size(1), 4)
+ output = input.new_zeros(output_shape)
+ # `argmax_idx` only used for backward
+ argmax_idx = input.new_zeros(output_shape).to(torch.int)
+
+ ext_module.border_align_forward(
+ input, boxes, output, argmax_idx, pool_size=ctx.pool_size)
+
+ ctx.save_for_backward(boxes, argmax_idx)
+ return output
+
+ @staticmethod
+ @once_differentiable
+ def backward(ctx,
+ grad_output: torch.Tensor) -> Tuple[torch.Tensor, None, None]:
+ boxes, argmax_idx = ctx.saved_tensors
+ grad_input = grad_output.new_zeros(ctx.input_shape)
+ # complex head architecture may cause grad_output uncontiguous
+ grad_output = grad_output.contiguous()
+ ext_module.border_align_backward(
+ grad_output,
+ boxes,
+ argmax_idx,
+ grad_input,
+ pool_size=ctx.pool_size)
+ return grad_input, None, None
+
+
+border_align = BorderAlignFunction.apply
+
+
+class BorderAlign(nn.Module):
+ r"""Border align pooling layer.
+
+ Applies border_align over the input feature based on predicted bboxes.
+ The details were described in the paper
+ `BorderDet: Border Feature for Dense Object Detection
+ `_.
+
+ For each border line (e.g. top, left, bottom or right) of each box,
+ border_align does the following:
+
+ 1. uniformly samples ``pool_size`` +1 positions on this line, involving
+ the start and end points.
+ 2. the corresponding features on these points are computed by bilinear
+ interpolation.
+ 3. max pooling over all the ``pool_size`` +1 positions are used for
+ computing pooled feature.
+
+ Args:
+ pool_size (int): number of positions sampled over the boxes' borders
+ (e.g. top, bottom, left, right).
+ """
+
+ def __init__(self, pool_size: int):
+ super().__init__()
+ self.pool_size = pool_size
+
+ def forward(self, input: torch.Tensor,
+ boxes: torch.Tensor) -> torch.Tensor:
+ """
+ Args:
+ input: Features with shape [N,4C,H,W]. Channels ranged in [0,C),
+ [C,2C), [2C,3C), [3C,4C) represent the top, left, bottom,
+ right features respectively.
+ boxes: Boxes with shape [N,H*W,4]. Coordinate format (x1,y1,x2,y2).
+
+ Returns:
+ torch.Tensor: Pooled features with shape [N,C,H*W,4]. The order is
+ (top,left,bottom,right) for the last dimension.
+ """
+ return border_align(input, boxes, self.pool_size)
+
+ def __repr__(self):
+ s = self.__class__.__name__
+ s += f'(pool_size={self.pool_size})'
+ return s
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/box_iou_quadri.py b/FoodSeg103/demo/mmcv/mmcv/ops/box_iou_quadri.py
new file mode 100644
index 0000000000000000000000000000000000000000..89747fdf1f03e0491351f876385ba3c1369ebaf7
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/box_iou_quadri.py
@@ -0,0 +1,49 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', ['box_iou_quadri'])
+
+
+def box_iou_quadri(bboxes1: torch.Tensor,
+ bboxes2: torch.Tensor,
+ mode: str = 'iou',
+ aligned: bool = False) -> torch.Tensor:
+ """Return intersection-over-union (Jaccard index) of boxes.
+
+ Both sets of boxes are expected to be in
+ (x1, y1, ..., x4, y4) format.
+
+ If ``aligned`` is ``False``, then calculate the ious between each bbox
+ of bboxes1 and bboxes2, otherwise the ious between each aligned pair of
+ bboxes1 and bboxes2.
+
+ Args:
+ bboxes1 (torch.Tensor): quadrilateral bboxes 1. It has shape (N, 8),
+ indicating (x1, y1, ..., x4, y4) for each row.
+ bboxes2 (torch.Tensor): quadrilateral bboxes 2. It has shape (M, 8),
+ indicating (x1, y1, ..., x4, y4) for each row.
+ mode (str): "iou" (intersection over union) or iof (intersection over
+ foreground).
+
+ Returns:
+ torch.Tensor: Return the ious betweens boxes. If ``aligned`` is
+ ``False``, the shape of ious is (N, M) else (N,).
+ """
+ assert mode in ['iou', 'iof']
+ mode_dict = {'iou': 0, 'iof': 1}
+ mode_flag = mode_dict[mode]
+ rows = bboxes1.size(0)
+ cols = bboxes2.size(0)
+ if aligned:
+ ious = bboxes1.new_zeros(rows)
+ else:
+ ious = bboxes1.new_zeros(rows * cols)
+ bboxes1 = bboxes1.contiguous()
+ bboxes2 = bboxes2.contiguous()
+ ext_module.box_iou_quadri(
+ bboxes1, bboxes2, ious, mode_flag=mode_flag, aligned=aligned)
+ if not aligned:
+ ious = ious.view(rows, cols)
+ return ious
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/box_iou_rotated.py b/FoodSeg103/demo/mmcv/mmcv/ops/box_iou_rotated.py
new file mode 100644
index 0000000000000000000000000000000000000000..a811531d4283f37cab80ae06af35d8d223d4b949
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/box_iou_rotated.py
@@ -0,0 +1,156 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', ['box_iou_rotated'])
+
+
+def box_iou_rotated(bboxes1: torch.Tensor,
+ bboxes2: torch.Tensor,
+ mode: str = 'iou',
+ aligned: bool = False,
+ clockwise: bool = True) -> torch.Tensor:
+ """Return intersection-over-union (Jaccard index) of boxes.
+
+ Both sets of boxes are expected to be in
+ (x_center, y_center, width, height, angle) format.
+
+ If ``aligned`` is ``False``, then calculate the ious between each bbox
+ of bboxes1 and bboxes2, otherwise the ious between each aligned pair of
+ bboxes1 and bboxes2.
+
+ .. note::
+ The operator assumes:
+
+ 1) The positive direction along x axis is left -> right.
+
+ 2) The positive direction along y axis is top -> down.
+
+ 3) The w border is in parallel with x axis when angle = 0.
+
+ However, there are 2 opposite definitions of the positive angular
+ direction, clockwise (CW) and counter-clockwise (CCW). MMCV supports
+ both definitions and uses CW by default.
+
+ Please set ``clockwise=False`` if you are using the CCW definition.
+
+ The coordinate system when ``clockwise`` is ``True`` (default)
+
+ .. code-block:: none
+
+ 0-------------------> x (0 rad)
+ | A-------------B
+ | | |
+ | | box h
+ | | angle=0 |
+ | D------w------C
+ v
+ y (pi/2 rad)
+
+ In such coordination system the rotation matrix is
+
+ .. math::
+ \\begin{pmatrix}
+ \\cos\\alpha & -\\sin\\alpha \\\\
+ \\sin\\alpha & \\cos\\alpha
+ \\end{pmatrix}
+
+ The coordinates of the corner point A can be calculated as:
+
+ .. math::
+ P_A=
+ \\begin{pmatrix} x_A \\\\ y_A\\end{pmatrix}
+ =
+ \\begin{pmatrix} x_{center} \\\\ y_{center}\\end{pmatrix} +
+ \\begin{pmatrix}\\cos\\alpha & -\\sin\\alpha \\\\
+ \\sin\\alpha & \\cos\\alpha\\end{pmatrix}
+ \\begin{pmatrix} -0.5w \\\\ -0.5h\\end{pmatrix} \\\\
+ =
+ \\begin{pmatrix} x_{center}-0.5w\\cos\\alpha+0.5h\\sin\\alpha
+ \\\\
+ y_{center}-0.5w\\sin\\alpha-0.5h\\cos\\alpha\\end{pmatrix}
+
+
+ The coordinate system when ``clockwise`` is ``False``
+
+ .. code-block:: none
+
+ 0-------------------> x (0 rad)
+ | A-------------B
+ | | |
+ | | box h
+ | | angle=0 |
+ | D------w------C
+ v
+ y (-pi/2 rad)
+
+ In such coordination system the rotation matrix is
+
+ .. math::
+ \\begin{pmatrix}
+ \\cos\\alpha & \\sin\\alpha \\\\
+ -\\sin\\alpha & \\cos\\alpha
+ \\end{pmatrix}
+
+ The coordinates of the corner point A can be calculated as:
+
+ .. math::
+ P_A=
+ \\begin{pmatrix} x_A \\\\ y_A\\end{pmatrix}
+ =
+ \\begin{pmatrix} x_{center} \\\\ y_{center}\\end{pmatrix} +
+ \\begin{pmatrix}\\cos\\alpha & \\sin\\alpha \\\\
+ -\\sin\\alpha & \\cos\\alpha\\end{pmatrix}
+ \\begin{pmatrix} -0.5w \\\\ -0.5h\\end{pmatrix} \\\\
+ =
+ \\begin{pmatrix} x_{center}-0.5w\\cos\\alpha-0.5h\\sin\\alpha
+ \\\\
+ y_{center}+0.5w\\sin\\alpha-0.5h\\cos\\alpha\\end{pmatrix}
+
+ Args:
+ boxes1 (torch.Tensor): rotated bboxes 1. It has shape (N, 5),
+ indicating (x, y, w, h, theta) for each row. Note that theta is in
+ radian.
+ boxes2 (torch.Tensor): rotated bboxes 2. It has shape (M, 5),
+ indicating (x, y, w, h, theta) for each row. Note that theta is in
+ radian.
+ mode (str): "iou" (intersection over union) or iof (intersection over
+ foreground).
+ clockwise (bool): flag indicating whether the positive angular
+ orientation is clockwise. default True.
+ `New in version 1.4.3.`
+
+ Returns:
+ torch.Tensor: Return the ious betweens boxes. If ``aligned`` is
+ ``False``, the shape of ious is (N, M) else (N,).
+ """
+ assert mode in ['iou', 'iof']
+ mode_dict = {'iou': 0, 'iof': 1}
+ mode_flag = mode_dict[mode]
+ rows = bboxes1.size(0)
+ cols = bboxes2.size(0)
+ if aligned:
+ ious = bboxes1.new_zeros(rows)
+ else:
+ if bboxes1.device.type == 'mlu':
+ ious = bboxes1.new_zeros([rows, cols])
+ else:
+ ious = bboxes1.new_zeros(rows * cols)
+ if not clockwise:
+ flip_mat = bboxes1.new_ones(bboxes1.shape[-1])
+ flip_mat[-1] = -1
+ bboxes1 = bboxes1 * flip_mat
+ bboxes2 = bboxes2 * flip_mat
+ if bboxes1.device.type == 'npu':
+ scale_mat = bboxes1.new_ones(bboxes1.shape[-1])
+ scale_mat[-1] = 1.0 / 0.01745329252
+ bboxes1 = bboxes1 * scale_mat
+ bboxes2 = bboxes2 * scale_mat
+ bboxes1 = bboxes1.contiguous()
+ bboxes2 = bboxes2.contiguous()
+ ext_module.box_iou_rotated(
+ bboxes1, bboxes2, ious, mode_flag=mode_flag, aligned=aligned)
+ if not aligned:
+ ious = ious.view(rows, cols)
+ return ious
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/carafe.py b/FoodSeg103/demo/mmcv/mmcv/ops/carafe.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7e79c275e2bea62ce7e08fb6e6e4629c7565600
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/carafe.py
@@ -0,0 +1,300 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.model import normal_init, xavier_init
+from mmengine.registry import MODELS
+from torch import Tensor
+from torch.autograd import Function
+from torch.nn.modules.module import Module
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', [
+ 'carafe_naive_forward', 'carafe_naive_backward', 'carafe_forward',
+ 'carafe_backward'
+])
+
+
+class CARAFENaiveFunction(Function):
+
+ @staticmethod
+ def symbolic(g, features: Tensor, masks: Tensor, kernel_size: int,
+ group_size: int, scale_factor: int) -> Tensor:
+ return g.op(
+ 'mmcv::MMCVCARAFENaive',
+ features,
+ masks,
+ kernel_size_i=kernel_size,
+ group_size_i=group_size,
+ scale_factor_f=scale_factor)
+
+ @staticmethod
+ def forward(ctx, features: Tensor, masks: Tensor, kernel_size: int,
+ group_size: int, scale_factor: int) -> Tensor:
+ assert scale_factor >= 1
+ assert masks.size(1) == kernel_size * kernel_size * group_size
+ assert masks.size(-1) == features.size(-1) * scale_factor
+ assert masks.size(-2) == features.size(-2) * scale_factor
+ assert features.size(1) % group_size == 0
+ assert (kernel_size - 1) % 2 == 0 and kernel_size >= 1
+ ctx.kernel_size = kernel_size
+ ctx.group_size = group_size
+ ctx.scale_factor = scale_factor
+ ctx.feature_size = features.size()
+ ctx.mask_size = masks.size()
+
+ n, c, h, w = features.size()
+ output = features.new_zeros((n, c, h * scale_factor, w * scale_factor))
+ ext_module.carafe_naive_forward(
+ features,
+ masks,
+ output,
+ kernel_size=kernel_size,
+ group_size=group_size,
+ scale_factor=scale_factor)
+
+ if features.requires_grad or masks.requires_grad or \
+ torch.__version__ == 'parrots':
+ ctx.save_for_backward(features, masks)
+ return output
+
+ @staticmethod
+ def backward(
+ ctx,
+ grad_output: Tensor) -> Tuple[Tensor, Tensor, None, None, None]:
+ assert grad_output.is_cuda
+
+ features, masks = ctx.saved_tensors
+ kernel_size = ctx.kernel_size
+ group_size = ctx.group_size
+ scale_factor = ctx.scale_factor
+
+ grad_input = torch.zeros_like(features)
+ grad_masks = torch.zeros_like(masks)
+ ext_module.carafe_naive_backward(
+ grad_output.contiguous(),
+ features,
+ masks,
+ grad_input,
+ grad_masks,
+ kernel_size=kernel_size,
+ group_size=group_size,
+ scale_factor=scale_factor)
+
+ return grad_input, grad_masks, None, None, None
+
+
+carafe_naive = CARAFENaiveFunction.apply
+
+
+class CARAFENaive(Module):
+
+ def __init__(self, kernel_size: int, group_size: int, scale_factor: int):
+ super().__init__()
+
+ assert isinstance(kernel_size, int) and isinstance(
+ group_size, int) and isinstance(scale_factor, int)
+ self.kernel_size = kernel_size
+ self.group_size = group_size
+ self.scale_factor = scale_factor
+
+ def forward(self, features: Tensor, masks: Tensor) -> Tensor:
+ return carafe_naive(features, masks, self.kernel_size, self.group_size,
+ self.scale_factor)
+
+
+class CARAFEFunction(Function):
+
+ @staticmethod
+ def symbolic(g, features: Tensor, masks: Tensor, kernel_size: int,
+ group_size: int, scale_factor: int) -> Tensor:
+ return g.op(
+ 'mmcv::MMCVCARAFE',
+ features,
+ masks,
+ kernel_size_i=kernel_size,
+ group_size_i=group_size,
+ scale_factor_f=scale_factor)
+
+ @staticmethod
+ def forward(ctx, features: Tensor, masks: Tensor, kernel_size: int,
+ group_size: int, scale_factor: int) -> Tensor:
+ assert scale_factor >= 1
+ assert masks.size(1) == kernel_size * kernel_size * group_size
+ assert masks.size(-1) == features.size(-1) * scale_factor
+ assert masks.size(-2) == features.size(-2) * scale_factor
+ assert features.size(1) % group_size == 0
+ assert (kernel_size - 1) % 2 == 0 and kernel_size >= 1
+ ctx.kernel_size = kernel_size
+ ctx.group_size = group_size
+ ctx.scale_factor = scale_factor
+ ctx.feature_size = features.size()
+ ctx.mask_size = masks.size()
+
+ n, c, h, w = features.size()
+ output = features.new_zeros((n, c, h * scale_factor, w * scale_factor))
+ routput = features.new_zeros(output.size(), requires_grad=False)
+ rfeatures = features.new_zeros(features.size(), requires_grad=False)
+ rmasks = masks.new_zeros(masks.size(), requires_grad=False)
+ ext_module.carafe_forward(
+ features,
+ masks,
+ rfeatures,
+ routput,
+ rmasks,
+ output,
+ kernel_size=kernel_size,
+ group_size=group_size,
+ scale_factor=scale_factor)
+
+ if features.requires_grad or masks.requires_grad or \
+ torch.__version__ == 'parrots':
+ ctx.save_for_backward(features, masks, rfeatures)
+ return output
+
+ @staticmethod
+ def backward(
+ ctx,
+ grad_output: Tensor) -> Tuple[Tensor, Tensor, None, None, None]:
+ features, masks, rfeatures = ctx.saved_tensors
+ kernel_size = ctx.kernel_size
+ group_size = ctx.group_size
+ scale_factor = ctx.scale_factor
+
+ rgrad_output = torch.zeros_like(grad_output, requires_grad=False)
+ rgrad_input_hs = torch.zeros_like(grad_output, requires_grad=False)
+ rgrad_input = torch.zeros_like(features, requires_grad=False)
+ rgrad_masks = torch.zeros_like(masks, requires_grad=False)
+ grad_input = torch.zeros_like(features, requires_grad=False)
+ grad_masks = torch.zeros_like(masks, requires_grad=False)
+ ext_module.carafe_backward(
+ grad_output.contiguous(),
+ rfeatures,
+ masks,
+ rgrad_output,
+ rgrad_input_hs,
+ rgrad_input,
+ rgrad_masks,
+ grad_input,
+ grad_masks,
+ kernel_size=kernel_size,
+ group_size=group_size,
+ scale_factor=scale_factor)
+ return grad_input, grad_masks, None, None, None
+
+
+carafe = CARAFEFunction.apply
+
+
+class CARAFE(Module):
+ """ CARAFE: Content-Aware ReAssembly of FEatures
+
+ Please refer to `CARAFE: Content-Aware ReAssembly of FEatures
+ `_ for more details.
+
+ Args:
+ kernel_size (int): reassemble kernel size
+ group_size (int): reassemble group size
+ scale_factor (int): upsample ratio
+
+ Returns:
+ upsampled feature map
+ """
+
+ def __init__(self, kernel_size: int, group_size: int, scale_factor: int):
+ super().__init__()
+
+ assert isinstance(kernel_size, int) and isinstance(
+ group_size, int) and isinstance(scale_factor, int)
+ self.kernel_size = kernel_size
+ self.group_size = group_size
+ self.scale_factor = scale_factor
+
+ def forward(self, features: Tensor, masks: Tensor) -> Tensor:
+ return carafe(features, masks, self.kernel_size, self.group_size,
+ self.scale_factor)
+
+
+@MODELS.register_module(name='carafe')
+class CARAFEPack(nn.Module):
+ """A unified package of CARAFE upsampler that contains: 1) channel
+ compressor 2) content encoder 3) CARAFE op.
+
+ Official implementation of ICCV 2019 paper
+ `CARAFE: Content-Aware ReAssembly of FEatures
+ `_.
+
+ Args:
+ channels (int): input feature channels
+ scale_factor (int): upsample ratio
+ up_kernel (int): kernel size of CARAFE op
+ up_group (int): group size of CARAFE op
+ encoder_kernel (int): kernel size of content encoder
+ encoder_dilation (int): dilation of content encoder
+ compressed_channels (int): output channels of channels compressor
+
+ Returns:
+ upsampled feature map
+ """
+
+ def __init__(self,
+ channels: int,
+ scale_factor: int,
+ up_kernel: int = 5,
+ up_group: int = 1,
+ encoder_kernel: int = 3,
+ encoder_dilation: int = 1,
+ compressed_channels: int = 64):
+ super().__init__()
+ self.channels = channels
+ self.scale_factor = scale_factor
+ self.up_kernel = up_kernel
+ self.up_group = up_group
+ self.encoder_kernel = encoder_kernel
+ self.encoder_dilation = encoder_dilation
+ self.compressed_channels = compressed_channels
+ self.channel_compressor = nn.Conv2d(channels, self.compressed_channels,
+ 1)
+ self.content_encoder = nn.Conv2d(
+ self.compressed_channels,
+ self.up_kernel * self.up_kernel * self.up_group *
+ self.scale_factor * self.scale_factor,
+ self.encoder_kernel,
+ padding=int((self.encoder_kernel - 1) * self.encoder_dilation / 2),
+ dilation=self.encoder_dilation,
+ groups=1)
+ self.init_weights()
+
+ def init_weights(self):
+ for m in self.modules():
+ if isinstance(m, nn.Conv2d):
+ xavier_init(m, distribution='uniform')
+ normal_init(self.content_encoder, std=0.001)
+
+ def kernel_normalizer(self, mask: Tensor) -> Tensor:
+ mask = F.pixel_shuffle(mask, self.scale_factor)
+ n, mask_c, h, w = mask.size()
+ # use float division explicitly,
+ # to void inconsistency while exporting to onnx
+ mask_channel = int(mask_c / float(self.up_kernel**2))
+ mask = mask.view(n, mask_channel, -1, h, w)
+
+ mask = F.softmax(mask, dim=2, dtype=mask.dtype)
+ mask = mask.view(n, mask_c, h, w).contiguous()
+
+ return mask
+
+ def feature_reassemble(self, x: Tensor, mask: Tensor) -> Tensor:
+ x = carafe(x, mask, self.up_kernel, self.up_group, self.scale_factor)
+ return x
+
+ def forward(self, x: Tensor) -> Tensor:
+ compressed_x = self.channel_compressor(x)
+ mask = self.content_encoder(compressed_x)
+ mask = self.kernel_normalizer(mask)
+
+ x = self.feature_reassemble(x, mask)
+ return x
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/cc_attention.py b/FoodSeg103/demo/mmcv/mmcv/ops/cc_attention.py
new file mode 100644
index 0000000000000000000000000000000000000000..efde7b703c8c50ecf5aa604e756422f0be488759
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/cc_attention.py
@@ -0,0 +1,85 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from mmengine.registry import MODELS
+
+from mmcv.cnn import Scale
+
+
+def NEG_INF_DIAG(n: int, device: torch.device) -> torch.Tensor:
+ """Returns a diagonal matrix of size [n, n].
+
+ The diagonal are all "-inf". This is for avoiding calculating the
+ overlapped element in the Criss-Cross twice.
+ """
+ return torch.diag(torch.tensor(float('-inf')).to(device).repeat(n), 0)
+
+
+@MODELS.register_module()
+class CrissCrossAttention(nn.Module):
+ """Criss-Cross Attention Module.
+
+ .. note::
+ Before v1.3.13, we use a CUDA op. Since v1.3.13, we switch
+ to a pure PyTorch and equivalent implementation. For more
+ details, please refer to https://github.com/open-mmlab/mmcv/pull/1201.
+
+ Speed comparison for one forward pass
+
+ - Input size: [2,512,97,97]
+ - Device: 1 NVIDIA GeForce RTX 2080 Ti
+
+ +-----------------------+---------------+------------+---------------+
+ | |PyTorch version|CUDA version|Relative speed |
+ +=======================+===============+============+===============+
+ |with torch.no_grad() |0.00554402 s |0.0299619 s |5.4x |
+ +-----------------------+---------------+------------+---------------+
+ |no with torch.no_grad()|0.00562803 s |0.0301349 s |5.4x |
+ +-----------------------+---------------+------------+---------------+
+
+ Args:
+ in_channels (int): Channels of the input feature map.
+ """
+
+ def __init__(self, in_channels: int) -> None:
+ super().__init__()
+ self.query_conv = nn.Conv2d(in_channels, in_channels // 8, 1)
+ self.key_conv = nn.Conv2d(in_channels, in_channels // 8, 1)
+ self.value_conv = nn.Conv2d(in_channels, in_channels, 1)
+ self.gamma = Scale(0.)
+ self.in_channels = in_channels
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ """forward function of Criss-Cross Attention.
+
+ Args:
+ x (torch.Tensor): Input feature with the shape of
+ (batch_size, in_channels, height, width).
+
+ Returns:
+ torch.Tensor: Output of the layer, with the shape of
+ (batch_size, in_channels, height, width)
+ """
+ B, C, H, W = x.size()
+ query = self.query_conv(x)
+ key = self.key_conv(x)
+ value = self.value_conv(x)
+ energy_H = torch.einsum('bchw,bciw->bwhi', query, key) + NEG_INF_DIAG(
+ H, query.device)
+ energy_H = energy_H.transpose(1, 2)
+ energy_W = torch.einsum('bchw,bchj->bhwj', query, key)
+ attn = F.softmax(
+ torch.cat([energy_H, energy_W], dim=-1), dim=-1) # [B,H,W,(H+W)]
+ out = torch.einsum('bciw,bhwi->bchw', value, attn[..., :H])
+ out += torch.einsum('bchj,bhwj->bchw', value, attn[..., H:])
+
+ out = self.gamma(out) + x
+ out = out.contiguous()
+
+ return out
+
+ def __repr__(self) -> str:
+ s = self.__class__.__name__
+ s += f'(in_channels={self.in_channels})'
+ return s
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/chamfer_distance.py b/FoodSeg103/demo/mmcv/mmcv/ops/chamfer_distance.py
new file mode 100644
index 0000000000000000000000000000000000000000..1f908a5bbc2655de6233cd6ddfa140ee783079ba
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/chamfer_distance.py
@@ -0,0 +1,93 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Sequence, Tuple
+
+import torch
+from torch import Tensor
+from torch.autograd import Function
+from torch.autograd.function import once_differentiable
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext', ['chamfer_distance_forward', 'chamfer_distance_backward'])
+
+
+class ChamferDistanceFunction(Function):
+ """This is an implementation of the 2D Chamfer Distance.
+
+ It has been used in the paper `Oriented RepPoints for Aerial Object
+ Detection (CVPR 2022) _`.
+ """
+
+ @staticmethod
+ def forward(ctx, xyz1: Tensor, xyz2: Tensor) -> Sequence[Tensor]:
+ """
+ Args:
+ xyz1 (Tensor): Point set with shape (B, N, 2).
+ xyz2 (Tensor): Point set with shape (B, N, 2).
+
+ Returns:
+ Sequence[Tensor]:
+
+ - dist1 (Tensor): Chamfer distance (xyz1 to xyz2) with
+ shape (B, N).
+ - dist2 (Tensor): Chamfer distance (xyz2 to xyz1) with
+ shape (B, N).
+ - idx1 (Tensor): Index of chamfer distance (xyz1 to xyz2)
+ with shape (B, N), which be used in compute gradient.
+ - idx2 (Tensor): Index of chamfer distance (xyz2 to xyz2)
+ with shape (B, N), which be used in compute gradient.
+ """
+ batch_size, n, _ = xyz1.size()
+ _, m, _ = xyz2.size()
+ device = xyz1.device
+ xyz1 = xyz1.contiguous()
+ xyz2 = xyz2.contiguous()
+
+ dist1 = torch.zeros(batch_size, n).to(device)
+ dist2 = torch.zeros(batch_size, m).to(device)
+ idx1 = torch.zeros(batch_size, n).type(torch.IntTensor).to(device)
+ idx2 = torch.zeros(batch_size, m).type(torch.IntTensor).to(device)
+
+ ext_module.chamfer_distance_forward(xyz1, xyz2, dist1, dist2, idx1,
+ idx2)
+ ctx.save_for_backward(xyz1, xyz2, idx1, idx2)
+ return dist1, dist2, idx1, idx2
+
+ @staticmethod
+ @once_differentiable
+ def backward(ctx,
+ grad_dist1: Tensor,
+ grad_dist2: Tensor,
+ grad_idx1=None,
+ grad_idx2=None) -> Tuple[Tensor, Tensor]:
+ """
+
+ Args:
+ grad_dist1 (Tensor): Gradient of chamfer distance
+ (xyz1 to xyz2) with shape (B, N).
+ grad_dist2 (Tensor): Gradient of chamfer distance
+ (xyz2 to xyz1) with shape (B, N).
+
+ Returns:
+ Tuple[Tensor, Tensor]:
+
+ - grad_xyz1 (Tensor): Gradient of the point set with shape \
+ (B, N, 2).
+ - grad_xyz2 (Tensor):Gradient of the point set with shape \
+ (B, N, 2).
+ """
+ xyz1, xyz2, idx1, idx2 = ctx.saved_tensors
+ device = grad_dist1.device
+ grad_dist1 = grad_dist1.contiguous()
+ grad_dist2 = grad_dist2.contiguous()
+ grad_xyz1 = torch.zeros(xyz1.size()).to(device)
+ grad_xyz2 = torch.zeros(xyz2.size()).to(device)
+
+ ext_module.chamfer_distance_backward(xyz1, xyz2, idx1, idx2,
+ grad_dist1, grad_dist2, grad_xyz1,
+ grad_xyz2)
+ return grad_xyz1, grad_xyz2
+
+
+chamfer_distance = ChamferDistanceFunction.apply
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/contour_expand.py b/FoodSeg103/demo/mmcv/mmcv/ops/contour_expand.py
new file mode 100644
index 0000000000000000000000000000000000000000..7184609ad9b64d421c17fdfe4a1a0dbeb62d64c8
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/contour_expand.py
@@ -0,0 +1,52 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Union
+
+import numpy as np
+import torch
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', ['contour_expand'])
+
+
+def contour_expand(kernel_mask: Union[np.array, torch.Tensor],
+ internal_kernel_label: Union[np.array, torch.Tensor],
+ min_kernel_area: int, kernel_num: int) -> list:
+ """Expand kernel contours so that foreground pixels are assigned into
+ instances.
+
+ Args:
+ kernel_mask (np.array or torch.Tensor): The instance kernel mask with
+ size hxw.
+ internal_kernel_label (np.array or torch.Tensor): The instance internal
+ kernel label with size hxw.
+ min_kernel_area (int): The minimum kernel area.
+ kernel_num (int): The instance kernel number.
+
+ Returns:
+ list: The instance index map with size hxw.
+ """
+ assert isinstance(kernel_mask, (torch.Tensor, np.ndarray))
+ assert isinstance(internal_kernel_label, (torch.Tensor, np.ndarray))
+ assert isinstance(min_kernel_area, int)
+ assert isinstance(kernel_num, int)
+
+ if isinstance(kernel_mask, np.ndarray):
+ kernel_mask = torch.from_numpy(kernel_mask)
+ if isinstance(internal_kernel_label, np.ndarray):
+ internal_kernel_label = torch.from_numpy(internal_kernel_label)
+
+ if torch.__version__ == 'parrots':
+ if kernel_mask.shape[0] == 0 or internal_kernel_label.shape[0] == 0:
+ label = []
+ else:
+ label = ext_module.contour_expand(
+ kernel_mask,
+ internal_kernel_label,
+ min_kernel_area=min_kernel_area,
+ kernel_num=kernel_num)
+ label = label.tolist() # type: ignore
+ else:
+ label = ext_module.contour_expand(kernel_mask, internal_kernel_label,
+ min_kernel_area, kernel_num)
+ return label
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/conv2d_gradfix.py b/FoodSeg103/demo/mmcv/mmcv/ops/conv2d_gradfix.py
new file mode 100644
index 0000000000000000000000000000000000000000..b93a76a844457dd78d625dd95e042864943f11c3
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/conv2d_gradfix.py
@@ -0,0 +1,338 @@
+# Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+#
+# NVIDIA CORPORATION and its licensors retain all intellectual property
+# and proprietary rights in and to this software, related documentation
+# and any modifications thereto. Any use, reproduction, disclosure or
+# distribution of this software and related documentation without an express
+# license agreement from NVIDIA CORPORATION is strictly prohibited.
+
+# source: https://github.com/NVlabs/stylegan3/blob/main/torch_utils/ops/conv2d_gradfix.py # noqa
+"""Custom replacement for `torch.nn.functional.conv2d` that supports
+arbitrarily high order gradients with zero performance penalty."""
+
+import contextlib
+import warnings
+from typing import Dict, Optional, Tuple, Union
+
+import torch
+from mmengine.utils import digit_version
+from mmengine.utils.dl_utils.parrots_wrapper import is_rocm_pytorch
+
+enabled = True
+weight_gradients_disabled = False
+
+
+@contextlib.contextmanager
+def no_weight_gradients(disable=True):
+ global weight_gradients_disabled
+ old = weight_gradients_disabled
+ if disable:
+ weight_gradients_disabled = True
+ yield
+ weight_gradients_disabled = old
+
+
+def conv2d(input: torch.Tensor,
+ weight: torch.Tensor,
+ bias: Optional[torch.Tensor] = None,
+ stride: Union[int, Tuple[int, ...]] = 1,
+ padding: Union[int, Tuple[int, ...]] = 0,
+ dilation: Union[int, Tuple[int, ...]] = 1,
+ groups: int = 1):
+ flag = True
+ if digit_version(torch.__version__) >= digit_version('1.10.0'):
+ warnings.warn('Since '
+ 'aten:cudnn_convolution_backward_weight is '
+ f'not supported in torch=={torch.__version__},'
+ ' rolling back to `torch.nn.functional.conv2d`')
+ flag = False
+ if _should_use_custom_op(input) and flag:
+ return _conv2d_gradfix(
+ transpose=False,
+ weight_shape=weight.shape,
+ stride=stride,
+ padding=padding,
+ output_padding=0,
+ dilation=dilation,
+ groups=groups).apply(input, weight, bias)
+ return torch.nn.functional.conv2d(
+ input=input,
+ weight=weight,
+ bias=bias,
+ stride=stride,
+ padding=padding,
+ dilation=dilation,
+ groups=groups)
+
+
+def conv_transpose2d(input: torch.Tensor,
+ weight: torch.Tensor,
+ bias: Optional[torch.Tensor] = None,
+ stride: Union[int, Tuple[int, ...]] = 1,
+ padding: Union[int, Tuple[int, ...]] = 0,
+ output_padding: Union[int, Tuple[int, ...]] = 0,
+ groups: int = 1,
+ dilation: Union[int, Tuple[int, ...]] = 1):
+ if _should_use_custom_op(input):
+ return _conv2d_gradfix(
+ transpose=True,
+ weight_shape=weight.shape,
+ stride=stride,
+ padding=padding,
+ output_padding=output_padding,
+ groups=groups,
+ dilation=dilation).apply(input, weight, bias)
+ return torch.nn.functional.conv_transpose2d(
+ input=input,
+ weight=weight,
+ bias=bias,
+ stride=stride,
+ padding=padding,
+ output_padding=output_padding,
+ groups=groups,
+ dilation=dilation)
+
+
+def _should_use_custom_op(input):
+ assert isinstance(input, torch.Tensor)
+ if (not enabled) or (not torch.backends.cudnn.enabled):
+ return False
+ if input.device.type != 'cuda':
+ return False
+ return True
+
+
+def _to_tuple(x, ndim):
+ xs = tuple(x) if isinstance(x, (tuple, list)) else (x, ) * ndim
+ assert len(xs) == ndim
+ assert all(isinstance(x, int) for x in xs)
+ return xs
+
+
+_conv2d_gradfix_cache: Dict = dict()
+_null_tensor = torch.empty([0])
+
+
+def _conv2d_gradfix(
+ transpose: bool,
+ weight_shape: Tuple[int, ...],
+ stride: Union[int, Tuple[int, ...]],
+ padding: Union[int, Tuple[int, ...]],
+ output_padding: Union[int, Tuple[int, ...]],
+ dilation: Union[int, Tuple[int, ...]],
+ groups: int,
+):
+ # Parse arguments.
+ ndim = 2
+ weight_shape = tuple(weight_shape)
+ stride = _to_tuple(stride, ndim)
+ padding = _to_tuple(padding, ndim)
+ output_padding = _to_tuple(output_padding, ndim)
+ dilation = _to_tuple(dilation, ndim)
+
+ # Lookup from cache.
+ key = (transpose, weight_shape, stride, padding, output_padding, dilation,
+ groups)
+ if key in _conv2d_gradfix_cache:
+ return _conv2d_gradfix_cache[key]
+
+ # Validate arguments.
+
+ assert groups >= 1
+ assert len(weight_shape) == ndim + 2
+ assert all(stride[i] >= 1 for i in range(ndim)) # type: ignore
+ assert all(padding[i] >= 0 for i in range(ndim)) # type: ignore
+ assert all(dilation[i] >= 0 for i in range(ndim)) # type: ignore
+ if not transpose:
+ assert all(output_padding[i] == 0 for i in range(ndim)) # type: ignore
+ else: # transpose
+ for i in range(ndim):
+ assert 0 <= output_padding[i] < max( # type: ignore
+ stride[i], # type: ignore
+ dilation[i]) # type: ignore
+
+ # Helpers.
+ common_kwargs = dict(
+ stride=stride, padding=padding, dilation=dilation, groups=groups)
+
+ def calc_output_padding(input_shape, output_shape):
+ if transpose:
+ return [0, 0]
+ return [
+ input_shape[i + 2] - (output_shape[i + 2] - 1) * stride[i] -
+ (1 - 2 * padding[i]) - dilation[i] * (weight_shape[i + 2] - 1)
+ for i in range(ndim)
+ ]
+
+ # Forward & backward.
+ class Conv2d(torch.autograd.Function):
+
+ @staticmethod
+ def forward(ctx, input, weight, bias):
+ assert weight.shape == weight_shape
+ ctx.save_for_backward(
+ input if weight.requires_grad else _null_tensor,
+ weight if input.requires_grad else _null_tensor,
+ )
+ ctx.input_shape = input.shape
+
+ # Simple 1x1 convolution => cuBLAS (only on Volta, not on Ampere).
+ if weight_shape[2:] == stride == dilation == (
+ 1, 1) and padding == (
+ 0, 0) and torch.cuda.get_device_capability(
+ input.device) < (8, 0):
+ a = weight.reshape(groups, weight_shape[0] // groups,
+ weight_shape[1])
+ b = input.reshape(input.shape[0], groups,
+ input.shape[1] // groups, -1)
+ c = (a.transpose(1, 2) if transpose else a) @ b.permute(
+ 1, 2, 0, 3).flatten(2)
+ c = c.reshape(-1, input.shape[0],
+ *input.shape[2:]).transpose(0, 1)
+ c = c if bias is None else c + bias.unsqueeze(0).unsqueeze(
+ 2).unsqueeze(3)
+ return c.contiguous(
+ memory_format=(torch.channels_last if input.stride(1) ==
+ 1 else torch.contiguous_format))
+
+ # General case => cuDNN.
+ if transpose:
+ return torch.nn.functional.conv_transpose2d(
+ input=input,
+ weight=weight,
+ bias=bias,
+ output_padding=output_padding,
+ **common_kwargs)
+ return torch.nn.functional.conv2d(
+ input=input, weight=weight, bias=bias, **common_kwargs)
+
+ @staticmethod
+ def backward(ctx, grad_output):
+ input, weight = ctx.saved_tensors
+ input_shape = ctx.input_shape
+ grad_input = None
+ grad_weight = None
+ grad_bias = None
+
+ if ctx.needs_input_grad[0]:
+ p = calc_output_padding(
+ input_shape=input_shape, output_shape=grad_output.shape)
+ op = _conv2d_gradfix(
+ transpose=(not transpose),
+ weight_shape=weight_shape,
+ output_padding=p,
+ **common_kwargs)
+ grad_input = op.apply(grad_output, weight, None)
+ assert grad_input.shape == input_shape
+
+ if ctx.needs_input_grad[1] and not weight_gradients_disabled:
+ grad_weight = Conv2dGradWeight.apply(grad_output, input)
+ assert grad_weight.shape == weight_shape
+
+ if ctx.needs_input_grad[2]:
+ grad_bias = grad_output.sum([0, 2, 3])
+
+ return grad_input, grad_weight, grad_bias
+
+ # Gradient with respect to the weights.
+ class Conv2dGradWeight(torch.autograd.Function):
+
+ @staticmethod
+ def forward(ctx, grad_output, input):
+ ctx.save_for_backward(
+ grad_output if input.requires_grad else _null_tensor,
+ input if grad_output.requires_grad else _null_tensor,
+ )
+ ctx.grad_output_shape = grad_output.shape
+ ctx.input_shape = input.shape
+
+ # Simple 1x1 convolution => cuBLAS (on both Volta and Ampere).
+ if weight_shape[2:] == stride == dilation == (
+ 1, 1) and padding == (0, 0):
+ a = grad_output.reshape(grad_output.shape[0], groups,
+ grad_output.shape[1] // groups,
+ -1).permute(1, 2, 0, 3).flatten(2)
+ b = input.reshape(input.shape[0], groups,
+ input.shape[1] // groups,
+ -1).permute(1, 2, 0, 3).flatten(2)
+ c = (b @ a.transpose(1, 2) if transpose else
+ a @ b.transpose(1, 2)).reshape(weight_shape)
+ return c.contiguous(
+ memory_format=(torch.channels_last if input.stride(1) ==
+ 1 else torch.contiguous_format))
+
+ # PyTorch consolidated convolution backward API in PR:
+ # https://github.com/pytorch/pytorch/commit/3dc3651e0ee3623f669c3a2c096408dbc476d122 # noqa: E501
+ # Enhance the code referring to the discussion:
+ # https://github.com/pytorch/pytorch/issues/74437
+ if digit_version(torch.__version__) >= digit_version('1.11.0'):
+ empty_weight = torch.tensor(
+ 0.0, dtype=input.dtype,
+ device=input.device).expand(weight_shape)
+ output_padding = calc_output_padding(input.shape,
+ grad_output.shape)
+ return torch.ops.aten.convolution_backward(
+ grad_output,
+ input,
+ empty_weight,
+ None,
+ stride=stride,
+ dilation=dilation,
+ transposed=transpose,
+ padding=padding,
+ groups=groups,
+ output_padding=output_padding,
+ output_mask=[0, 1, 0])[1]
+ else:
+ if is_rocm_pytorch():
+ name = 'aten::miopen_convolution_transpose_backward_weight'
+ if not transpose:
+ name = 'aten::miopen_convolution_backward_weight'
+ flags = [
+ torch.backends.cudnn.benchmark,
+ torch.backends.cudnn.deterministic
+ ]
+ else:
+ # General case => cuDNN.
+ name = ('aten::cudnn_convolution_transpose_backward_weight'
+ if transpose else
+ 'aten::cudnn_convolution_backward_weight')
+ flags = [
+ torch.backends.cudnn.benchmark,
+ torch.backends.cudnn.deterministic,
+ torch.backends.cudnn.allow_tf32
+ ]
+ return torch._C._jit_get_operation(name)(weight_shape,
+ grad_output, input,
+ padding, stride,
+ dilation, groups,
+ *flags)
+
+ @staticmethod
+ def backward(ctx, grad2_grad_weight):
+ grad_output, input = ctx.saved_tensors
+ grad_output_shape = ctx.grad_output_shape
+ input_shape = ctx.input_shape
+ grad2_grad_output = None
+ grad2_input = None
+
+ if ctx.needs_input_grad[0]:
+ grad2_grad_output = Conv2d.apply(input, grad2_grad_weight,
+ None)
+ assert grad2_grad_output.shape == grad_output_shape
+
+ if ctx.needs_input_grad[1]:
+ p = calc_output_padding(
+ input_shape=input_shape, output_shape=grad_output_shape)
+ op = _conv2d_gradfix(
+ transpose=(not transpose),
+ weight_shape=weight_shape,
+ output_padding=p,
+ **common_kwargs)
+ grad2_input = op.apply(grad_output, grad2_grad_weight, None)
+ assert grad2_input.shape == input_shape
+
+ return grad2_grad_output, grad2_input
+
+ _conv2d_gradfix_cache[key] = Conv2d
+ return Conv2d
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/convex_iou.py b/FoodSeg103/demo/mmcv/mmcv/ops/convex_iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..50050363ac5b08cfa8f86dd186ab7087fac6f48a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/convex_iou.py
@@ -0,0 +1,52 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Tuple
+
+import torch
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext('_ext', ['convex_iou', 'convex_giou'])
+
+
+def convex_giou(pointsets: torch.Tensor,
+ polygons: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:
+ """Return generalized intersection-over-union (Jaccard index) between point
+ sets and polygons.
+
+ Args:
+ pointsets (torch.Tensor): It has shape (N, 18),
+ indicating (x1, y1, x2, y2, ..., x9, y9) for each row.
+ polygons (torch.Tensor): It has shape (N, 8),
+ indicating (x1, y1, x2, y2, x3, y3, x4, y4) for each row.
+
+ Returns:
+ tuple[torch.Tensor, torch.Tensor]: The first element is the gious
+ between point sets and polygons with the shape (N,). The second
+ element is the gradient of point sets with the shape (N, 18).
+ """
+ output = pointsets.new_zeros((pointsets.size(0), 19))
+ ext_module.convex_giou(pointsets, polygons, output)
+ convex_giou = output[:, -1]
+ points_grad = output[:, 0:-1]
+ return convex_giou, points_grad
+
+
+def convex_iou(pointsets: torch.Tensor,
+ polygons: torch.Tensor) -> torch.Tensor:
+ """Return intersection-over-union (Jaccard index) between point sets and
+ polygons.
+
+ Args:
+ pointsets (torch.Tensor): It has shape (N, 18),
+ indicating (x1, y1, x2, y2, ..., x9, y9) for each row.
+ polygons (torch.Tensor): It has shape (K, 8),
+ indicating (x1, y1, x2, y2, x3, y3, x4, y4) for each row.
+
+ Returns:
+ torch.Tensor: Return the ious between point sets and polygons with the
+ shape (N, K).
+ """
+ N, K = pointsets.size(0), polygons.size(0)
+ ious = pointsets.new_zeros((N, K))
+ ext_module.convex_iou(pointsets, polygons, ious)
+ return ious
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/corner_pool.py b/FoodSeg103/demo/mmcv/mmcv/ops/corner_pool.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f4ebca06304329439fec33965792e84b7513c5c
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/corner_pool.py
@@ -0,0 +1,85 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+import torch
+from mmengine.utils import digit_version
+from torch import Tensor, nn
+
+_mode_dict = {'top': 0, 'bottom': 1, 'left': 2, 'right': 3}
+
+
+def _corner_pool(x: Tensor, dim: int, flip: bool) -> Tensor:
+ size = x.size(dim)
+ output = x.clone()
+
+ ind = 1
+ while ind < size:
+ if flip:
+ cur_start = 0
+ cur_len = size - ind
+ next_start = ind
+ next_len = size - ind
+ else:
+ cur_start = ind
+ cur_len = size - ind
+ next_start = 0
+ next_len = size - ind
+
+ # max_temp should be cloned for backward computation
+ max_temp = output.narrow(dim, cur_start, cur_len).clone()
+ cur_temp = output.narrow(dim, cur_start, cur_len)
+ next_temp = output.narrow(dim, next_start, next_len)
+
+ cur_temp[...] = torch.where(max_temp > next_temp, max_temp, next_temp)
+
+ ind = ind << 1
+
+ return output
+
+
+class CornerPool(nn.Module):
+ """Corner Pooling.
+
+ Corner Pooling is a new type of pooling layer that helps a
+ convolutional network better localize corners of bounding boxes.
+
+ Please refer to `CornerNet: Detecting Objects as Paired Keypoints
+ `_ for more details.
+
+ Code is modified from https://github.com/princeton-vl/CornerNet-Lite.
+
+ Args:
+ mode (str): Pooling orientation for the pooling layer
+
+ - 'bottom': Bottom Pooling
+ - 'left': Left Pooling
+ - 'right': Right Pooling
+ - 'top': Top Pooling
+
+ Returns:
+ Feature map after pooling.
+ """
+
+ cummax_dim_flip = {
+ 'bottom': (2, False),
+ 'left': (3, True),
+ 'right': (3, False),
+ 'top': (2, True),
+ }
+
+ def __init__(self, mode: str):
+ super().__init__()
+ assert mode in self.cummax_dim_flip
+ self.mode = mode
+
+ def forward(self, x: Tensor) -> Tensor:
+ if (torch.__version__ != 'parrots' and
+ digit_version(torch.__version__) >= digit_version('1.5.0')):
+ dim, flip = self.cummax_dim_flip[self.mode]
+ if flip:
+ x = x.flip(dim)
+ pool_tensor, _ = torch.cummax(x, dim=dim)
+ if flip:
+ pool_tensor = pool_tensor.flip(dim)
+ return pool_tensor
+ else:
+ dim, flip = self.cummax_dim_flip[self.mode]
+ return _corner_pool(x, dim, flip)
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/correlation.py b/FoodSeg103/demo/mmcv/mmcv/ops/correlation.py
new file mode 100644
index 0000000000000000000000000000000000000000..319b7646782637e9ebaac4ef07b82d1f460031b5
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/correlation.py
@@ -0,0 +1,200 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+from typing import Tuple
+
+import torch
+from torch import Tensor, nn
+from torch.autograd import Function
+from torch.autograd.function import once_differentiable
+from torch.nn.modules.utils import _pair
+
+from ..utils import ext_loader
+
+ext_module = ext_loader.load_ext(
+ '_ext', ['correlation_forward', 'correlation_backward'])
+
+
+class CorrelationFunction(Function):
+
+ @staticmethod
+ def forward(ctx,
+ input1: Tensor,
+ input2: Tensor,
+ kernel_size: int = 1,
+ max_displacement: int = 1,
+ stride: int = 1,
+ padding: int = 1,
+ dilation: int = 1,
+ dilation_patch: int = 1) -> Tensor:
+
+ ctx.save_for_backward(input1, input2)
+
+ kH, kW = ctx.kernel_size = _pair(kernel_size)
+ patch_size = max_displacement * 2 + 1
+ ctx.patch_size = patch_size
+ dH, dW = ctx.stride = _pair(stride)
+ padH, padW = ctx.padding = _pair(padding)
+ dilationH, dilationW = ctx.dilation = _pair(dilation)
+ dilation_patchH, dilation_patchW = ctx.dilation_patch = _pair(
+ dilation_patch)
+
+ output_size = CorrelationFunction._output_size(ctx, input1)
+
+ output = input1.new_zeros(output_size)
+
+ ext_module.correlation_forward(
+ input1,
+ input2,
+ output,
+ kH=kH,
+ kW=kW,
+ patchH=patch_size,
+ patchW=patch_size,
+ padH=padH,
+ padW=padW,
+ dilationH=dilationH,
+ dilationW=dilationW,
+ dilation_patchH=dilation_patchH,
+ dilation_patchW=dilation_patchW,
+ dH=dH,
+ dW=dW)
+
+ return output
+
+ @staticmethod
+ @once_differentiable
+ def backward(
+ ctx, grad_output: Tensor
+ ) -> Tuple[Tensor, Tensor, None, None, None, None, None, None]:
+ input1, input2 = ctx.saved_tensors
+
+ kH, kW = ctx.kernel_size
+ patch_size = ctx.patch_size
+ padH, padW = ctx.padding
+ dilationH, dilationW = ctx.dilation
+ dilation_patchH, dilation_patchW = ctx.dilation_patch
+ dH, dW = ctx.stride
+ grad_input1 = torch.zeros_like(input1)
+ grad_input2 = torch.zeros_like(input2)
+
+ ext_module.correlation_backward(
+ grad_output,
+ input1,
+ input2,
+ grad_input1,
+ grad_input2,
+ kH=kH,
+ kW=kW,
+ patchH=patch_size,
+ patchW=patch_size,
+ padH=padH,
+ padW=padW,
+ dilationH=dilationH,
+ dilationW=dilationW,
+ dilation_patchH=dilation_patchH,
+ dilation_patchW=dilation_patchW,
+ dH=dH,
+ dW=dW)
+ return grad_input1, grad_input2, None, None, None, None, None, None
+
+ @staticmethod
+ def _output_size(ctx, input1):
+ iH, iW = input1.size(2), input1.size(3)
+ batch_size = input1.size(0)
+ kH, kW = ctx.kernel_size
+ patch_size = ctx.patch_size
+ dH, dW = ctx.stride
+ padH, padW = ctx.padding
+ dilationH, dilationW = ctx.dilation
+ dilatedKH = (kH - 1) * dilationH + 1
+ dilatedKW = (kW - 1) * dilationW + 1
+
+ oH = int((iH + 2 * padH - dilatedKH) / dH + 1)
+ oW = int((iW + 2 * padW - dilatedKW) / dW + 1)
+
+ output_size = (batch_size, patch_size, patch_size, oH, oW)
+ return output_size
+
+
+class Correlation(nn.Module):
+ r"""Correlation operator
+
+ This correlation operator works for optical flow correlation computation.
+
+ There are two batched tensors with shape :math:`(N, C, H, W)`,
+ and the correlation output's shape is :math:`(N, max\_displacement \times
+ 2 + 1, max\_displacement * 2 + 1, H_{out}, W_{out})`
+
+ where
+
+ .. math::
+ H_{out} = \left\lfloor\frac{H_{in} + 2 \times padding -
+ dilation \times (kernel\_size - 1) - 1}
+ {stride} + 1\right\rfloor
+
+ .. math::
+ W_{out} = \left\lfloor\frac{W_{in} + 2 \times padding - dilation
+ \times (kernel\_size - 1) - 1}
+ {stride} + 1\right\rfloor
+
+ the correlation item :math:`(N_i, dy, dx)` is formed by taking the sliding
+ window convolution between input1 and shifted input2,
+
+ .. math::
+ Corr(N_i, dx, dy) =
+ \sum_{c=0}^{C-1}
+ input1(N_i, c) \star
+ \mathcal{S}(input2(N_i, c), dy, dx)
+
+ where :math:`\star` is the valid 2d sliding window convolution operator,
+ and :math:`\mathcal{S}` means shifting the input features (auto-complete
+ zero marginal), and :math:`dx, dy` are shifting distance, :math:`dx, dy \in
+ [-max\_displacement \times dilation\_patch, max\_displacement \times
+ dilation\_patch]`.
+
+ Args:
+ kernel_size (int): The size of sliding window i.e. local neighborhood
+ representing the center points and involved in correlation
+ computation. Defaults to 1.
+ max_displacement (int): The radius for computing correlation volume,
+ but the actual working space can be dilated by dilation_patch.
+ Defaults to 1.
+ stride (int): The stride of the sliding blocks in the input spatial
+ dimensions. Defaults to 1.
+ padding (int): Zero padding added to all four sides of the input1.
+ Defaults to 0.
+ dilation (int): The spacing of local neighborhood that will involved
+ in correlation. Defaults to 1.
+ dilation_patch (int): The spacing between position need to compute
+ correlation. Defaults to 1.
+ """
+
+ def __init__(self,
+ kernel_size: int = 1,
+ max_displacement: int = 1,
+ stride: int = 1,
+ padding: int = 0,
+ dilation: int = 1,
+ dilation_patch: int = 1) -> None:
+ super().__init__()
+ self.kernel_size = kernel_size
+ self.max_displacement = max_displacement
+ self.stride = stride
+ self.padding = padding
+ self.dilation = dilation
+ self.dilation_patch = dilation_patch
+
+ def forward(self, input1: Tensor, input2: Tensor) -> Tensor:
+ return CorrelationFunction.apply(input1, input2, self.kernel_size,
+ self.max_displacement, self.stride,
+ self.padding, self.dilation,
+ self.dilation_patch)
+
+ def __repr__(self) -> str:
+ s = self.__class__.__name__
+ s += f'(kernel_size={self.kernel_size}, '
+ s += f'max_displacement={self.max_displacement}, '
+ s += f'stride={self.stride}, '
+ s += f'padding={self.padding}, '
+ s += f'dilation={self.dilation}, '
+ s += f'dilation_patch={self.dilation_patch})'
+ return s
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/README.md b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8fcc6eb1a3260148aa7448470967684f8c9f0365
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/README.md
@@ -0,0 +1,162 @@
+# Code Structure of CUDA operators
+
+This folder contains all non-python code for MMCV custom ops. Please follow the same architecture if you want to add new ops.
+
+## Directories Tree
+
+```folder
+.
+├── common
+│ ├── box_iou_rotated_utils.hpp
+│ ├── parrots_cpp_helper.hpp
+│ ├── parrots_cuda_helper.hpp
+│ ├── pytorch_cpp_helper.hpp
+│ ├── pytorch_cuda_helper.hpp
+│ ├── pytorch_device_registry.hpp
+│ ├── cuda
+│ │ ├── common_cuda_helper.hpp
+│ │ ├── parrots_cudawarpfunction.cuh
+│ │ ├── ...
+│ │ └── ops_cuda_kernel.cuh
+| ├── mps
+│ │ ├── MPSLibrary.h
+│ │ ├── ...
+│ │ └── MPSUtils.h
+| ├── mlu
+│ │ └── ...
+| └── utils
+│ │ └── ...
+├── parrots
+│ ├── ...
+│ ├── ops.cpp
+│ ├── ops_parrots.cpp
+│ └── ops_pytorch.h
+└── pytorch
+ ├── info.cpp
+ ├── pybind.cpp
+ ├── ...
+ ├── ops.cpp
+ ├── cuda
+ │ ├── ...
+ │ └── ops_cuda.cu
+ ├── cpu
+ │ ├── ...
+ │ └── ops.cpp
+ ├── mps
+ │ ├── ...
+ | └── op_mps.mm
+ └── mlu
+ ├── ...
+ └── op_mlu.cpp
+```
+
+## Components
+
+- `common`: This directory contains all tools and shared codes.
+ - `cuda`: The cuda kernels which can be shared by all backends. **HIP** kernel is also here since they have similar syntax.
+ - `mps`: The tools used to support MPS ops. **NOTE** that MPS support is **experimental**.
+ - `mlu`: The MLU kernels used to support [Cambricon](https://www.cambricon.com/) device.
+ - `utils`: The kernels and utils of spconv.
+- `parrots`: **Parrots** is a deep learning frame for model training and inference. Parrots custom ops are placed in this directory.
+- `pytorch`: **PyTorch** custom ops are supported by binding C++ to Python with **pybind11**. The ops implementation and binding codes are placed in this directory.
+ - `cuda`: This directory contains cuda kernel launchers, which feed memory pointers of tensor to the cuda kernel in `common/cuda`. The launchers provide c++ interface of cuda implementation of corresponding custom ops.
+ - `cpu`: This directory contain cpu implementations of corresponding custom ops.
+ - `mlu`: This directory contain launchers of each MLU kernels.
+ - `mps`: MPS ops implementation and launchers.
+
+## How to add new PyTorch ops?
+
+1. (Optional) Add shared kernel in `common` to support special hardware platform.
+
+ ```c++
+ // src/common/cuda/new_ops_cuda_kernel.cuh
+
+ template
+ __global__ void new_ops_forward_cuda_kernel(const T* input, T* output, ...) {
+ // forward here
+ }
+
+ ```
+
+ Add cuda kernel launcher in `pytorch/cuda`.
+
+ ```c++
+ // src/pytorch/cuda
+ #include
+
+ void NewOpsForwardCUDAKernelLauncher(Tensor input, Tensor output, ...){
+ // initialize
+ at::cuda::CUDAGuard device_guard(input.device());
+ cudaStream_t stream = at::cuda::getCurrentCUDAStream();
+ ...
+ AT_DISPATCH_FLOATING_TYPES_AND_HALF(
+ input.scalar_type(), "new_ops_forward_cuda_kernel", ([&] {
+ new_ops_forward_cuda_kernel
+ <<>>(
+ input.data_ptr(), output.data_ptr(),...);
+ }));
+ AT_CUDA_CHECK(cudaGetLastError());
+ }
+ ```
+
+2. Register implementation for different devices.
+
+ ```c++
+ // src/pytorch/cuda/cudabind.cpp
+ ...
+
+ Tensor new_ops_forward_cuda(Tensor input, Tensor output, ...){
+ // implement cuda forward here
+ // use `NewOpsForwardCUDAKernelLauncher` here
+ }
+ // declare interface here.
+ Tensor new_ops_forward_impl(Tensor input, Tensor output, ...);
+ // register the implementation for given device (CUDA here).
+ REGISTER_DEVICE_IMPL(new_ops_forward_impl, CUDA, new_ops_forward_cuda);
+ ```
+
+3. Add ops implementation in `pytorch` directory. Select different implementations according to device type.
+
+ ```c++
+ // src/pytorch/new_ops.cpp
+ Tensor new_ops_forward_impl(Tensor input, Tensor output, ...){
+ // dispatch the implementation according to the device type of input.
+ DISPATCH_DEVICE_IMPL(new_ops_forward_impl, input, output, ...);
+ }
+ ...
+
+ Tensor new_ops_forward(Tensor input, Tensor output, ...){
+ return new_ops_forward_impl(input, output, ...);
+ }
+ ```
+
+4. Binding the implementation in `pytorch/pybind.cpp`
+
+ ```c++
+ // src/pytorch/pybind.cpp
+
+ ...
+
+ Tensor new_ops_forward(Tensor input, Tensor output, ...);
+
+ ...
+
+ // bind with pybind11
+ m.def("new_ops_forward", &new_ops_forward, "new_ops_forward",
+ py::arg("input"), py::arg("output"), ...);
+
+ ...
+
+ ```
+
+5. Build MMCV again. Enjoy new ops in python
+
+ ```python
+ from ..utils import ext_loader
+ ext_module = ext_loader.load_ext('_ext', ['new_ops_forward'])
+
+ ...
+
+ ext_module.new_ops_forward(input, output, ...)
+
+ ```
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/box_iou_rotated_utils.hpp b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/box_iou_rotated_utils.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..a8453eaa8d3638394df8a0b169d8df01dfc27a11
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/box_iou_rotated_utils.hpp
@@ -0,0 +1,426 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+// modified from
+// https://github.com/facebookresearch/detectron2/blob/master/detectron2/layers/csrc/box_iou_rotated/box_iou_rotated_utils.h
+#pragma once
+#include
+#include
+
+#ifdef __CUDACC__
+// Designates functions callable from the host (CPU) and the device (GPU)
+#define HOST_DEVICE __host__ __device__
+#define HOST_DEVICE_INLINE HOST_DEVICE __forceinline__
+#else
+#include
+#define HOST_DEVICE
+#define HOST_DEVICE_INLINE HOST_DEVICE inline
+#endif
+
+namespace {
+
+template
+struct RotatedBox {
+ T x_ctr, y_ctr, w, h, a;
+};
+
+template
+struct Point {
+ T x, y;
+ HOST_DEVICE_INLINE Point(const T& px = 0, const T& py = 0) : x(px), y(py) {}
+ HOST_DEVICE_INLINE Point operator+(const Point& p) const {
+ return Point(x + p.x, y + p.y);
+ }
+ HOST_DEVICE_INLINE Point& operator+=(const Point& p) {
+ x += p.x;
+ y += p.y;
+ return *this;
+ }
+ HOST_DEVICE_INLINE Point operator-(const Point& p) const {
+ return Point(x - p.x, y - p.y);
+ }
+ HOST_DEVICE_INLINE Point operator*(const T coeff) const {
+ return Point(x * coeff, y * coeff);
+ }
+};
+
+template
+HOST_DEVICE_INLINE T dot_2d(const Point& A, const Point& B) {
+ return A.x * B.x + A.y * B.y;
+}
+
+template
+HOST_DEVICE_INLINE T cross_2d(const Point& A, const Point& B) {
+ return A.x * B.y - B.x * A.y;
+}
+
+template
+HOST_DEVICE_INLINE void get_rotated_vertices(const RotatedBox& box,
+ Point (&pts)[4]) {
+ // M_PI / 180. == 0.01745329251
+ // double theta = box.a * 0.01745329251;
+ // MODIFIED
+ double theta = box.a;
+ T cosTheta2 = (T)cos(theta) * 0.5f;
+ T sinTheta2 = (T)sin(theta) * 0.5f;
+
+ // y: top --> down; x: left --> right
+ pts[0].x = box.x_ctr - sinTheta2 * box.h - cosTheta2 * box.w;
+ pts[0].y = box.y_ctr + cosTheta2 * box.h - sinTheta2 * box.w;
+ pts[1].x = box.x_ctr + sinTheta2 * box.h - cosTheta2 * box.w;
+ pts[1].y = box.y_ctr - cosTheta2 * box.h - sinTheta2 * box.w;
+ pts[2].x = 2 * box.x_ctr - pts[0].x;
+ pts[2].y = 2 * box.y_ctr - pts[0].y;
+ pts[3].x = 2 * box.x_ctr - pts[1].x;
+ pts[3].y = 2 * box.y_ctr - pts[1].y;
+}
+
+template
+HOST_DEVICE_INLINE int get_intersection_points(const Point (&pts1)[4],
+ const Point (&pts2)[4],
+ Point (&intersections)[24]) {
+ // Line vector
+ // A line from p1 to p2 is: p1 + (p2-p1)*t, t=[0,1]
+ Point vec1[4], vec2[4];
+ for (int i = 0; i < 4; i++) {
+ vec1[i] = pts1[(i + 1) % 4] - pts1[i];
+ vec2[i] = pts2[(i + 1) % 4] - pts2[i];
+ }
+
+ // Line test - test all line combos for intersection
+ int num = 0; // number of intersections
+ for (int i = 0; i < 4; i++) {
+ for (int j = 0; j < 4; j++) {
+ // Solve for 2x2 Ax=b
+ T det = cross_2d(vec2[j], vec1[i]);
+
+ // This takes care of parallel lines
+ if (fabs(det) <= 1e-14) {
+ continue;
+ }
+
+ auto vec12 = pts2[j] - pts1[i];
+
+ T t1 = cross_2d(vec2[j], vec12) / det;
+ T t2 = cross_2d(vec1[i], vec12) / det;
+
+ if (t1 >= 0.0f && t1 <= 1.0f && t2 >= 0.0f && t2 <= 1.0f) {
+ intersections[num++] = pts1[i] + vec1[i] * t1;
+ }
+ }
+ }
+
+ // Check for vertices of rect1 inside rect2
+ {
+ const auto& AB = vec2[0];
+ const auto& DA = vec2[3];
+ auto ABdotAB = dot_2d(AB, AB);
+ auto ADdotAD = dot_2d(DA, DA);
+ for (int i = 0; i < 4; i++) {
+ // assume ABCD is the rectangle, and P is the point to be judged
+ // P is inside ABCD iff. P's projection on AB lies within AB
+ // and P's projection on AD lies within AD
+
+ auto AP = pts1[i] - pts2[0];
+
+ auto APdotAB = dot_2d(AP, AB);
+ auto APdotAD = -dot_2d(AP, DA);
+
+ if ((APdotAB >= 0) && (APdotAD >= 0) && (APdotAB <= ABdotAB) &&
+ (APdotAD <= ADdotAD)) {
+ intersections[num++] = pts1[i];
+ }
+ }
+ }
+
+ // Reverse the check - check for vertices of rect2 inside rect1
+ {
+ const auto& AB = vec1[0];
+ const auto& DA = vec1[3];
+ auto ABdotAB = dot_2d(AB, AB);
+ auto ADdotAD = dot_2d(DA, DA);
+ for (int i = 0; i < 4; i++) {
+ auto AP = pts2[i] - pts1[0];
+
+ auto APdotAB = dot_2d(AP, AB);
+ auto APdotAD = -dot_2d(AP, DA);
+
+ if ((APdotAB >= 0) && (APdotAD >= 0) && (APdotAB <= ABdotAB) &&
+ (APdotAD <= ADdotAD)) {
+ intersections[num++] = pts2[i];
+ }
+ }
+ }
+
+ return num;
+}
+
+template
+HOST_DEVICE_INLINE int convex_hull_graham(const Point (&p)[24],
+ const int& num_in, Point (&q)[24],
+ bool shift_to_zero = false) {
+ assert(num_in >= 2);
+
+ // Step 1:
+ // Find point with minimum y
+ // if more than 1 points have the same minimum y,
+ // pick the one with the minimum x.
+ int t = 0;
+ for (int i = 1; i < num_in; i++) {
+ if (p[i].y < p[t].y || (p[i].y == p[t].y && p[i].x < p[t].x)) {
+ t = i;
+ }
+ }
+ auto& start = p[t]; // starting point
+
+ // Step 2:
+ // Subtract starting point from every points (for sorting in the next step)
+ for (int i = 0; i < num_in; i++) {
+ q[i] = p[i] - start;
+ }
+
+ // Swap the starting point to position 0
+ auto tmp = q[0];
+ q[0] = q[t];
+ q[t] = tmp;
+
+ // Step 3:
+ // Sort point 1 ~ num_in according to their relative cross-product values
+ // (essentially sorting according to angles)
+ // If the angles are the same, sort according to their distance to origin
+ T dist[24];
+ for (int i = 0; i < num_in; i++) {
+ dist[i] = dot_2d(q[i], q[i]);
+ }
+
+#ifdef __CUDACC__
+ // CUDA version
+ // In the future, we can potentially use thrust
+ // for sorting here to improve speed (though not guaranteed)
+ for (int i = 1; i < num_in - 1; i++) {
+ for (int j = i + 1; j < num_in; j++) {
+ T crossProduct = cross_2d(q[i], q[j]);
+ if ((crossProduct < -1e-6) ||
+ (fabs(crossProduct) < 1e-6 && dist[i] > dist[j])) {
+ auto q_tmp = q[i];
+ q[i] = q[j];
+ q[j] = q_tmp;
+ auto dist_tmp = dist[i];
+ dist[i] = dist[j];
+ dist[j] = dist_tmp;
+ }
+ }
+ }
+#else
+ // CPU version
+ std::sort(q + 1, q + num_in,
+ [](const Point& A, const Point& B) -> bool {
+ T temp = cross_2d(A, B);
+ if (fabs(temp) < 1e-6) {
+ return dot_2d(A, A) < dot_2d(B, B);
+ } else {
+ return temp > 0;
+ }
+ });
+ // compute distance to origin after sort, since the points are now different.
+ for (int i = 0; i < num_in; i++) {
+ dist[i] = dot_2d(q[i], q[i]);
+ }
+#endif
+
+ // Step 4:
+ // Make sure there are at least 2 points (that don't overlap with each other)
+ // in the stack
+ int k; // index of the non-overlapped second point
+ for (k = 1; k < num_in; k++) {
+ if (dist[k] > 1e-8) {
+ break;
+ }
+ }
+ if (k == num_in) {
+ // We reach the end, which means the convex hull is just one point
+ q[0] = p[t];
+ return 1;
+ }
+ q[1] = q[k];
+ int m = 2; // 2 points in the stack
+ // Step 5:
+ // Finally we can start the scanning process.
+ // When a non-convex relationship between the 3 points is found
+ // (either concave shape or duplicated points),
+ // we pop the previous point from the stack
+ // until the 3-point relationship is convex again, or
+ // until the stack only contains two points
+ for (int i = k + 1; i < num_in; i++) {
+ while (m > 1 && cross_2d(q[i] - q[m - 2], q[m - 1] - q[m - 2]) >= 0) {
+ m--;
+ }
+ q[m++] = q[i];
+ }
+
+ // Step 6 (Optional):
+ // In general sense we need the original coordinates, so we
+ // need to shift the points back (reverting Step 2)
+ // But if we're only interested in getting the area/perimeter of the shape
+ // We can simply return.
+ if (!shift_to_zero) {
+ for (int i = 0; i < m; i++) {
+ q[i] += start;
+ }
+ }
+
+ return m;
+}
+
+template
+HOST_DEVICE_INLINE T quadri_box_area(const Point (&q)[4]) {
+ T area = 0;
+#pragma unroll
+ for (int i = 1; i < 3; i++) {
+ area += fabs(cross_2d(q[i] - q[0], q[i + 1] - q[0]));
+ }
+
+ return area / 2.0;
+}
+
+template
+HOST_DEVICE_INLINE T polygon_area(const Point (&q)[24], const int& m) {
+ if (m <= 2) {
+ return 0;
+ }
+
+ T area = 0;
+ for (int i = 1; i < m - 1; i++) {
+ area += fabs(cross_2d(q[i] - q[0], q[i + 1] - q[0]));
+ }
+
+ return area / 2.0;
+}
+
+template
+HOST_DEVICE_INLINE T rotated_boxes_intersection(const RotatedBox& box1,
+ const RotatedBox& box2) {
+ // There are up to 4 x 4 + 4 + 4 = 24 intersections (including dups) returned
+ // from rotated_rect_intersection_pts
+ Point intersectPts[24], orderedPts[24];
+
+ Point pts1[4];
+ Point pts2[4];
+ get_rotated_vertices(box1, pts1);
+ get_rotated_vertices(box2, pts2);
+
+ int num = get_intersection_points(pts1, pts2, intersectPts);
+
+ if (num <= 2) {
+ return 0.0;
+ }
+
+ // Convex Hull to order the intersection points in clockwise order and find
+ // the contour area.
+ int num_convex = convex_hull_graham(intersectPts, num, orderedPts, true);
+ return polygon_area(orderedPts, num_convex);
+}
+
+template
+HOST_DEVICE_INLINE T quadri_boxes_intersection(const Point (&pts1)[4],
+ const Point (&pts2)[4]) {
+ // There are up to 4 x 4 + 4 + 4 = 24 intersections (including dups) returned
+ // from rotated_rect_intersection_pts
+ Point intersectPts[24], orderedPts[24];
+
+ int num = get_intersection_points(pts1, pts2, intersectPts);
+
+ if (num <= 2) {
+ return 0.0;
+ }
+
+ // Convex Hull to order the intersection points in clockwise order and find
+ // the contour area.
+ int num_convex = convex_hull_graham(intersectPts, num, orderedPts, true);
+ return polygon_area(orderedPts, num_convex);
+}
+
+} // namespace
+
+template
+HOST_DEVICE_INLINE T single_box_iou_rotated(T const* const box1_raw,
+ T const* const box2_raw,
+ const int mode_flag) {
+ // shift center to the middle point to achieve higher precision in result
+ RotatedBox box1, box2;
+ auto center_shift_x = (box1_raw[0] + box2_raw[0]) / 2.0;
+ auto center_shift_y = (box1_raw[1] + box2_raw[1]) / 2.0;
+ box1.x_ctr = box1_raw[0] - center_shift_x;
+ box1.y_ctr = box1_raw[1] - center_shift_y;
+ box1.w = box1_raw[2];
+ box1.h = box1_raw[3];
+ box1.a = box1_raw[4];
+ box2.x_ctr = box2_raw[0] - center_shift_x;
+ box2.y_ctr = box2_raw[1] - center_shift_y;
+ box2.w = box2_raw[2];
+ box2.h = box2_raw[3];
+ box2.a = box2_raw[4];
+
+ const T area1 = box1.w * box1.h;
+ const T area2 = box2.w * box2.h;
+ if (area1 < 1e-14 || area2 < 1e-14) {
+ return 0.f;
+ }
+
+ const T intersection = rotated_boxes_intersection(box1, box2);
+ T baseS = 1.0;
+ if (mode_flag == 0) {
+ baseS = (area1 + area2 - intersection);
+ } else if (mode_flag == 1) {
+ baseS = area1;
+ }
+ const T iou = intersection / baseS;
+ return iou;
+}
+
+template
+HOST_DEVICE_INLINE T single_box_iou_quadri(T const* const pts1_raw,
+ T const* const pts2_raw,
+ const int mode_flag) {
+ // shift center to the middle point to achieve higher precision in result
+ Point pts1[4], pts2[4];
+
+ auto center_shift_x =
+ (pts1_raw[0] + pts2_raw[0] + pts1_raw[2] + pts2_raw[2] + pts1_raw[4] +
+ pts2_raw[4] + pts1_raw[6] + pts2_raw[6]) /
+ 8.0;
+ auto center_shift_y =
+ (pts1_raw[1] + pts2_raw[1] + pts1_raw[3] + pts2_raw[3] + pts1_raw[5] +
+ pts2_raw[5] + pts1_raw[7] + pts2_raw[7]) /
+ 8.0;
+ pts1[0].x = pts1_raw[0] - center_shift_x;
+ pts1[0].y = pts1_raw[1] - center_shift_y;
+ pts1[1].x = pts1_raw[2] - center_shift_x;
+ pts1[1].y = pts1_raw[3] - center_shift_y;
+ pts1[2].x = pts1_raw[4] - center_shift_x;
+ pts1[2].y = pts1_raw[5] - center_shift_y;
+ pts1[3].x = pts1_raw[6] - center_shift_x;
+ pts1[3].y = pts1_raw[7] - center_shift_y;
+ pts2[0].x = pts2_raw[0] - center_shift_x;
+ pts2[0].y = pts2_raw[1] - center_shift_y;
+ pts2[1].x = pts2_raw[2] - center_shift_x;
+ pts2[1].y = pts2_raw[3] - center_shift_y;
+ pts2[2].x = pts2_raw[4] - center_shift_x;
+ pts2[2].y = pts2_raw[5] - center_shift_y;
+ pts2[3].x = pts2_raw[6] - center_shift_x;
+ pts2[3].y = pts2_raw[7] - center_shift_y;
+
+ const T area1 = quadri_box_area(pts1);
+ const T area2 = quadri_box_area(pts2);
+ if (area1 < 1e-14 || area2 < 1e-14) {
+ return 0.f;
+ }
+
+ const T intersection = quadri_boxes_intersection(pts1, pts2);
+ T baseS = 1.0;
+ if (mode_flag == 0) {
+ baseS = (area1 + area2 - intersection);
+ } else if (mode_flag == 1) {
+ baseS = area1;
+ }
+ const T iou = intersection / baseS;
+ return iou;
+}
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/active_rotated_filter_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/active_rotated_filter_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..36e41107ebd52d3cf5e9a71cffe6eddeed4f0765
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/active_rotated_filter_cuda_kernel.cuh
@@ -0,0 +1,59 @@
+// Copyright (c) OpenMMLab. All rights reserved.
+// Modified from
+// https://github.com/csuhan/s2anet/blob/master/mmdet/ops/orn/src/cuda/ActiveRotatingFilter_cuda.cu
+#ifndef ACTIVE_ROTATED_FILTER_CUDA_KERNEL_CUH
+#define ACTIVE_ROTATED_FILTER_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+template
+__global__ void active_rotated_filter_forward_cuda_kernel(
+ const int nthreads, const scalar_t* weight_data, const int* indices_data,
+ const int num_input_planes, const int num_output_planes,
+ const int num_orientations, const int num_rotations, const int nEntry,
+ scalar_t* output_data) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ int l = index % nEntry;
+ int j = (index / nEntry) % num_input_planes;
+ int i = index / nEntry / num_input_planes;
+ int k;
+ scalar_t val = *(weight_data + index);
+ for (k = 0; k < num_rotations; k++) {
+ int idx = (int)(*(indices_data + l * num_rotations + k)) - 1;
+ scalar_t* target = output_data +
+ i * (num_rotations * num_input_planes * nEntry) +
+ k * (num_input_planes * nEntry) + j * (nEntry) + idx;
+ *target = val;
+ }
+ }
+}
+
+template
+__global__ void active_rotated_filter_backward_cuda_kernel(
+ const int nthreads, const scalar_t* gradWeight_data,
+ const int* indices_data, const int num_input_planes,
+ const int num_output_planes, const int num_orientations,
+ const int num_rotations, const int nEntry, scalar_t* weight_data) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ int l = index % nEntry;
+ int j = (index / nEntry) % num_input_planes;
+ int i = index / nEntry / num_input_planes;
+ int k;
+ scalar_t* val = weight_data + index;
+ *val = 0;
+ scalar_t tmp = 0;
+ for (k = 0; k < num_rotations; k++) {
+ int idx = (int)(*(indices_data + l * num_rotations + k)) - 1;
+ scalar_t target =
+ *(gradWeight_data + i * (num_rotations * num_input_planes * nEntry) +
+ k * (num_input_planes * nEntry) + j * (nEntry) + idx);
+ tmp = tmp + target;
+ }
+ *val = tmp;
+ }
+}
+#endif // ACTIVE_ROTATED_FILTER_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/assign_score_withk_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/assign_score_withk_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..9f9250844b9ceeca0df0377640c3d28e3f61cecc
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/assign_score_withk_cuda_kernel.cuh
@@ -0,0 +1,116 @@
+// Copyright (c) OpenMMLab. All rights reserved
+#ifndef ASSIGN_SCORE_WITHK_CUDA_KERNEL_CUH
+#define ASSIGN_SCORE_WITHK_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+// input: points(B,N0,M,O), centers(B,N0,M,O), scores(B,N1,K,M), knn_idx(B,N1,K)
+// output: fout(B,O,N)
+// algo: fout(b,i,k,j) = s(b,i,k,m)*p(b,c(i),k,m,j) = s(b,i,k,m)*p(b,i(k),m,j)
+// i(k) = idx(b,i,k)
+// sum: fout(b,i,j) = fout(b,i,j) + s(b,i,k,m)*p(b,i,k,m,j)
+// avg: fout(b,i,j) = sum(fout(b,i,k,j)) / k
+// max: fout(b,i,j) = max(fout(b,i,k,j), sum(s(b,i,k,m)*p(b,i,k,m,j)))
+
+template
+__global__ void assign_score_withk_forward_cuda_kernel(
+ const int B, const int N0, const int N1, const int M, const int K,
+ const int O, const int aggregate, const T* points, const T* centers,
+ const T* scores, const int64_t* knn_idx, T* output) {
+ // ----- parallel loop for B, N1, K and O ---------
+ CUDA_1D_KERNEL_LOOP(i, B * O * N1 * K) {
+ // ------- loop for M ----------
+ const int b = (int)(i / (O * N1 * K));
+ const int o = (int)(i % (O * N1 * K) / (N1 * K));
+ const int n = (int)(i % (N1 * K) / K);
+ const int k = (int)(i % K);
+ const int cn = (int)knn_idx[b * K * N1 + n * K +
+ 0]; // The first neighbor is the center point
+ const int kn = (int)knn_idx[b * K * N1 + n * K + k];
+ if (kn >= N0 ||
+ kn < 0) { // if index overflows, it is out of the neighborhood range
+ return;
+ }
+ assert(b < B);
+ assert(kn < N0);
+ assert(cn < N0);
+ assert(o < O);
+ assert(n < N1);
+ const int out_idx = b * N1 * O * K + o * N1 * K + n * K + k;
+ T val = output[out_idx];
+ for (int m = 0; m < M; m++) {
+ val += points[b * N0 * M * O + kn * M * O + m * O + o] *
+ scores[b * N1 * K * M + n * K * M + k * M + m] -
+ centers[b * N0 * M * O + cn * M * O + m * O + o] *
+ scores[b * N1 * K * M + n * K * M + k * M + m];
+ }
+ output[out_idx] = val;
+ }
+}
+
+template
+__global__ void assign_score_withk_points_backward_cuda_kernel(
+ const int B, const int N0, const int N, const int M, const int K,
+ const int O, const int aggregate, const T* grad_out, const T* scores,
+ const int64_t* knn_idx, T* grad_points, T* grad_centers) {
+ // ----- parallel loop for B, M, O ---------
+ CUDA_1D_KERNEL_LOOP(i, B * M * O) {
+ int b = (int)(i / (M * O));
+ int m = (int)(i % (M * O) / O);
+ int o = (int)(i % O);
+
+ // ----- loop for N,K ---------
+ for (int n = 0; n < N; n++) {
+ for (int k = 0; k < K; k++) {
+ int kn = knn_idx[b * N * K + n * K + k];
+ int cn = knn_idx[b * N * K + n * K + 0];
+ if (kn >= N0 || kn < 0) { // if index overflows, it is out of the
+ // neighborhood range
+ continue;
+ }
+ atomicAdd(grad_points + b * N0 * M * O + kn * M * O + m * O + o,
+ scores[b * N * K * M + n * K * M + k * M + m] *
+ grad_out[b * O * N * K + o * N * K + n * K + k]);
+ atomicAdd(grad_centers + b * N0 * M * O + cn * M * O + m * O + o,
+ -scores[b * N * K * M + n * K * M + k * M + m] *
+ grad_out[b * O * N * K + o * N * K + n * K + k]);
+ }
+ }
+ }
+}
+
+template
+__global__ void assign_score_withk_scores_backward_cuda_kernel(
+ const int B, const int N0, const int N, const int M, const int K,
+ const int O, const int aggregate, const T* grad_out, const T* points,
+ const T* centers, const int64_t* knn_idx, T* grad_scores) {
+ // ----- parallel loop for B, N, K, M ---------
+ CUDA_1D_KERNEL_LOOP(i, B * N * K * M) {
+ const int b = (int)(i / (N * M * K));
+ const int n = (int)(i % (N * M * K) / M / K);
+ const int k = (int)(i % (M * K) / M);
+ const int m = (int)(i % M);
+ const int cn = knn_idx[b * N * K + n * K + 0];
+ const int kn = knn_idx[b * N * K + n * K + k];
+ if (kn >= N0 ||
+ kn < 0) { // if index overflows, it is out of the neighborhood range
+ return;
+ }
+
+ // -------------- loop for O ------------------------
+ const int out_idx = b * N * K * M + n * K * M + k * M + m;
+ T val = grad_scores[out_idx];
+ for (int o = 0; o < O; o++) {
+ val += (points[b * N0 * M * O + kn * M * O + m * O + o] -
+ centers[b * N0 * M * O + cn * M * O + m * O + o]) *
+ grad_out[b * O * N * K + o * N * K + n * K + k];
+ }
+ grad_scores[out_idx] = val;
+ }
+}
+
+#endif // ASSIGN_SCORE_WITHK_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/ball_query_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/ball_query_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..632b5c4940b33a9d8d839fa3f3b92e7b6a2bd29e
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/ball_query_cuda_kernel.cuh
@@ -0,0 +1,58 @@
+// Copyright (c) OpenMMLab. All rights reserved
+// Modified from
+// https://github.com/sshaoshuai/Pointnet2.PyTorch/tree/master/pointnet2/src/ball_query_gpu.cu
+#ifndef BALL_QUERY_CUDA_KERNEL_CUH
+#define BALL_QUERY_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+template
+__global__ void ball_query_forward_cuda_kernel(int b, int n, int m,
+ float min_radius,
+ float max_radius, int nsample,
+ const T* new_xyz, const T* xyz,
+ int* idx) {
+ // new_xyz: (B, M, 3)
+ // xyz: (B, N, 3)
+ // output:
+ // idx: (B, M, nsample)
+ int bs_idx = blockIdx.y;
+ CUDA_1D_KERNEL_LOOP(pt_idx, m) {
+ if (bs_idx >= b) return;
+
+ new_xyz += bs_idx * m * 3 + pt_idx * 3;
+ xyz += bs_idx * n * 3;
+ idx += bs_idx * m * nsample + pt_idx * nsample;
+
+ float max_radius2 = max_radius * max_radius;
+ float min_radius2 = min_radius * min_radius;
+ T new_x = new_xyz[0];
+ T new_y = new_xyz[1];
+ T new_z = new_xyz[2];
+
+ int cnt = 0;
+ for (int k = 0; k < n; ++k) {
+ T x = xyz[k * 3 + 0];
+ T y = xyz[k * 3 + 1];
+ T z = xyz[k * 3 + 2];
+ T d2 = (new_x - x) * (new_x - x) + (new_y - y) * (new_y - y) +
+ (new_z - z) * (new_z - z);
+ if (d2 == 0 || (d2 >= min_radius2 && d2 < max_radius2)) {
+ if (cnt == 0) {
+ for (int l = 0; l < nsample; ++l) {
+ idx[l] = k;
+ }
+ }
+ idx[cnt] = k;
+ ++cnt;
+ if (cnt >= nsample) break;
+ }
+ }
+ }
+}
+
+#endif // BALL_QUERY_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/bbox_overlaps_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/bbox_overlaps_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..15bd91eca629895d3a99dde3fe6614036ca31dc9
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/bbox_overlaps_cuda_kernel.cuh
@@ -0,0 +1,147 @@
+// Copyright (c) OpenMMLab. All rights reserved
+#ifndef BBOX_OVERLAPS_CUDA_KERNEL_CUH
+#define BBOX_OVERLAPS_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+template
+__device__ __forceinline__ void load_bbox(const T* bbox, const int base, T& x1,
+ T& y1, T& x2, T& y2) {
+ x1 = bbox[base];
+ y1 = bbox[base + 1];
+ x2 = bbox[base + 2];
+ y2 = bbox[base + 3];
+}
+
+template <>
+__device__ __forceinline__ void load_bbox(const float* bbox,
+ const int base, float& x1,
+ float& y1, float& x2,
+ float& y2) {
+ const float4 bbox_offset = reinterpret_cast(bbox + base)[0];
+ x1 = bbox_offset.x;
+ y1 = bbox_offset.y;
+ x2 = bbox_offset.z;
+ y2 = bbox_offset.w;
+}
+
+template
+__global__ void bbox_overlaps_cuda_kernel(const T* bbox1, const T* bbox2,
+ T* ious, const int num_bbox1,
+ const int num_bbox2, const int mode,
+ const bool aligned,
+ const int offset) {
+ if (aligned) {
+ CUDA_1D_KERNEL_LOOP(index, num_bbox1) {
+ const int b1 = index;
+ const int b2 = index;
+
+ const int base1 = b1 << 2; // b1 * 4
+ T b1_x1, b1_y1, b1_x2, b1_y2;
+ load_bbox(bbox1, base1, b1_x1, b1_y1, b1_x2, b1_y2);
+ const T b1_area = (b1_x2 - b1_x1 + offset) * (b1_y2 - b1_y1 + offset);
+
+ const int base2 = b2 << 2; // b2 * 4
+ T b2_x1, b2_y1, b2_x2, b2_y2;
+ load_bbox(bbox2, base2, b2_x1, b2_y1, b2_x2, b2_y2);
+ const T b2_area = (b2_x2 - b2_x1 + offset) * (b2_y2 - b2_y1 + offset);
+
+ const T left = fmaxf(b1_x1, b2_x1), right = fminf(b1_x2, b2_x2);
+ const T top = fmaxf(b1_y1, b2_y1), bottom = fminf(b1_y2, b2_y2);
+ const T width = fmaxf(right - left + offset, 0.f);
+ const T height = fmaxf(bottom - top + offset, 0.f);
+ const T interS = width * height;
+
+ const T baseS =
+ fmaxf(mode == 0 ? b1_area + b2_area - interS : b1_area, T(offset));
+ ious[index] = interS / baseS;
+ }
+ } else {
+ CUDA_1D_KERNEL_LOOP(index, num_bbox1 * num_bbox2) {
+ const int b1 = index / num_bbox2;
+ const int b2 = index % num_bbox2;
+
+ const int base1 = b1 << 2; // b1 * 4
+ T b1_x1, b1_y1, b1_x2, b1_y2;
+ load_bbox(bbox1, base1, b1_x1, b1_y1, b1_x2, b1_y2);
+ const T b1_area = (b1_x2 - b1_x1 + offset) * (b1_y2 - b1_y1 + offset);
+
+ const int base2 = b2 << 2; // b2 * 4
+ T b2_x1, b2_y1, b2_x2, b2_y2;
+ load_bbox(bbox2, base2, b2_x1, b2_y1, b2_x2, b2_y2);
+ const T b2_area = (b2_x2 - b2_x1 + offset) * (b2_y2 - b2_y1 + offset);
+
+ const T left = fmaxf(b1_x1, b2_x1), right = fminf(b1_x2, b2_x2);
+ const T top = fmaxf(b1_y1, b2_y1), bottom = fminf(b1_y2, b2_y2);
+ const T width = fmaxf(right - left + offset, 0.f);
+ const T height = fmaxf(bottom - top + offset, 0.f);
+ const T interS = width * height;
+
+ const T baseS =
+ fmaxf(mode == 0 ? b1_area + b2_area - interS : b1_area, T(offset));
+ ious[index] = interS / baseS;
+ }
+ }
+}
+
+#if __CUDA_ARCH__ >= 530
+__device__ __forceinline__ __half __half_area(const __half x1, const __half y1,
+ const __half x2, const __half y2,
+ const __half offset) {
+ const __half half_w = __hadd(__hsub(x2, x1), offset);
+ const __half half_h = __hadd(__hsub(y2, y1), offset);
+ return __hmul(half_w, half_h);
+}
+
+__device__ __forceinline__ __half __half_max(const __half a, const __half b) {
+ return __hge(a, b) ? a : b;
+}
+
+__device__ __forceinline__ __half __half_min(const __half a, const __half b) {
+ return __hle(a, b) ? a : b;
+}
+
+// fp16 won't provide much increase when aligned==true. It is useful when
+// aligned==false, which would give you ~40% bonus.
+__device__ void bbox_overlaps_cuda_kernel_half(
+ const __half* bbox1, const __half* bbox2, __half* ious, const int num_bbox1,
+ const int num_bbox2, const int mode, const bool aligned, const int offset) {
+ const int num_output = aligned ? num_bbox1 : num_bbox1 * num_bbox2;
+ const __half h_offset = __int2half_rn(offset);
+ CUDA_1D_KERNEL_LOOP(index, num_output) {
+ const int b1 = aligned ? index : index / num_bbox2;
+ const int b2 = aligned ? index : index % num_bbox2;
+
+ const int base1 = b1 << 2;
+ __half b1_x1, b1_y1, b1_x2, b1_y2;
+ load_bbox<__half>(bbox1, base1, b1_x1, b1_y1, b1_x2, b1_y2);
+ const __half b1_area = __half_area(b1_x1, b1_y1, b1_x2, b1_y2, h_offset);
+
+ const int base2 = b2 << 2;
+ __half b2_x1, b2_y1, b2_x2, b2_y2;
+ load_bbox<__half>(bbox2, base2, b2_x1, b2_y1, b2_x2, b2_y2);
+ const __half b2_area = __half_area(b2_x1, b2_y1, b2_x2, b2_y2, h_offset);
+
+ const __half left = __half_max(b1_x1, b2_x1),
+ right = __half_min(b1_x2, b2_x2);
+ const __half top = __half_max(b1_y1, b2_y1),
+ bottom = __half_min(b1_y2, b2_y2);
+ const __half width =
+ __half_max(__hadd(__hsub(right, left), h_offset), __float2half(0.f));
+ const __half height =
+ __half_max(__hadd(__hsub(bottom, top), h_offset), __float2half(0.f));
+ const __half interS = __hmul(width, height);
+
+ const __half baseS = __half_max(
+ mode == 0 ? __hsub(__hadd(b1_area, b2_area), interS) : b1_area,
+ h_offset);
+ ious[index] = __hdiv(interS, baseS);
+ }
+}
+#endif // __CUDA_ARCH__ >= 530
+
+#endif // BBOX_OVERLAPS_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/bezier_align_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/bezier_align_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..537610416e16aae8979d0843972e090d127b0d43
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/bezier_align_cuda_kernel.cuh
@@ -0,0 +1,230 @@
+// Copyright (c) OpenMMLab. All rights reserved
+// Modified from
+// https://github.com/aim-uofa/AdelaiDet/blob/master/adet/layers/csrc/BezierAlign/BezierAlign_cuda.cu
+#ifndef BEZIER_ALIGN_CUDA_KERNEL_CUH
+#define BEZIER_ALIGN_CUDA_KERNEL_CUH
+
+#include
+#ifdef MMCV_WITH_TRT
+#include "common_cuda_helper.hpp"
+#else // MMCV_WITH_TRT
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else // MMCV_USE_PARROTS
+#include "pytorch_cuda_helper.hpp"
+#endif // MMCV_USE_PARROTS
+#endif // MMCV_WITH_TRT
+
+template
+__device__ T bezier_curve(const T p0, const T p1, const T p2, const T p3,
+ const T u) {
+ return ((1. - u) * (1. - u) * (1. - u) * p0 +
+ 3. * u * (1. - u) * (1. - u) * p1 + 3. * u * u * (1. - u) * p2 +
+ u * u * u * p3);
+}
+
+template
+__global__ void bezier_align_forward_cuda_kernel(
+ const int nthreads,
+ const T *bottom_data, // inputs
+ const T *bottom_rois, // bottom rois contains the bezier curve
+ T *top_data, // outputs
+ const int pooled_height, const int pooled_width, const T spatial_scale,
+ const int sampling_ratio, bool aligned, const int channels,
+ const int height, const int width) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (n, c, ph, pw) is an element in the pooled output
+ int pw = index % pooled_width;
+ int ph = (index / pooled_width) % pooled_height;
+ int c = (index / pooled_width / pooled_height) % channels;
+ int n = index / pooled_width / pooled_height / channels;
+
+ // beziers have size Nx(1+8*2) = Nx17
+ const T *offset_bottom_rois = bottom_rois + n * 17;
+ int roi_batch_ind = offset_bottom_rois[0];
+
+ // Do not use rounding; this implementation detail is critical
+ T offset = aligned ? (T)0.5 : (T)0.0;
+
+ // TODO: avoid this by using parallel annotation, for good
+ T p0_x = offset_bottom_rois[1] * spatial_scale;
+ T p0_y = offset_bottom_rois[2] * spatial_scale;
+ T p1_x = offset_bottom_rois[3] * spatial_scale;
+ T p1_y = offset_bottom_rois[4] * spatial_scale;
+ T p2_x = offset_bottom_rois[5] * spatial_scale;
+ T p2_y = offset_bottom_rois[6] * spatial_scale;
+ T p3_x = offset_bottom_rois[7] * spatial_scale;
+ T p3_y = offset_bottom_rois[8] * spatial_scale;
+ T p4_x = offset_bottom_rois[15] * spatial_scale;
+ T p4_y = offset_bottom_rois[16] * spatial_scale;
+ T p5_x = offset_bottom_rois[13] * spatial_scale;
+ T p5_y = offset_bottom_rois[14] * spatial_scale;
+ T p6_x = offset_bottom_rois[11] * spatial_scale;
+ T p6_y = offset_bottom_rois[12] * spatial_scale;
+ T p7_x = offset_bottom_rois[9] * spatial_scale;
+ T p7_y = offset_bottom_rois[10] * spatial_scale;
+
+ // compute the coords
+ const T u = pw / static_cast(pooled_width);
+ const T v = ph / static_cast(pooled_height);
+ const T x0 = bezier_curve(p0_x, p1_x, p2_x, p3_x, u);
+ const T y0 = bezier_curve(p0_y, p1_y, p2_y, p3_y, u);
+ const T x1 = bezier_curve(p4_x, p5_x, p6_x, p7_x, u);
+ const T y1 = bezier_curve(p4_y, p5_y, p6_y, p7_y, u);
+ const T x_center = x1 * v + x0 * (1. - v) - offset;
+ const T y_center = y1 * v + y0 * (1. - v) - offset;
+
+ T roi_width = max(abs(p0_x - p3_x), abs(p4_x - p7_x));
+ T roi_height = max(abs(p0_y - p3_y), abs(p4_y - p7_y));
+ if (!aligned) { // for backward-compatibility only
+ roi_width = max(roi_width, (T)1.);
+ roi_height = max(roi_height, (T)1.);
+ }
+ T bin_size_h = static_cast(roi_height) / static_cast(pooled_height);
+ T bin_size_w = static_cast(roi_width) / static_cast(pooled_width);
+
+ const T *offset_bottom_data =
+ bottom_data + (roi_batch_ind * channels + c) * height * width;
+
+ // We use roi_bin_grid to sample the grid and mimic integral
+ int roi_bin_grid_h = (sampling_ratio > 0)
+ ? sampling_ratio
+ : ceil(roi_height / pooled_height); // e.g., = 2
+ int roi_bin_grid_w =
+ (sampling_ratio > 0) ? sampling_ratio : ceil(roi_width / pooled_width);
+
+ // We do average (integral) pooling inside a bin
+ // When the grid is empty, output zeros == 0/1, instead of NaN.
+ const T count = max(roi_bin_grid_h * roi_bin_grid_w, 1); // e.g. = 4
+
+ T output_val = 0.;
+ for (int iy = 0; iy < roi_bin_grid_h; iy++) // e.g., iy = 0, 1
+ {
+ const T y = y_center - (T)0.5 * bin_size_h +
+ static_cast(iy + .5f) * bin_size_h /
+ static_cast(roi_bin_grid_h); // e.g., 0.5, 1.5
+ for (int ix = 0; ix < roi_bin_grid_w; ix++) {
+ const T x = x_center - (T)0.5 * bin_size_w +
+ static_cast(ix + .5f) * bin_size_w /
+ static_cast(roi_bin_grid_w);
+
+ T val = bilinear_interpolate(offset_bottom_data, height, width, y, x,
+ index);
+ output_val += val;
+ }
+ }
+ output_val /= count;
+
+ top_data[index] = output_val;
+ }
+}
+
+template
+__global__ void bezier_align_backward_cuda_kernel(
+ const int nthreads, const T *top_diff, const T *bottom_rois, T *bottom_diff,
+ const int pooled_height, const int pooled_width, const T spatial_scale,
+ const int sampling_ratio, bool aligned, const int channels,
+ const int height, const int width) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (n, c, ph, pw) is an element in the pooled output
+ int pw = index % pooled_width;
+ int ph = (index / pooled_width) % pooled_height;
+ int c = (index / pooled_width / pooled_height) % channels;
+ int n = index / pooled_width / pooled_height / channels;
+
+ // beziers have size Nx(1+8*2) = Nx17
+ const T *offset_bottom_rois = bottom_rois + n * 17;
+ int roi_batch_ind = offset_bottom_rois[0];
+
+ // Do not use rounding; this implementation detail is critical
+ T offset = aligned ? (T)0.5 : (T)0.0;
+ T p0_x = offset_bottom_rois[1] * spatial_scale;
+ T p0_y = offset_bottom_rois[2] * spatial_scale;
+ T p1_x = offset_bottom_rois[3] * spatial_scale;
+ T p1_y = offset_bottom_rois[4] * spatial_scale;
+ T p2_x = offset_bottom_rois[5] * spatial_scale;
+ T p2_y = offset_bottom_rois[6] * spatial_scale;
+ T p3_x = offset_bottom_rois[7] * spatial_scale;
+ T p3_y = offset_bottom_rois[8] * spatial_scale;
+ T p4_x = offset_bottom_rois[15] * spatial_scale;
+ T p4_y = offset_bottom_rois[16] * spatial_scale;
+ T p5_x = offset_bottom_rois[13] * spatial_scale;
+ T p5_y = offset_bottom_rois[14] * spatial_scale;
+ T p6_x = offset_bottom_rois[11] * spatial_scale;
+ T p6_y = offset_bottom_rois[12] * spatial_scale;
+ T p7_x = offset_bottom_rois[9] * spatial_scale;
+ T p7_y = offset_bottom_rois[10] * spatial_scale;
+
+ // compute the coords
+ const T u = pw / static_cast(pooled_width);
+ const T v = ph / static_cast(pooled_height);
+ const T x0 = bezier_curve(p0_x, p1_x, p2_x, p3_x, u);
+ const T y0 = bezier_curve(p0_y, p1_y, p2_y, p3_y, u);
+ const T x1 = bezier_curve(p4_x, p5_x, p6_x, p7_x, u);
+ const T y1 = bezier_curve(p4_y, p5_y, p6_y, p7_y, u);
+ const T x_center = x1 * v + x0 * (1. - v) - offset;
+ const T y_center = y1 * v + y0 * (1. - v) - offset;
+
+ T roi_width = max(abs(p0_x - p3_x), abs(p4_x - p7_x));
+ T roi_height = max(abs(p0_y - p3_y), abs(p4_y - p7_y));
+ if (!aligned) { // for backward-compatibility only
+ roi_width = max(roi_width, (T)1.);
+ roi_height = max(roi_height, (T)1.);
+ }
+ T bin_size_h = static_cast(roi_height) / static_cast(pooled_height);
+ T bin_size_w = static_cast(roi_width) / static_cast(pooled_width);
+
+ T *offset_bottom_diff =
+ bottom_diff + (roi_batch_ind * channels + c) * height * width;
+
+ int top_offset = (n * channels + c) * pooled_height * pooled_width;
+ const T *offset_top_diff = top_diff + top_offset;
+ const T top_diff_this_bin = offset_top_diff[ph * pooled_width + pw];
+
+ // We use roi_bin_grid to sample the grid and mimic integral
+ int roi_bin_grid_h = (sampling_ratio > 0)
+ ? sampling_ratio
+ : ceil(roi_height / pooled_height); // e.g., = 2
+ int roi_bin_grid_w =
+ (sampling_ratio > 0) ? sampling_ratio : ceil(roi_width / pooled_width);
+
+ // We do average (integral) pooling inside a bin
+ const T count = roi_bin_grid_h * roi_bin_grid_w; // e.g. = 4
+
+ for (int iy = 0; iy < roi_bin_grid_h; iy++) // e.g., iy = 0, 1
+ {
+ const T y = y_center - (T)0.5 * bin_size_h +
+ static_cast(iy + .5f) * bin_size_h /
+ static_cast(roi_bin_grid_h); // e.g., 0.5, 1.5
+ for (int ix = 0; ix < roi_bin_grid_w; ix++) {
+ const T x = x_center - (T)0.5 * bin_size_w +
+ static_cast(ix + .5f) * bin_size_w /
+ static_cast(roi_bin_grid_w);
+
+ T w1, w2, w3, w4;
+ int x_low, x_high, y_low, y_high;
+
+ bilinear_interpolate_gradient(height, width, y, x, w1, w2, w3, w4,
+ x_low, x_high, y_low, y_high, index);
+
+ T g1 = top_diff_this_bin * w1 / count;
+ T g2 = top_diff_this_bin * w2 / count;
+ T g3 = top_diff_this_bin * w3 / count;
+ T g4 = top_diff_this_bin * w4 / count;
+
+ if (x_low >= 0 && x_high >= 0 && y_low >= 0 && y_high >= 0) {
+ atomicAdd(offset_bottom_diff + y_low * width + x_low,
+ static_cast(g1));
+ atomicAdd(offset_bottom_diff + y_low * width + x_high,
+ static_cast(g2));
+ atomicAdd(offset_bottom_diff + y_high * width + x_low,
+ static_cast(g3));
+ atomicAdd(offset_bottom_diff + y_high * width + x_high,
+ static_cast(g4));
+ } // if
+ } // ix
+ } // iy
+ } // CUDA_1D_KERNEL_LOOP
+} // BezierAlignBackward
+
+#endif // BEZIER_ALIGN_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/border_align_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/border_align_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..1d2a2197b45ef5c82412c4b75d7819a7e27674f6
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/border_align_cuda_kernel.cuh
@@ -0,0 +1,200 @@
+// Copyright (c) OpenMMLab. All rights reserved
+// modified from
+// https://github.com/Megvii-BaseDetection/cvpods/blob/master/cvpods/layers/csrc/border_align/border_align_kernel.cu.
+// the main difference: (1) use `argmax_idx` for fast computing of gradient
+// during the backward. (2) `wh` is directly computed by `boxes`, rather than
+// passing it as argument to forward or backward functions.
+
+#ifndef BORDER_ALIGN_CUDA_KERNEL_CUH
+#define BORDER_ALIGN_CUDA_KERNEL_CUH
+
+#include
+#ifdef MMCV_WITH_TRT
+#include "common_cuda_helper.hpp"
+#else // MMCV_WITH_TRT
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else // MMCV_USE_PARROTS
+#include "pytorch_cuda_helper.hpp"
+#endif // MMCV_USE_PARROTS
+#endif // MMCV_WITH_TRT
+
+enum BorderMode { Top = 0, Left = 1, Bottom = 2, Right = 3 };
+
+/*** Forward ***/
+template
+__global__ void border_align_forward_cuda_kernel(
+ const int nthreads, const T* input, const T* boxes, T* output,
+ int* argmax_idx, const int channels, const int box_size, const int height,
+ const int width, const int pool_size) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (batch_idx, c_idx, box_idx) is an element paralleled for computing
+ // output, and `extreme_idx` is in range [0,3]
+ int batch_idx, c_idx, box_idx, extreme_idx, maxidx, *offset_argmax_idx;
+ const T *offset_box, *offset_input, *offset_box_x;
+ T *offset_output, box_width, box_height, stride, x_stride, y_stride, x, y,
+ val, maxval;
+
+ extreme_idx = threadIdx.y;
+ // shape (N, C, box_size, 4) for output
+ batch_idx = index / channels / box_size;
+ // shape (N, box_size, 4) for boxes
+ box_idx = index % box_size + batch_idx * box_size;
+ c_idx = (index / box_size) % channels;
+
+ offset_box = boxes + box_idx * 4;
+ box_width = *(offset_box + 2) - *offset_box;
+ box_height = *(offset_box + 3) - *(offset_box + 1);
+ offset_output = output + index * 4 + extreme_idx;
+ offset_argmax_idx = argmax_idx + index * 4 + extreme_idx;
+ // shape (N, 4C, h, w) for input.
+ // [0,C) for top feature, [C,2C) for left feature,
+ // [2C,3C) for bottom feature, [3C,4C) for right feature
+ offset_input =
+ input + (batch_idx * channels * 4 + extreme_idx * channels + c_idx) *
+ height * width;
+
+ // extreme_idx in [0,1] -> offset_box_x indexed at x1
+ // extreme_idx in [2,3] -> offset_box_x indexed at x2
+ offset_box_x = offset_box + extreme_idx / 2 * 2;
+
+ // (x1,y1) or (x2,y2) for (x,y)
+ x = *offset_box_x;
+ y = *(offset_box_x + 1);
+
+ switch (extreme_idx) {
+ // top
+ case BorderMode::Top:
+ stride = box_width / pool_size;
+ x_stride = stride;
+ y_stride = 0;
+ break;
+ // left
+ case BorderMode::Left:
+ stride = box_height / pool_size;
+ x_stride = 0;
+ y_stride = stride;
+ break;
+ // bottom
+ case BorderMode::Bottom:
+ stride = box_width / pool_size;
+ x_stride = -stride;
+ y_stride = 0;
+ break;
+ // right
+ case BorderMode::Right:
+ stride = box_height / pool_size;
+ x_stride = 0;
+ y_stride = -stride;
+ break;
+ }
+
+ // initialize maxval and maxidx with the start position (e.g. (x1,y1) or
+ // (x2,y2))
+ maxval = bilinear_interpolate(offset_input, height, width, y, x, index);
+ maxidx = 0;
+
+ // do max_pool along the border
+ for (int i = 1; i <= pool_size; i++) {
+ x += x_stride;
+ y += y_stride;
+ val = bilinear_interpolate(offset_input, height, width, y, x, index);
+ if (val > maxval) {
+ maxval = val;
+ maxidx = i;
+ }
+ }
+
+ // update output and argmax_idx
+ *offset_output = maxval;
+ *offset_argmax_idx = maxidx;
+ }
+}
+
+/*** Backward ***/
+template
+__global__ void border_align_backward_cuda_kernel(
+ const int nthreads, const T* grad_output, const T* boxes,
+ const int* argmax_idx, T* grad_input, const int channels,
+ const int box_size, const int height, const int width,
+ const int pool_size) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (batch_idx, c_idx, box_idx) is an element paralleled for computing
+ // output, and `extreme_idx` is in range [0,3]
+ int batch_idx, c_idx, box_idx, extreme_idx;
+ const int* offset_argmax_idx;
+ const T *offset_grad_output, *offset_box, *offset_box_x;
+ T *offset_grad_input, box_width, box_height, stride, x_stride, y_stride, x,
+ y;
+
+ extreme_idx = threadIdx.y;
+ batch_idx = index / channels / box_size;
+ box_idx = index % box_size + batch_idx * box_size;
+ c_idx = (index / box_size) % channels;
+
+ offset_box = boxes + box_idx * 4;
+ box_width = *(offset_box + 2) - *offset_box;
+ box_height = *(offset_box + 3) - *(offset_box + 1);
+ offset_grad_output = grad_output + index * 4 + extreme_idx;
+ offset_argmax_idx = argmax_idx + index * 4 + extreme_idx;
+ // [0,C) for top feature grad, [C,2C) for left feature grad,
+ // [2C,3C) for bottom feature grad, [3C,4C) for right feature grad
+ offset_grad_input = grad_input + (batch_idx * channels * 4 +
+ extreme_idx * channels + c_idx) *
+ height * width;
+
+ // extreme_idx in [0,1] -> offset_box_x indexed at x1
+ // extreme_idx in [2,3] -> offset_box_x indexed at x2
+ offset_box_x = offset_box + extreme_idx / 2 * 2;
+
+ switch (extreme_idx) {
+ // top
+ case BorderMode::Top:
+ stride = box_width / pool_size;
+ x_stride = stride;
+ y_stride = 0;
+ break;
+ // left
+ case BorderMode::Left:
+ stride = box_height / pool_size;
+ x_stride = 0;
+ y_stride = stride;
+ break;
+ // bottom
+ case BorderMode::Bottom:
+ stride = box_width / pool_size;
+ x_stride = -stride;
+ y_stride = 0;
+ break;
+ // right
+ case BorderMode::Right:
+ stride = box_height / pool_size;
+ x_stride = 0;
+ y_stride = -stride;
+ break;
+ }
+
+ // get position (x,y) which has maximum value during forward
+ x = *offset_box_x;
+ y = *(offset_box_x + 1);
+ x += x_stride * (T)(*offset_argmax_idx);
+ y += y_stride * (T)(*offset_argmax_idx);
+
+ T w1, w2, w3, w4;
+ int x_low, x_high, y_low, y_high;
+ bilinear_interpolate_gradient(height, width, y, x, w1, w2, w3, w4, x_low,
+ x_high, y_low, y_high, index);
+
+ // update grad_output
+ atomicAdd(offset_grad_input + y_low * width + x_low,
+ *offset_grad_output * w1);
+ atomicAdd(offset_grad_input + y_low * width + x_high,
+ *offset_grad_output * w2);
+ atomicAdd(offset_grad_input + y_high * width + x_low,
+ *offset_grad_output * w3);
+ atomicAdd(offset_grad_input + y_high * width + x_high,
+ *offset_grad_output * w4);
+ }
+}
+
+#endif // BORDER_ALIGN_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/box_iou_quadri_cuda.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/box_iou_quadri_cuda.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..cf8ad5e1a324de3a11c8fc8af28a8d559a661ed6
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/box_iou_quadri_cuda.cuh
@@ -0,0 +1,91 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+#ifndef BOX_IOU_QUADRI_CUDA_CUH
+#define BOX_IOU_QUADRI_CUDA_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+#include "box_iou_rotated_utils.hpp"
+
+// 2D block with 32 * 16 = 512 threads per block
+const int BLOCK_DIM_X = 32;
+const int BLOCK_DIM_Y = 16;
+
+inline int divideUP(const int x, const int y) { return (((x) + (y)-1) / (y)); }
+
+template
+__global__ void box_iou_quadri_cuda_kernel(
+ const int n_boxes1, const int n_boxes2, const T* dev_boxes1,
+ const T* dev_boxes2, T* dev_ious, const int mode_flag, const bool aligned) {
+ if (aligned) {
+ CUDA_1D_KERNEL_LOOP(index, n_boxes1) {
+ int b1 = index;
+ int b2 = index;
+
+ int base1 = b1 * 8;
+
+ float block_boxes1[8];
+ float block_boxes2[8];
+
+ block_boxes1[0] = dev_boxes1[base1 + 0];
+ block_boxes1[1] = dev_boxes1[base1 + 1];
+ block_boxes1[2] = dev_boxes1[base1 + 2];
+ block_boxes1[3] = dev_boxes1[base1 + 3];
+ block_boxes1[4] = dev_boxes1[base1 + 4];
+ block_boxes1[5] = dev_boxes1[base1 + 5];
+ block_boxes1[6] = dev_boxes1[base1 + 6];
+ block_boxes1[7] = dev_boxes1[base1 + 7];
+
+ int base2 = b2 * 8;
+
+ block_boxes2[0] = dev_boxes2[base2 + 0];
+ block_boxes2[1] = dev_boxes2[base2 + 1];
+ block_boxes2[2] = dev_boxes2[base2 + 2];
+ block_boxes2[3] = dev_boxes2[base2 + 3];
+ block_boxes2[4] = dev_boxes2[base2 + 4];
+ block_boxes2[5] = dev_boxes2[base2 + 5];
+ block_boxes2[6] = dev_boxes2[base2 + 6];
+ block_boxes2[7] = dev_boxes2[base2 + 7];
+
+ dev_ious[index] =
+ single_box_iou_quadri(block_boxes1, block_boxes2, mode_flag);
+ }
+ } else {
+ CUDA_1D_KERNEL_LOOP(index, n_boxes1 * n_boxes2) {
+ int b1 = index / n_boxes2;
+ int b2 = index % n_boxes2;
+
+ int base1 = b1 * 8;
+
+ float block_boxes1[8];
+ float block_boxes2[8];
+
+ block_boxes1[0] = dev_boxes1[base1 + 0];
+ block_boxes1[1] = dev_boxes1[base1 + 1];
+ block_boxes1[2] = dev_boxes1[base1 + 2];
+ block_boxes1[3] = dev_boxes1[base1 + 3];
+ block_boxes1[4] = dev_boxes1[base1 + 4];
+ block_boxes1[5] = dev_boxes1[base1 + 5];
+ block_boxes1[6] = dev_boxes1[base1 + 6];
+ block_boxes1[7] = dev_boxes1[base1 + 7];
+
+ int base2 = b2 * 8;
+
+ block_boxes2[0] = dev_boxes2[base2 + 0];
+ block_boxes2[1] = dev_boxes2[base2 + 1];
+ block_boxes2[2] = dev_boxes2[base2 + 2];
+ block_boxes2[3] = dev_boxes2[base2 + 3];
+ block_boxes2[4] = dev_boxes2[base2 + 4];
+ block_boxes2[5] = dev_boxes2[base2 + 5];
+ block_boxes2[6] = dev_boxes2[base2 + 6];
+ block_boxes2[7] = dev_boxes2[base2 + 7];
+
+ dev_ious[index] =
+ single_box_iou_quadri(block_boxes1, block_boxes2, mode_flag);
+ }
+ }
+}
+
+#endif
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/box_iou_rotated_cuda.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/box_iou_rotated_cuda.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..abd47cd85437804310886de057b5a839a49481b2
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/box_iou_rotated_cuda.cuh
@@ -0,0 +1,81 @@
+// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+// modified from
+// https://github.com/facebookresearch/detectron2/blob/master/detectron2/layers/csrc/box_iou_rotated/box_iou_rotated_cuda.cu
+#ifndef BOX_IOU_ROTATED_CUDA_CUH
+#define BOX_IOU_ROTATED_CUDA_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+#include "box_iou_rotated_utils.hpp"
+
+// 2D block with 32 * 16 = 512 threads per block
+const int BLOCK_DIM_X = 32;
+const int BLOCK_DIM_Y = 16;
+
+inline int divideUP(const int x, const int y) { return (((x) + (y)-1) / (y)); }
+
+template
+__global__ void box_iou_rotated_cuda_kernel(
+ const int n_boxes1, const int n_boxes2, const T* dev_boxes1,
+ const T* dev_boxes2, T* dev_ious, const int mode_flag, const bool aligned) {
+ if (aligned) {
+ CUDA_1D_KERNEL_LOOP(index, n_boxes1) {
+ int b1 = index;
+ int b2 = index;
+
+ int base1 = b1 * 5;
+
+ float block_boxes1[5];
+ float block_boxes2[5];
+
+ block_boxes1[0] = dev_boxes1[base1 + 0];
+ block_boxes1[1] = dev_boxes1[base1 + 1];
+ block_boxes1[2] = dev_boxes1[base1 + 2];
+ block_boxes1[3] = dev_boxes1[base1 + 3];
+ block_boxes1[4] = dev_boxes1[base1 + 4];
+
+ int base2 = b2 * 5;
+
+ block_boxes2[0] = dev_boxes2[base2 + 0];
+ block_boxes2[1] = dev_boxes2[base2 + 1];
+ block_boxes2[2] = dev_boxes2[base2 + 2];
+ block_boxes2[3] = dev_boxes2[base2 + 3];
+ block_boxes2[4] = dev_boxes2[base2 + 4];
+
+ dev_ious[index] =
+ single_box_iou_rotated(block_boxes1, block_boxes2, mode_flag);
+ }
+ } else {
+ CUDA_1D_KERNEL_LOOP(index, n_boxes1 * n_boxes2) {
+ int b1 = index / n_boxes2;
+ int b2 = index % n_boxes2;
+
+ int base1 = b1 * 5;
+
+ float block_boxes1[5];
+ float block_boxes2[5];
+
+ block_boxes1[0] = dev_boxes1[base1 + 0];
+ block_boxes1[1] = dev_boxes1[base1 + 1];
+ block_boxes1[2] = dev_boxes1[base1 + 2];
+ block_boxes1[3] = dev_boxes1[base1 + 3];
+ block_boxes1[4] = dev_boxes1[base1 + 4];
+
+ int base2 = b2 * 5;
+
+ block_boxes2[0] = dev_boxes2[base2 + 0];
+ block_boxes2[1] = dev_boxes2[base2 + 1];
+ block_boxes2[2] = dev_boxes2[base2 + 2];
+ block_boxes2[3] = dev_boxes2[base2 + 3];
+ block_boxes2[4] = dev_boxes2[base2 + 4];
+
+ dev_ious[index] =
+ single_box_iou_rotated(block_boxes1, block_boxes2, mode_flag);
+ }
+ }
+}
+
+#endif
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/carafe_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/carafe_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..20fd617ff7b7a318c5b02c8ab0aec2e5bb03483b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/carafe_cuda_kernel.cuh
@@ -0,0 +1,332 @@
+// Copyright (c) OpenMMLab. All rights reserved
+#ifndef CARAFE_CUDA_KERNEL_CUH
+#define CARAFE_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+#ifdef MMCV_WITH_HIP
+#define WARP_SIZE 64
+#else
+#define WARP_SIZE 32
+#endif
+#define THREADS_PER_PIXEL 32
+#define MAX_SHARED_MEMORY 49152
+#define MAX_SHARED_SCALAR_T 6144 // 49152 / 8 = 6144
+#define MAXIMIZE_KERNEL_SIZE true
+#define kTileDim 32
+#define kBlockRows 8
+#define FULL_MASK 0xffffffff
+
+inline int divideUP(const int x, const int y) { return (((x) + (y)-1) / (y)); }
+
+__device__ inline int Loc2Index(const int n, const int c, const int h,
+ const int w, const int channel_num,
+ const int height, const int width) {
+ int index = w + (h + (c + n * channel_num) * height) * width;
+ return index;
+}
+#ifndef MMCV_WITH_HIP
+/* TODO: move this to a common place */
+template
+__device__ inline scalar_t min(scalar_t a, scalar_t b) {
+ return a < b ? a : b;
+}
+
+template
+__device__ inline scalar_t max(scalar_t a, scalar_t b) {
+ return a > b ? a : b;
+}
+#endif
+template
+__device__ __forceinline__ scalar_t warpReduceSum(scalar_t val) {
+ for (int offset = WARP_SIZE / 2; offset > 0; offset /= 2)
+#ifdef MMCV_WITH_HIP
+ val += __shfl_down(val, offset);
+#else
+ val += __shfl_down_sync(FULL_MASK, val, offset);
+#endif
+ return val;
+}
+
+template <>
+__device__ __forceinline__ phalf warpReduceSum(phalf val) {
+ for (int offset = WARP_SIZE / 2; offset > 0; offset /= 2)
+#ifdef MMCV_WITH_HIP
+ __PHALF(val) += __shfl_down(val, offset);
+#else
+ __PHALF(val) +=
+ __shfl_down_sync(FULL_MASK, __PHALF(val).operator __half(), offset);
+#endif
+ return val;
+}
+
+// Splits the original matrix into submatrices with size 32 * 32.
+// Each block transposes one submatrix by loading it into shared memory.
+// Reference https://devblogs.nvidia.com/efficient-matrix-transpose-cuda-cc/
+template
+__global__ void BatchTranspose2DCUDAKernel(const int N, const int H,
+ const int W, const int dh,
+ const int dw,
+ const scalar_t *__restrict__ X,
+ scalar_t *__restrict__ Y) {
+ __shared__ scalar_t tile[kTileDim][kTileDim + 1];
+ const int n = blockIdx.x / (dh * dw);
+ const int k = blockIdx.x % (dh * dw);
+ const int r = k / dw;
+ const int c = k % dw;
+ const int offset = n * H * W;
+ int x = c * kTileDim + threadIdx.x;
+ int y = r * kTileDim + threadIdx.y;
+ if (x < W) {
+ for (int i = 0; threadIdx.y + i < kTileDim && y + i < H; i += kBlockRows) {
+ tile[threadIdx.y + i][threadIdx.x] = X[offset + (y + i) * W + x];
+ }
+ }
+ __syncthreads();
+ x = r * kTileDim + threadIdx.x;
+ y = c * kTileDim + threadIdx.y;
+ if (x < H) {
+ for (int i = 0; threadIdx.y + i < kTileDim && y + i < W; i += kBlockRows) {
+ Y[offset + (y + i) * H + x] = tile[threadIdx.x][threadIdx.y + i];
+ }
+ }
+}
+template
+__global__ void CARAFEForward(
+ const int num_kernels, const scalar_t *__restrict__ bottom_data,
+ const scalar_t *__restrict__ bottom_masks, const int kernel_size,
+ const int group_size, const int scale_factor, const int channels,
+ const int down_height, const int down_width, const int height,
+ const int width, const int mask_channels, scalar_t *__restrict__ top_data) {
+#if MAXIMIZE_KERNEL_SIZE
+ __shared__ float shared_mask[MAX_SHARED_SCALAR_T * 2];
+#else
+ __shared__ scalar_t shared_mask[MAX_SHARED_SCALAR_T];
+#endif
+
+ int index = threadIdx.x + blockIdx.x * blockDim.x;
+ if (index > num_kernels - 1) {
+ return;
+ }
+ const int pixel_id = threadIdx.x / THREADS_PER_PIXEL;
+ const int split_id = threadIdx.x % THREADS_PER_PIXEL;
+ index = index / THREADS_PER_PIXEL;
+ const int pw = index % width;
+ const int ph = (index / width) % height;
+ const int n = index / width / height;
+
+ const int down_pw = pw / scale_factor;
+ const int down_ph = ph / scale_factor;
+
+ const int start_w = down_pw - (kernel_size - 1) / 2;
+ const int end_w = down_pw + (kernel_size - 1) / 2 + 1;
+ const int start_h = down_ph - (kernel_size - 1) / 2;
+ const int end_h = down_ph + (kernel_size - 1) / 2 + 1;
+ for (int c = split_id; c < mask_channels; c += THREADS_PER_PIXEL) {
+ int mask_index = Loc2Index(n, ph, pw, c, height, width, mask_channels);
+ shared_mask[c * WARP_SIZE + pixel_id] = bottom_masks[mask_index];
+ }
+ __syncthreads();
+
+ const int channels_per_group = ceilf(channels / (float)group_size);
+#pragma unroll
+ for (int c = split_id; c < channels; c += THREADS_PER_PIXEL) {
+ int mask_group = c / channels_per_group;
+ scalar_t output_val = 0;
+#pragma unroll
+ for (int iy = start_h; iy < end_h; iy++) {
+#pragma unroll
+ for (int ix = start_w; ix < end_w; ix++) {
+ if (iy < 0 || iy > down_height - 1 || ix < 0 || ix > down_width - 1) {
+ continue;
+ }
+ int mask_iy = iy - down_ph + (kernel_size - 1) / 2;
+ int mask_ix = ix - down_pw + (kernel_size - 1) / 2;
+ int mask_c =
+ (mask_group * kernel_size + mask_iy) * kernel_size + mask_ix;
+ int feat_index =
+ Loc2Index(n, iy, ix, c, down_height, down_width, channels);
+
+ output_val += bottom_data[feat_index] *
+ shared_mask[mask_c * WARP_SIZE + pixel_id];
+ }
+ }
+
+ int top_index = Loc2Index(n, ph, pw, c, height, width, channels);
+ top_data[top_index] = output_val;
+ }
+}
+
+template
+__global__ void CARAFEBackward_Feature(
+ const int num_kernels, const scalar_t *__restrict__ top_diff,
+ const scalar_t *__restrict__ bottom_masks, const int kernel_size,
+ const int group_size, const int scale_factor, const int channels,
+ const int down_height, const int down_width, const int height,
+ const int width, const int mask_channels,
+ scalar_t *__restrict__ bottom_diff) {
+#if MAXIMIZE_KERNEL_SIZE
+ __shared__ float shared_mask[MAX_SHARED_SCALAR_T * 2];
+#else
+ __shared__ scalar_t shared_mask[MAX_SHARED_SCALAR_T];
+#endif
+
+ int index = threadIdx.x + blockIdx.x * blockDim.x;
+ if (index > num_kernels - 1) {
+ return;
+ }
+
+ const int pixel_id = threadIdx.x / THREADS_PER_PIXEL;
+ const int split_id = threadIdx.x % THREADS_PER_PIXEL;
+ // (n, c, ph, pw) is an element in the bottom_data
+ index = index / THREADS_PER_PIXEL;
+ const int pw = index % width;
+ const int ph = (index / width) % height;
+ const int n = index / width / height;
+
+ const int start_w = pw - (kernel_size - 1) * scale_factor / 2;
+ const int end_w = pw + (kernel_size - 1) * scale_factor / 2 + 1;
+ const int start_h = ph - (kernel_size - 1) * scale_factor / 2;
+ const int end_h = ph + (kernel_size - 1) * scale_factor / 2 + 1;
+ for (int c = split_id; c < mask_channels; c += THREADS_PER_PIXEL) {
+ const int mask_w = (c % kernel_size) * scale_factor;
+ const int mask_h = (c / kernel_size % kernel_size) * scale_factor;
+ const int mask_x = start_w + mask_w;
+ const int mask_y = start_h + mask_h;
+ if (mask_y < 0 || mask_y > height - 1 || mask_x < 0 || mask_x > width - 1) {
+ shared_mask[c * WARP_SIZE + pixel_id] = 0;
+ continue;
+ }
+ const int mask_group = c / (kernel_size * kernel_size);
+ const int mask_c = (2 * mask_group + 1) * kernel_size * kernel_size - c - 1;
+ int mask_index =
+ Loc2Index(n, mask_c, mask_y, mask_x, mask_channels, height, width);
+ shared_mask[c * WARP_SIZE + pixel_id] = bottom_masks[mask_index];
+ }
+ __syncthreads();
+ const int channels_per_group = ceilf(channels / (float)group_size);
+#pragma unroll
+ for (int c = split_id; c < channels; c += THREADS_PER_PIXEL) {
+ int mask_group = c / channels_per_group;
+ int top_index = Loc2Index(n, ph, pw, c, height, width, channels);
+ scalar_t output_val = 0;
+#pragma unroll
+ for (int iy = start_h; iy < end_h; iy += scale_factor) {
+#pragma unroll
+ for (int ix = start_w; ix < end_w; ix += scale_factor) {
+ if (iy < 0 || iy > height - 1 || ix < 0 || ix > width - 1) {
+ continue;
+ }
+ int mask_iy =
+ (iy - ph + (kernel_size - 1) * scale_factor / 2) / scale_factor;
+ int mask_ix =
+ (ix - pw + (kernel_size - 1) * scale_factor / 2) / scale_factor;
+ int mask_c =
+ (mask_group * kernel_size + mask_iy) * kernel_size + mask_ix;
+ int feat_index = Loc2Index(n, iy, ix, c, height, width, channels);
+ output_val +=
+ shared_mask[mask_c * WARP_SIZE + pixel_id] * top_diff[feat_index];
+ }
+ }
+ bottom_diff[top_index] = output_val;
+ }
+}
+
+template
+__global__ void FeatureSum(const int num_kernels,
+ const scalar_t *__restrict__ input_data,
+ const int scale_factor, const int channels,
+ const int height, const int width,
+ scalar_t *__restrict__ output_data) {
+ int index = threadIdx.x + blockIdx.x * blockDim.x;
+ if (index > num_kernels - 1) {
+ return;
+ }
+ const int split_id = threadIdx.x % THREADS_PER_PIXEL;
+ index = index / THREADS_PER_PIXEL;
+ const int pw = index % width;
+ const int ph = (index / width) % height;
+ const int n = index / width / height;
+ for (int c = split_id; c < channels; c += THREADS_PER_PIXEL) {
+ scalar_t output_val = 0;
+ for (int iy = ph * scale_factor; iy < (ph + 1) * scale_factor; iy++) {
+ for (int ix = pw * scale_factor; ix < (pw + 1) * scale_factor; ix++) {
+ int input_id = Loc2Index(n, iy, ix, c, height * scale_factor,
+ width * scale_factor, channels);
+ output_val += input_data[input_id];
+ }
+ }
+ const int output_id = Loc2Index(n, ph, pw, c, height, width, channels);
+ output_data[output_id] = output_val;
+ }
+}
+
+template
+__global__ void CARAFEBackward_Mask(const int num_kernels,
+ const scalar_t *__restrict__ top_diff,
+ const scalar_t *__restrict__ bottom_data,
+ const int kernel_size, const int group_size,
+ const int scale_factor, const int channels,
+ const int down_height, const int down_width,
+ const int height, const int width,
+ const int mask_channels,
+ scalar_t *__restrict__ mask_diff) {
+ int index = threadIdx.x + blockIdx.x * blockDim.x;
+ if (index > num_kernels - 1) {
+ return;
+ }
+
+ const int lane_id = index % WARP_SIZE;
+ index = index / WARP_SIZE;
+ const int mask_c = index % mask_channels;
+ // (n, c, ph, pw) is an element in the bottom_data
+ index = index / mask_channels;
+ const int pw = index % width;
+ const int ph = (index / width) % height;
+ const int n = index / width / height;
+
+ const int down_pw = pw / scale_factor;
+ const int down_ph = ph / scale_factor;
+
+ const int mask_group = mask_c / (kernel_size * kernel_size);
+ const int mask_loc = mask_c % (kernel_size * kernel_size);
+
+ const int offset_x = mask_loc % kernel_size - (kernel_size - 1) / 2;
+ const int offset_y =
+ mask_loc / kernel_size % kernel_size - (kernel_size - 1) / 2;
+
+ const int down_x = down_pw + offset_x;
+ const int down_y = down_ph + offset_y;
+
+ scalar_t output_val = 0;
+
+ if (down_y >= 0 && down_y <= down_height - 1 && down_x >= 0 &&
+ down_x <= down_width - 1) {
+ const int channels_per_mask = ceilf(channels / (float)group_size);
+ const int start = channels_per_mask * mask_group;
+ const int end = min(channels_per_mask * (mask_group + 1), channels);
+ for (int c = start + lane_id; c < end; c += WARP_SIZE) {
+ int bottom_id =
+ Loc2Index(n, down_y, down_x, c, down_height, down_width, channels);
+ int top_id = Loc2Index(n, ph, pw, c, height, width, channels);
+ output_val += top_diff[top_id] * bottom_data[bottom_id];
+ }
+ }
+#ifdef MMCV_WITH_HIP
+ __syncthreads();
+#else
+ __syncwarp();
+#endif
+ output_val = warpReduceSum(output_val);
+ if (lane_id == 0) {
+ const int mask_id =
+ Loc2Index(n, ph, pw, mask_c, height, width, mask_channels);
+ mask_diff[mask_id] = output_val;
+ }
+}
+
+#endif // CARAFE_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/carafe_naive_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/carafe_naive_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..48230c632f223b736aa72a9d5fd682c97b3aa93a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/carafe_naive_cuda_kernel.cuh
@@ -0,0 +1,111 @@
+// Copyright (c) OpenMMLab. All rights reserved
+#ifndef CARAFE_NAIVE_CUDA_KERNEL_CUH
+#define CARAFE_NAIVE_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+__device__ inline int Loc2Index(const int n, const int c, const int h,
+ const int w, const int channel_num,
+ const int height, const int width) {
+ int index = w + (h + (c + n * channel_num) * height) * width;
+ return index;
+}
+
+template
+__global__ void carafe_naive_forward_cuda_kernel(
+ const int nthreads, const scalar_t *bottom_data,
+ const scalar_t *bottom_masks, scalar_t *top_data, const int kernel_size,
+ const int group_size, const int scale_factor, const int channels,
+ const int height, const int width) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (n, c, ph, pw) is an element in the bottom_data
+ int pw = index % width;
+ int ph = (index / width) % height;
+ int c = (index / width / height) % channels;
+ int n = index / width / height / channels;
+
+ int mask_channels = kernel_size * kernel_size * group_size;
+ int mask_group = c / (channels / group_size);
+
+ int down_pw = pw / scale_factor;
+ int down_ph = ph / scale_factor;
+ int down_width = width / scale_factor;
+ int down_height = height / scale_factor;
+ int start_w = down_pw - (kernel_size - 1) / 2;
+ int end_w = down_pw + (kernel_size - 1) / 2 + 1;
+ int start_h = down_ph - (kernel_size - 1) / 2;
+ int end_h = down_ph + (kernel_size - 1) / 2 + 1;
+
+ scalar_t output_val = 0;
+ for (int iy = start_h; iy < end_h; iy++) {
+ for (int ix = start_w; ix < end_w; ix++) {
+ if (iy < 0 || iy > down_height - 1 || ix < 0 || ix > down_width - 1) {
+ continue;
+ }
+ int mask_iy = iy - down_ph + (kernel_size - 1) / 2;
+ int mask_ix = ix - down_pw + (kernel_size - 1) / 2;
+ int mask_c =
+ (mask_group * kernel_size + mask_iy) * kernel_size + mask_ix;
+ int feat_index =
+ Loc2Index(n, c, iy, ix, channels, down_height, down_width);
+ int mask_index =
+ Loc2Index(n, mask_c, ph, pw, mask_channels, height, width);
+ output_val += bottom_data[feat_index] * bottom_masks[mask_index];
+ }
+ }
+ top_data[index] = output_val;
+ }
+}
+
+template
+__global__ void carafe_naive_backward_cuda_kernel(
+ const int nthreads, const scalar_t *top_diff, const scalar_t *bottom_data,
+ const scalar_t *bottom_masks, scalar_t *bottom_diff, scalar_t *mask_diff,
+ const int kernel_size, const int group_size, const int scale_factor,
+ const int channels, const int height, const int width) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (n, c, ph, pw) is an element in the bottom_data
+ int pw = index % width;
+ int ph = (index / width) % height;
+ int c = (index / width / height) % channels;
+ int n = index / width / height / channels;
+
+ int mask_channels = kernel_size * kernel_size * group_size;
+ int mask_group = c / (channels / group_size);
+
+ int down_pw = pw / scale_factor;
+ int down_ph = ph / scale_factor;
+ int down_width = width / scale_factor;
+ int down_height = height / scale_factor;
+ int start_w = down_pw - (kernel_size - 1) / 2;
+ int end_w = down_pw + (kernel_size - 1) / 2 + 1;
+ int start_h = down_ph - (kernel_size - 1) / 2;
+ int end_h = down_ph + (kernel_size - 1) / 2 + 1;
+
+ for (int iy = start_h; iy < end_h; iy++) {
+ for (int ix = start_w; ix < end_w; ix++) {
+ if (iy < 0 || iy > down_height - 1 || ix < 0 || ix > down_width - 1) {
+ continue;
+ }
+ int mask_iy = iy - down_ph + (kernel_size - 1) / 2;
+ int mask_ix = ix - down_pw + (kernel_size - 1) / 2;
+ int mask_c =
+ (mask_group * kernel_size + mask_iy) * kernel_size + mask_ix;
+ int feat_index =
+ Loc2Index(n, c, iy, ix, channels, down_height, down_width);
+ int mask_index =
+ Loc2Index(n, mask_c, ph, pw, mask_channels, height, width);
+ atomicAdd(bottom_diff + feat_index,
+ bottom_masks[mask_index] * top_diff[index]);
+ atomicAdd(mask_diff + mask_index,
+ bottom_data[feat_index] * top_diff[index]);
+ }
+ }
+ }
+}
+
+#endif // CARAFE_NAIVE_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/chamfer_distance_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/chamfer_distance_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..89feea4a546a5093967f26393ca6be3b9fe6ae05
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/chamfer_distance_cuda_kernel.cuh
@@ -0,0 +1,101 @@
+// Copyright (c) OpenMMLab. All rights reserved.
+// Modified from
+// https://github.com/chrdiller/pyTorchChamferDistance/blob/master/chamfer_distance/chamfer_distance.cu
+#ifndef CHAMFER_DISTANCE_CUDA_KERNEL_CUH
+#define CHAMFER_DISTANCE_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+#define MAX_SHARED_SCALAR_T 6144 // 49152 / 8 = 6144
+
+template
+__global__ void chamfer_distance_forward_cuda_kernel(int b, int n,
+ const scalar_t* xyz, int m,
+ const scalar_t* xyz2,
+ scalar_t* result,
+ int* result_i) {
+ __shared__ scalar_t buf[MAX_SHARED_SCALAR_T];
+ for (int i = blockIdx.x; i < b; i += gridDim.x) {
+ for (int k2 = 0; k2 < m; k2 += THREADS_PER_BLOCK) {
+ int end_k = min(m, k2 + THREADS_PER_BLOCK) - k2;
+ for (int j = threadIdx.x; j < end_k * 2; j += blockDim.x) {
+ buf[j] = xyz2[(i * m + k2) * 2 + j];
+ }
+ __syncthreads();
+ for (int j = threadIdx.x; j < n; j += blockDim.x * gridDim.y) {
+ scalar_t x1 = xyz[(i * n + j) * 2 + 0];
+ scalar_t y1 = xyz[(i * n + j) * 2 + 1];
+ int best_i = 0;
+ scalar_t best = 1e10;
+ int end_ka = end_k & (~2);
+ if (end_ka == THREADS_PER_BLOCK) {
+ for (int k = 0; k < THREADS_PER_BLOCK; k += 4) {
+#pragma unroll
+ for (int j = 0; j < 4; ++j) {
+ scalar_t x2 = buf[(k + j) * 2] - x1;
+ scalar_t y2 = buf[(k + j) * 2 + 1] - y1;
+ scalar_t d = x2 * x2 + y2 * y2;
+ if (d < best) {
+ best = d;
+ best_i = k + k2 + j;
+ }
+ }
+ }
+ } else {
+ for (int k = 0; k < end_ka; k += 4) {
+#pragma unroll
+ for (int j = 0; j < 4; ++j) {
+ scalar_t x2 = buf[(k + j) * 2] - x1;
+ scalar_t y2 = buf[(k + j) * 2 + 1] - y1;
+ scalar_t d = x2 * x2 + y2 * y2;
+ if (d < best) {
+ best = d;
+ best_i = k + k2 + j;
+ }
+ }
+ }
+ }
+ for (int k = end_ka; k < end_k; k++) {
+ scalar_t x2 = buf[k * 2 + 0] - x1;
+ scalar_t y2 = buf[k * 2 + 1] - y1;
+ scalar_t d = x2 * x2 + y2 * y2;
+ if (k == 0 || d < best) {
+ best = d;
+ best_i = k + k2;
+ }
+ }
+ if (k2 == 0 || result[(i * n + j)] > best) {
+ result[(i * n + j)] = best;
+ result_i[(i * n + j)] = best_i;
+ }
+ }
+ __syncthreads();
+ }
+ }
+}
+
+template
+__global__ void chamfer_distance_backward_cuda_kernel(
+ int b, int n, const scalar_t* xyz1, int m, const scalar_t* xyz2,
+ const scalar_t* grad_dist1, const int* idx1, scalar_t* grad_xyz1,
+ scalar_t* grad_xyz2) {
+ for (int i = blockIdx.x; i < b; i += gridDim.x) {
+ for (int j = threadIdx.x; j < n; j += blockDim.x * gridDim.y) {
+ scalar_t x1 = xyz1[(i * n + j) * 2 + 0];
+ scalar_t y1 = xyz1[(i * n + j) * 2 + 1];
+ int j2 = idx1[i * n + j];
+ scalar_t x2 = xyz2[(i * m + j2) * 2 + 0];
+ scalar_t y2 = xyz2[(i * m + j2) * 2 + 1];
+ scalar_t g = grad_dist1[i * n + j] * 2;
+ atomicAdd(&(grad_xyz1[(i * n + j) * 2 + 0]), g * (x1 - x2));
+ atomicAdd(&(grad_xyz1[(i * n + j) * 2 + 1]), g * (y1 - y2));
+ atomicAdd(&(grad_xyz2[(i * m + j2) * 2 + 0]), -(g * (x1 - x2)));
+ atomicAdd(&(grad_xyz2[(i * m + j2) * 2 + 1]), -(g * (y1 - y2)));
+ }
+ }
+}
+#endif // CHAMFER_DISTANCE_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/common_cuda_helper.hpp b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/common_cuda_helper.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..b12aa9a26a2cc162fd89f68ccc97e17749090a41
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/common_cuda_helper.hpp
@@ -0,0 +1,120 @@
+#ifndef COMMON_CUDA_HELPER
+#define COMMON_CUDA_HELPER
+
+#include
+
+#define CUDA_1D_KERNEL_LOOP(i, n) \
+ for (int i = blockIdx.x * blockDim.x + threadIdx.x; i < (n); \
+ i += blockDim.x * gridDim.x)
+
+#define CUDA_2D_KERNEL_LOOP(i, n, j, m) \
+ for (size_t i = blockIdx.x * blockDim.x + threadIdx.x; i < (n); \
+ i += blockDim.x * gridDim.x) \
+ for (size_t j = blockIdx.y * blockDim.y + threadIdx.y; j < (m); \
+ j += blockDim.y * gridDim.y)
+
+#define CUDA_2D_KERNEL_BLOCK_LOOP(i, n, j, m) \
+ for (size_t i = blockIdx.x; i < (n); i += gridDim.x) \
+ for (size_t j = blockIdx.y; j < (m); j += gridDim.y)
+
+#define THREADS_PER_BLOCK 512
+
+inline int GET_BLOCKS(const int N, const int num_threads = THREADS_PER_BLOCK) {
+ int optimal_block_num = (N + num_threads - 1) / num_threads;
+ int max_block_num = 4096;
+ return min(optimal_block_num, max_block_num);
+}
+
+template
+__device__ T bilinear_interpolate(const T* input, const int height,
+ const int width, T y, T x,
+ const int index /* index for debug only*/) {
+ // deal with cases that inverse elements are out of feature map boundary
+ if (y < -1.0 || y > height || x < -1.0 || x > width) return 0;
+
+ if (y <= 0) y = 0;
+ if (x <= 0) x = 0;
+
+ int y_low = (int)y;
+ int x_low = (int)x;
+ int y_high;
+ int x_high;
+
+ if (y_low >= height - 1) {
+ y_high = y_low = height - 1;
+ y = (T)y_low;
+ } else {
+ y_high = y_low + 1;
+ }
+
+ if (x_low >= width - 1) {
+ x_high = x_low = width - 1;
+ x = (T)x_low;
+ } else {
+ x_high = x_low + 1;
+ }
+
+ T ly = y - y_low;
+ T lx = x - x_low;
+ T hy = 1. - ly, hx = 1. - lx;
+ // do bilinear interpolation
+ T v1 = input[y_low * width + x_low];
+ T v2 = input[y_low * width + x_high];
+ T v3 = input[y_high * width + x_low];
+ T v4 = input[y_high * width + x_high];
+ T w1 = hy * hx, w2 = hy * lx, w3 = ly * hx, w4 = ly * lx;
+
+ T val = (w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4);
+
+ return val;
+}
+
+template
+__device__ void bilinear_interpolate_gradient(
+ const int height, const int width, T y, T x, T& w1, T& w2, T& w3, T& w4,
+ int& x_low, int& x_high, int& y_low, int& y_high,
+ const int index /* index for debug only*/) {
+ // deal with cases that inverse elements are out of feature map boundary
+ if (y < -1.0 || y > height || x < -1.0 || x > width) {
+ // empty
+ w1 = w2 = w3 = w4 = 0.;
+ x_low = x_high = y_low = y_high = -1;
+ return;
+ }
+
+ if (y <= 0) y = 0;
+ if (x <= 0) x = 0;
+
+ y_low = (int)y;
+ x_low = (int)x;
+
+ if (y_low >= height - 1) {
+ y_high = y_low = height - 1;
+ y = (T)y_low;
+ } else {
+ y_high = y_low + 1;
+ }
+
+ if (x_low >= width - 1) {
+ x_high = x_low = width - 1;
+ x = (T)x_low;
+ } else {
+ x_high = x_low + 1;
+ }
+
+ T ly = y - y_low;
+ T lx = x - x_low;
+ T hy = 1. - ly, hx = 1. - lx;
+
+ // reference in forward
+ // T v1 = input[y_low * width + x_low];
+ // T v2 = input[y_low * width + x_high];
+ // T v3 = input[y_high * width + x_low];
+ // T v4 = input[y_high * width + x_high];
+ // T val = (w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4);
+
+ w1 = hy * hx, w2 = hy * lx, w3 = ly * hx, w4 = ly * lx;
+
+ return;
+}
+#endif // COMMON_CUDA_HELPER
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/convex_iou_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/convex_iou_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..2af96f7963ec347486ced942a5ef7cc4f187db8b
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/convex_iou_cuda_kernel.cuh
@@ -0,0 +1,831 @@
+// Copyright (c) OpenMMLab. All rights reserved
+#ifndef CONVEX_IOU_CUDA_KERNEL_CUH
+#define CONVEX_IOU_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+#define MAXN 100
+#define NMAX 512
+__device__ const double EPS = 1E-8;
+
+__device__ inline int sig(double d) { return (d > EPS) - (d < -EPS); }
+
+struct Point {
+ double x, y;
+ __device__ Point() {}
+ __device__ Point(double x, double y) : x(x), y(y) {}
+};
+
+__device__ inline bool point_same(Point& a, Point& b) {
+ return sig(a.x - b.x) == 0 && sig(a.y - b.y) == 0;
+}
+
+__device__ inline void swap1(Point* a, Point* b) {
+ Point temp;
+ temp.x = a->x;
+ temp.y = a->y;
+
+ a->x = b->x;
+ a->y = b->y;
+
+ b->x = temp.x;
+ b->y = temp.y;
+}
+
+__device__ inline void reverse1(Point* a, const int n) {
+ for (int i = 0; i < (n - 1) / 2.0; i++) {
+ Point* j = &(a[i]);
+ Point* k = &(a[n - 1 - i]);
+ swap1(j, k);
+ }
+}
+
+__device__ inline double cross(Point o, Point a, Point b) {
+ return (a.x - o.x) * (b.y - o.y) - (b.x - o.x) * (a.y - o.y);
+}
+
+__device__ inline double dis(Point a, Point b) {
+ return (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y);
+}
+__device__ inline double area(Point* ps, int n) {
+ ps[n] = ps[0];
+ double res = 0;
+ for (int i = 0; i < n; i++) {
+ res += ps[i].x * ps[i + 1].y - ps[i].y * ps[i + 1].x;
+ }
+ return res / 2.0;
+}
+__device__ inline double polygon_area_grad(Point* ps, int n,
+ int* polygon_to_pred_index,
+ int n_pred, double* grad_C) {
+ ps[n] = ps[0];
+ double partion_grad[4 * 30 + 2];
+ double res = 0;
+ for (int i = 0; i < n; i++) {
+ res += ps[i].x * ps[i + 1].y - ps[i].y * ps[i + 1].x;
+ partion_grad[i * 4 + 2] = ps[i + 1].y;
+ partion_grad[i * 4 + 3] = -ps[i + 1].x;
+ if (i != n - 1) {
+ partion_grad[i * 4 + 4] = -ps[i].y;
+ partion_grad[i * 4 + 5] = ps[i].x;
+ } else {
+ partion_grad[0] = -ps[i].y;
+ partion_grad[1] = ps[i].x;
+ }
+ }
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n_pred; j++) {
+ if (i == polygon_to_pred_index[j]) {
+ grad_C[2 * polygon_to_pred_index[j + n_pred]] =
+ (partion_grad[i * 4] + partion_grad[i * 4 + 2]) / 2;
+ break;
+ }
+ }
+ for (int j = 0; j < n_pred; j++) {
+ if (i == polygon_to_pred_index[j]) {
+ grad_C[2 * polygon_to_pred_index[j + n_pred] + 1] =
+ (partion_grad[i * 4 + 1] + partion_grad[i * 4 + 1 + 2]) / 2;
+ break;
+ }
+ }
+ }
+
+ return res / 2.0;
+}
+
+__device__ inline int lineCross(Point a, Point b, Point c, Point d, Point& p,
+ double* cut_grad, int m, int n, int i) {
+ double s1, s2;
+ double s2_s1_2;
+ double ds1_dxc, ds1_dyc, ds2_dxd, ds2_dyd;
+ double dxp_dxc, dxp_dyc, dxp_dxd, dxp_dyd, dyp_dxc, dyp_dyc, dyp_dxd, dyp_dyd;
+ s1 = cross(a, b, c);
+ s2 = cross(a, b, d);
+
+ ds1_dxc = -(b.y - a.y);
+ ds1_dyc = b.x - a.x;
+ ds2_dxd = ds1_dxc;
+ ds2_dyd = ds1_dyc;
+ s2_s1_2 = (s2 - s1) * (s2 - s1);
+
+ if (sig(s1) == 0 && sig(s2) == 0) return 2;
+ if (sig(s2 - s1) == 0) return 0;
+
+ dxp_dxc =
+ ((s2 - d.x * ds1_dxc) * (s2 - s1) - (c.x * s2 - d.x * s1) * (-ds1_dxc)) /
+ (s2_s1_2);
+ dxp_dyc =
+ ((0 - d.x * ds1_dyc) * (s2 - s1) - (c.x * s2 - d.x * s1) * (-ds1_dyc)) /
+ (s2_s1_2);
+ dxp_dxd =
+ ((c.x * ds2_dxd - s1) * (s2 - s1) - (c.x * s2 - d.x * s1) * (ds2_dxd)) /
+ (s2_s1_2);
+ dxp_dyd =
+ ((c.x * ds2_dyd - 0) * (s2 - s1) - (c.x * s2 - d.x * s1) * (ds2_dyd)) /
+ (s2_s1_2);
+
+ dyp_dxc =
+ ((0 - d.y * ds1_dxc) * (s2 - s1) - (c.y * s2 - d.y * s1) * (-ds1_dxc)) /
+ (s2_s1_2);
+ dyp_dyc =
+ ((s2 - d.y * ds1_dyc) * (s2 - s1) - (c.y * s2 - d.y * s1) * (-ds1_dyc)) /
+ (s2_s1_2);
+ dyp_dxd =
+ ((c.y * ds2_dxd - 0) * (s2 - s1) - (c.y * s2 - d.y * s1) * (ds2_dxd)) /
+ (s2_s1_2);
+ dyp_dyd =
+ ((c.y * ds2_dyd - s1) * (s2 - s1) - (c.y * s2 - d.y * s1) * (ds2_dyd)) /
+ (s2_s1_2);
+
+ p.x = (c.x * s2 - d.x * s1) / (s2 - s1);
+ p.y = (c.y * s2 - d.y * s1) / (s2 - s1);
+ if (i == n - 1) {
+ cut_grad[4 * n * m + 4 * i] = dxp_dxc; // + dyp_dxc;
+ cut_grad[4 * n * m + 4 * i + 1] = dyp_dxc;
+ cut_grad[4 * n * m + 4 * i + 2] = dxp_dyc; // + dyp_dyc;
+ cut_grad[4 * n * m + 4 * i + 3] = dyp_dyc;
+ cut_grad[4 * n * m + 0] = dxp_dxd; // + dyp_dxd;
+ cut_grad[4 * n * m + 1] = dyp_dxd;
+ cut_grad[4 * n * m + 2] = dxp_dyd; // + dyp_dyd;
+ cut_grad[4 * n * m + 3] = dyp_dyd;
+ } else {
+ cut_grad[4 * n * m + 4 * i] = dxp_dxc; // + dyp_dxc;
+ cut_grad[4 * n * m + 4 * i + 1] = dyp_dxc;
+ cut_grad[4 * n * m + 4 * i + 2] = dxp_dyc; // + dyp_dyc;
+ cut_grad[4 * n * m + 4 * i + 3] = dyp_dyc;
+ cut_grad[4 * n * m + 4 * (i + 1)] = dxp_dxd; // + dyp_dxd;
+ cut_grad[4 * n * m + 4 * (i + 1) + 1] = dyp_dxd;
+ cut_grad[4 * n * m + 4 * (i + 1) + 2] = dxp_dyd; // + dyp_dyd;
+ cut_grad[4 * n * m + 4 * (i + 1) + 3] = dyp_dyd;
+ }
+
+ return 1;
+}
+__device__ inline void polygon_cut(Point* p, int& n, Point a, Point b,
+ double* cut_grad) {
+ Point pp[MAXN];
+ double ccur_grad[MAXN] = {};
+ int m = 0;
+ p[n] = p[0];
+ int k = n;
+ for (int i = 0; i < n; i++) {
+ if (sig(cross(a, b, p[i])) > 0) {
+ pp[m] = p[i];
+ ccur_grad[4 * n * m + 4 * i] = 1.0;
+ ccur_grad[4 * n * m + 4 * i + 3] = 1.0;
+ m++;
+ }
+ if (sig(cross(a, b, p[i])) != sig(cross(a, b, p[i + 1]))) {
+ lineCross(a, b, p[i], p[i + 1], pp[m], ccur_grad, m, n, i);
+ m++;
+ }
+ }
+
+ n = 0;
+ for (int i = 0; i < m; i++) {
+ if (!i || !(point_same(pp[i], pp[i - 1]))) {
+ p[n] = pp[i];
+ for (int j = 0; j < 4 * k; j++) {
+ cut_grad[4 * k * n + j] = ccur_grad[4 * k * i + j];
+ }
+ n++;
+ }
+ }
+
+ while (n > 1 && point_same(p[n - 1], p[0])) n--;
+}
+
+__device__ inline double intersectArea(Point a, Point b, Point c, Point d,
+ double* grad_AB, int order,
+ int convex_n) {
+ Point o(0, 0);
+ int res_flag = 0;
+ int s1 = sig(cross(o, a, b));
+ int s2 = sig(cross(o, c, d));
+ if (s1 == 0 || s2 == 0) return 0.0;
+ if (s1 == -1) {
+ Point* i = &a;
+ Point* j = &b;
+ swap1(i, j);
+ res_flag = 1;
+ }
+ if (s2 == -1) {
+ Point* i = &c;
+ Point* j = &d;
+ swap1(i, j);
+ }
+ Point p[10] = {o, a, b};
+ int n = 3, n0 = 3, n1, n2, n3;
+ double cut_grad1[MAXN] = {};
+ double cut_grad2[MAXN] = {};
+ double cut_grad3[MAXN] = {};
+ double p1_p_grad[10][10] = {};
+ double p2_p1_grad[10][10] = {};
+ double p3_p2_grad[10][10] = {};
+
+ double p3_p1_grad[10][10] = {};
+ double p3_p_grad[10][10] = {};
+
+ // 1
+ polygon_cut(p, n, o, c, cut_grad1);
+ n1 = n;
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < 4 * n0; j++) {
+ if (!(j % 2)) {
+ p1_p_grad[2 * i][j / 2] = cut_grad1[4 * n0 * i + j];
+ } else {
+ p1_p_grad[2 * i + 1][j / 2] = cut_grad1[4 * n0 * i + j];
+ }
+ }
+ }
+
+ // 2
+ polygon_cut(p, n, c, d, cut_grad2);
+ n2 = n;
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < 4 * n1; j++) {
+ if (!(j % 2)) {
+ p2_p1_grad[2 * i][j / 2] = cut_grad2[4 * n1 * i + j];
+ } else {
+ p2_p1_grad[2 * i + 1][j / 2] = cut_grad2[4 * n1 * i + j];
+ }
+ }
+ }
+ // 3
+ polygon_cut(p, n, d, o, cut_grad3);
+ n3 = n;
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < 4 * n2; j++) {
+ if (!(j % 2)) {
+ p3_p2_grad[2 * i][j / 2] = cut_grad3[4 * n2 * i + j];
+ } else {
+ p3_p2_grad[2 * i + 1][j / 2] = cut_grad3[4 * n2 * i + j];
+ }
+ }
+ }
+
+ // mul
+ // p3_p2(n3 * n2) * p2_p1(n2 * n1) = p3_p1 (n3 * n1)
+ for (int i = 0; i < 2 * n3; i++) {
+ for (int j = 0; j < 2 * n1; j++) {
+ double sum = 0.0;
+ for (int m = 0; m < 2 * n2; m++) {
+ sum = sum + p3_p2_grad[i][m] * p2_p1_grad[m][j];
+ }
+ p3_p1_grad[i][j] = sum;
+ }
+ }
+
+ // p3_p1 (n3 * n1) * p1_p (n1 * n0) = p3_p (n3 * n0)
+ for (int i = 0; i < 2 * n3; i++) {
+ for (int j = 0; j < 2 * n0; j++) {
+ double sum = 0.0;
+ for (int m = 0; m < 2 * n1; m++) {
+ sum = sum + p3_p1_grad[i][m] * p1_p_grad[m][j];
+ }
+ p3_p_grad[i][j] = sum;
+ }
+ }
+
+ // calculate S_grad
+ int polygon_index_box_index[20];
+ double grad_polygon[20];
+ double S_grad[6];
+
+ for (int i = 0; i < n3; i++) {
+ polygon_index_box_index[i] = i;
+ polygon_index_box_index[i + n3] = i;
+ }
+
+ double res =
+ polygon_area_grad(p, n3, polygon_index_box_index, n3, grad_polygon);
+
+ if (s1 * s2 == -1) {
+ for (int j = 0; j < 2 * 3; j++) {
+ double sum = 0.0;
+ for (int m = 0; m < 2 * n3; m++) {
+ sum = sum - grad_polygon[m] * p3_p_grad[m][j];
+ }
+ S_grad[j] = sum;
+ }
+
+ if (order != convex_n - 1) {
+ if (res_flag) {
+ grad_AB[2 * order] += S_grad[4];
+ grad_AB[2 * order + 1] += S_grad[5];
+ grad_AB[2 * order + 2] += S_grad[2];
+ grad_AB[2 * order + 3] += S_grad[3];
+
+ } else {
+ grad_AB[2 * order] += S_grad[2];
+ grad_AB[2 * order + 1] += S_grad[3];
+ grad_AB[2 * order + 2] += S_grad[4];
+ grad_AB[2 * order + 3] += S_grad[5];
+ }
+ } else {
+ if (res_flag) {
+ grad_AB[2 * order] += S_grad[4];
+ grad_AB[2 * order + 1] += S_grad[5];
+ grad_AB[0] += S_grad[2];
+ grad_AB[1] += S_grad[3];
+
+ } else {
+ grad_AB[2 * order] += S_grad[2];
+ grad_AB[2 * order + 1] += S_grad[3];
+ grad_AB[0] += S_grad[4];
+ grad_AB[1] += S_grad[5];
+ }
+ }
+ res = -res;
+ } else {
+ for (int j = 0; j < 2 * 3; j++) {
+ double sum = 0.0;
+ for (int m = 0; m < 2 * n3; m++) {
+ sum = sum + grad_polygon[m] * p3_p_grad[m][j];
+ }
+ S_grad[j] = sum;
+ }
+
+ if (order != convex_n - 1) {
+ if (res_flag) {
+ grad_AB[2 * order] += S_grad[4];
+ grad_AB[2 * order + 1] += S_grad[5];
+ grad_AB[2 * order + 2] += S_grad[2];
+ grad_AB[2 * order + 3] += S_grad[3];
+ } else {
+ grad_AB[2 * order] += S_grad[2];
+ grad_AB[2 * order + 1] += S_grad[3];
+ grad_AB[2 * order + 2] += S_grad[4];
+ grad_AB[2 * order + 3] += S_grad[5];
+ }
+ } else {
+ if (res_flag) {
+ grad_AB[2 * order] += S_grad[4];
+ grad_AB[2 * order + 1] += S_grad[5];
+ grad_AB[0] += S_grad[2];
+ grad_AB[1] += S_grad[3];
+ } else {
+ grad_AB[2 * order] += S_grad[2];
+ grad_AB[2 * order + 1] += S_grad[3];
+ grad_AB[0] += S_grad[4];
+ grad_AB[1] += S_grad[5];
+ }
+ }
+ }
+ return res;
+}
+
+__device__ inline double intersectAreaO(Point* ps1, int n1, Point* ps2, int n2,
+ double* grad_AB) {
+ if (area(ps1, n1) < 0) reverse1(ps1, n1);
+ if (area(ps2, n2) < 0) reverse1(ps2, n2);
+ ps1[n1] = ps1[0];
+ ps2[n2] = ps2[0];
+ double res = 0;
+ for (int i = 0; i < n1; i++) {
+ for (int j = 0; j < n2; j++) {
+ res +=
+ intersectArea(ps1[i], ps1[i + 1], ps2[j], ps2[j + 1], grad_AB, i, n1);
+ }
+ }
+ return res;
+}
+
+__device__ inline void Jarvis(Point* in_poly, int& n_poly) {
+ Point p_max, p_k;
+ int max_index, k_index;
+ int Stack[NMAX] = {}, top1, top2;
+ double sign;
+ Point right_point[10], left_point[10];
+
+ for (int i = 0; i < n_poly; i++) {
+ if (in_poly[i].y < in_poly[0].y ||
+ in_poly[i].y == in_poly[0].y && in_poly[i].x < in_poly[0].x) {
+ Point* j = &(in_poly[0]);
+ Point* k = &(in_poly[i]);
+ swap1(j, k);
+ }
+ if (i == 0) {
+ p_max = in_poly[0];
+ max_index = 0;
+ }
+ if (in_poly[i].y > p_max.y ||
+ in_poly[i].y == p_max.y && in_poly[i].x > p_max.x) {
+ p_max = in_poly[i];
+ max_index = i;
+ }
+ }
+
+ if (max_index == 0) {
+ max_index = 1;
+ p_max = in_poly[max_index];
+ }
+
+ k_index = 0, Stack[0] = 0, top1 = 0;
+ while (k_index != max_index) {
+ p_k = p_max;
+ k_index = max_index;
+ for (int i = 1; i < n_poly; i++) {
+ sign = cross(in_poly[Stack[top1]], in_poly[i], p_k);
+ if ((sign > 0) || ((sign == 0) && (dis(in_poly[Stack[top1]], in_poly[i]) >
+ dis(in_poly[Stack[top1]], p_k)))) {
+ p_k = in_poly[i];
+ k_index = i;
+ }
+ }
+ top1++;
+ Stack[top1] = k_index;
+ }
+ for (int i = 0; i <= top1; i++) right_point[i] = in_poly[Stack[i]];
+
+ k_index = 0, Stack[0] = 0, top2 = 0;
+
+ while (k_index != max_index) {
+ p_k = p_max;
+ k_index = max_index;
+ for (int i = 1; i < n_poly; i++) {
+ sign = cross(in_poly[Stack[top2]], in_poly[i], p_k);
+ if ((sign < 0) || (sign == 0) && (dis(in_poly[Stack[top2]], in_poly[i]) >
+ dis(in_poly[Stack[top2]], p_k))) {
+ p_k = in_poly[i];
+ k_index = i;
+ }
+ }
+ top2++;
+ Stack[top2] = k_index;
+ }
+ for (int i = top2 - 1; i >= 0; i--) left_point[i] = in_poly[Stack[i]];
+
+ for (int i = 0; i < top1 + top2; i++) {
+ if (i <= top1) {
+ in_poly[i] = right_point[i];
+ } else {
+ in_poly[i] = left_point[top2 - (i - top1)];
+ }
+ }
+ n_poly = top1 + top2;
+}
+
+__device__ inline double intersectAreaPoly(Point* ps1, int n1, Point* ps2,
+ int n2, double* grad_C) {
+ Point polygon[MAXN];
+ int n = n1 + n2, n_poly = 0;
+ for (int i = 0; i < n1; i++) {
+ for (int j = 0; j < n - n1; j++) {
+ if (point_same(ps1[i], ps2[j])) {
+ for (int k = j; k < n - n1 - 1; k++) {
+ ps2[k] = ps2[k + 1];
+ }
+ n2--;
+ break;
+ }
+ }
+ }
+ n_poly = n1 + n2;
+ for (int i = 0; i < n_poly; i++) {
+ if (i < n1) {
+ polygon[i] = ps1[i];
+ } else {
+ polygon[i] = ps2[i - n1];
+ }
+ }
+
+ Jarvis(polygon, n_poly);
+
+ int polygon_to_pred_index[18] = {-1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1};
+ int n_pred = 0;
+ for (int i = 0; i < n_poly; i++) {
+ for (int j = 0; j < n1; j++) {
+ if (polygon[i].x == ps1[j].x && polygon[i].y == ps1[j].y) {
+ polygon_to_pred_index[n_pred] = i;
+ polygon_to_pred_index[n_pred + n1] = j;
+ n_pred += 1;
+ break;
+ }
+ }
+ }
+ if (n_pred == 0) {
+ double polygon_area = fabs(area(polygon, n_poly));
+ for (int i = 0; i < 18; i++) {
+ grad_C[i] = 0.0;
+ }
+ return polygon_area;
+ } else {
+ double polygon_area =
+ polygon_area_grad(polygon, n_poly, polygon_to_pred_index, n1, grad_C);
+ if (polygon_area < 0) {
+ for (int i = 0; i < 18; i++) {
+ grad_C[i] = -grad_C[i];
+ }
+ }
+ return fabs(polygon_area);
+ }
+}
+
+// convex_find and get the polygon_index_box_index
+__device__ inline void Jarvis_and_index(Point* in_poly, int& n_poly,
+ int* points_to_convex_ind) {
+ int n_input = n_poly;
+ Point input_poly[20];
+ for (int i = 0; i < n_input; i++) {
+ input_poly[i].x = in_poly[i].x;
+ input_poly[i].y = in_poly[i].y;
+ }
+ Point p_max, p_k;
+ int max_index, k_index;
+ int Stack[20], top1, top2;
+ double sign;
+ Point right_point[10], left_point[10];
+
+ for (int i = 0; i < n_poly; i++) {
+ if (in_poly[i].y < in_poly[0].y ||
+ in_poly[i].y == in_poly[0].y && in_poly[i].x < in_poly[0].x) {
+ Point* j = &(in_poly[0]);
+ Point* k = &(in_poly[i]);
+ swap1(j, k);
+ }
+ if (i == 0) {
+ p_max = in_poly[0];
+ max_index = 0;
+ }
+ if (in_poly[i].y > p_max.y ||
+ in_poly[i].y == p_max.y && in_poly[i].x > p_max.x) {
+ p_max = in_poly[i];
+ max_index = i;
+ }
+ }
+ if (max_index == 0) {
+ max_index = 1;
+ p_max = in_poly[max_index];
+ }
+
+ k_index = 0, Stack[0] = 0, top1 = 0;
+ while (k_index != max_index) {
+ p_k = p_max;
+ k_index = max_index;
+ for (int i = 1; i < n_poly; i++) {
+ sign = cross(in_poly[Stack[top1]], in_poly[i], p_k);
+ if ((sign > 0) || ((sign == 0) && (dis(in_poly[Stack[top1]], in_poly[i]) >
+ dis(in_poly[Stack[top1]], p_k)))) {
+ p_k = in_poly[i];
+ k_index = i;
+ }
+ }
+ top1++;
+ Stack[top1] = k_index;
+ }
+ for (int i = 0; i <= top1; i++) {
+ right_point[i] = in_poly[Stack[i]];
+ }
+
+ k_index = 0, Stack[0] = 0, top2 = 0;
+
+ while (k_index != max_index) {
+ p_k = p_max;
+ k_index = max_index;
+ for (int i = 1; i < n_poly; i++) {
+ sign = cross(in_poly[Stack[top2]], in_poly[i], p_k);
+ if ((sign < 0) || (sign == 0) && (dis(in_poly[Stack[top2]], in_poly[i]) >
+ dis(in_poly[Stack[top2]], p_k))) {
+ p_k = in_poly[i];
+ k_index = i;
+ }
+ }
+ top2++;
+ Stack[top2] = k_index;
+ }
+
+ for (int i = top2 - 1; i >= 0; i--) {
+ left_point[i] = in_poly[Stack[i]];
+ }
+
+ for (int i = 0; i < top1 + top2; i++) {
+ if (i <= top1) {
+ in_poly[i] = right_point[i];
+ } else {
+ in_poly[i] = left_point[top2 - (i - top1)];
+ }
+ }
+ n_poly = top1 + top2;
+ for (int i = 0; i < n_poly; i++) {
+ for (int j = 0; j < n_input; j++) {
+ if (point_same(in_poly[i], input_poly[j])) {
+ points_to_convex_ind[i] = j;
+ break;
+ }
+ }
+ }
+}
+
+template
+__device__ inline float devrIoU(T const* const p, T const* const q,
+ T* point_grad, const int idx) {
+ Point ps1[MAXN], ps2[MAXN];
+
+ Point convex[MAXN];
+ for (int i = 0; i < 9; i++) {
+ convex[i].x = (double)p[i * 2];
+ convex[i].y = (double)p[i * 2 + 1];
+ }
+ int n_convex = 9;
+ int points_to_convex_ind[9] = {-1, -1, -1, -1, -1, -1, -1, -1, -1};
+ Jarvis_and_index(convex, n_convex, points_to_convex_ind);
+
+ int n1 = n_convex;
+ int n2 = 4;
+
+ for (int i = 0; i < n1; i++) {
+ ps1[i].x = (double)convex[i].x;
+ ps1[i].y = (double)convex[i].y;
+ }
+
+ for (int i = 0; i < n2; i++) {
+ ps2[i].x = (double)q[i * 2];
+ ps2[i].y = (double)q[i * 2 + 1];
+ }
+
+ int polygon_index_box_index[18];
+ for (int i = 0; i < n1; i++) {
+ polygon_index_box_index[i] = i;
+ polygon_index_box_index[i + n1] = i;
+ }
+
+ double grad_A[18] = {};
+ double grad_AB[18] = {};
+ double grad_C[18] = {};
+
+ double inter_area = intersectAreaO(ps1, n1, ps2, n2, grad_AB);
+ double S_pred =
+ polygon_area_grad(ps1, n1, polygon_index_box_index, n1, grad_A);
+ if (S_pred < 0) {
+ for (int i = 0; i < n_convex * 2; i++) {
+ grad_A[i] = -grad_A[i];
+ }
+ }
+ double union_area = fabs(S_pred) + fabs(area(ps2, n2)) - inter_area;
+
+ double iou = inter_area / union_area;
+ double polygon_area = intersectAreaPoly(ps1, n1, ps2, n2, grad_C);
+
+ // printf("%d:live\n", idx);
+ double rot_giou = iou - (polygon_area - union_area) / polygon_area;
+
+ float grad_point_temp[18] = {};
+
+ for (int i = 0; i < n_convex; i++) {
+ int grad_point = points_to_convex_ind[i];
+ grad_point_temp[2 * grad_point] =
+ (float)((union_area + inter_area) / (union_area * union_area) *
+ grad_AB[2 * i] -
+ iou / union_area * grad_A[2 * i] -
+ 1 / polygon_area * (grad_AB[2 * i] - grad_A[2 * i]) -
+ (union_area) / polygon_area / polygon_area * grad_C[2 * i]);
+ grad_point_temp[2 * grad_point + 1] =
+ (float)((union_area + inter_area) / (union_area * union_area) *
+ grad_AB[2 * i + 1] -
+ iou / union_area * grad_A[2 * i + 1] -
+ 1 / polygon_area * (grad_AB[2 * i + 1] - grad_A[2 * i + 1]) -
+ (union_area) / polygon_area / polygon_area * grad_C[2 * i + 1]);
+ }
+
+ for (int i = 0; i < 9; i++) {
+ point_grad[2 * i] = grad_point_temp[2 * i];
+ point_grad[2 * i + 1] = grad_point_temp[2 * i + 1];
+ }
+ return (float)rot_giou;
+}
+
+template
+__global__ void convex_giou_cuda_kernel(const int ex_n_boxes,
+ const int gt_n_boxes, const T* ex_boxes,
+ const T* gt_boxes, T* point_grad) {
+ CUDA_1D_KERNEL_LOOP(index, ex_n_boxes) {
+ const T* cur_box = ex_boxes + index * 18;
+ const T* cur_gt_box = gt_boxes + index * 8;
+ T* cur_grad = point_grad + index * 19;
+ T giou = devrIoU(cur_box, cur_gt_box, cur_grad, threadIdx.x);
+ cur_grad[18] = giou;
+ }
+}
+
+__device__ inline int lineCross(Point a, Point b, Point c, Point d, Point& p) {
+ double s1, s2;
+ s1 = cross(a, b, c);
+ s2 = cross(a, b, d);
+ if (sig(s1) == 0 && sig(s2) == 0) return 2;
+ if (sig(s2 - s1) == 0) return 0;
+ p.x = (c.x * s2 - d.x * s1) / (s2 - s1);
+ p.y = (c.y * s2 - d.y * s1) / (s2 - s1);
+ return 1;
+}
+
+__device__ inline void polygon_cut(Point* p, int& n, Point a, Point b) {
+ Point pp[MAXN];
+ int m = 0;
+ p[n] = p[0];
+ for (int i = 0; i < n; i++) {
+ if (sig(cross(a, b, p[i])) > 0) {
+ pp[m] = p[i];
+ m++;
+ }
+ if (sig(cross(a, b, p[i])) != sig(cross(a, b, p[i + 1]))) {
+ lineCross(a, b, p[i], p[i + 1], pp[m]);
+ m++;
+ }
+ }
+ n = 0;
+ for (int i = 0; i < m; i++) {
+ if (!i || !(point_same(pp[i], pp[i - 1]))) {
+ p[n] = pp[i];
+ n++;
+ }
+ }
+
+ while (n > 1 && point_same(p[n - 1], p[0])) n--;
+}
+
+__device__ inline double intersectArea(Point a, Point b, Point c, Point d) {
+ Point o(0, 0);
+ int s1 = sig(cross(o, a, b));
+ int s2 = sig(cross(o, c, d));
+ if (s1 == 0 || s2 == 0) return 0.0;
+ if (s1 == -1) {
+ Point* i = &a;
+ Point* j = &b;
+ swap1(i, j);
+ }
+ if (s2 == -1) {
+ Point* i = &c;
+ Point* j = &d;
+ swap1(i, j);
+ }
+ Point p[10] = {o, a, b};
+ int n = 3;
+
+ polygon_cut(p, n, o, c);
+ polygon_cut(p, n, c, d);
+ polygon_cut(p, n, d, o);
+ double res = area(p, n);
+ if (s1 * s2 == -1) res = -res;
+ return res;
+}
+__device__ inline double intersectAreaO(Point* ps1, int n1, Point* ps2,
+ int n2) {
+ if (area(ps1, n1) < 0) reverse1(ps1, n1);
+ if (area(ps2, n2) < 0) reverse1(ps2, n2);
+ ps1[n1] = ps1[0];
+ ps2[n2] = ps2[0];
+ double res = 0;
+ for (int i = 0; i < n1; i++) {
+ for (int j = 0; j < n2; j++) {
+ res += intersectArea(ps1[i], ps1[i + 1], ps2[j], ps2[j + 1]);
+ }
+ }
+ return res;
+}
+
+template
+__device__ inline float devrIoU(T const* const p, T const* const q) {
+ Point ps1[MAXN], ps2[MAXN];
+ Point convex[MAXN];
+ for (int i = 0; i < 9; i++) {
+ convex[i].x = (double)p[i * 2];
+ convex[i].y = (double)p[i * 2 + 1];
+ }
+ int n_convex = 9;
+ int points_to_convex_ind[9] = {-1, -1, -1, -1, -1, -1, -1, -1, -1};
+ Jarvis_and_index(convex, n_convex, points_to_convex_ind);
+ int n1 = n_convex;
+ for (int i = 0; i < n1; i++) {
+ ps1[i].x = (double)convex[i].x;
+ ps1[i].y = (double)convex[i].y;
+ }
+ int n2 = 4;
+ for (int i = 0; i < n2; i++) {
+ ps2[i].x = (double)q[i * 2];
+ ps2[i].y = (double)q[i * 2 + 1];
+ }
+ double inter_area = intersectAreaO(ps1, n1, ps2, n2);
+ double S_pred = area(ps1, n1);
+ double union_area = fabs(S_pred) + fabs(area(ps2, n2)) - inter_area;
+ double iou = inter_area / union_area;
+ return (float)iou;
+}
+
+template
+__global__ void convex_iou_cuda_kernel(const int ex_n_boxes,
+ const int gt_n_boxes, const T* ex_boxes,
+ const T* gt_boxes, T* iou) {
+ CUDA_1D_KERNEL_LOOP(index, ex_n_boxes) {
+ const T* cur_box = ex_boxes + index * 18;
+ for (int i = 0; i < gt_n_boxes; i++) {
+ iou[index * gt_n_boxes + i] = devrIoU(cur_box, gt_boxes + i * 8);
+ }
+ }
+}
+#endif // CONVEX_IOU_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/correlation_cuda.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/correlation_cuda.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..f910561ec309cd50fd6d4da131ab36cdf3ca963a
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/correlation_cuda.cuh
@@ -0,0 +1,231 @@
+// Copyright (c) OpenMMLab. All rights reserved.
+// Modified from
+// https://github.com/ClementPinard/Pytorch-Correlation-extension/blob/master/Correlation_Module/correlation_cuda_kernel.cu
+// Original licence: Under MIT License
+
+#ifndef CORRELATION_CUDA
+#define CORRELATION_CUDA
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+#include
+#include
+// Using is recommended in the official documentation in
+// https://pytorch.org/tutorials/advanced/cpp_extension.html#writing-the-c-op.
+// However, we use for compatibility with CUDA 9.0
+// Read https://github.com/pytorch/extension-cpp/issues/35 for more details.
+#include
+
+#include
+#include
+
+using namespace torch;
+
+#define TensorAcc4R PackedTensorAccessor32
+#define TensorAcc5R PackedTensorAccessor32
+#define WITHIN_BOUNDS(x, y, H, W) (x >= 0 && x < H && y >= 0 && y < W)
+
+#define WARP_SIZE 32
+#define FULL_MASK 0xffffffff
+
+template
+__global__ void correlation_forward_cuda_kernel(
+ const TensorAcc4R rInput1, const TensorAcc4R rInput2, TensorAcc5R output,
+ int kH, int kW, int patchH, int patchW, int padH, int padW, int dilationH,
+ int dilationW, int dilation_patchH, int dilation_patchW, int dH, int dW,
+ int oH, int oW) {
+ const int iH = rInput1.size(1);
+ const int iW = rInput1.size(2);
+ const int C = rInput1.size(3);
+
+ const int n = blockIdx.x;
+ const int h = blockIdx.y * blockDim.y + threadIdx.y;
+ const int w = blockIdx.z * blockDim.z + threadIdx.z;
+
+ if (h >= oH || w >= oW) return;
+
+ const int thread = threadIdx.x;
+
+ const int start_i = -padH + h * dH;
+ const int start_j = -padW + w * dW;
+
+ const int patchRadH = dilation_patchH * (patchH - 1) / 2;
+ const int patchRadW = dilation_patchW * (patchW - 1) / 2;
+
+ for (int ph = 0; ph < patchH; ++ph) {
+ int ph_dilated = ph * dilation_patchH - patchRadH;
+ for (int pw = 0; pw < patchW; ++pw) {
+ int pw_dilated = pw * dilation_patchW - patchRadW;
+ scalar_t prod_sum = 0.0f;
+ for (int i = 0; i < kH; ++i) {
+ int i1 = start_i + i * dilationH;
+ int i2 = i1 + ph_dilated;
+ if (WITHIN_BOUNDS(i1, i2, iH, iH)) {
+ for (int j = 0; j < kW; ++j) {
+ int j1 = start_j + j * dilationW;
+ int j2 = j1 + pw_dilated;
+ if (WITHIN_BOUNDS(j1, j2, iW, iW)) {
+ for (int c = thread; c < C; c += WARP_SIZE) {
+ scalar_t v1 = rInput1[n][i1][j1][c];
+ scalar_t v2 = rInput2[n][i2][j2][c];
+ prod_sum += v1 * v2;
+ }
+ }
+ }
+ }
+ }
+ // accumulate
+ for (int offset = 16; offset > 0; offset /= 2)
+#ifdef MMCV_WITH_HIP
+ prod_sum += __shfl_down(float(prod_sum), offset);
+#else
+ prod_sum += __shfl_down_sync(FULL_MASK, float(prod_sum), offset);
+#endif
+ if (thread == 0) {
+ output[n][ph][pw][h][w] = prod_sum;
+ }
+ }
+ }
+}
+
+template
+__global__ void correlation_backward_cuda_kernel_input1(
+ const TensorAcc5R grad_output, const TensorAcc4R input2,
+ TensorAcc4R grad_input1, const int kH, const int kW, const int patchH,
+ const int patchW, const int padH, const int padW, const int dilationH,
+ const int dilationW, const int dilation_patchH, const int dilation_patchW,
+ const int dH, const int dW) {
+ const int iH = input2.size(1);
+ const int iW = input2.size(2);
+ const int C = input2.size(3);
+
+ const int H = grad_output.size(3);
+ const int W = grad_output.size(4);
+
+ const int patchRadH = (patchH - 1) / 2;
+ const int patchRadW = (patchW - 1) / 2;
+
+ const int n = blockIdx.x;
+ const int h = blockIdx.y;
+ const int w = blockIdx.z;
+
+ const int h_2 = h + padH;
+ const int w_2 = w + padW;
+ const int min_h = h_2 - kH * dilationH;
+ const int min_w = w_2 - kW * dilationW;
+
+ extern __shared__ __align__(sizeof(4)) unsigned char grad_cache_char[];
+ scalar_t *grad_cache = reinterpret_cast(grad_cache_char);
+ for (int i = threadIdx.x; i < patchH * patchW; i += blockDim.x) {
+ const int ph = i / patchW;
+ const int pw = i % patchW;
+ int i1 = h + dilation_patchH * (ph - patchRadH);
+ int j1 = w + dilation_patchW * (pw - patchRadW);
+
+ if (WITHIN_BOUNDS(i1, j1, iH, iW)) {
+ scalar_t grad_val = 0.0f;
+ for (int h_3 = h_2; h_3 > min_h; h_3 -= dilationH) {
+ int i2 = (h_3) / dH;
+ if (i2 * dH != h_3) continue;
+ for (int w_3 = w_2; w_3 > min_w; w_3 -= dilationW) {
+ int j2 = (w_3) / dW;
+ if (j2 * dW != w_3) continue;
+ if (WITHIN_BOUNDS(i2, j2, H, W)) {
+ grad_val += grad_output[n][ph][pw][i2][j2];
+ }
+ }
+ }
+ grad_cache[i] = grad_val;
+ }
+ }
+ __syncthreads();
+
+ for (int c = threadIdx.x; c < C; c += blockDim.x) {
+ scalar_t grad_input_val = 0.0f;
+ for (int ph = 0; ph < patchH; ++ph) {
+ int i1 = h + dilation_patchH * (ph - patchRadH);
+ for (int pw = 0; pw < patchW; ++pw) {
+ int j1 = w + dilation_patchW * (pw - patchRadW);
+ if (WITHIN_BOUNDS(i1, j1, iH, iW)) {
+ grad_input_val += input2[n][i1][j1][c] * grad_cache[ph * patchW + pw];
+ }
+ }
+ }
+ grad_input1[n][c][h][w] = grad_input_val;
+ }
+}
+
+template
+__global__ void correlation_backward_cuda_kernel_input2(
+ const TensorAcc5R grad_output, const TensorAcc4R input1,
+ TensorAcc4R grad_input2, int kH, int kW, int patchH, int patchW, int padH,
+ int padW, int dilationH, int dilationW, int dilation_patchH,
+ int dilation_patchW, int dH, int dW) {
+ const int iH = input1.size(1);
+ const int iW = input1.size(2);
+ const int C = input1.size(3);
+
+ const int patchRadH = (patchH - 1) / 2;
+ const int patchRadW = (patchW - 1) / 2;
+
+ const int H = grad_output.size(3);
+ const int W = grad_output.size(4);
+
+ const int dilatedKH = kH * dilationH;
+ const int dilatedKW = kW * dilationW;
+
+ const int n = blockIdx.x;
+ const int h = blockIdx.y;
+ const int w = blockIdx.z;
+
+ extern __shared__ __align__(sizeof(4)) unsigned char grad_cache_char[];
+ scalar_t *grad_cache = reinterpret_cast(grad_cache_char);
+ for (int i = threadIdx.x; i < patchH * patchW; i += blockDim.x) {
+ const int ph = i / patchW;
+ const int pw = i % patchW;
+ int i1 = h - dilation_patchH * (ph - patchRadH);
+ int j1 = w - dilation_patchW * (pw - patchRadW);
+
+ if (WITHIN_BOUNDS(i1, j1, iH, iW)) {
+ scalar_t grad_val = 0.0f;
+
+ const int h_2 = i1 + padH;
+ const int w_2 = j1 + padW;
+ const int min_h = h_2 - dilatedKH;
+ const int min_w = w_2 - dilatedKW;
+
+ for (int h_3 = h_2; h_3 > min_h; h_3 -= dilationH) {
+ int i2 = (h_3) / dH;
+ if (i2 * dH != h_3) continue;
+ for (int w_3 = w_2; w_3 > min_w; w_3 -= dilationW) {
+ int j2 = (w_3) / dW;
+ if (j2 * dW != w_3) continue;
+ if (WITHIN_BOUNDS(i2, j2, H, W)) {
+ grad_val += grad_output[n][ph][pw][i2][j2];
+ }
+ }
+ }
+ grad_cache[i] = grad_val;
+ }
+ }
+ __syncthreads();
+
+ for (int c = threadIdx.x; c < C; c += blockDim.x) {
+ scalar_t grad_input_val = 0.0f;
+ for (int ph = 0; ph < patchH; ++ph) {
+ int i1 = h - dilation_patchH * (ph - patchRadH);
+ for (int pw = 0; pw < patchW; ++pw) {
+ int j1 = w - dilation_patchW * (pw - patchRadW);
+ if (WITHIN_BOUNDS(i1, j1, iH, iW)) {
+ grad_input_val += input1[n][i1][j1][c] * grad_cache[ph * patchW + pw];
+ }
+ }
+ }
+ grad_input2[n][c][h][w] = grad_input_val;
+ }
+}
+#endif
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/deform_conv_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/deform_conv_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..6b4d1bbd85bad1b87ee5d6b8a3cd3b29e3cbc411
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/deform_conv_cuda_kernel.cuh
@@ -0,0 +1,367 @@
+/*!
+ ******************* BEGIN Caffe Copyright Notice and Disclaimer
+ *****************
+ *
+ * COPYRIGHT
+ *
+ * All contributions by the University of California:
+ * Copyright (c) 2014-2017 The Regents of the University of California (Regents)
+ * All rights reserved.
+ *
+ * All other contributions:
+ * Copyright (c) 2014-2017, the respective contributors
+ * All rights reserved.
+ *
+ * Caffe uses a shared copyright model: each contributor holds copyright over
+ * their contributions to Caffe. The project versioning records all such
+ * contribution and copyright details. If a contributor wants to further mark
+ * their specific copyright on a particular contribution, they should indicate
+ * their copyright solely in the commit message of the change when it is
+ * committed.
+ *
+ * LICENSE
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ *AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+ *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ *DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ *SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ *CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ *OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * CONTRIBUTION AGREEMENT
+ *
+ * By contributing to the BVLC/caffe repository through pull-request, comment,
+ * or otherwise, the contributor releases their content to the
+ * license and copyright terms herein.
+ *
+ ***************** END Caffe Copyright Notice and Disclaimer
+ *********************
+ *
+ * Copyright (c) 2018 Microsoft
+ * Licensed under The MIT License [see LICENSE for details]
+ * \file modulated_deformable_im2col.cuh
+ * \brief Function definitions of converting an image to
+ * column matrix based on kernel, padding, dilation, and offset.
+ * These functions are mainly used in deformable convolution operators.
+ * \ref: https://arxiv.org/abs/1703.06211
+ * \author Yuwen Xiong, Haozhi Qi, Jifeng Dai, Xizhou Zhu, Han Hu, Dazhi Cheng
+ */
+
+// modified from
+// https://github.com/chengdazhi/Deformable-Convolution-V2-PyTorch/blob/mmdetection/mmdet/ops/dcn/src/deform_conv_cuda_kernel.cu
+
+#ifndef DEFORM_CONV_CUDA_KERNEL_CUH
+#define DEFORM_CONV_CUDA_KERNEL_CUH
+
+#include
+#ifdef MMCV_WITH_TRT
+#include "common_cuda_helper.hpp"
+#else // MMCV_WITH_TRT
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else // MMCV_USE_PARROTS
+#include "pytorch_cuda_helper.hpp"
+#endif // MMCV_USE_PARROTS
+#endif // MMCV_WITH_TRT
+
+template
+__device__ T deformable_im2col_bilinear(const T *input, const int data_width,
+ const int height, const int width, T h,
+ T w) {
+ if (h <= -1 || height <= h || w <= -1 || width <= w) {
+ return 0;
+ }
+
+ int h_low = floorf(h);
+ int w_low = floorf(w);
+ int h_high = h_low + 1;
+ int w_high = w_low + 1;
+
+ T lh = h - h_low;
+ T lw = w - w_low;
+ T hh = 1 - lh, hw = 1 - lw;
+
+ T v1 = 0;
+ if (h_low >= 0 && w_low >= 0) v1 = input[h_low * data_width + w_low];
+ T v2 = 0;
+ if (h_low >= 0 && w_high <= width - 1)
+ v2 = input[h_low * data_width + w_high];
+ T v3 = 0;
+ if (h_high <= height - 1 && w_low >= 0)
+ v3 = input[h_high * data_width + w_low];
+ T v4 = 0;
+ if (h_high <= height - 1 && w_high <= width - 1)
+ v4 = input[h_high * data_width + w_high];
+
+ T w1 = hh * hw, w2 = hh * lw, w3 = lh * hw, w4 = lh * lw;
+
+ T val = (w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4);
+ return val;
+}
+
+template
+__device__ T get_gradient_weight(T argmax_h, T argmax_w, const int h,
+ const int w, const int height,
+ const int width) {
+ if (argmax_h <= -1 || argmax_h >= height || argmax_w <= -1 ||
+ argmax_w >= width) {
+ // empty
+ return 0;
+ }
+
+ int argmax_h_low = floorf(argmax_h);
+ int argmax_w_low = floorf(argmax_w);
+ int argmax_h_high = argmax_h_low + 1;
+ int argmax_w_high = argmax_w_low + 1;
+
+ T weight = 0;
+ if (h == argmax_h_low && w == argmax_w_low)
+ weight = (h + 1 - argmax_h) * (w + 1 - argmax_w);
+ if (h == argmax_h_low && w == argmax_w_high)
+ weight = (h + 1 - argmax_h) * (argmax_w + 1 - w);
+ if (h == argmax_h_high && w == argmax_w_low)
+ weight = (argmax_h + 1 - h) * (w + 1 - argmax_w);
+ if (h == argmax_h_high && w == argmax_w_high)
+ weight = (argmax_h + 1 - h) * (argmax_w + 1 - w);
+ return weight;
+}
+
+template
+__device__ T get_coordinate_weight(T argmax_h, T argmax_w, const int height,
+ const int width, const T *im_data,
+ const int data_width, const int bp_dir) {
+ if (argmax_h <= -1 || argmax_h >= height || argmax_w <= -1 ||
+ argmax_w >= width) {
+ // empty
+ return 0;
+ }
+
+ int argmax_h_low = floorf(argmax_h);
+ int argmax_w_low = floorf(argmax_w);
+ int argmax_h_high = argmax_h_low + 1;
+ int argmax_w_high = argmax_w_low + 1;
+
+ T weight = 0;
+
+ if (bp_dir == 0) {
+ if (argmax_h_low >= 0 && argmax_w_low >= 0)
+ weight += -1 * (argmax_w_low + 1 - argmax_w) *
+ im_data[argmax_h_low * data_width + argmax_w_low];
+ if (argmax_h_low >= 0 && argmax_w_high <= width - 1)
+ weight += -1 * (argmax_w - argmax_w_low) *
+ im_data[argmax_h_low * data_width + argmax_w_high];
+ if (argmax_h_high <= height - 1 && argmax_w_low >= 0)
+ weight += (argmax_w_low + 1 - argmax_w) *
+ im_data[argmax_h_high * data_width + argmax_w_low];
+ if (argmax_h_high <= height - 1 && argmax_w_high <= width - 1)
+ weight += (argmax_w - argmax_w_low) *
+ im_data[argmax_h_high * data_width + argmax_w_high];
+ } else if (bp_dir == 1) {
+ if (argmax_h_low >= 0 && argmax_w_low >= 0)
+ weight += -1 * (argmax_h_low + 1 - argmax_h) *
+ im_data[argmax_h_low * data_width + argmax_w_low];
+ if (argmax_h_low >= 0 && argmax_w_high <= width - 1)
+ weight += (argmax_h_low + 1 - argmax_h) *
+ im_data[argmax_h_low * data_width + argmax_w_high];
+ if (argmax_h_high <= height - 1 && argmax_w_low >= 0)
+ weight += -1 * (argmax_h - argmax_h_low) *
+ im_data[argmax_h_high * data_width + argmax_w_low];
+ if (argmax_h_high <= height - 1 && argmax_w_high <= width - 1)
+ weight += (argmax_h - argmax_h_low) *
+ im_data[argmax_h_high * data_width + argmax_w_high];
+ }
+
+ return weight;
+}
+
+template
+__global__ void deformable_im2col_gpu_kernel(
+ const int n, const T *data_im, const T *data_offset, const int height,
+ const int width, const int kernel_h, const int kernel_w, const int pad_h,
+ const int pad_w, const int stride_h, const int stride_w,
+ const int dilation_h, const int dilation_w,
+ const int channel_per_deformable_group, const int batch_size,
+ const int num_channels, const int deformable_group, const int height_col,
+ const int width_col, T *data_col) {
+ CUDA_1D_KERNEL_LOOP(index, n) {
+ // index index of output matrix
+ const int w_col = index % width_col;
+ const int h_col = (index / width_col) % height_col;
+ const int b_col = (index / width_col / height_col) % batch_size;
+ const int c_im = (index / width_col / height_col) / batch_size;
+ const int c_col = c_im * kernel_h * kernel_w;
+
+ // compute deformable group index
+ const int deformable_group_index = c_im / channel_per_deformable_group;
+
+ const int h_in = h_col * stride_h - pad_h;
+ const int w_in = w_col * stride_w - pad_w;
+ T *data_col_ptr =
+ data_col +
+ ((c_col * batch_size + b_col) * height_col + h_col) * width_col + w_col;
+ const T *data_im_ptr =
+ data_im + (b_col * num_channels + c_im) * height * width;
+ const T *data_offset_ptr =
+ data_offset + (b_col * deformable_group + deformable_group_index) * 2 *
+ kernel_h * kernel_w * height_col * width_col;
+
+ for (int i = 0; i < kernel_h; ++i) {
+ for (int j = 0; j < kernel_w; ++j) {
+ const int data_offset_h_ptr =
+ ((2 * (i * kernel_w + j)) * height_col + h_col) * width_col + w_col;
+ const int data_offset_w_ptr =
+ ((2 * (i * kernel_w + j) + 1) * height_col + h_col) * width_col +
+ w_col;
+ const T offset_h = data_offset_ptr[data_offset_h_ptr];
+ const T offset_w = data_offset_ptr[data_offset_w_ptr];
+ T val = static_cast(0);
+ const T h_im = h_in + i * dilation_h + offset_h;
+ const T w_im = w_in + j * dilation_w + offset_w;
+ if (h_im > -1 && w_im > -1 && h_im < height && w_im < width)
+ val = deformable_im2col_bilinear(data_im_ptr, width, height, width,
+ h_im, w_im);
+ *data_col_ptr = val;
+ data_col_ptr += batch_size * height_col * width_col;
+ }
+ }
+ }
+}
+
+template
+__global__ void deformable_col2im_gpu_kernel(
+ const int n, const T *data_col, const T *data_offset, const int channels,
+ const int height, const int width, const int kernel_h, const int kernel_w,
+ const int pad_h, const int pad_w, const int stride_h, const int stride_w,
+ const int dilation_h, const int dilation_w,
+ const int channel_per_deformable_group, const int batch_size,
+ const int deformable_group, const int height_col, const int width_col,
+ T *grad_im) {
+ CUDA_1D_KERNEL_LOOP(index, n) {
+ const int j = (index / width_col / height_col / batch_size) % kernel_w;
+ const int i =
+ (index / width_col / height_col / batch_size / kernel_w) % kernel_h;
+ const int c =
+ index / width_col / height_col / batch_size / kernel_w / kernel_h;
+ // compute the start and end of the output
+
+ const int deformable_group_index = c / channel_per_deformable_group;
+
+ int w_out = index % width_col;
+ int h_out = (index / width_col) % height_col;
+ int b = (index / width_col / height_col) % batch_size;
+ int w_in = w_out * stride_w - pad_w;
+ int h_in = h_out * stride_h - pad_h;
+
+ const T *data_offset_ptr =
+ data_offset + (b * deformable_group + deformable_group_index) * 2 *
+ kernel_h * kernel_w * height_col * width_col;
+ const int data_offset_h_ptr =
+ ((2 * (i * kernel_w + j)) * height_col + h_out) * width_col + w_out;
+ const int data_offset_w_ptr =
+ ((2 * (i * kernel_w + j) + 1) * height_col + h_out) * width_col + w_out;
+ const T offset_h = data_offset_ptr[data_offset_h_ptr];
+ const T offset_w = data_offset_ptr[data_offset_w_ptr];
+ const T cur_inv_h_data = h_in + i * dilation_h + offset_h;
+ const T cur_inv_w_data = w_in + j * dilation_w + offset_w;
+
+ const T cur_top_grad = data_col[index];
+ const int cur_h = (int)cur_inv_h_data;
+ const int cur_w = (int)cur_inv_w_data;
+ for (int dy = -2; dy <= 2; dy++) {
+ for (int dx = -2; dx <= 2; dx++) {
+ if (cur_h + dy >= 0 && cur_h + dy < height && cur_w + dx >= 0 &&
+ cur_w + dx < width && abs(cur_inv_h_data - (cur_h + dy)) < 1 &&
+ abs(cur_inv_w_data - (cur_w + dx)) < 1) {
+ int cur_bottom_grad_pos =
+ ((b * channels + c) * height + cur_h + dy) * width + cur_w + dx;
+ T weight = get_gradient_weight(cur_inv_h_data, cur_inv_w_data,
+ cur_h + dy, cur_w + dx, height, width);
+ atomicAdd(grad_im + cur_bottom_grad_pos, weight * cur_top_grad);
+ }
+ }
+ }
+ }
+}
+
+template
+__global__ void deformable_col2im_coord_gpu_kernel(
+ const int n, const T *data_col, const T *data_im, const T *data_offset,
+ const int channels, const int height, const int width, const int kernel_h,
+ const int kernel_w, const int pad_h, const int pad_w, const int stride_h,
+ const int stride_w, const int dilation_h, const int dilation_w,
+ const int channel_per_deformable_group, const int batch_size,
+ const int offset_channels, const int deformable_group, const int height_col,
+ const int width_col, T *grad_offset) {
+ CUDA_1D_KERNEL_LOOP(index, n) {
+ T val = 0;
+ int w = index % width_col;
+ int h = (index / width_col) % height_col;
+ int c = (index / width_col / height_col) % offset_channels;
+ int b = (index / width_col / height_col) / offset_channels;
+ // compute the start and end of the output
+
+ const int deformable_group_index = c / (2 * kernel_h * kernel_w);
+ const int col_step = kernel_h * kernel_w;
+ int cnt = 0;
+ const T *data_col_ptr = data_col + deformable_group_index *
+ channel_per_deformable_group *
+ batch_size * width_col * height_col;
+ const T *data_im_ptr =
+ data_im + (b * deformable_group + deformable_group_index) *
+ channel_per_deformable_group / kernel_h / kernel_w *
+ height * width;
+ const T *data_offset_ptr =
+ data_offset + (b * deformable_group + deformable_group_index) * 2 *
+ kernel_h * kernel_w * height_col * width_col;
+
+ const int offset_c = c - deformable_group_index * 2 * kernel_h * kernel_w;
+
+ for (int col_c = (offset_c / 2); col_c < channel_per_deformable_group;
+ col_c += col_step) {
+ const int col_pos =
+ (((col_c * batch_size + b) * height_col) + h) * width_col + w;
+ const int bp_dir = offset_c % 2;
+
+ int j = (col_pos / width_col / height_col / batch_size) % kernel_w;
+ int i =
+ (col_pos / width_col / height_col / batch_size / kernel_w) % kernel_h;
+ int w_out = col_pos % width_col;
+ int h_out = (col_pos / width_col) % height_col;
+ int w_in = w_out * stride_w - pad_w;
+ int h_in = h_out * stride_h - pad_h;
+ const int data_offset_h_ptr =
+ (((2 * (i * kernel_w + j)) * height_col + h_out) * width_col + w_out);
+ const int data_offset_w_ptr =
+ (((2 * (i * kernel_w + j) + 1) * height_col + h_out) * width_col +
+ w_out);
+ const T offset_h = data_offset_ptr[data_offset_h_ptr];
+ const T offset_w = data_offset_ptr[data_offset_w_ptr];
+ T inv_h = h_in + i * dilation_h + offset_h;
+ T inv_w = w_in + j * dilation_w + offset_w;
+ if (inv_h <= -1 || inv_w <= -1 || inv_h >= height || inv_w >= width)
+ inv_h = inv_w = -2;
+ const T weight = get_coordinate_weight(inv_h, inv_w, height, width,
+ data_im_ptr + cnt * height * width,
+ width, bp_dir);
+ val += weight * data_col_ptr[col_pos];
+ cnt += 1;
+ }
+
+ grad_offset[index] = val;
+ }
+}
+
+#endif // DEFORM_CONV_CUDA_KERNEL_CUH
diff --git a/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/deform_roi_pool_cuda_kernel.cuh b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/deform_roi_pool_cuda_kernel.cuh
new file mode 100644
index 0000000000000000000000000000000000000000..86c4bc66dd2fb289340a4fb1714edb5db1e798c4
--- /dev/null
+++ b/FoodSeg103/demo/mmcv/mmcv/ops/csrc/common/cuda/deform_roi_pool_cuda_kernel.cuh
@@ -0,0 +1,186 @@
+// Copyright (c) OpenMMLab. All rights reserved
+#ifndef DEFORM_ROI_POOL_CUDA_KERNEL_CUH
+#define DEFORM_ROI_POOL_CUDA_KERNEL_CUH
+
+#ifdef MMCV_USE_PARROTS
+#include "parrots_cuda_helper.hpp"
+#else
+#include "pytorch_cuda_helper.hpp"
+#endif
+
+template
+__global__ void deform_roi_pool_forward_cuda_kernel(
+ const int nthreads, const T* input, const T* rois, const T* offset,
+ T* output, const int pooled_height, const int pooled_width,
+ const T spatial_scale, const int sampling_ratio, const T gamma,
+ const int channels, const int height, const int width) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (n, c, ph, pw) is an element in the pooled output
+ int pw = index % pooled_width;
+ int ph = (index / pooled_width) % pooled_height;
+ int c = (index / pooled_width / pooled_height) % channels;
+ int n = index / pooled_width / pooled_height / channels;
+
+ const T* offset_rois = rois + n * 5;
+ int roi_batch_ind = offset_rois[0];
+
+ // Do not using rounding; this implementation detail is critical
+ T roi_start_w = offset_rois[1] * spatial_scale - 0.5;
+ T roi_start_h = offset_rois[2] * spatial_scale - 0.5;
+ T roi_end_w = offset_rois[3] * spatial_scale - 0.5;
+ T roi_end_h = offset_rois[4] * spatial_scale - 0.5;
+
+ T roi_width = roi_end_w - roi_start_w;
+ T roi_height = roi_end_h - roi_start_h;
+
+ T bin_size_h = static_cast(roi_height) / static_cast(pooled_height);
+ T bin_size_w = static_cast(roi_width) / static_cast(pooled_width);
+
+ const T* offset_input =
+ input + (roi_batch_ind * channels + c) * height * width;
+
+ // We use roi_bin_grid to sample the grid and mimic integral
+ int roi_bin_grid_h =
+ (sampling_ratio > 0)
+ ? sampling_ratio
+ : static_cast(ceilf(roi_height / pooled_height));
+ int roi_bin_grid_w =
+ (sampling_ratio > 0)
+ ? sampling_ratio
+ : static_cast(ceilf(roi_width / pooled_width));
+
+ // Compute roi offset
+ if (offset != NULL) {
+ const T* offset_cur_w = offset + n * pooled_width * pooled_height * 2 +
+ ph * pooled_width + pw;
+ T offset_roi_w = gamma * roi_width * offset_cur_w[0];
+ T offset_roi_h =
+ gamma * roi_height * offset_cur_w[pooled_width * pooled_height];
+ roi_start_w += offset_roi_w;
+ roi_start_h += offset_roi_h;
+ }
+
+ // We do average pooling inside a bin
+ const T count = max(roi_bin_grid_h * roi_bin_grid_w, 1);
+ T output_val = 0.;
+ for (int iy = 0; iy < roi_bin_grid_h; iy++) {
+ const T y = roi_start_h + ph * bin_size_h +
+ static_cast(iy + .5f) * bin_size_h /
+ static_cast(roi_bin_grid_h);
+ for (int ix = 0; ix < roi_bin_grid_w; ix++) {
+ const T x = roi_start_w + pw * bin_size_w +
+ static_cast(ix + .5f) * bin_size_w /
+ static_cast(roi_bin_grid_w);
+ T val = bilinear_interpolate(offset_input, height, width, y, x, index);
+ output_val += val;
+ }
+ }
+ output[index] = output_val / count;
+ }
+}
+
+template
+__global__ void deform_roi_pool_backward_cuda_kernel(
+ const int nthreads, const T* grad_output, const T* input, const T* rois,
+ const T* offset, T* grad_input, T* grad_offset, const int pooled_height,
+ const int pooled_width, const T spatial_scale, const int sampling_ratio,
+ const T gamma, const int channels, const int height, const int width) {
+ CUDA_1D_KERNEL_LOOP(index, nthreads) {
+ // (n, c, ph, pw) is an element in the pooled output
+ int pw = index % pooled_width;
+ int ph = (index / pooled_width) % pooled_height;
+ int c = (index / pooled_width / pooled_height) % channels;
+ int n = index / pooled_width / pooled_height / channels;
+
+ const T* offset_rois = rois + n * 5;
+ int roi_batch_ind = offset_rois[0];
+ const T* offset_input =
+ input + ((roi_batch_ind * channels + c) * height * width);
+ T* offset_grad_input =
+ grad_input + ((roi_batch_ind * channels + c) * height * width);
+
+ // Do not using rounding; this implementation detail is critical
+ T roi_start_w = offset_rois[1] * spatial_scale - 0.5;
+ T roi_start_h = offset_rois[2] * spatial_scale - 0.5;
+ T roi_end_w = offset_rois[3] * spatial_scale - 0.5;
+ T roi_end_h = offset_rois[4] * spatial_scale - 0.5;
+
+ T roi_width = roi_end_w - roi_start_w;
+ T roi_height = roi_end_h - roi_start_h;
+
+ T bin_size_h = static_cast(roi_height) / static_cast(pooled_height);
+ T bin_size_w = static_cast(roi_width) / static_cast